diff --git a/.gitignore b/.gitignore index 1e71f9b..ee50b7c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ coverage/ coverageEnv/ coverage.json .idea + +infura_privKey +infura_apiKey diff --git a/build/contracts/Compliance.json b/build/contracts/Compliance.json index 735f576..7f128e5 100644 --- a/build/contracts/Compliance.json +++ b/build/contracts/Compliance.json @@ -647,15 +647,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000097565b5034156200005a57600080fd5b604051602080620030ba8339810160405280805160088054600160a060020a031916600160a060020a0392909216919091179055506200013c9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000da57805160ff19168380011785556200010a565b828001600101855582156200010a579182015b828111156200010a578251825591602001919060010190620000ed565b50620001189291506200011c565b5090565b6200013991905b8082111562000118576000815560010162000123565b90565b612f6e806200014c6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416630d0258c881146200013657806315375210146200017757806320a99bd014620001ab578063357528c314620001cd5780633f74a3b7146200020357806347c676ac14620002195780634e317ead1462000241578063520eb620146200026657806363ad0bbe146200028e5780636424550214620002b35780637137e07214620002c95780638aee8c711462000340578063a5d5ca541462000362578063a5fb3f361462000378578063bf1031d9146200039d578063bf6309e514620003c5578063c027bfaa14620003ea578063cb040e0b146200040f578063e07dc8c1146200049c578063e53b8bba14620004c4578063ea0a1c2614620004ec578063f2eaa5421462000514578063ffa1ad741462000536575b600080fd5b34156200014257600080fd5b6200015b600160a060020a0360043516602435620005c6565b604051600160a060020a03909116815260200160405180910390f35b34156200018357600080fd5b62000199600160a060020a0360043516620005fe565b60405190815260200160405180910390f35b3415620001b757600080fd5b62000199600160a060020a036004351662000610565b3415620001d957600080fd5b620001ef600160a060020a036004351662000622565b604051901515815260200160405180910390f35b34156200020f57600080fd5b6200019962000846565b34156200022557600080fd5b6200015b600160a060020a036004351660ff602435166200084d565b34156200024d57600080fd5b620001ef600160a060020a036004351660243562000891565b34156200027257600080fd5b6200015b600160a060020a036004351660ff6024351662000aaa565b34156200029a57600080fd5b6200015b600160a060020a036004351660243562000ad2565b3415620002bf57600080fd5b6200015b62000aee565b3415620002d557600080fd5b620002eb600160a060020a036004351662000afd565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156200032c57808201518382015260200162000312565b505050509050019250505060405180910390f35b34156200034c57600080fd5b620001ef600160a060020a036004351662000b8e565b34156200036e57600080fd5b6200015b62000be0565b34156200038457600080fd5b620001ef600160a060020a036004351660243562000bef565b3415620003a957600080fd5b620001ef600160a060020a036004358116906024351662000d9d565b3415620003d157600080fd5b620001ef600160a060020a0360043516602435620010a7565b3415620003f657600080fd5b620001ef600160a060020a0360043516602435620012c0565b34156200041b57600080fd5b6200049a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602081013515159450600160a060020a036040820135169350606081013592506080810135915060a08101359060ff60c0820135169060e001356200146b565b005b3415620004a857600080fd5b620001ef600160a060020a0360043581169060243516620016fb565b3415620004d057600080fd5b620001ef600160a060020a03600435811690602435166200198a565b3415620004f857600080fd5b620001ef600160a060020a0360043581169060243516620019aa565b34156200052057600080fd5b620002eb600160a060020a0360043516620019ca565b34156200054257600080fd5b6200054c62001a59565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156200058a57808201518382015260200162000570565b50505050905090810190601f168015620005b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600560205281600052604060002081815481101515620005e257fe5b600091825260209091200154600160a060020a03169150829050565b60046020526000908152604090205481565b60026020526000908152604090205481565b60008080808080600160a060020a03871615156200063f57600080fd5b600160a060020a03871660009081526004602052604081205411806200067e5750600160a060020a038716600090815260046020526040812060010154115b156200068957600080fd5b86945084600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515620006d357600080fd5b6102c65a03f11515620006e557600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094505060008460ff1611801562000728575060648460ff1611155b15156200073457600080fd5b6283d6008310156200074557600080fd5b600160a060020a03821615156200075b57600080fd5b60408051908101604052806000815260200160006040518059106200077d5750595b90808252806020026020018201604052509052600160a060020a038816600090815260046020526040902081518155602082015181600101908051620007c892916020019062001b12565b505050600160a060020a038088166000818152600460209081526040808320308616845260020190915290819020805460ff1916600117905590918416907f1998a22c664256ffc69dc126c195a946278e6e09715786568e68b54ff2792eaa9084905190815260200160405180910390a35060019695505050505050565b6283d60081565b600160a060020a0382166000908152600560205260408120805460ff84169081106200087557fe5b600091825260209091200154600160a060020a03169392505050565b600160a060020a03821660009081526003602052604081208054829182918291829187908110620008be57fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200091557600080fd5b6102c65a03f115156200092757600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200097057600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620009b757600080fd5b6102c65a03f11515620009c957600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190505050505050905083600160a060020a031681600160a060020a03161415151562000a1a57600080fd5b600160a060020a038716600090815260036020526040812080548890811062000a3f57fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fb769e4c5428802890514f8d7bb0b898bc9b974bdd22764c602e14a1083768a9d8860405190815260200160405180910390a35060019695505050505050565b600160a060020a0382166000908152600360205260408120805460ff84169081106200087557fe5b600360205281600052604060002081815481101515620005e257fe5b600154600160a060020a031681565b62000b0762001b7e565b6003600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000b63575b50505050509050919050565b6000600160a060020a038216151562000ba657600080fd5b600154600160a060020a03161562000bbd57600080fd5b5060018054600160a060020a038316600160a060020a0319909116178155919050565b600854600160a060020a031681565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000c4d57600080fd5b6102c65a03f1151562000c5f57600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a038116151562000c9657600080fd5b600160a060020a03808516600090815260046020908152604080832033909416835260029093019052205460ff16151562000d4e57600160a060020a0384166000908152600460205260409020600190810180549091810162000cfa838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a03199092168217909255908716835260048252604080842091845260029091019091529020805460ff191660011790555b600160a060020a03841660009081526004602052604090205462000d79908463ffffffff62001afb16565b600160a060020a038516600090815260046020526040902055600191505092915050565b600160a060020a03808216600090815260026020818152604080842030909516845293909101905290812054819081908190819060ff16151562000de057600080fd5b600154600160a060020a0316638f9bbf168860006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000e3a57600080fd5b6102c65a03f1151562000e4c57600080fd5b505050604051805190602001805190602001805190602001805150909650505050600160a060020a038416151562000e8357600080fd5b600160a060020a038088166000908152600660209081526040808320938a168352929052205460ff161562000eb757600080fd5b85925082600160a060020a031663bc54f56f6000604051604001526040518163ffffffff1660e060020a0281526004016040805180830381600087803b151562000f0057600080fd5b6102c65a03f1151562000f1257600080fd5b5050506040518051906020018051905092505082600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b151562000f6c57600080fd5b6102c65a03f1151562000f7e57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a031614151562000fc757600080fd5b81151562000fd457600080fd5b600160a060020a038716600090815260036020526040902080546001810162000ffe838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038a81169182179092558a82168085526006845260408086208387528552808620805460ff19166001179055818652600390945293839020543390921693909290917f7dc7363b57021a88aeaddf9a723471f646bb340108bd9818b570f220705d649591600019909101905190815260200160405180910390a45060019695505050505050565b600160a060020a03821660009081526005602052604081208054829182918291829187908110620010d457fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200112b57600080fd5b6102c65a03f115156200113d57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200118657600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620011cd57600080fd5b6102c65a03f11515620011df57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190509550505050505083600160a060020a031681600160a060020a0316141515156200123057600080fd5b600160a060020a03871660009081526005602052604081208054889081106200125557fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fcf2847ba0095873f4065c7de3fc26962a3d498a77ee149772331841afe55b9a18860405190815260200160405180910390a35060019695505050505050565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200131e57600080fd5b6102c65a03f115156200133057600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a03811615156200136757600080fd5b600160a060020a038085166000908152600260208181526040808420339095168452939091019052205460ff1615156200141c57600160a060020a03841660009081526002602052604090206001908101805490918101620013ca838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a0319909216821790925590871683526002808352604080852092855291019091529020805460ff191660011790555b600160a060020a03841660009081526002602052604090205462001447908463ffffffff62001afb16565b600160a060020a038516600090815260026020526040902055600191505092915050565b6000600160a060020a03871615156200148357600080fd5b6283d6008210156200149457600080fd5b60008360ff16118015620014ac575060648360ff1611155b1515620014b857600080fd5b338a8a8a8a8a8a8a8a8a620014cc62001bbc565b600160a060020a03808c168252604082018a905288151560608301528716608082015260a0810186905260c0810185905260e0810184905260ff83166101008201526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b83811015620015555780820151838201526020016200153b565b50505050905090810190601f168015620015835780820380516001836020036101000a031916815260200191505b509b505050505050505050505050604051809103906000f0801515620015a857600080fd5b90506040805190810160405280600081526020016000604051805910620015cc5750595b90808252806020026020018201604052509052600160a060020a0382166000908152600260205260409020815181556020820151816001019080516200161792916020019062001b12565b505050600160a060020a0380821660008181526002602081815260408084203087168552909201905290819020805460ff1916600117905590913316907fc6638df9e2d426dfeade9e7dc116866d55c8c92e34e159eb7b670b2cf7700279908d905160208082528190810183818151815260200191508051906020019080838360005b83811015620016b45780820151838201526020016200169a565b50505050905090810190601f168015620016e25780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050505050505050565b600160a060020a038082166000908152600460209081526040808320309094168352600290930190529081205481908190819060ff1615156200173d57600080fd5b600154600160a060020a0316638f9bbf168760006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200179757600080fd5b6102c65a03f11515620017a957600080fd5b505050604051805190602001805190602001805190602001805150909550505050600160a060020a0383161515620017e057600080fd5b600160a060020a0380871660009081526007602090815260408083209389168352929052205460ff16156200181457600080fd5b84915081600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200185e57600080fd5b6102c65a03f115156200187057600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a0316141515620018b957600080fd5b600160a060020a0386166000908152600560205260409020805460018101620018e3838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038981169182179092558982168085526007845260408086208387528552808620805460ff191660011790558186526005909452938390205491851693909290917ff864208996e335940e86f20816dcbce48d2194728aadbb216ad016add71d304091600019909101905190815260200160405180910390a450600195945050505050565b600660209081526000928352604080842090915290825290205460ff1681565b600760209081526000928352604080842090915290825290205460ff1681565b620019d462001b7e565b6005600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020908154600160a060020a0316815260019091019060200180831162000b635750505050509050919050565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562001af35780601f1062001ac75761010080835404028352916020019162001af3565b820191906000526020600020905b81548152906001019060200180831162001ad557829003601f168201915b505050505081565b60008282018381101562001b0b57fe5b9392505050565b82805482825590600052602060002090810192821562001b6c579160200282015b8281111562001b6c5782518254600160a060020a031916600160a060020a03919091161782556020929092019160019091019062001b33565b5062001b7a92915062001bcd565b5090565b60206040519081016040526000815290565b81548183558181151162001bb75760008381526020902062001bb791810190830162001bf7565b505050565b60405161132e8062001c1583390190565b62001bf491905b8082111562001b7a578054600160a060020a031916815560010162001bd4565b90565b62001bf491905b8082111562001b7a576000815560010162001bfe5600606060405260408051908101604052600181527f3100000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001cb565b5034156200005a57600080fd5b6040516200132e3803806200132e833981016040528080519190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051915050600160a060020a03861615801590620000d75750600160a060020a038a1615155b1515620000e357600080fd5b4284118015620000f1575060015b1515620000fd57600080fd5b60008260ff1611801562000115575060648260ff1611155b15156200012157600080fd5b600081116200012f57600080fd5b60018054600160a060020a031916600160a060020a038c1617905560028980516200015f929160200190620001cb565b50600397909755600a805460ff199081169715159790971761010060a860020a031916610100600160a060020a03979097169690960295909517909455600b92909255600c805485169055600d55600e55600f805490921660ff90911617905560105550620002709050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020e57805160ff19168380011785556200023e565b828001600101855582156200023e579182015b828111156200023e57825182559160200191906001019062000221565b506200024c92915062000250565b5090565b6200026d91905b808211156200024c576000815560010162000257565b90565b6110ae80620002806000396000f30060606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a723058208268f516da35a65166488329b0a9868c657f4629018efe9cdbec450f61e8f4470029a165627a7a7230582039420694af2303747416a3bb3b7fce321f0d0940c0b9fbdff1e97171f8aced540029", - "deployedBytecode": "0x606060405260043610620001315763ffffffff60e060020a6000350416630d0258c881146200013657806315375210146200017757806320a99bd014620001ab578063357528c314620001cd5780633f74a3b7146200020357806347c676ac14620002195780634e317ead1462000241578063520eb620146200026657806363ad0bbe146200028e5780636424550214620002b35780637137e07214620002c95780638aee8c711462000340578063a5d5ca541462000362578063a5fb3f361462000378578063bf1031d9146200039d578063bf6309e514620003c5578063c027bfaa14620003ea578063cb040e0b146200040f578063e07dc8c1146200049c578063e53b8bba14620004c4578063ea0a1c2614620004ec578063f2eaa5421462000514578063ffa1ad741462000536575b600080fd5b34156200014257600080fd5b6200015b600160a060020a0360043516602435620005c6565b604051600160a060020a03909116815260200160405180910390f35b34156200018357600080fd5b62000199600160a060020a0360043516620005fe565b60405190815260200160405180910390f35b3415620001b757600080fd5b62000199600160a060020a036004351662000610565b3415620001d957600080fd5b620001ef600160a060020a036004351662000622565b604051901515815260200160405180910390f35b34156200020f57600080fd5b6200019962000846565b34156200022557600080fd5b6200015b600160a060020a036004351660ff602435166200084d565b34156200024d57600080fd5b620001ef600160a060020a036004351660243562000891565b34156200027257600080fd5b6200015b600160a060020a036004351660ff6024351662000aaa565b34156200029a57600080fd5b6200015b600160a060020a036004351660243562000ad2565b3415620002bf57600080fd5b6200015b62000aee565b3415620002d557600080fd5b620002eb600160a060020a036004351662000afd565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156200032c57808201518382015260200162000312565b505050509050019250505060405180910390f35b34156200034c57600080fd5b620001ef600160a060020a036004351662000b8e565b34156200036e57600080fd5b6200015b62000be0565b34156200038457600080fd5b620001ef600160a060020a036004351660243562000bef565b3415620003a957600080fd5b620001ef600160a060020a036004358116906024351662000d9d565b3415620003d157600080fd5b620001ef600160a060020a0360043516602435620010a7565b3415620003f657600080fd5b620001ef600160a060020a0360043516602435620012c0565b34156200041b57600080fd5b6200049a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602081013515159450600160a060020a036040820135169350606081013592506080810135915060a08101359060ff60c0820135169060e001356200146b565b005b3415620004a857600080fd5b620001ef600160a060020a0360043581169060243516620016fb565b3415620004d057600080fd5b620001ef600160a060020a03600435811690602435166200198a565b3415620004f857600080fd5b620001ef600160a060020a0360043581169060243516620019aa565b34156200052057600080fd5b620002eb600160a060020a0360043516620019ca565b34156200054257600080fd5b6200054c62001a59565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156200058a57808201518382015260200162000570565b50505050905090810190601f168015620005b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600560205281600052604060002081815481101515620005e257fe5b600091825260209091200154600160a060020a03169150829050565b60046020526000908152604090205481565b60026020526000908152604090205481565b60008080808080600160a060020a03871615156200063f57600080fd5b600160a060020a03871660009081526004602052604081205411806200067e5750600160a060020a038716600090815260046020526040812060010154115b156200068957600080fd5b86945084600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515620006d357600080fd5b6102c65a03f11515620006e557600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094505060008460ff1611801562000728575060648460ff1611155b15156200073457600080fd5b6283d6008310156200074557600080fd5b600160a060020a03821615156200075b57600080fd5b60408051908101604052806000815260200160006040518059106200077d5750595b90808252806020026020018201604052509052600160a060020a038816600090815260046020526040902081518155602082015181600101908051620007c892916020019062001b12565b505050600160a060020a038088166000818152600460209081526040808320308616845260020190915290819020805460ff1916600117905590918416907f1998a22c664256ffc69dc126c195a946278e6e09715786568e68b54ff2792eaa9084905190815260200160405180910390a35060019695505050505050565b6283d60081565b600160a060020a0382166000908152600560205260408120805460ff84169081106200087557fe5b600091825260209091200154600160a060020a03169392505050565b600160a060020a03821660009081526003602052604081208054829182918291829187908110620008be57fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200091557600080fd5b6102c65a03f115156200092757600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200097057600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620009b757600080fd5b6102c65a03f11515620009c957600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190505050505050905083600160a060020a031681600160a060020a03161415151562000a1a57600080fd5b600160a060020a038716600090815260036020526040812080548890811062000a3f57fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fb769e4c5428802890514f8d7bb0b898bc9b974bdd22764c602e14a1083768a9d8860405190815260200160405180910390a35060019695505050505050565b600160a060020a0382166000908152600360205260408120805460ff84169081106200087557fe5b600360205281600052604060002081815481101515620005e257fe5b600154600160a060020a031681565b62000b0762001b7e565b6003600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000b63575b50505050509050919050565b6000600160a060020a038216151562000ba657600080fd5b600154600160a060020a03161562000bbd57600080fd5b5060018054600160a060020a038316600160a060020a0319909116178155919050565b600854600160a060020a031681565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000c4d57600080fd5b6102c65a03f1151562000c5f57600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a038116151562000c9657600080fd5b600160a060020a03808516600090815260046020908152604080832033909416835260029093019052205460ff16151562000d4e57600160a060020a0384166000908152600460205260409020600190810180549091810162000cfa838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a03199092168217909255908716835260048252604080842091845260029091019091529020805460ff191660011790555b600160a060020a03841660009081526004602052604090205462000d79908463ffffffff62001afb16565b600160a060020a038516600090815260046020526040902055600191505092915050565b600160a060020a03808216600090815260026020818152604080842030909516845293909101905290812054819081908190819060ff16151562000de057600080fd5b600154600160a060020a0316638f9bbf168860006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000e3a57600080fd5b6102c65a03f1151562000e4c57600080fd5b505050604051805190602001805190602001805190602001805150909650505050600160a060020a038416151562000e8357600080fd5b600160a060020a038088166000908152600660209081526040808320938a168352929052205460ff161562000eb757600080fd5b85925082600160a060020a031663bc54f56f6000604051604001526040518163ffffffff1660e060020a0281526004016040805180830381600087803b151562000f0057600080fd5b6102c65a03f1151562000f1257600080fd5b5050506040518051906020018051905092505082600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b151562000f6c57600080fd5b6102c65a03f1151562000f7e57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a031614151562000fc757600080fd5b81151562000fd457600080fd5b600160a060020a038716600090815260036020526040902080546001810162000ffe838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038a81169182179092558a82168085526006845260408086208387528552808620805460ff19166001179055818652600390945293839020543390921693909290917f7dc7363b57021a88aeaddf9a723471f646bb340108bd9818b570f220705d649591600019909101905190815260200160405180910390a45060019695505050505050565b600160a060020a03821660009081526005602052604081208054829182918291829187908110620010d457fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200112b57600080fd5b6102c65a03f115156200113d57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200118657600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620011cd57600080fd5b6102c65a03f11515620011df57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190509550505050505083600160a060020a031681600160a060020a0316141515156200123057600080fd5b600160a060020a03871660009081526005602052604081208054889081106200125557fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fcf2847ba0095873f4065c7de3fc26962a3d498a77ee149772331841afe55b9a18860405190815260200160405180910390a35060019695505050505050565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200131e57600080fd5b6102c65a03f115156200133057600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a03811615156200136757600080fd5b600160a060020a038085166000908152600260208181526040808420339095168452939091019052205460ff1615156200141c57600160a060020a03841660009081526002602052604090206001908101805490918101620013ca838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a0319909216821790925590871683526002808352604080852092855291019091529020805460ff191660011790555b600160a060020a03841660009081526002602052604090205462001447908463ffffffff62001afb16565b600160a060020a038516600090815260026020526040902055600191505092915050565b6000600160a060020a03871615156200148357600080fd5b6283d6008210156200149457600080fd5b60008360ff16118015620014ac575060648360ff1611155b1515620014b857600080fd5b338a8a8a8a8a8a8a8a8a620014cc62001bbc565b600160a060020a03808c168252604082018a905288151560608301528716608082015260a0810186905260c0810185905260e0810184905260ff83166101008201526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b83811015620015555780820151838201526020016200153b565b50505050905090810190601f168015620015835780820380516001836020036101000a031916815260200191505b509b505050505050505050505050604051809103906000f0801515620015a857600080fd5b90506040805190810160405280600081526020016000604051805910620015cc5750595b90808252806020026020018201604052509052600160a060020a0382166000908152600260205260409020815181556020820151816001019080516200161792916020019062001b12565b505050600160a060020a0380821660008181526002602081815260408084203087168552909201905290819020805460ff1916600117905590913316907fc6638df9e2d426dfeade9e7dc116866d55c8c92e34e159eb7b670b2cf7700279908d905160208082528190810183818151815260200191508051906020019080838360005b83811015620016b45780820151838201526020016200169a565b50505050905090810190601f168015620016e25780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050505050505050565b600160a060020a038082166000908152600460209081526040808320309094168352600290930190529081205481908190819060ff1615156200173d57600080fd5b600154600160a060020a0316638f9bbf168760006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200179757600080fd5b6102c65a03f11515620017a957600080fd5b505050604051805190602001805190602001805190602001805150909550505050600160a060020a0383161515620017e057600080fd5b600160a060020a0380871660009081526007602090815260408083209389168352929052205460ff16156200181457600080fd5b84915081600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200185e57600080fd5b6102c65a03f115156200187057600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a0316141515620018b957600080fd5b600160a060020a0386166000908152600560205260409020805460018101620018e3838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038981169182179092558982168085526007845260408086208387528552808620805460ff191660011790558186526005909452938390205491851693909290917ff864208996e335940e86f20816dcbce48d2194728aadbb216ad016add71d304091600019909101905190815260200160405180910390a450600195945050505050565b600660209081526000928352604080842090915290825290205460ff1681565b600760209081526000928352604080842090915290825290205460ff1681565b620019d462001b7e565b6005600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020908154600160a060020a0316815260019091019060200180831162000b635750505050509050919050565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562001af35780601f1062001ac75761010080835404028352916020019162001af3565b820191906000526020600020905b81548152906001019060200180831162001ad557829003601f168201915b505050505081565b60008282018381101562001b0b57fe5b9392505050565b82805482825590600052602060002090810192821562001b6c579160200282015b8281111562001b6c5782518254600160a060020a031916600160a060020a03919091161782556020929092019160019091019062001b33565b5062001b7a92915062001bcd565b5090565b60206040519081016040526000815290565b81548183558181151162001bb75760008381526020902062001bb791810190830162001bf7565b505050565b60405161132e8062001c1583390190565b62001bf491905b8082111562001b7a578054600160a060020a031916815560010162001bd4565b90565b62001bf491905b8082111562001b7a576000815560010162001bfe5600606060405260408051908101604052600181527f3100000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001cb565b5034156200005a57600080fd5b6040516200132e3803806200132e833981016040528080519190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051915050600160a060020a03861615801590620000d75750600160a060020a038a1615155b1515620000e357600080fd5b4284118015620000f1575060015b1515620000fd57600080fd5b60008260ff1611801562000115575060648260ff1611155b15156200012157600080fd5b600081116200012f57600080fd5b60018054600160a060020a031916600160a060020a038c1617905560028980516200015f929160200190620001cb565b50600397909755600a805460ff199081169715159790971761010060a860020a031916610100600160a060020a03979097169690960295909517909455600b92909255600c805485169055600d55600e55600f805490921660ff90911617905560105550620002709050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020e57805160ff19168380011785556200023e565b828001600101855582156200023e579182015b828111156200023e57825182559160200191906001019062000221565b506200024c92915062000250565b5090565b6200026d91905b808211156200024c576000815560010162000257565b90565b6110ae80620002806000396000f30060606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a723058208268f516da35a65166488329b0a9868c657f4629018efe9cdbec450f61e8f4470029a165627a7a7230582039420694af2303747416a3bb3b7fce321f0d0940c0b9fbdff1e97171f8aced540029", + "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000097565b5034156200005a57600080fd5b604051602080620030ba8339810160405280805160088054600160a060020a031916600160a060020a0392909216919091179055506200013c9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000da57805160ff19168380011785556200010a565b828001600101855582156200010a579182015b828111156200010a578251825591602001919060010190620000ed565b50620001189291506200011c565b5090565b6200013991905b8082111562000118576000815560010162000123565b90565b612f6e806200014c6000396000f300606060405260043610620001315763ffffffff60e060020a6000350416630d0258c881146200013657806315375210146200017757806320a99bd014620001ab578063357528c314620001cd5780633f74a3b7146200020357806347c676ac14620002195780634e317ead1462000241578063520eb620146200026657806363ad0bbe146200028e5780636424550214620002b35780637137e07214620002c95780638aee8c711462000340578063a5d5ca541462000362578063a5fb3f361462000378578063bf1031d9146200039d578063bf6309e514620003c5578063c027bfaa14620003ea578063cb040e0b146200040f578063e07dc8c1146200049c578063e53b8bba14620004c4578063ea0a1c2614620004ec578063f2eaa5421462000514578063ffa1ad741462000536575b600080fd5b34156200014257600080fd5b6200015b600160a060020a0360043516602435620005c6565b604051600160a060020a03909116815260200160405180910390f35b34156200018357600080fd5b62000199600160a060020a0360043516620005fe565b60405190815260200160405180910390f35b3415620001b757600080fd5b62000199600160a060020a036004351662000610565b3415620001d957600080fd5b620001ef600160a060020a036004351662000622565b604051901515815260200160405180910390f35b34156200020f57600080fd5b6200019962000846565b34156200022557600080fd5b6200015b600160a060020a036004351660ff602435166200084d565b34156200024d57600080fd5b620001ef600160a060020a036004351660243562000891565b34156200027257600080fd5b6200015b600160a060020a036004351660ff6024351662000aaa565b34156200029a57600080fd5b6200015b600160a060020a036004351660243562000ad2565b3415620002bf57600080fd5b6200015b62000aee565b3415620002d557600080fd5b620002eb600160a060020a036004351662000afd565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156200032c57808201518382015260200162000312565b505050509050019250505060405180910390f35b34156200034c57600080fd5b620001ef600160a060020a036004351662000b8e565b34156200036e57600080fd5b6200015b62000be0565b34156200038457600080fd5b620001ef600160a060020a036004351660243562000bef565b3415620003a957600080fd5b620001ef600160a060020a036004358116906024351662000d9d565b3415620003d157600080fd5b620001ef600160a060020a0360043516602435620010a7565b3415620003f657600080fd5b620001ef600160a060020a0360043516602435620012c0565b34156200041b57600080fd5b6200049a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602081013515159450600160a060020a036040820135169350606081013592506080810135915060a08101359060ff60c0820135169060e001356200146b565b005b3415620004a857600080fd5b620001ef600160a060020a0360043581169060243516620016fb565b3415620004d057600080fd5b620001ef600160a060020a03600435811690602435166200198a565b3415620004f857600080fd5b620001ef600160a060020a0360043581169060243516620019aa565b34156200052057600080fd5b620002eb600160a060020a0360043516620019ca565b34156200054257600080fd5b6200054c62001a59565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156200058a57808201518382015260200162000570565b50505050905090810190601f168015620005b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600560205281600052604060002081815481101515620005e257fe5b600091825260209091200154600160a060020a03169150829050565b60046020526000908152604090205481565b60026020526000908152604090205481565b60008080808080600160a060020a03871615156200063f57600080fd5b600160a060020a03871660009081526004602052604081205411806200067e5750600160a060020a038716600090815260046020526040812060010154115b156200068957600080fd5b86945084600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515620006d357600080fd5b6102c65a03f11515620006e557600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094505060008460ff1611801562000728575060648460ff1611155b15156200073457600080fd5b6283d6008310156200074557600080fd5b600160a060020a03821615156200075b57600080fd5b60408051908101604052806000815260200160006040518059106200077d5750595b90808252806020026020018201604052509052600160a060020a038816600090815260046020526040902081518155602082015181600101908051620007c892916020019062001b12565b505050600160a060020a038088166000818152600460209081526040808320308616845260020190915290819020805460ff1916600117905590918416907f1998a22c664256ffc69dc126c195a946278e6e09715786568e68b54ff2792eaa9084905190815260200160405180910390a35060019695505050505050565b6283d60081565b600160a060020a0382166000908152600560205260408120805460ff84169081106200087557fe5b600091825260209091200154600160a060020a03169392505050565b600160a060020a03821660009081526003602052604081208054829182918291829187908110620008be57fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200091557600080fd5b6102c65a03f115156200092757600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200097057600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620009b757600080fd5b6102c65a03f11515620009c957600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190505050505050905083600160a060020a031681600160a060020a03161415151562000a1a57600080fd5b600160a060020a038716600090815260036020526040812080548890811062000a3f57fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fb769e4c5428802890514f8d7bb0b898bc9b974bdd22764c602e14a1083768a9d8860405190815260200160405180910390a35060019695505050505050565b600160a060020a0382166000908152600360205260408120805460ff84169081106200087557fe5b600360205281600052604060002081815481101515620005e257fe5b600154600160a060020a031681565b62000b0762001b7e565b6003600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000b63575b50505050509050919050565b6000600160a060020a038216151562000ba657600080fd5b600154600160a060020a03161562000bbd57600080fd5b5060018054600160a060020a038316600160a060020a0319909116178155919050565b600854600160a060020a031681565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000c4d57600080fd5b6102c65a03f1151562000c5f57600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a038116151562000c9657600080fd5b600160a060020a03808516600090815260046020908152604080832033909416835260029093019052205460ff16151562000d4e57600160a060020a0384166000908152600460205260409020600190810180549091810162000cfa838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a03199092168217909255908716835260048252604080842091845260029091019091529020805460ff191660011790555b600160a060020a03841660009081526004602052604090205462000d79908463ffffffff62001afb16565b600160a060020a038516600090815260046020526040902055600191505092915050565b600160a060020a03808216600090815260026020818152604080842030909516845293909101905290812054819081908190819060ff16151562000de057600080fd5b600154600160a060020a0316638f9bbf168860006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000e3a57600080fd5b6102c65a03f1151562000e4c57600080fd5b505050604051805190602001805190602001805190602001805150909650505050600160a060020a038416151562000e8357600080fd5b600160a060020a038088166000908152600660209081526040808320938a168352929052205460ff161562000eb757600080fd5b85925082600160a060020a031663bc54f56f6000604051604001526040518163ffffffff1660e060020a0281526004016040805180830381600087803b151562000f0057600080fd5b6102c65a03f1151562000f1257600080fd5b5050506040518051906020018051905092505082600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b151562000f6c57600080fd5b6102c65a03f1151562000f7e57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a031614151562000fc757600080fd5b81151562000fd457600080fd5b600160a060020a038716600090815260036020526040902080546001810162000ffe838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038a81169182179092558a82168085526006845260408086208387528552808620805460ff19166001179055818652600390945293839020543390921693909290917f7dc7363b57021a88aeaddf9a723471f646bb340108bd9818b570f220705d649591600019909101905190815260200160405180910390a45060019695505050505050565b600160a060020a03821660009081526005602052604081208054829182918291829187908110620010d457fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200112b57600080fd5b6102c65a03f115156200113d57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200118657600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620011cd57600080fd5b6102c65a03f11515620011df57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190509550505050505083600160a060020a031681600160a060020a0316141515156200123057600080fd5b600160a060020a03871660009081526005602052604081208054889081106200125557fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fcf2847ba0095873f4065c7de3fc26962a3d498a77ee149772331841afe55b9a18860405190815260200160405180910390a35060019695505050505050565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200131e57600080fd5b6102c65a03f115156200133057600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a03811615156200136757600080fd5b600160a060020a038085166000908152600260208181526040808420339095168452939091019052205460ff1615156200141c57600160a060020a03841660009081526002602052604090206001908101805490918101620013ca838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a0319909216821790925590871683526002808352604080852092855291019091529020805460ff191660011790555b600160a060020a03841660009081526002602052604090205462001447908463ffffffff62001afb16565b600160a060020a038516600090815260026020526040902055600191505092915050565b6000600160a060020a03871615156200148357600080fd5b6283d6008210156200149457600080fd5b60008360ff16118015620014ac575060648360ff1611155b1515620014b857600080fd5b338a8a8a8a8a8a8a8a8a620014cc62001bbc565b600160a060020a03808c168252604082018a905288151560608301528716608082015260a0810186905260c0810185905260e0810184905260ff83166101008201526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b83811015620015555780820151838201526020016200153b565b50505050905090810190601f168015620015835780820380516001836020036101000a031916815260200191505b509b505050505050505050505050604051809103906000f0801515620015a857600080fd5b90506040805190810160405280600081526020016000604051805910620015cc5750595b90808252806020026020018201604052509052600160a060020a0382166000908152600260205260409020815181556020820151816001019080516200161792916020019062001b12565b505050600160a060020a0380821660008181526002602081815260408084203087168552909201905290819020805460ff1916600117905590913316907fc6638df9e2d426dfeade9e7dc116866d55c8c92e34e159eb7b670b2cf7700279908d905160208082528190810183818151815260200191508051906020019080838360005b83811015620016b45780820151838201526020016200169a565b50505050905090810190601f168015620016e25780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050505050505050565b600160a060020a038082166000908152600460209081526040808320309094168352600290930190529081205481908190819060ff1615156200173d57600080fd5b600154600160a060020a0316638f9bbf168760006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200179757600080fd5b6102c65a03f11515620017a957600080fd5b505050604051805190602001805190602001805190602001805150909550505050600160a060020a0383161515620017e057600080fd5b600160a060020a0380871660009081526007602090815260408083209389168352929052205460ff16156200181457600080fd5b84915081600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200185e57600080fd5b6102c65a03f115156200187057600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a0316141515620018b957600080fd5b600160a060020a0386166000908152600560205260409020805460018101620018e3838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038981169182179092558982168085526007845260408086208387528552808620805460ff191660011790558186526005909452938390205491851693909290917ff864208996e335940e86f20816dcbce48d2194728aadbb216ad016add71d304091600019909101905190815260200160405180910390a450600195945050505050565b600660209081526000928352604080842090915290825290205460ff1681565b600760209081526000928352604080842090915290825290205460ff1681565b620019d462001b7e565b6005600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020908154600160a060020a0316815260019091019060200180831162000b635750505050509050919050565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562001af35780601f1062001ac75761010080835404028352916020019162001af3565b820191906000526020600020905b81548152906001019060200180831162001ad557829003601f168201915b505050505081565b60008282018381101562001b0b57fe5b9392505050565b82805482825590600052602060002090810192821562001b6c579160200282015b8281111562001b6c5782518254600160a060020a031916600160a060020a03919091161782556020929092019160019091019062001b33565b5062001b7a92915062001bcd565b5090565b60206040519081016040526000815290565b81548183558181151162001bb75760008381526020902062001bb791810190830162001bf7565b505050565b60405161132e8062001c1583390190565b62001bf491905b8082111562001b7a578054600160a060020a031916815560010162001bd4565b90565b62001bf491905b8082111562001b7a576000815560010162001bfe5600606060405260408051908101604052600181527f3100000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001cb565b5034156200005a57600080fd5b6040516200132e3803806200132e833981016040528080519190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051915050600160a060020a03861615801590620000d75750600160a060020a038a1615155b1515620000e357600080fd5b4284118015620000f1575060015b1515620000fd57600080fd5b60008260ff1611801562000115575060648260ff1611155b15156200012157600080fd5b600081116200012f57600080fd5b60018054600160a060020a031916600160a060020a038c1617905560028980516200015f929160200190620001cb565b50600397909755600a805460ff199081169715159790971761010060a860020a031916610100600160a060020a03979097169690960295909517909455600b92909255600c805485169055600d55600e55600f805490921660ff90911617905560105550620002709050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020e57805160ff19168380011785556200023e565b828001600101855582156200023e579182015b828111156200023e57825182559160200191906001019062000221565b506200024c92915062000250565b5090565b6200026d91905b808211156200024c576000815560010162000257565b90565b6110ae80620002806000396000f30060606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a72305820f3d30edb15a508c6620c68b811c7b0d879dfc09af6cf2c9c35af6ddc5c6ad7b70029a165627a7a72305820de70c46eca3aff92d8547c1b90ba4973daca2579ad388dcd703a7a4cf98a51500029", + "deployedBytecode": "0x606060405260043610620001315763ffffffff60e060020a6000350416630d0258c881146200013657806315375210146200017757806320a99bd014620001ab578063357528c314620001cd5780633f74a3b7146200020357806347c676ac14620002195780634e317ead1462000241578063520eb620146200026657806363ad0bbe146200028e5780636424550214620002b35780637137e07214620002c95780638aee8c711462000340578063a5d5ca541462000362578063a5fb3f361462000378578063bf1031d9146200039d578063bf6309e514620003c5578063c027bfaa14620003ea578063cb040e0b146200040f578063e07dc8c1146200049c578063e53b8bba14620004c4578063ea0a1c2614620004ec578063f2eaa5421462000514578063ffa1ad741462000536575b600080fd5b34156200014257600080fd5b6200015b600160a060020a0360043516602435620005c6565b604051600160a060020a03909116815260200160405180910390f35b34156200018357600080fd5b62000199600160a060020a0360043516620005fe565b60405190815260200160405180910390f35b3415620001b757600080fd5b62000199600160a060020a036004351662000610565b3415620001d957600080fd5b620001ef600160a060020a036004351662000622565b604051901515815260200160405180910390f35b34156200020f57600080fd5b6200019962000846565b34156200022557600080fd5b6200015b600160a060020a036004351660ff602435166200084d565b34156200024d57600080fd5b620001ef600160a060020a036004351660243562000891565b34156200027257600080fd5b6200015b600160a060020a036004351660ff6024351662000aaa565b34156200029a57600080fd5b6200015b600160a060020a036004351660243562000ad2565b3415620002bf57600080fd5b6200015b62000aee565b3415620002d557600080fd5b620002eb600160a060020a036004351662000afd565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156200032c57808201518382015260200162000312565b505050509050019250505060405180910390f35b34156200034c57600080fd5b620001ef600160a060020a036004351662000b8e565b34156200036e57600080fd5b6200015b62000be0565b34156200038457600080fd5b620001ef600160a060020a036004351660243562000bef565b3415620003a957600080fd5b620001ef600160a060020a036004358116906024351662000d9d565b3415620003d157600080fd5b620001ef600160a060020a0360043516602435620010a7565b3415620003f657600080fd5b620001ef600160a060020a0360043516602435620012c0565b34156200041b57600080fd5b6200049a60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602081013515159450600160a060020a036040820135169350606081013592506080810135915060a08101359060ff60c0820135169060e001356200146b565b005b3415620004a857600080fd5b620001ef600160a060020a0360043581169060243516620016fb565b3415620004d057600080fd5b620001ef600160a060020a03600435811690602435166200198a565b3415620004f857600080fd5b620001ef600160a060020a0360043581169060243516620019aa565b34156200052057600080fd5b620002eb600160a060020a0360043516620019ca565b34156200054257600080fd5b6200054c62001a59565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156200058a57808201518382015260200162000570565b50505050905090810190601f168015620005b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600560205281600052604060002081815481101515620005e257fe5b600091825260209091200154600160a060020a03169150829050565b60046020526000908152604090205481565b60026020526000908152604090205481565b60008080808080600160a060020a03871615156200063f57600080fd5b600160a060020a03871660009081526004602052604081205411806200067e5750600160a060020a038716600090815260046020526040812060010154115b156200068957600080fd5b86945084600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515620006d357600080fd5b6102c65a03f11515620006e557600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094505060008460ff1611801562000728575060648460ff1611155b15156200073457600080fd5b6283d6008310156200074557600080fd5b600160a060020a03821615156200075b57600080fd5b60408051908101604052806000815260200160006040518059106200077d5750595b90808252806020026020018201604052509052600160a060020a038816600090815260046020526040902081518155602082015181600101908051620007c892916020019062001b12565b505050600160a060020a038088166000818152600460209081526040808320308616845260020190915290819020805460ff1916600117905590918416907f1998a22c664256ffc69dc126c195a946278e6e09715786568e68b54ff2792eaa9084905190815260200160405180910390a35060019695505050505050565b6283d60081565b600160a060020a0382166000908152600560205260408120805460ff84169081106200087557fe5b600091825260209091200154600160a060020a03169392505050565b600160a060020a03821660009081526003602052604081208054829182918291829187908110620008be57fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200091557600080fd5b6102c65a03f115156200092757600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200097057600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620009b757600080fd5b6102c65a03f11515620009c957600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190505050505050905083600160a060020a031681600160a060020a03161415151562000a1a57600080fd5b600160a060020a038716600090815260036020526040812080548890811062000a3f57fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fb769e4c5428802890514f8d7bb0b898bc9b974bdd22764c602e14a1083768a9d8860405190815260200160405180910390a35060019695505050505050565b600160a060020a0382166000908152600360205260408120805460ff84169081106200087557fe5b600360205281600052604060002081815481101515620005e257fe5b600154600160a060020a031681565b62000b0762001b7e565b6003600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020905b8154600160a060020a0316815260019091019060200180831162000b63575b50505050509050919050565b6000600160a060020a038216151562000ba657600080fd5b600154600160a060020a03161562000bbd57600080fd5b5060018054600160a060020a038316600160a060020a0319909116178155919050565b600854600160a060020a031681565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000c4d57600080fd5b6102c65a03f1151562000c5f57600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a038116151562000c9657600080fd5b600160a060020a03808516600090815260046020908152604080832033909416835260029093019052205460ff16151562000d4e57600160a060020a0384166000908152600460205260409020600190810180549091810162000cfa838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a03199092168217909255908716835260048252604080842091845260029091019091529020805460ff191660011790555b600160a060020a03841660009081526004602052604090205462000d79908463ffffffff62001afb16565b600160a060020a038516600090815260046020526040902055600191505092915050565b600160a060020a03808216600090815260026020818152604080842030909516845293909101905290812054819081908190819060ff16151562000de057600080fd5b600154600160a060020a0316638f9bbf168860006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b151562000e3a57600080fd5b6102c65a03f1151562000e4c57600080fd5b505050604051805190602001805190602001805190602001805150909650505050600160a060020a038416151562000e8357600080fd5b600160a060020a038088166000908152600660209081526040808320938a168352929052205460ff161562000eb757600080fd5b85925082600160a060020a031663bc54f56f6000604051604001526040518163ffffffff1660e060020a0281526004016040805180830381600087803b151562000f0057600080fd5b6102c65a03f1151562000f1257600080fd5b5050506040518051906020018051905092505082600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b151562000f6c57600080fd5b6102c65a03f1151562000f7e57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a031614151562000fc757600080fd5b81151562000fd457600080fd5b600160a060020a038716600090815260036020526040902080546001810162000ffe838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038a81169182179092558a82168085526006845260408086208387528552808620805460ff19166001179055818652600390945293839020543390921693909290917f7dc7363b57021a88aeaddf9a723471f646bb340108bd9818b570f220705d649591600019909101905190815260200160405180910390a45060019695505050505050565b600160a060020a03821660009081526005602052604081208054829182918291829187908110620010d457fe5b6000918252602082200154600160a060020a03169450849350839063506dc7e19060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200112b57600080fd5b6102c65a03f115156200113d57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050945050505033600160a060020a031682600160a060020a03161415156200118657600080fd5b86600160a060020a031663ff332ab7600060405160c001526040518163ffffffff1660e060020a02815260040160c060405180830381600087803b1515620011cd57600080fd5b6102c65a03f11515620011df57600080fd5b505050604051805190602001805190602001805190602001805190602001805190602001805190509550505050505083600160a060020a031681600160a060020a0316141515156200123057600080fd5b600160a060020a03871660009081526005602052604081208054889081106200125557fe5b60009182526020909120018054600160a060020a031916600160a060020a039283161790558481169088167fcf2847ba0095873f4065c7de3fc26962a3d498a77ee149772331841afe55b9a18860405190815260200160405180910390a35060019695505050505050565b6001546000908190600160a060020a0316638f9bbf1633836040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200131e57600080fd5b6102c65a03f115156200133057600080fd5b505050604051805190602001805190602001805190602001805150909350505050600160a060020a03811615156200136757600080fd5b600160a060020a038085166000908152600260208181526040808420339095168452939091019052205460ff1615156200141c57600160a060020a03841660009081526002602052604090206001908101805490918101620013ca838262001b90565b5060009182526020808320919091018054600160a060020a03338116600160a060020a0319909216821790925590871683526002808352604080852092855291019091529020805460ff191660011790555b600160a060020a03841660009081526002602052604090205462001447908463ffffffff62001afb16565b600160a060020a038516600090815260026020526040902055600191505092915050565b6000600160a060020a03871615156200148357600080fd5b6283d6008210156200149457600080fd5b60008360ff16118015620014ac575060648360ff1611155b1515620014b857600080fd5b338a8a8a8a8a8a8a8a8a620014cc62001bbc565b600160a060020a03808c168252604082018a905288151560608301528716608082015260a0810186905260c0810185905260e0810184905260ff83166101008201526101208101829052610140602082018181529082018b818151815260200191508051906020019080838360005b83811015620015555780820151838201526020016200153b565b50505050905090810190601f168015620015835780820380516001836020036101000a031916815260200191505b509b505050505050505050505050604051809103906000f0801515620015a857600080fd5b90506040805190810160405280600081526020016000604051805910620015cc5750595b90808252806020026020018201604052509052600160a060020a0382166000908152600260205260409020815181556020820151816001019080516200161792916020019062001b12565b505050600160a060020a0380821660008181526002602081815260408084203087168552909201905290819020805460ff1916600117905590913316907fc6638df9e2d426dfeade9e7dc116866d55c8c92e34e159eb7b670b2cf7700279908d905160208082528190810183818151815260200191508051906020019080838360005b83811015620016b45780820151838201526020016200169a565b50505050905090810190601f168015620016e25780820380516001836020036101000a031916815260200191505b509250505060405180910390a350505050505050505050565b600160a060020a038082166000908152600460209081526040808320309094168352600290930190529081205481908190819060ff1615156200173d57600080fd5b600154600160a060020a0316638f9bbf168760006040516080015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401608060405180830381600087803b15156200179757600080fd5b6102c65a03f11515620017a957600080fd5b505050604051805190602001805190602001805190602001805150909550505050600160a060020a0383161515620017e057600080fd5b600160a060020a0380871660009081526007602090815260408083209389168352929052205460ff16156200181457600080fd5b84915081600160a060020a031663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b15156200185e57600080fd5b6102c65a03f115156200187057600080fd5b5050506040518051906020018051906020018051906020018051906020018051905050935050505033600160a060020a031681600160a060020a0316141515620018b957600080fd5b600160a060020a0386166000908152600560205260409020805460018101620018e3838262001b90565b5060009182526020808320919091018054600160a060020a031916600160a060020a038981169182179092558982168085526007845260408086208387528552808620805460ff191660011790558186526005909452938390205491851693909290917ff864208996e335940e86f20816dcbce48d2194728aadbb216ad016add71d304091600019909101905190815260200160405180910390a450600195945050505050565b600660209081526000928352604080842090915290825290205460ff1681565b600760209081526000928352604080842090915290825290205460ff1681565b620019d462001b7e565b6005600083600160a060020a0316600160a060020a0316815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801562000b8257602002820191906000526020600020908154600160a060020a0316815260019091019060200180831162000b635750505050509050919050565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562001af35780601f1062001ac75761010080835404028352916020019162001af3565b820191906000526020600020905b81548152906001019060200180831162001ad557829003601f168201915b505050505081565b60008282018381101562001b0b57fe5b9392505050565b82805482825590600052602060002090810192821562001b6c579160200282015b8281111562001b6c5782518254600160a060020a031916600160a060020a03919091161782556020929092019160019091019062001b33565b5062001b7a92915062001bcd565b5090565b60206040519081016040526000815290565b81548183558181151162001bb75760008381526020902062001bb791810190830162001bf7565b505050565b60405161132e8062001c1583390190565b62001bf491905b8082111562001b7a578054600160a060020a031916815560010162001bd4565b90565b62001bf491905b8082111562001b7a576000815560010162001bfe5600606060405260408051908101604052600181527f3100000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001cb565b5034156200005a57600080fd5b6040516200132e3803806200132e833981016040528080519190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051915050600160a060020a03861615801590620000d75750600160a060020a038a1615155b1515620000e357600080fd5b4284118015620000f1575060015b1515620000fd57600080fd5b60008260ff1611801562000115575060648260ff1611155b15156200012157600080fd5b600081116200012f57600080fd5b60018054600160a060020a031916600160a060020a038c1617905560028980516200015f929160200190620001cb565b50600397909755600a805460ff199081169715159790971761010060a860020a031916610100600160a060020a03979097169690960295909517909455600b92909255600c805485169055600d55600e55600f805490921660ff90911617905560105550620002709050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020e57805160ff19168380011785556200023e565b828001600101855582156200023e579182015b828111156200023e57825182559160200191906001019062000221565b506200024c92915062000250565b5090565b6200026d91905b808211156200024c576000815560010162000257565b90565b6110ae80620002806000396000f30060606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a72305820f3d30edb15a508c6620c68b811c7b0d879dfc09af6cf2c9c35af6ddc5c6ad7b70029a165627a7a72305820de70c46eca3aff92d8547c1b90ba4973daca2579ad388dcd703a7a4cf98a51500029", "sourceMap": "673:15603:0:-;;;748:27;;;;;;;;;;;;;;;;-1:-1:-1;;748:27:0;;;;;;;;;:::i;:::-;;3449:123;;;;;;;;;;;;;;;;;;;;;;3517:13;:48;;-1:-1:-1;;;;;;3517:48:0;-1:-1:-1;;;;;3517:48:0;;;;;;;;;;-1:-1:-1;673:15603:0;;-1:-1:-1;673:15603:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;673:15603:0;;;-1:-1:-1;673:15603:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "673:15603:0:-;;;;;;;;;-1:-1:-1;;;673:15603:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:61;;;;;;;;;;-1:-1:-1;;;;;1755:61:0;;;;;;;;;;-1:-1:-1;;;;;1755:61:0;;;;;;;;;;;;;;1611:55;;;;;;;;;;-1:-1:-1;;;;;1611:55:0;;;;;;;;;;;;;;;;;;;;1361:47;;;;;;;;;;-1:-1:-1;;;;;1361:47:0;;;;;8734:1160;;;;;;;;;;-1:-1:-1;;;;;8734:1160:0;;;;;;;;;;;;;;;;;;;;;;2333:67;;;;;;;;;;;;15610:275;;;;;;;;;;-1:-1:-1;;;;;15610:275:0;;;;;;;;;7713:849;;;;;;;;;;-1:-1:-1;;;;;7713:849:0;;;;;;;14724:217;;;;;;;;;;-1:-1:-1;;;;;14724:217:0;;;;;;;;;1485:54;;;;;;;;;;-1:-1:-1;;;;;1485:54:0;;;;;;;782:42;;;;;;;;;;;;15155:160;;;;;;;;;;-1:-1:-1;;;;;15155:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;3842:251:0;;;;;;;;;;-1:-1:-1;;;;;3842:251:0;;;;;2210:30;;;;;;;;;;;;13713:756;;;;;;;;;;-1:-1:-1;;;;;13713:756:0;;;;;;;6037:1423;;;;;;;;;;-1:-1:-1;;;;;6037:1423:0;;;;;;;;;;11543:929;;;;;;;;;;-1:-1:-1;;;;;11543:929:0;;;;;;;12744:667;;;;;;;;;;-1:-1:-1;;;;;12744:667:0;;;;;;;4811:1007;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4811:1007:0;;-1:-1:-1;;4811:1007:0;;;;;;;;;;-1:-1:-1;;;;;;4811:1007:0;;;;;;-1:-1:-1;4811:1007:0;;;;;-1:-1:-1;4811:1007:0;;;;;-1:-1:-1;4811:1007:0;;;;;;;;;;;;;;;;;;;10141:1127;;;;;;;;;;-1:-1:-1;;;;;10141:1127:0;;;;;;;;;;1898:73;;;;;;;;;;-1:-1:-1;;;;;1898:73:0;;;;;;;;;;2050:79;;;;;;;;;;-1:-1:-1;;;;;2050:79:0;;;;;;;;;;16099:174;;;;;;;;;;-1:-1:-1;;;;;16099:174:0;;;;;748:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1755:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1755:61:0;;-1:-1:-1;1755:61:0;;-1:-1:-1;1755:61:0:o;1611:55::-;;;;;;;;;;;;;:::o;1361:47::-;;;;;;;;;;;;;:::o;8734:1160::-;8820:12;;;;;;-1:-1:-1;;;;;8854:29:0;;;;8846:38;;;;;;-1:-1:-1;;;;;8983:34:0;;9032:1;8983:34;;;:17;:34;;;;;:46;:50;;:106;;-1:-1:-1;;;;;;9037:34:0;;9088:1;9037:34;;;:17;:34;;;;;:41;;:48;:52;8983:106;8981:109;8973:118;;;;;;9151:15;9099:68;;9227:15;-1:-1:-1;;;;;9227:31:0;;:33;;;;;;;;;;;-1:-1:-1;;;9227:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9175:85;;;;;;;;;9329:1;9320:6;:10;;;:27;;;;;9344:3;9334:6;:13;;;;9320:27;9312:36;;;;;;;;2382:18;9364:39;;;9356:48;;;;;;-1:-1:-1;;;;;9420:19:0;;;;9412:28;;;;;;9553:82;;;;;;;;;9589:1;9553:82;;;;9624:1;9610:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9553:82:0;;-1:-1:-1;;;;;9516:34:0;;;;;;:17;:34;;;;;:119;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;9719:34:0;;;;;;;:17;:34;;;;;;;;9782:4;9719:69;;;;:54;;:69;;;;;;;:76;;-1:-1:-1;;9719:76:0;9791:4;9719:76;;;:34;;9803:65;;;;;9856:11;;9803:65;;;;;;;;;;;;;-1:-1:-1;9883:4:0;;8734:1160;-1:-1:-1;;;;;;8734:1160:0:o;2333:67::-;2382:18;2333:67;:::o;15610:275::-;-1:-1:-1;;;;;15800:47:0;;15746:31;15800:47;;;:24;:47;;;;;:78;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15800:78:0;;15610:275;-1:-1:-1;;;15610:275:0:o;7713:849::-;-1:-1:-1;;;;;7894:33:0;;7839:12;7894:33;;;:17;:33;;;;;:57;;7839:12;;;;;;;;7928:22;;7894:57;;;;;;;;;;;;;;;-1:-1:-1;;;;;7894:57:0;;-1:-1:-1;7894:57:0;;-1:-1:-1;7894:57:0;;8038:24;;:26;;;;;;;;;;-1:-1:-1;;;8038:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8019:45;;;;;;8164:10;-1:-1:-1;;;;;8155:19:0;:5;-1:-1:-1;;;;;8155:19:0;;8147:28;;;;;;;;8228:14;-1:-1:-1;;;;;8213:46:0;;:48;;;;;;;;;;;-1:-1:-1;;;8213:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8185:76;;;;;;;8343:16;-1:-1:-1;;;;;8325:34:0;:14;-1:-1:-1;;;;;8325:34:0;;;8317:43;;;;;;;;-1:-1:-1;;;;;8370:33:0;;8438:1;8370:33;;;:17;:33;;;;;:57;;8404:22;;8370:57;;;;;;;;;;;;;;;:70;;-1:-1:-1;;;;;;8370:70:0;-1:-1:-1;;;;;8370:70:0;;;;;;8450:83;;;;;;;8510:22;8450:83;;;;;;;;;;;;;;-1:-1:-1;8551:4:0;;7713:849;-1:-1:-1;;;;;;7713:849:0:o;14724:217::-;-1:-1:-1;;;;;14878:40:0;;14838:17;14878:40;;;:17;:40;;;;;:56;;;;;;;;;;;1485:54;;;;;;;;;;;;;;;;;;;;782:42;;;-1:-1:-1;;;;;782:42:0;;:::o;15155:160::-;15240:9;;:::i;:::-;15268:17;:40;15286:21;-1:-1:-1;;;;;15268:40:0;-1:-1:-1;;;;;15268:40:0;;;;;;;;;;;;15261:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15261:47:0;;;;;;;;;;;;;;;;;;;;;;;15155:160;;;:::o;3842:251::-;3909:4;-1:-1:-1;;;;;3933:26:0;;;;3925:35;;;;;;3978:11;;-1:-1:-1;;;;;3978:11:0;:25;3970:34;;;;;;-1:-1:-1;4014:11:0;:51;;-1:-1:-1;;;;;4014:51:0;;-1:-1:-1;;;;;;4014:51:0;;;;;;3842:251;;;:::o;2210:30::-;;;-1:-1:-1;;;;;2210:30:0;;:::o;13713:756::-;13927:11;;13819:12;;;;-1:-1:-1;;;;;13927:11:0;:32;13960:10;13819:12;13927:44;;;;;;;-1:-1:-1;;;13927:44:0;;;;;;-1:-1:-1;;;;;13927:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13896:75:0;;-1:-1:-1;;;;;;;;;13989:32:0;;;;13981:41;;;;;;-1:-1:-1;;;;;14081:35:0;;;;;;;:17;:35;;;;;;;;14137:10;14081:67;;;;;:55;;;;:67;;;;;;14080:68;14076:242;;;-1:-1:-1;;;;;14162:35:0;;;;;;:17;:35;;;;;:42;;;;:59;;:42;;:59;;;:42;:59;;:::i;:::-;-1:-1:-1;14162:59:0;;;;;;;;;;;;;;-1:-1:-1;;;;;14210:10:0;14162:59;;-1:-1:-1;;;;;;14162:59:0;;;;;;;;14233:35;;;;;:17;:35;;;;;;:67;;;:55;;;;:67;;;;;:74;;-1:-1:-1;;14233:74:0;14162:59;14233:74;;;14076:242;-1:-1:-1;;;;;14377:35:0;;;;;;:17;:35;;;;;:47;:64;;14429:11;14377:64;:51;:64;:::i;:::-;-1:-1:-1;;;;;14327:35:0;;;;;;:17;:35;;;;;:114;14458:4;;-1:-1:-1;13713:756:0;;;;;:::o;6037:1423::-;-1:-1:-1;;;;;6179:20:0;;;6143:12;6179:20;;;:9;:20;;;;;;;;6228:4;6179:55;;;;;:40;;;;:55;;;;;;6143:12;;;;;;;;6179:55;;6171:64;;;;;;;;6370:11;;-1:-1:-1;;;;;6370:11:0;:32;6403:14;6370:11;:48;;;;;;;-1:-1:-1;;;6370:48:0;;;;;;-1:-1:-1;;;;;6370:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6339:79:0;;-1:-1:-1;;;;;;;;;6436:32:0;;;;6428:41;;;;;;-1:-1:-1;;;;;6582:37:0;;;;;;;:21;:37;;;;;;;;:48;;;;;;;;;;;;6581:49;6573:58;;;;;;6748:9;6717:41;;6837:8;-1:-1:-1;;;;;6837:27:0;;:29;;;;;;;;;;;-1:-1:-1;;;6837:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6818:48;;;6895:8;-1:-1:-1;;;;;6895:24:0;;:26;;;;;;;;;;;-1:-1:-1;;;6895:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6876:45;;;;;;7058:10;-1:-1:-1;;;;;7049:19:0;:5;-1:-1:-1;;;;;7049:19:0;;7041:28;;;;;;;;7087:9;7079:18;;;;;;;;-1:-1:-1;;;;;7201:33:0;;;;;;:17;:33;;;;;:49;;;;;;:33;:49;;:::i;:::-;-1:-1:-1;7201:49:0;;;;;;;;;;;;;;-1:-1:-1;;;;;;7201:49:0;-1:-1:-1;;;;;7201:49:0;;;;;;;;;7260:37;;;;;;:21;:37;;;;;;:48;;;;;;;;:55;;-1:-1:-1;;7260:55:0;-1:-1:-1;7260:55:0;;;7387:33;;;:17;:33;;;;;;;:40;7375:10;7325:107;;;;7201:49;;7260:37;;7325:107;;-1:-1:-1;;7387:44:0;;;;7325:107;;;;;;;;;;;;;-1:-1:-1;7449:4:0;;6037:1423;-1:-1:-1;;;;;;6037:1423:0:o;11543:929::-;-1:-1:-1;;;;;11745:40:0;;11683:12;11745:40;;;:24;:40;;;;;:71;;11683:12;;;;;;;;11786:29;;11745:71;;;;;;;;;;;;;;;-1:-1:-1;;;;;11745:71:0;;-1:-1:-1;11745:71:0;;-1:-1:-1;11745:71:0;;11931:31;;:33;;;;;;;;;;-1:-1:-1;;;11931:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11912:52;;;;;;12064:10;-1:-1:-1;;;;;12055:19:0;:5;-1:-1:-1;;;;;12055:19:0;;12047:28;;;;;;;;12135:14;-1:-1:-1;;;;;12120:46:0;;:48;;;;;;;;;;;-1:-1:-1;;;12120:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12085:83;;;;;;;12211:23;-1:-1:-1;;;;;12186:48:0;:21;-1:-1:-1;;;;;12186:48:0;;;12178:57;;;;;;;;-1:-1:-1;;;;;12245:40:0;;12327:1;12245:40;;;:24;:40;;;;;:71;;12286:29;;12245:71;;;;;;;;;;;;;;;:84;;-1:-1:-1;;;;;;12245:84:0;-1:-1:-1;;;;;12245:84:0;;;;;;12340:104;;;;;;;12414:29;12340:104;;;;;;;;;;;;;;-1:-1:-1;12461:4:0;;11543:929;-1:-1:-1;;;;;;11543:929:0:o;12744:667::-;12944:11;;12836:12;;;;-1:-1:-1;;;;;12944:11:0;:32;12977:10;12836:12;12944:44;;;;;;;-1:-1:-1;;;12944:44:0;;;;;;-1:-1:-1;;;;;12944:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12913:75:0;;-1:-1:-1;;;;;;;;;13006:32:0;;;;12998:41;;;;;;-1:-1:-1;;;;;13098:20:0;;;;;;;:9;:20;;;;;;;;13139:10;13098:52;;;;;:40;;;;:52;;;;;;13097:53;13093:197;;;-1:-1:-1;;;;;13164:20:0;;;;;;:9;:20;;;;;:27;;;;:44;;:27;;:44;;;:27;:44;;:::i;:::-;-1:-1:-1;13164:44:0;;;;;;;;;;;;;;-1:-1:-1;;;;;13197:10:0;13164:44;;-1:-1:-1;;;;;;13164:44:0;;;;;;;;13220:20;;;;;:9;:20;;;;;;;:52;;;:40;;:52;;;;;:59;;-1:-1:-1;;13220:59:0;13164:44;13220:59;;;13093:197;-1:-1:-1;;;;;13334:20:0;;;;;;:9;:20;;;;;:32;:49;;13371:11;13334:49;:36;:49;:::i;:::-;-1:-1:-1;;;;;13299:20:0;;;;;;:9;:20;;;;;:84;13400:4;;-1:-1:-1;12744:667:0;;;;;:::o;4811:1007::-;5243:17;-1:-1:-1;;;;;5112:18:0;;;;5104:27;;;;;;2382:18;5147:40;;;5139:49;;;;;;5214:1;5204:7;:11;;;:29;;;;;5230:3;5219:7;:14;;;;5204:29;5196:38;;;;;;;;5287:10;5309:13;5334:19;5365:11;5388:4;5404:8;5424;5444:4;5460:7;5479:14;5263:238;;:::i;:::-;-1:-1:-1;;;;;5263:238:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5243:258:0;;5532:82;;;;;;;;;5568:1;5532:82;;;;5603:1;5589:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5532:82:0;;-1:-1:-1;;;;;5509:20:0;;;;;;:9;:20;;;;;:105;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;5685:20:0;;;;;;;:9;:20;;;;;;;;5734:4;5685:55;;;;:40;;;:55;;;;;;:62;;-1:-1:-1;;5685:62:0;5743:4;5685:62;;;:20;;5774:10;5755:56;;;;5797:13;;5755:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4811:1007:0;;;;;;;;;;:::o;10141:1127::-;-1:-1:-1;;;;;10296:34:0;;;10260:12;10296:34;;;:17;:34;;;;;;;;10359:4;10296:69;;;;;:54;;;;:69;;;;;;10260:12;;;;;;10296:69;;10288:78;;;;;;;;10501:11;;-1:-1:-1;;;;;10501:11:0;:32;10534:14;10501:11;:48;;;;;;;-1:-1:-1;;;10501:48:0;;;;;;-1:-1:-1;;;;;10501:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10470:79:0;;-1:-1:-1;;;;;;;;;10567:32:0;;;;10559:41;;;;;;-1:-1:-1;;;;;10719:43:0;;;;;;;:27;:43;;;;;;;;:60;;;;;;;;;;;;10718:61;10710:70;;;;;;10842:15;10790:68;;10887:15;-1:-1:-1;;;;;10887:31:0;;:33;;;;;;;;;;;-1:-1:-1;;;10887:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10868:52;;;;;;10948:10;-1:-1:-1;;;;;10939:19:0;:5;-1:-1:-1;;;;;10939:19:0;;10931:28;;;;;;;;-1:-1:-1;;;;;10969:40:0;;;;;;:24;:40;;;;;:62;;;;;;:40;:62;;:::i;:::-;-1:-1:-1;10969:62:0;;;;;;;;;;;;;;-1:-1:-1;;;;;;10969:62:0;-1:-1:-1;;;;;10969:62:0;;;;;;;;;11041:43;;;;;;:27;:43;;;;;;:60;;;;;;;;:67;;-1:-1:-1;;11041:67:0;-1:-1:-1;11041:67:0;;;11188:40;;;:24;:40;;;;;;;:47;11118:122;;;;10969:62;;11041:43;;11118:122;;-1:-1:-1;;11188:51:0;;;;11118:122;;;;;;;;;;;;;-1:-1:-1;11257:4:0;;10141:1127;-1:-1:-1;;;;;10141:1127:0:o;1898:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2050:79::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16099:174::-;16191:9;;:::i;:::-;16219:24;:47;16244:21;-1:-1:-1;;;;;16219:47:0;-1:-1:-1;;;;;16219:47:0;;;;;;;;;;;;16212:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16212:54:0;;;;;;;;;;;;;;;;;;;;;;16099:174;;;:::o;748:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;883:143:6:-;941:7;972:5;;;994:6;;;;987:14;;;;1018:1;883:143;-1:-1:-1;;;883:143:6:o;673:15603:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;673:15603:0;-1:-1:-1;;;;;673:15603:0;;;;;;;;;;;;;-1:-1:-1;673:15603:0;;;;;;;-1:-1:-1;673:15603:0;;;-1:-1:-1;673:15603:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;673:15603:0;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;", "source": "pragma solidity ^0.4.18;\n\n/*\n Polymath compliance protocol is intended to ensure regulatory compliance\n in the jurisdictions that security tokens are being offered in. The compliance\n protocol allows security tokens remain interoperable so that anyone can\n build on top of the Polymath platform and extend it's functionality.\n*/\nimport './SafeMath.sol';\nimport './interfaces/ICompliance.sol';\nimport './interfaces/IOfferingFactory.sol';\nimport './Customers.sol';\nimport './Template.sol';\nimport './interfaces/ISecurityToken.sol';\nimport './interfaces/ISecurityTokenRegistrar.sol';\n\n/**\n * @title Compilance\n * @dev Regulatory details offered by the security token\n */\n\ncontract Compliance is ICompliance {\n\n using SafeMath for uint256;\n\n string public VERSION = \"2\";\n\n ISecurityTokenRegistrar public STRegistrar;\n\n //Structure used to hold reputation for template and offeringFactories\n struct Reputation {\n uint256 totalRaised; // Total amount raised by issuers that used the template / offeringFactory\n address[] usedBy; // Array of security token addresses that used this particular template / offeringFactory\n mapping (address => bool) usedBySecurityToken; // Mapping of STs using this Reputation\n }\n\n mapping(address => Reputation) public templates; // Mapping used for storing the template repuation\n mapping(address => address[]) public templateProposals; // Template proposals for a specific security token\n\n mapping(address => Reputation) public offeringFactories; // Mapping used for storing the offering factory reputation\n mapping(address => address[]) public offeringFactoryProposals; // OfferingFactory proposals for a specific security token\n mapping(address => mapping(address => bool)) public proposedTemplatesList; // Use to restrict the proposing the same templates again and again\n mapping(address => mapping(address => bool)) public proposedOfferingFactoryList; // Use to restrict the proposing the same offeringFactory again and again\n\n Customers public PolyCustomers; // Instance of the Compliance contract\n uint256 public constant MINIMUM_VESTING_PERIOD = 60 * 60 * 24 * 100; // 100 Day minimum vesting period for POLY earned\n\n // Notifications for templates\n event LogTemplateCreated(address indexed _creator, address indexed _template, string _offeringType);\n event LogNewTemplateProposal(address indexed _securityToken, address indexed _template, address indexed _delegate, uint _templateProposalIndex);\n event LogCancelTemplateProposal(address indexed _securityToken, address indexed _template, uint _templateProposalIndex);\n\n // Notifications for offering factories\n event LogOfferingFactoryRegistered(address indexed _creator, address indexed _offeringFactory, bytes32 _description);\n event LogNewOfferingFactoryProposal(address indexed _securityToken, address indexed _offeringFactory, address indexed _owner, uint _offeringFactoryProposalIndex);\n event LogCancelOfferingFactoryProposal(address indexed _securityToken, address indexed _offeringFactory, uint _offeringFactoryProposalIndex);\n\n /* @param _polyCustomersAddress The address of the Polymath Customers contract */\n function Compliance(address _polyCustomersAddress) public {\n PolyCustomers = Customers(_polyCustomersAddress);\n }\n\n /**\n * @dev `setRegistrarAddress` This function set the SecurityTokenRegistrar contract address.\n * Called just after the deployment of smart contracts.\n * @param _STRegistrar It is the `this` reference of STR contract\n * @return bool\n */\n\n function setRegistrarAddress(address _STRegistrar) public returns (bool) {\n require(_STRegistrar != address(0));\n require(STRegistrar == address(0));\n STRegistrar = ISecurityTokenRegistrar(_STRegistrar);\n return true;\n }\n\n /**\n * @dev `createTemplate` is a simple function to create a new compliance template\n * @param _offeringType The name of the security being issued\n * @param _issuerJurisdiction The jurisdiction id of the issuer\n * @param _accredited Accreditation status required for investors\n * @param _KYC KYC provider used by the template\n * @param _details Details of the offering requirements\n * @param _expires Timestamp of when the template will expire\n * @param _fee Amount of POLY to use the template (held in escrow until issuance)\n * @param _quorum Minimum percent of shareholders which need to vote to freeze\n * @param _vestingPeriod Length of time to vest funds\n */\n function createTemplate(\n string _offeringType,\n bytes32 _issuerJurisdiction,\n bool _accredited,\n address _KYC,\n bytes32 _details,\n uint256 _expires,\n uint256 _fee,\n uint8 _quorum,\n uint256 _vestingPeriod\n ) public\n {\n require(_KYC != address(0));\n require(_vestingPeriod >= MINIMUM_VESTING_PERIOD);\n require(_quorum > 0 && _quorum <= 100);\n\n address _template = new Template(\n msg.sender,\n _offeringType,\n _issuerJurisdiction,\n _accredited,\n _KYC,\n _details,\n _expires,\n _fee,\n _quorum,\n _vestingPeriod\n );\n templates[_template] = Reputation({\n totalRaised: 0,\n usedBy: new address[](0)\n });\n //Keep track of templates created through Compliance.sol\n templates[_template].usedBySecurityToken[address(this)] = true;\n LogTemplateCreated(msg.sender, _template, _offeringType);\n }\n\n /**\n * @dev Propose a bid for a security token issuance\n * @param _securityToken The security token being bid on\n * @param _template The unique template address\n * @return bool success\n */\n function proposeTemplate(\n address _securityToken,\n address _template\n ) public returns (bool success)\n {\n require(templates[_template].usedBySecurityToken[address(this)]);\n // Verifying that provided _securityToken is generated by securityTokenRegistrar only\n var (,, securityTokenOwner,) = STRegistrar.getSecurityTokenData(_securityToken);\n require(securityTokenOwner != address(0));\n\n // Check whether the template is already proposed or not for the given securityToken\n require(!proposedTemplatesList[_securityToken][_template]);\n\n // Creating the instance of template to avail the function calling\n ITemplate template = ITemplate(_template);\n\n // This will fail if template is expired\n var (,finalized) = template.getTemplateDetails();\n var (,,, owner,) = template.getUsageDetails();\n\n // Require that the caller is the template owner\n // and that the template has been finalized\n require(owner == msg.sender);\n require(finalized);\n\n //Get a reference of the template contract and add it to the templateProposals array\n templateProposals[_securityToken].push(_template);\n proposedTemplatesList[_securityToken][_template] = true;\n LogNewTemplateProposal(_securityToken, _template, msg.sender, templateProposals[_securityToken].length - 1);\n return true;\n }\n\n /**\n * @dev Cancel a Template proposal if the bid hasn't been accepted\n * @param _securityToken The security token being bid on\n * @param _templateProposalIndex The template proposal array index\n * @return bool success\n */\n function cancelTemplateProposal(\n address _securityToken,\n uint256 _templateProposalIndex\n ) public returns (bool success)\n {\n address proposedTemplate = templateProposals[_securityToken][_templateProposalIndex];\n ITemplate template = ITemplate(proposedTemplate);\n var (,,, owner,) = template.getUsageDetails();\n // Cancelation is only being performed by the owner of template.\n require(owner == msg.sender);\n var (chosenTemplate,,,,,) = ISecurityToken(_securityToken).getTokenDetails();\n // Template shouldn't be choosed one.\n require(chosenTemplate != proposedTemplate);\n templateProposals[_securityToken][_templateProposalIndex] = address(0);\n LogCancelTemplateProposal(_securityToken, proposedTemplate, _templateProposalIndex);\n\n return true;\n }\n\n /**\n * @dev Register the Offering factory by the developer.\n * @param _factoryAddress address of the offering factory\n * @return bool success\n */\n function registerOfferingFactory(\n address _factoryAddress\n ) public returns (bool success)\n {\n require(_factoryAddress != address(0));\n // Restrict to update the reputation of already registered offeringFactory\n require(!(offeringFactories[_factoryAddress].totalRaised > 0 || offeringFactories[_factoryAddress].usedBy.length > 0));\n IOfferingFactory offeringFactory = IOfferingFactory(_factoryAddress);\n var (, quorum, vestingPeriod, owner, description) = offeringFactory.getUsageDetails();\n\n // Validate Offering Factory details\n require(quorum > 0 && quorum <= 100);\n require(vestingPeriod >= MINIMUM_VESTING_PERIOD);\n require(owner != address(0));\n // Add the factory in the available list of factory addresses\n offeringFactories[_factoryAddress] = Reputation({\n totalRaised: 0,\n usedBy: new address[](0)\n });\n // Keep track of offering factories registered through Compliance.sol\n offeringFactories[_factoryAddress].usedBySecurityToken[address(this)] = true;\n LogOfferingFactoryRegistered(owner, _factoryAddress, description);\n return true;\n }\n\n /**\n * @dev Propose a Security Token Offering Factory for an issuance\n * @param _securityToken The security token being bid on\n * @param _factoryAddress The address of the offering factory\n * @return bool success\n */\n function proposeOfferingFactory(\n address _securityToken,\n address _factoryAddress\n ) public returns (bool success)\n {\n require(offeringFactories[_factoryAddress].usedBySecurityToken[address(this)]);\n // Verifying that provided _securityToken is generated by securityTokenRegistrar only\n var (,, securityTokenOwner,) = STRegistrar.getSecurityTokenData(_securityToken);\n require(securityTokenOwner != address(0));\n // Check whether the offeringFactory is already proposed or not for the given securityToken\n require(!proposedOfferingFactoryList[_securityToken][_factoryAddress]);\n IOfferingFactory offeringFactory = IOfferingFactory(_factoryAddress);\n var (,,, owner,) = offeringFactory.getUsageDetails();\n\n require(owner == msg.sender);\n offeringFactoryProposals[_securityToken].push(_factoryAddress);\n proposedOfferingFactoryList[_securityToken][_factoryAddress] = true;\n LogNewOfferingFactoryProposal(_securityToken, _factoryAddress, owner, offeringFactoryProposals[_securityToken].length - 1);\n return true;\n }\n\n /**\n * @dev Cancel a Offering factory proposal if the bid hasn't been accepted\n * @param _securityToken The security token being bid on\n * @param _offeringFactoryProposalIndex The offeringFactory proposal array index\n * @return bool success\n */\n function cancelOfferingFactoryProposal(\n address _securityToken,\n uint256 _offeringFactoryProposalIndex\n ) public returns (bool success)\n {\n address proposedOfferingFactory = offeringFactoryProposals[_securityToken][_offeringFactoryProposalIndex];\n IOfferingFactory offeringFactory = IOfferingFactory(proposedOfferingFactory);\n var (,,, owner,) = offeringFactory.getUsageDetails();\n // Cancelation is only being performed by the owner of template.\n require(owner == msg.sender);\n var (,,,,,chosenOfferingFactory) = ISecurityToken(_securityToken).getTokenDetails();\n require(chosenOfferingFactory != proposedOfferingFactory);\n offeringFactoryProposals[_securityToken][_offeringFactoryProposalIndex] = address(0);\n\n LogCancelOfferingFactoryProposal(_securityToken, proposedOfferingFactory, _offeringFactoryProposalIndex);\n return true;\n }\n\n /**\n * @dev `updateTemplateReputation` is a function that updates the\n history of a security token template usage to keep track of previous uses\n * @param _template The unique template id\n * @param _polyRaised The amount of poly raised\n */\n function updateTemplateReputation(address _template, uint256 _polyRaised) external returns (bool success) {\n // Check that the caller is a security token\n var (,, securityTokenOwner,) = STRegistrar.getSecurityTokenData(msg.sender);\n require(securityTokenOwner != address(0));\n // If it is, then update reputation\n if (!templates[_template].usedBySecurityToken[msg.sender]) {\n templates[_template].usedBy.push(msg.sender);\n templates[_template].usedBySecurityToken[msg.sender] = true;\n }\n templates[_template].totalRaised = templates[_template].totalRaised.add(_polyRaised);\n return true;\n }\n\n /**\n * @dev `updateOfferingReputation` is a function that updates the\n history of a security token offeringFactory contract to keep track of previous uses\n * @param _offeringFactory The address of the offering factory\n * @param _polyRaised The amount of poly raised\n */\n function updateOfferingFactoryReputation(address _offeringFactory, uint256 _polyRaised) external returns (bool success) {\n // Check that the caller is a security token\n var (,, securityTokenOwner,) = STRegistrar.getSecurityTokenData(msg.sender);\n require(securityTokenOwner != address(0));\n // If it is, then update reputation\n if (!offeringFactories[_offeringFactory].usedBySecurityToken[msg.sender]) {\n offeringFactories[_offeringFactory].usedBy.push(msg.sender);\n offeringFactories[_offeringFactory].usedBySecurityToken[msg.sender] = true;\n }\n offeringFactories[_offeringFactory].totalRaised = offeringFactories[_offeringFactory].totalRaised.add(_polyRaised);\n return true;\n }\n\n /**\n * @dev Get template details by the proposal index\n * @param _securityTokenAddress The security token ethereum address\n * @param _templateIndex The array index of the template being checked\n * @return Template struct\n */\n function getTemplateByProposal(address _securityTokenAddress, uint8 _templateIndex) view public returns (\n address _template\n ){\n return templateProposals[_securityTokenAddress][_templateIndex];\n }\n\n /**\n * @dev Get an array containing the address of all template proposals for a given ST\n * @param _securityTokenAddress The security token address\n * @return Template proposals array\n */\n function getAllTemplateProposals(address _securityTokenAddress) view public returns (address[]) {\n return templateProposals[_securityTokenAddress];\n }\n\n /**\n * @dev Get security token offering smart contract details by the proposal index\n * @param _securityTokenAddress The security token address\n * @param _offeringFactoryProposalIndex The array index of the STO contract being checked\n * @return Contract struct\n */\n function getOfferingFactoryByProposal(address _securityTokenAddress, uint8 _offeringFactoryProposalIndex) view public returns (\n address _offeringFactoryAddress\n ){\n return offeringFactoryProposals[_securityTokenAddress][_offeringFactoryProposalIndex];\n }\n\n /**\n * @dev Get an array containing the address of all offering proposals for a given ST\n * @param _securityTokenAddress The security token address\n * @return Offering proposals array\n */\n function getAllOfferingFactoryProposals(address _securityTokenAddress) view public returns (address[]) {\n return offeringFactoryProposals[_securityTokenAddress];\n }\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Compliance.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Compliance.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Compliance.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Compliance.sol", "exportedSymbols": { "Compliance": [ 887 @@ -679,7 +679,7 @@ { "attributes": { "SourceUnit": 2110, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SafeMath.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SafeMath.sol", "file": "./SafeMath.sol", "scope": 888, "symbolAliases": [ @@ -694,7 +694,7 @@ { "attributes": { "SourceUnit": 4990, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICompliance.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICompliance.sol", "file": "./interfaces/ICompliance.sol", "scope": 888, "symbolAliases": [ @@ -709,7 +709,7 @@ { "attributes": { "SourceUnit": 5164, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IOfferingFactory.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IOfferingFactory.sol", "file": "./interfaces/IOfferingFactory.sol", "scope": 888, "symbolAliases": [ @@ -724,7 +724,7 @@ { "attributes": { "SourceUnit": 1288, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Customers.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Customers.sol", "file": "./Customers.sol", "scope": 888, "symbolAliases": [ @@ -739,7 +739,7 @@ { "attributes": { "SourceUnit": 4686, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Template.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Template.sol", "file": "./Template.sol", "scope": 888, "symbolAliases": [ @@ -754,7 +754,7 @@ { "attributes": { "SourceUnit": 5280, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityToken.sol", "file": "./interfaces/ISecurityToken.sol", "scope": 888, "symbolAliases": [ @@ -769,7 +769,7 @@ { "attributes": { "SourceUnit": 5313, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityTokenRegistrar.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityTokenRegistrar.sol", "file": "./interfaces/ISecurityTokenRegistrar.sol", "scope": 888, "symbolAliases": [ @@ -13737,5 +13737,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T07:00:11.119Z" + "updatedAt": "2018-02-25T12:54:40.641Z" } \ No newline at end of file diff --git a/build/contracts/Customers.json b/build/contracts/Customers.json index 7ea94db..9711278 100644 --- a/build/contracts/Customers.json +++ b/build/contracts/Customers.json @@ -348,15 +348,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f32000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610092565b50341561005757600080fd5b604051602080610f508339810160405280805160018054600160a060020a031916600160a060020a03929092169190911790555061012d9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100d357805160ff1916838001178555610100565b82800160010185558215610100579182015b828111156101005782518255916020019190600101906100e5565b5061010c929150610110565b5090565b61012a91905b8082111561010c5760008155600101610116565b90565b610e148061013c6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630787bc27811461009d5780630ba24e4c1461015c57806313bdbb19146101c35780633b51031e1461022157806355f21eb71461027c5780636a1db1bf1461032a5780639ba0b7c014610340578063b7548d2a14610362578063ffa1ad74146103ba575b600080fd5b34156100a857600080fd5b6100bc600160a060020a0360043516610444565b6040516020810184905260408101839052606081018290526080808252855460026101006001831615026000190190911604908201819052819060a08201908790801561014a5780601f1061011f5761010080835404028352916020019161014a565b820191906000526020600020905b81548152906001019060200180831161012d57829003601f168201915b50509550505050505060405180910390f35b341561016757600080fd5b610181600160a060020a0360043581169060243516610464565b604051968752602087019590955260408087019490945260ff90921660608601521515608085015260a084015260c083019190915260e0909101905180910390f35b34156101ce57600080fd5b6101e8600160a060020a03600435811690602435166104af565b604051948552602085019390935290151560408085019190915260ff9091166060840152608083019190915260a0909101905180910390f35b341561022c57600080fd5b610268600160a060020a036004351660243560443560ff60643581169060843515159060a4359060c4359060e4351661010435610124356104fb565b604051901515815260200160405180910390f35b341561028757600080fd5b61029b600160a060020a03600435166109e7565b60405160208101849052604081018390526060810182905260808082528190810186818151815260200191508051906020019080838360005b838110156102ec5780820151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561033557600080fd5b610268600435610ad1565b341561034b57600080fd5b610268600160a060020a0360043516602435610b1a565b341561036d57600080fd5b61026860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610b3a92505050565b34156103c557600080fd5b6103cd610c9d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104095780820151838201526020016103f1565b50505050905090810190601f1680156104365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600460205260009081526040902060018101546002820154600383015484565b60026020818152600093845260408085209091529183529120805460018201549282015460038301546004840154600590940154929493919260ff8083169361010090930416919087565b600160a060020a03918216600090815260026020908152604080832093909416825291909152208054600182015460038301546005909301549193909260ff6101008204811693911691565b600160a060020a0333166000908152600460205260408120600201548190151561052457600080fd5b42871161053057600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290205460ff161561056157600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290819020805460ff19166001179055309033908d908d908d908d908c90516c01000000000000000000000000600160a060020a0398891681028252969097169095026014870152602886019390935260488501919091527f010000000000000000000000000000000000000000000000000000000000000060ff90911681026068850152901515026069830152606a820152608a01604051809103902090508b600160a060020a03166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f115156106c957600080fd5b505060206040510351600160a060020a0316146106e557600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166323b872dd8d336004600033600160a060020a0316600160a060020a03168152602001908152602001600020600301546000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107a557600080fd5b6102c65a03f115156107b657600080fd5b5050506040518051905015156107cb57600080fd5b8a6002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000018160001916905550896002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206001018160001916905550886002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160006101000a81548160ff021916908360ff160217905550876002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160016101000a81548160ff021916908315150217905550866002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206005018190555033600160a060020a03168c600160a060020a03167ff7f59b0f319f2c9b602cfadacf86ba70810de82e157ceb8a5c0ef1a977eb2c288b60405160ff909116815260200160405180910390a35060019b9a5050505050505050505050565b6109ef610d3b565b600160a060020a03821660009081526004602090815260408083206001808201546002808401546003850154855489988998959693959294889483161561010002600019019092169190910491601f8301829004820290910190519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050935093509350935093509193509193565b600160a060020a0333166000908152600460205260408120600201541515610af857600080fd5b5033600160a060020a0316600090815260046020526040902060030155600190565b600360209081526000928352604080842090915290825290205460ff1681565b6000821515610b4857600080fd5b600160a060020a03331660009081526004602052604090206002015415610b6e57600080fd5b608060405190810160409081528582524260208084019190915281830186905260608301859052600160a060020a0333166000908152600490915220815181908051610bbe929160200190610d4d565b506020820151816001015560408201516002820155606082015160039091015550600160a060020a0333167f34c52d0adb20b65ec50963dcbaf052540bb1a400dad7298bf5f9b3f4a76028d7858585604051602081018390526040810182905260608082528190810185818151815260200191508051906020019080838360005b83811015610c57578082015183820152602001610c3f565b50505050905090810190601f168015610c845780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25060019392505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d335780601f10610d0857610100808354040283529160200191610d33565b820191906000526020600020905b815481529060010190602001808311610d1657829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d8e57805160ff1916838001178555610dbb565b82800160010185558215610dbb579182015b82811115610dbb578251825591602001919060010190610da0565b50610dc7929150610dcb565b5090565b610de591905b80821115610dc75760008155600101610dd1565b905600a165627a7a72305820d2214637a30fb90931f91380e556fcd0e783c0c17b6a5afc9f4e9b0321cb66240029", - "deployedBytecode": "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630787bc27811461009d5780630ba24e4c1461015c57806313bdbb19146101c35780633b51031e1461022157806355f21eb71461027c5780636a1db1bf1461032a5780639ba0b7c014610340578063b7548d2a14610362578063ffa1ad74146103ba575b600080fd5b34156100a857600080fd5b6100bc600160a060020a0360043516610444565b6040516020810184905260408101839052606081018290526080808252855460026101006001831615026000190190911604908201819052819060a08201908790801561014a5780601f1061011f5761010080835404028352916020019161014a565b820191906000526020600020905b81548152906001019060200180831161012d57829003601f168201915b50509550505050505060405180910390f35b341561016757600080fd5b610181600160a060020a0360043581169060243516610464565b604051968752602087019590955260408087019490945260ff90921660608601521515608085015260a084015260c083019190915260e0909101905180910390f35b34156101ce57600080fd5b6101e8600160a060020a03600435811690602435166104af565b604051948552602085019390935290151560408085019190915260ff9091166060840152608083019190915260a0909101905180910390f35b341561022c57600080fd5b610268600160a060020a036004351660243560443560ff60643581169060843515159060a4359060c4359060e4351661010435610124356104fb565b604051901515815260200160405180910390f35b341561028757600080fd5b61029b600160a060020a03600435166109e7565b60405160208101849052604081018390526060810182905260808082528190810186818151815260200191508051906020019080838360005b838110156102ec5780820151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561033557600080fd5b610268600435610ad1565b341561034b57600080fd5b610268600160a060020a0360043516602435610b1a565b341561036d57600080fd5b61026860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610b3a92505050565b34156103c557600080fd5b6103cd610c9d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104095780820151838201526020016103f1565b50505050905090810190601f1680156104365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600460205260009081526040902060018101546002820154600383015484565b60026020818152600093845260408085209091529183529120805460018201549282015460038301546004840154600590940154929493919260ff8083169361010090930416919087565b600160a060020a03918216600090815260026020908152604080832093909416825291909152208054600182015460038301546005909301549193909260ff6101008204811693911691565b600160a060020a0333166000908152600460205260408120600201548190151561052457600080fd5b42871161053057600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290205460ff161561056157600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290819020805460ff19166001179055309033908d908d908d908d908c90516c01000000000000000000000000600160a060020a0398891681028252969097169095026014870152602886019390935260488501919091527f010000000000000000000000000000000000000000000000000000000000000060ff90911681026068850152901515026069830152606a820152608a01604051809103902090508b600160a060020a03166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f115156106c957600080fd5b505060206040510351600160a060020a0316146106e557600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166323b872dd8d336004600033600160a060020a0316600160a060020a03168152602001908152602001600020600301546000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107a557600080fd5b6102c65a03f115156107b657600080fd5b5050506040518051905015156107cb57600080fd5b8a6002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000018160001916905550896002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206001018160001916905550886002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160006101000a81548160ff021916908360ff160217905550876002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160016101000a81548160ff021916908315150217905550866002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206005018190555033600160a060020a03168c600160a060020a03167ff7f59b0f319f2c9b602cfadacf86ba70810de82e157ceb8a5c0ef1a977eb2c288b60405160ff909116815260200160405180910390a35060019b9a5050505050505050505050565b6109ef610d3b565b600160a060020a03821660009081526004602090815260408083206001808201546002808401546003850154855489988998959693959294889483161561010002600019019092169190910491601f8301829004820290910190519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050935093509350935093509193509193565b600160a060020a0333166000908152600460205260408120600201541515610af857600080fd5b5033600160a060020a0316600090815260046020526040902060030155600190565b600360209081526000928352604080842090915290825290205460ff1681565b6000821515610b4857600080fd5b600160a060020a03331660009081526004602052604090206002015415610b6e57600080fd5b608060405190810160409081528582524260208084019190915281830186905260608301859052600160a060020a0333166000908152600490915220815181908051610bbe929160200190610d4d565b506020820151816001015560408201516002820155606082015160039091015550600160a060020a0333167f34c52d0adb20b65ec50963dcbaf052540bb1a400dad7298bf5f9b3f4a76028d7858585604051602081018390526040810182905260608082528190810185818151815260200191508051906020019080838360005b83811015610c57578082015183820152602001610c3f565b50505050905090810190601f168015610c845780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25060019392505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d335780601f10610d0857610100808354040283529160200191610d33565b820191906000526020600020905b815481529060010190602001808311610d1657829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d8e57805160ff1916838001178555610dbb565b82800160010185558215610dbb579182015b82811115610dbb578251825591602001919060010190610da0565b50610dc7929150610dcb565b5090565b610de591905b80821115610dc75760008155600101610dd1565b905600a165627a7a72305820d2214637a30fb90931f91380e556fcd0e783c0c17b6a5afc9f4e9b0321cb66240029", + "bytecode": "0x606060405260408051908101604052600181527f32000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610092565b50341561005757600080fd5b604051602080610f508339810160405280805160018054600160a060020a031916600160a060020a03929092169190911790555061012d9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100d357805160ff1916838001178555610100565b82800160010185558215610100579182015b828111156101005782518255916020019190600101906100e5565b5061010c929150610110565b5090565b61012a91905b8082111561010c5760008155600101610116565b90565b610e148061013c6000396000f3006060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630787bc27811461009d5780630ba24e4c1461015c57806313bdbb19146101c35780633b51031e1461022157806355f21eb71461027c5780636a1db1bf1461032a5780639ba0b7c014610340578063b7548d2a14610362578063ffa1ad74146103ba575b600080fd5b34156100a857600080fd5b6100bc600160a060020a0360043516610444565b6040516020810184905260408101839052606081018290526080808252855460026101006001831615026000190190911604908201819052819060a08201908790801561014a5780601f1061011f5761010080835404028352916020019161014a565b820191906000526020600020905b81548152906001019060200180831161012d57829003601f168201915b50509550505050505060405180910390f35b341561016757600080fd5b610181600160a060020a0360043581169060243516610464565b604051968752602087019590955260408087019490945260ff90921660608601521515608085015260a084015260c083019190915260e0909101905180910390f35b34156101ce57600080fd5b6101e8600160a060020a03600435811690602435166104af565b604051948552602085019390935290151560408085019190915260ff9091166060840152608083019190915260a0909101905180910390f35b341561022c57600080fd5b610268600160a060020a036004351660243560443560ff60643581169060843515159060a4359060c4359060e4351661010435610124356104fb565b604051901515815260200160405180910390f35b341561028757600080fd5b61029b600160a060020a03600435166109e7565b60405160208101849052604081018390526060810182905260808082528190810186818151815260200191508051906020019080838360005b838110156102ec5780820151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561033557600080fd5b610268600435610ad1565b341561034b57600080fd5b610268600160a060020a0360043516602435610b1a565b341561036d57600080fd5b61026860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610b3a92505050565b34156103c557600080fd5b6103cd610c9d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104095780820151838201526020016103f1565b50505050905090810190601f1680156104365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600460205260009081526040902060018101546002820154600383015484565b60026020818152600093845260408085209091529183529120805460018201549282015460038301546004840154600590940154929493919260ff8083169361010090930416919087565b600160a060020a03918216600090815260026020908152604080832093909416825291909152208054600182015460038301546005909301549193909260ff6101008204811693911691565b600160a060020a0333166000908152600460205260408120600201548190151561052457600080fd5b42871161053057600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290205460ff161561056157600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290819020805460ff19166001179055309033908d908d908d908d908c90516c01000000000000000000000000600160a060020a0398891681028252969097169095026014870152602886019390935260488501919091527f010000000000000000000000000000000000000000000000000000000000000060ff90911681026068850152901515026069830152606a820152608a01604051809103902090508b600160a060020a03166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f115156106c957600080fd5b505060206040510351600160a060020a0316146106e557600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166323b872dd8d336004600033600160a060020a0316600160a060020a03168152602001908152602001600020600301546000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107a557600080fd5b6102c65a03f115156107b657600080fd5b5050506040518051905015156107cb57600080fd5b8a6002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000018160001916905550896002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206001018160001916905550886002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160006101000a81548160ff021916908360ff160217905550876002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160016101000a81548160ff021916908315150217905550866002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206005018190555033600160a060020a03168c600160a060020a03167ff7f59b0f319f2c9b602cfadacf86ba70810de82e157ceb8a5c0ef1a977eb2c288b60405160ff909116815260200160405180910390a35060019b9a5050505050505050505050565b6109ef610d3b565b600160a060020a03821660009081526004602090815260408083206001808201546002808401546003850154855489988998959693959294889483161561010002600019019092169190910491601f8301829004820290910190519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050935093509350935093509193509193565b600160a060020a0333166000908152600460205260408120600201541515610af857600080fd5b5033600160a060020a0316600090815260046020526040902060030155600190565b600360209081526000928352604080842090915290825290205460ff1681565b6000821515610b4857600080fd5b600160a060020a03331660009081526004602052604090206002015415610b6e57600080fd5b608060405190810160409081528582524260208084019190915281830186905260608301859052600160a060020a0333166000908152600490915220815181908051610bbe929160200190610d4d565b506020820151816001015560408201516002820155606082015160039091015550600160a060020a0333167f34c52d0adb20b65ec50963dcbaf052540bb1a400dad7298bf5f9b3f4a76028d7858585604051602081018390526040810182905260608082528190810185818151815260200191508051906020019080838360005b83811015610c57578082015183820152602001610c3f565b50505050905090810190601f168015610c845780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25060019392505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d335780601f10610d0857610100808354040283529160200191610d33565b820191906000526020600020905b815481529060010190602001808311610d1657829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d8e57805160ff1916838001178555610dbb565b82800160010185558215610dbb579182015b82811115610dbb578251825591602001919060010190610da0565b50610dc7929150610dcb565b5090565b610de591905b80821115610dc75760008155600101610dd1565b905600a165627a7a72305820f4396fd27453d7c206c60b5a4c58fb73b69658c94cf76bf58ab0cb1e5d1a797a0029", + "deployedBytecode": "0x6060604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630787bc27811461009d5780630ba24e4c1461015c57806313bdbb19146101c35780633b51031e1461022157806355f21eb71461027c5780636a1db1bf1461032a5780639ba0b7c014610340578063b7548d2a14610362578063ffa1ad74146103ba575b600080fd5b34156100a857600080fd5b6100bc600160a060020a0360043516610444565b6040516020810184905260408101839052606081018290526080808252855460026101006001831615026000190190911604908201819052819060a08201908790801561014a5780601f1061011f5761010080835404028352916020019161014a565b820191906000526020600020905b81548152906001019060200180831161012d57829003601f168201915b50509550505050505060405180910390f35b341561016757600080fd5b610181600160a060020a0360043581169060243516610464565b604051968752602087019590955260408087019490945260ff90921660608601521515608085015260a084015260c083019190915260e0909101905180910390f35b34156101ce57600080fd5b6101e8600160a060020a03600435811690602435166104af565b604051948552602085019390935290151560408085019190915260ff9091166060840152608083019190915260a0909101905180910390f35b341561022c57600080fd5b610268600160a060020a036004351660243560443560ff60643581169060843515159060a4359060c4359060e4351661010435610124356104fb565b604051901515815260200160405180910390f35b341561028757600080fd5b61029b600160a060020a03600435166109e7565b60405160208101849052604081018390526060810182905260808082528190810186818151815260200191508051906020019080838360005b838110156102ec5780820151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b341561033557600080fd5b610268600435610ad1565b341561034b57600080fd5b610268600160a060020a0360043516602435610b1a565b341561036d57600080fd5b61026860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050843594602001359350610b3a92505050565b34156103c557600080fd5b6103cd610c9d565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156104095780820151838201526020016103f1565b50505050905090810190601f1680156104365780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600460205260009081526040902060018101546002820154600383015484565b60026020818152600093845260408085209091529183529120805460018201549282015460038301546004840154600590940154929493919260ff8083169361010090930416919087565b600160a060020a03918216600090815260026020908152604080832093909416825291909152208054600182015460038301546005909301549193909260ff6101008204811693911691565b600160a060020a0333166000908152600460205260408120600201548190151561052457600080fd5b42871161053057600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290205460ff161561056157600080fd5b600160a060020a038c16600090815260036020908152604080832089845290915290819020805460ff19166001179055309033908d908d908d908d908c90516c01000000000000000000000000600160a060020a0398891681028252969097169095026014870152602886019390935260488501919091527f010000000000000000000000000000000000000000000000000000000000000060ff90911681026068850152901515026069830152606a820152608a01604051809103902090508b600160a060020a03166001826040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0160405180910390208787876040516000815260200160405260006040516020015260405193845260ff90921660208085019190915260408085019290925260608401929092526080909201915160208103908084039060008661646e5a03f115156106c957600080fd5b505060206040510351600160a060020a0316146106e557600080fd5b600160009054906101000a9004600160a060020a0316600160a060020a03166323b872dd8d336004600033600160a060020a0316600160a060020a03168152602001908152602001600020600301546000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b15156107a557600080fd5b6102c65a03f115156107b657600080fd5b5050506040518051905015156107cb57600080fd5b8a6002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206000018160001916905550896002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206001018160001916905550886002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160006101000a81548160ff021916908360ff160217905550876002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a0316815260200190815260200160002060030160016101000a81548160ff021916908315150217905550866002600033600160a060020a0316600160a060020a0316815260200190815260200160002060008e600160a060020a0316600160a060020a031681526020019081526020016000206005018190555033600160a060020a03168c600160a060020a03167ff7f59b0f319f2c9b602cfadacf86ba70810de82e157ceb8a5c0ef1a977eb2c288b60405160ff909116815260200160405180910390a35060019b9a5050505050505050505050565b6109ef610d3b565b600160a060020a03821660009081526004602090815260408083206001808201546002808401546003850154855489988998959693959294889483161561010002600019019092169190910491601f8301829004820290910190519081016040528092919081815260200182805460018160011615610100020316600290048015610abb5780601f10610a9057610100808354040283529160200191610abb565b820191906000526020600020905b815481529060010190602001808311610a9e57829003601f168201915b5050505050935093509350935093509193509193565b600160a060020a0333166000908152600460205260408120600201541515610af857600080fd5b5033600160a060020a0316600090815260046020526040902060030155600190565b600360209081526000928352604080842090915290825290205460ff1681565b6000821515610b4857600080fd5b600160a060020a03331660009081526004602052604090206002015415610b6e57600080fd5b608060405190810160409081528582524260208084019190915281830186905260608301859052600160a060020a0333166000908152600490915220815181908051610bbe929160200190610d4d565b506020820151816001015560408201516002820155606082015160039091015550600160a060020a0333167f34c52d0adb20b65ec50963dcbaf052540bb1a400dad7298bf5f9b3f4a76028d7858585604051602081018390526040810182905260608082528190810185818151815260200191508051906020019080838360005b83811015610c57578082015183820152602001610c3f565b50505050905090810190601f168015610c845780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a25060019392505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d335780601f10610d0857610100808354040283529160200191610d33565b820191906000526020600020905b815481529060010190602001808311610d1657829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610d8e57805160ff1916838001178555610dbb565b82800160010185558215610dbb579182015b82811115610dbb578251825591602001919060010190610da0565b50610dc7929150610dcb565b5090565b610de591905b80821115610dc75760008155600101610dd1565b905600a165627a7a72305820f4396fd27453d7c206c60b5a4c58fb73b69658c94cf76bf58ab0cb1e5d1a797a0029", "sourceMap": "483:6454:1:-;;;523:27;;;;;;;;;;;;;;;;-1:-1:-1;;523:27:1;;;;;;;;;:::i;:::-;;2806:102;;;;;;;;;;;;;;;;;;;;;;2869:4;:32;;-1:-1:-1;;;;;;2869:32:1;-1:-1:-1;;;;;2869:32:1;;;;;;;;;;-1:-1:-1;483:6454:1;;-1:-1:-1;483:6454:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;483:6454:1;;;-1:-1:-1;483:6454:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "483:6454:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:45;;;;;;;;;;-1:-1:-1;;;;;2323:45:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2323:45:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:65;;;;;;;;;;-1:-1:-1;;;;;1572:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:466;;;;;;;;;;-1:-1:-1;;;;;5964:466:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4442:1224;;;;;;;;;;-1:-1:-1;;;;;4442:1224:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6567:367;;;;;;;;;;-1:-1:-1;;;;;6567:367:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3591:152:1;;;;;;;;;;;;;;1700:60;;;;;;;;;;-1:-1:-1;;;;;1700:60:1;;;;;;;3141:343;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3141:343:1;;-1:-1:-1;;3141:343:1;;;;;;;-1:-1:-1;3141:343:1;;-1:-1:-1;;;3141:343:1;523:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:45:1;;;;;;;;;;;;;;;;;;;;;;;;:::o;1572:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5964:466::-;-1:-1:-1;;;;;6155:20:1;;;6053:7;6155:20;;;:9;:20;;;;;;;;:31;;;;;;;;;;;:51;;6216:52;;;;6278:42;;;;6376:39;;;;;6155:51;;6216:52;;6278:42;;;;;;;6330:36;;;5964:466::o;4442:1224::-;-1:-1:-1;;;;;2715:10:1;2705:21;4757:12;2705:21;;;:9;:21;;;;;:29;;;4757:12;;2705:36;;2697:45;;;;;;4804:3;4793:14;;4785:23;;;;;;-1:-1:-1;;;;;4826:19:1;;;;;;:8;:19;;;;;;;;:27;;;;;;;;;;;:36;4818:45;;;;;;-1:-1:-1;;;;;4873:19:1;;;;;;:8;:19;;;;;;;;:27;;;;;;;;;;:34;;-1:-1:-1;;4873:34:1;4903:4;4873:34;;;4942:4;;4948:10;;4960:20;;4982:21;;5005:5;;5012:11;;4893:6;;4932:100;;-1:-1:-1;;;;;4932:100:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4917:115;;5128:9;-1:-1:-1;;;;;5050:87:1;:74;5106:4;5060:51;;;;;;;;;;;;;;;;;;;;;5113:2;5117;5121;5050:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5050:87:1;;5042:96;;;;;;5156:4;;;;;;;;;-1:-1:-1;;;;;5156:4:1;-1:-1:-1;;;;;5156:17:1;;5174:9;5185:10;5197:9;:21;5207:10;-1:-1:-1;;;;;5197:21:1;-1:-1:-1;;;;;5197:21:1;;;;;;;;;;;;:25;;;5156:67;;;;;;;;;;;;;;;-1:-1:-1;;;;;5156:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5148:76;;;;;;;;5289:20;5234:9;:21;5244:10;-1:-1:-1;;;;;5234:21:1;-1:-1:-1;;;;;5234:21:1;;;;;;;;;;;;:32;5256:9;-1:-1:-1;;;;;5234:32:1;-1:-1:-1;;;;;5234:32:1;;;;;;;;;;;;:52;;:75;;;;;;;5375:21;5319:9;:21;5329:10;-1:-1:-1;;;;;5319:21:1;-1:-1:-1;;;;;5319:21:1;;;;;;;;;;;;:32;5341:9;-1:-1:-1;;;;;5319:32:1;-1:-1:-1;;;;;5319:32:1;;;;;;;;;;;;:53;;:77;;;;;;;5446:5;5406:9;:21;5416:10;-1:-1:-1;;;;;5406:21:1;-1:-1:-1;;;;;5406:21:1;;;;;;;;;;;;:32;5428:9;-1:-1:-1;;;;;5406:32:1;-1:-1:-1;;;;;5406:32:1;;;;;;;;;;;;:37;;;:45;;;;;;;;;;;;;;;;;;5507:11;5461:9;:21;5471:10;-1:-1:-1;;;;;5461:21:1;-1:-1:-1;;;;;5461:21:1;;;;;;;;;;;;:32;5483:9;-1:-1:-1;;;;;5461:32:1;-1:-1:-1;;;;;5461:32:1;;;;;;;;;;;;:43;;;:57;;;;;;;;;;;;;;;;;;5571:8;5528:9;:21;5538:10;-1:-1:-1;;;;;5528:21:1;-1:-1:-1;;;;;5528:21:1;;;;;;;;;;;;:32;5550:9;-1:-1:-1;;;;;5528:32:1;-1:-1:-1;;;;;5528:32:1;;;;;;;;;;;;:40;;:51;;;;5620:10;-1:-1:-1;;;;;5589:49:1;5609:9;-1:-1:-1;;;;;5589:49:1;;5632:5;5589:49;;;;;;;;;;;;;;;;;-1:-1:-1;5655:4:1;;4442:1224;-1:-1:-1;;;;;;;;;;;4442:1224:1:o;6567:367::-;6644:11;;:::i;:::-;-1:-1:-1;;;;;6757:27:1;;6665:14;6757:27;;;:9;:27;;;;;;;;6799:34;;;;;6843:35;;;;;6888:31;;;;6740:187;;6665:14;;;;6799:34;;6843:35;;6888:31;;6757:27;;6740:187;;;;;-1:-1:-1;;6740:187:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6567:367;;;;;:::o;3591:152::-;-1:-1:-1;;;;;2715:10:1;2705:21;3656:12;2705:21;;;:9;:21;;;;;:29;;;:36;;2697:45;;;;;;-1:-1:-1;3690:10:1;-1:-1:-1;;;;;3680:21:1;;;;;:9;:21;;;;;:25;;:35;3732:4;;3591:152::o;1700:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3141:343::-;3224:12;3256:15;;;3248:24;;;;;;-1:-1:-1;;;;;3300:10:1;3290:21;;;;;:9;:21;;;;;:29;;;:36;3282:45;;;;;;3361:36;;;;;;;;;;;;;3377:3;3361:36;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3347:10:1;3337:21;-1:-1:-1;3337:21:1;;;:9;:21;;;;3361:36;3337:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3422:10:1;3407:49;;3434:5;3441:8;3451:4;3407:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;3473:4:1;3141:343;;;;;:::o;523:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;483:6454::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;483:6454:1;;;-1:-1:-1;483:6454:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.18;\n\n/*\n Polymath customer registry is used to ensure regulatory compliance\n of the investors, provider, and issuers. The customers registry is a central\n place where ethereum addresses can be whitelisted to purchase certain security\n tokens based on their verifications by providers.\n*/\n\nimport './interfaces/IERC20.sol';\nimport './interfaces/ICustomers.sol';\n\n/**\n * @title Customers\n * @dev Contract use to register the user on the Polymath platform\n */\n\ncontract Customers is ICustomers {\n\n string public VERSION = \"2\";\n\n IERC20 POLY; // Instance of the POLY token\n\n struct Customer { // Structure use to store the details of the customers\n bytes32 countryJurisdiction; // Customers country jurisdiction as ex - ISO3166\n bytes32 divisionJurisdiction; // Customers sub-division jurisdiction as ex - ISO3166\n uint256 joined; // Timestamp when customer register\n uint8 role; // Role of the customer\n bool accredited; // Accrediation status of the customer\n bytes32 proof; // Proof for customer\n uint256 expires; // Timestamp when customer verification expires\n }\n\n mapping(address => mapping(address => Customer)) public customers; // Customers (kyc provider address => customer address)\n mapping(address => mapping(uint256 => bool)) public nonceMap; // Map of used nonces by customer\n\n struct Provider { // KYC/Accreditation Provider\n string name; // Name of the provider\n uint256 joined; // Timestamp when provider register\n bytes32 details; // Details of provider\n uint256 fee; // Fee charged by the KYC providers\n }\n\n mapping(address => Provider) public providers; // KYC/Accreditation Providers\n\n // Notifications\n event LogNewProvider(address indexed providerAddress, string name, bytes32 details, uint256 _fee);\n event LogCustomerVerified(address indexed customer, address indexed provider, uint8 role);\n\n // Modifier\n modifier onlyProvider() {\n require(providers[msg.sender].details != 0x0);\n _;\n }\n\n /**\n * @dev Constructor\n */\n function Customers(address _polyTokenAddress) public {\n POLY = IERC20(_polyTokenAddress);\n }\n\n /**\n * @dev Allow new provider applications\n * @param _name The provider's name\n * @param _details A SHA256 hash of the new providers details\n * @param _fee The fee charged for customer verification\n */\n function newProvider(string _name, bytes32 _details, uint256 _fee) public returns (bool success) {\n require(_details != 0x0);\n require(providers[msg.sender].details == 0x0);\n providers[msg.sender] = Provider(_name, now, _details, _fee);\n LogNewProvider(msg.sender, _name, _details, _fee);\n return true;\n }\n\n /**\n * @dev Change a providers fee\n * @param _newFee The new fee of the provider\n */\n function changeFee(uint256 _newFee) onlyProvider public returns (bool success) {\n providers[msg.sender].fee = _newFee;\n return true;\n }\n\n\n /**\n * @dev Verify an investor\n * @param _customer The customer's public key address\n * @param _countryJurisdiction The jurisdiction country code of the customer\n * @param _divisionJurisdiction The jurisdiction subdivision code of the customer\n * @param _role The type of customer - investor:1, delegate:2, issuer:3, marketmaker:4, etc.\n * @param _accredited Whether the customer is accredited or not (only applied to investors)\n * @param _expires The time the verification expires\n * @param _nonce nonce of signature (avoid replay attack)\n * @param _v customer signature\n * @param _r customer signature\n * @param _s customer signature\n */\n function verifyCustomer(\n address _customer,\n bytes32 _countryJurisdiction,\n bytes32 _divisionJurisdiction,\n uint8 _role,\n bool _accredited,\n uint256 _expires,\n uint _nonce,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n ) public onlyProvider returns (bool success)\n {\n require(_expires > now);\n require(nonceMap[_customer][_nonce] == false);\n nonceMap[_customer][_nonce] = true;\n bytes32 hash = keccak256(this, msg.sender, _countryJurisdiction, _divisionJurisdiction, _role, _accredited, _nonce);\n require(ecrecover(keccak256(\"\\x19Ethereum Signed Message:\\n32\", hash), _v, _r, _s) == _customer);\n require(POLY.transferFrom(_customer, msg.sender, providers[msg.sender].fee));\n customers[msg.sender][_customer].countryJurisdiction = _countryJurisdiction;\n customers[msg.sender][_customer].divisionJurisdiction = _divisionJurisdiction;\n customers[msg.sender][_customer].role = _role;\n customers[msg.sender][_customer].accredited = _accredited;\n customers[msg.sender][_customer].expires = _expires;\n LogCustomerVerified(_customer, msg.sender, _role);\n return true;\n }\n\n ///////////////////\n /// GET Functions\n //////////////////\n\n /**\n * @dev Get customer attestation data by KYC provider and customer ethereum address\n * @param _provider Address of the KYC provider.\n * @param _customer Address of the customer ethereum address\n */\n function getCustomer(address _provider, address _customer) public view returns (\n bytes32,\n bytes32,\n bool,\n uint8,\n uint256\n ) {\n return (\n customers[_provider][_customer].countryJurisdiction,\n customers[_provider][_customer].divisionJurisdiction,\n customers[_provider][_customer].accredited,\n customers[_provider][_customer].role,\n customers[_provider][_customer].expires\n );\n }\n\n /**\n * Get provider details and fee by ethereum address\n * @param _providerAddress Address of the KYC provider\n */\n function getProvider(address _providerAddress) public view returns (\n string name,\n uint256 joined,\n bytes32 details,\n uint256 fee\n ) {\n return (\n providers[_providerAddress].name,\n providers[_providerAddress].joined,\n providers[_providerAddress].details,\n providers[_providerAddress].fee\n );\n }\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Customers.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Customers.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Customers.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Customers.sol", "exportedSymbols": { "Customers": [ 1287 @@ -380,7 +380,7 @@ { "attributes": { "SourceUnit": 5135, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IERC20.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IERC20.sol", "file": "./interfaces/IERC20.sol", "scope": 1288, "symbolAliases": [ @@ -395,7 +395,7 @@ { "attributes": { "SourceUnit": 5066, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICustomers.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICustomers.sol", "file": "./interfaces/ICustomers.sol", "scope": 1288, "symbolAliases": [ @@ -6012,5 +6012,5 @@ } }, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T07:00:11.101Z" + "updatedAt": "2018-02-25T12:54:40.597Z" } \ No newline at end of file diff --git a/build/contracts/ICompliance.json b/build/contracts/ICompliance.json index 08d54d3..bf9dc4c 100644 --- a/build/contracts/ICompliance.json +++ b/build/contracts/ICompliance.json @@ -275,10 +275,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.4.18;\r\n\r\n/*\r\n Polymath compliance protocol is intended to ensure regulatory compliance\r\n in the jurisdictions that security tokens are being offered in. The compliance\r\n protocol allows security tokens remain interoperable so that anyone can\r\n build on top of the Polymath platform and extend it's functionality.\r\n*/\r\n\r\ninterface ICompliance {\r\n\r\n /**\r\n * @dev `setRegistrarAddress` This function set the SecurityTokenRegistrar contract address.\r\n * @param _STRegistrar It is the `this` reference of STR contract\r\n * @return bool\r\n */\r\n\r\n function setRegistrarAddress(address _STRegistrar) public returns (bool);\r\n\r\n /**\r\n * @dev `createTemplate` is a simple function to create a new compliance template\r\n * @param _offeringType The name of the security being issued\r\n * @param _issuerJurisdiction The jurisdiction id of the issuer\r\n * @param _accredited Accreditation status required for investors\r\n * @param _KYC KYC provider used by the template\r\n * @param _details Details of the offering requirements\r\n * @param _expires Timestamp of when the template will expire\r\n * @param _fee Amount of POLY to use the template (held in escrow until issuance)\r\n * @param _quorum Minimum percent of shareholders which need to vote to freeze\r\n * @param _vestingPeriod Length of time to vest funds\r\n */\r\n function createTemplate(\r\n string _offeringType,\r\n bytes32 _issuerJurisdiction,\r\n bool _accredited,\r\n address _KYC,\r\n bytes32 _details,\r\n uint256 _expires,\r\n uint256 _fee,\r\n uint8 _quorum,\r\n uint256 _vestingPeriod\r\n ) public;\r\n\r\n /**\r\n * @dev Propose a bid for a security token issuance\r\n * @param _securityToken The security token being bid on\r\n * @param _template The unique template address\r\n * @return bool success\r\n */\r\n function proposeTemplate(\r\n address _securityToken,\r\n address _template\r\n ) public returns (bool success);\r\n\r\n /**\r\n * @dev Propose a Security Token Offering Contract for an issuance\r\n * @param _securityToken The security token being bid on\r\n * @param _factoryAddress The security token offering contract address\r\n * @return bool success\r\n */\r\n function proposeOfferingFactory(\r\n address _securityToken,\r\n address _factoryAddress\r\n ) public returns (bool success);\r\n\r\n /**\r\n * @dev Cancel a Template proposal if the bid hasn't been accepted\r\n * @param _securityToken The security token being bid on\r\n * @param _templateProposalIndex The template proposal array index\r\n * @return bool success\r\n */\r\n function cancelTemplateProposal(\r\n address _securityToken,\r\n uint256 _templateProposalIndex\r\n ) public returns (bool success);\r\n\r\n /**\r\n * @dev Register the Offering factory by the developer.\r\n * @param _factoryAddress address of the offering factory\r\n * @return bool success\r\n */\r\n function registerOfferingFactory (\r\n address _factoryAddress\r\n ) public returns (bool success);\r\n\r\n /**\r\n * @dev Cancel a Offering factory proposal if the bid hasn't been accepted\r\n * @param _securityToken The security token being bid on\r\n * @param _offeringFactoryProposalIndex The offeringFactory proposal array index\r\n * @return bool success\r\n */\r\n function cancelOfferingFactoryProposal(\r\n address _securityToken,\r\n uint256 _offeringFactoryProposalIndex\r\n ) public returns (bool success);\r\n\r\n /**\r\n * @dev `updateTemplateReputation` is a constant function that updates the\r\n history of a security token template usage to keep track of previous uses\r\n * @param _template The unique template address\r\n * @param _polyRaised Poly raised by template\r\n */\r\n function updateTemplateReputation (address _template, uint256 _polyRaised) external returns (bool success);\r\n\r\n /**\r\n * @dev `updateOfferingReputation` is a constant function that updates the\r\n history of a security token offering contract to keep track of previous uses\r\n * @param _offeringFactory The smart contract address of the STO contract\r\n * @param _polyRaised Poly raised by template\r\n */\r\n function updateOfferingFactoryReputation (address _offeringFactory, uint256 _polyRaised) external returns (bool success);\r\n\r\n /**\r\n * @dev Get template details by the proposal index\r\n * @param _securityTokenAddress The security token ethereum address\r\n * @param _templateIndex The array index of the template being checked\r\n * @return Template struct\r\n */\r\n function getTemplateByProposal(address _securityTokenAddress, uint8 _templateIndex) view public returns (\r\n address _template\r\n );\r\n\r\n /**\r\n * @dev Get security token offering smart contract details by the proposal index\r\n * @param _securityTokenAddress The security token ethereum address\r\n * @param _offeringFactoryProposalIndex The array index of the STO contract being checked\r\n * @return Contract struct\r\n */\r\n function getOfferingFactoryByProposal(address _securityTokenAddress, uint8 _offeringFactoryProposalIndex) view public returns (\r\n address _offeringFactoryAddress\r\n );\r\n}\r\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICompliance.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICompliance.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICompliance.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICompliance.sol", "exportedSymbols": { "ICompliance": [ 4989 @@ -1695,5 +1695,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.714Z" + "updatedAt": "2018-02-25T12:43:54.396Z" } \ No newline at end of file diff --git a/build/contracts/ICustomers.json b/build/contracts/ICustomers.json index 3b91038..e1c7b80 100644 --- a/build/contracts/ICustomers.json +++ b/build/contracts/ICustomers.json @@ -178,10 +178,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.4.18;\n\ninterface ICustomers {\n\n /**\n * @dev Allow new provider applications\n * @param _name The provider's name\n * @param _details A SHA256 hash of the new providers details\n * @param _fee The fee charged for customer verification\n */\n function newProvider(string _name, bytes32 _details, uint256 _fee) public returns (bool success);\n\n /**\n * @dev Change a providers fee\n * @param _newFee The new fee of the provider\n */\n function changeFee(uint256 _newFee) public returns (bool success);\n\n /**\n * @dev Verify an investor\n * @param _customer The customer's public key address\n * @param _countryJurisdiction The country urisdiction code of the customer\n * @param _divisionJurisdiction The subdivision jurisdiction code of the customer\n * @param _role The type of customer - investor:1, delegate:2, issuer:3, marketmaker:4, etc.\n * @param _accredited Whether the customer is accredited or not (only applied to investors)\n * @param _expires The time the verification expires\n */\n function verifyCustomer(\n address _customer,\n bytes32 _countryJurisdiction,\n bytes32 _divisionJurisdiction,\n uint8 _role,\n bool _accredited,\n uint256 _expires,\n uint _nonce,\n uint8 _v,\n bytes32 _r,\n bytes32 _s\n ) public returns (bool success);\n\n ///////////////////\n /// GET Functions\n //////////////////\n\n /**\n * @dev Get customer attestation data by KYC provider and customer ethereum address\n * @param _provider Address of the KYC provider.\n * @param _customer Address of the customer ethereum address\n */\n function getCustomer(address _provider, address _customer) public view returns (\n bytes32,\n bytes32,\n bool,\n uint8,\n uint256\n );\n\n /**\n * Get provider details and fee by ethereum address\n * @param _providerAddress Address of the KYC provider\n */\n function getProvider(address _providerAddress) public view returns (\n string name,\n uint256 joined,\n bytes32 details,\n uint256 fee\n );\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICustomers.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICustomers.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICustomers.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICustomers.sol", "exportedSymbols": { "ICustomers": [ 5065 @@ -1170,5 +1170,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.714Z" + "updatedAt": "2018-02-25T12:43:54.419Z" } \ No newline at end of file diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json index 84b84a4..ec96c12 100644 --- a/build/contracts/IERC20.json +++ b/build/contracts/IERC20.json @@ -180,10 +180,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.4.18;\n\n/// ERC Token Standard #20 Interface (https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md)\ninterface IERC20 {\n function balanceOf(address _owner) public view returns (uint256 balance);\n function transfer(address _to, uint256 _value) public returns (bool success);\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);\n function approve(address _spender, uint256 _value) public returns (bool success);\n function allowance(address _owner, address _spender) public view returns (uint256 remaining);\n function totalSupply() public view returns (uint256);\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IERC20.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IERC20.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IERC20.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IERC20.sol", "exportedSymbols": { "IERC20": [ 5134 @@ -1072,5 +1072,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.747Z" + "updatedAt": "2018-02-25T12:43:54.440Z" } \ No newline at end of file diff --git a/build/contracts/IOfferingFactory.json b/build/contracts/IOfferingFactory.json index 7cd3345..8a97b43 100644 --- a/build/contracts/IOfferingFactory.json +++ b/build/contracts/IOfferingFactory.json @@ -68,10 +68,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.4.18;\n\ninterface IOfferingFactory {\n\n /**\n * @dev It facilitate the creation of the STO contract with essentials parameters\n * @param _startTime Unix timestamp to start the offering\n * @param _endTime Unix timestamp to end the offering\n * @param _polyTokenRate Price of one security token in terms of poly\n * @param _maxPoly Maximum amount of poly issuer wants to collect\n * @return address Address of the new offering instance\n */\n function createOffering(\n uint256 _startTime,\n uint256 _endTime,\n uint256 _polyTokenRate,\n uint256 _maxPoly\n ) public returns (address);\n\n /**\n * @dev `getUsageDetails` is a function to get all the details on factory usage fees\n * @return uint256 fee, uint8 quorum, uint256 vestingPeriod, address owner, string description\n */\n function getUsageDetails() view public returns (uint256, uint8, uint256, address, bytes32);\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IOfferingFactory.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IOfferingFactory.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IOfferingFactory.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IOfferingFactory.sol", "exportedSymbols": { "IOfferingFactory": [ 5163 @@ -462,5 +462,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.746Z" + "updatedAt": "2018-02-25T12:43:54.440Z" } \ No newline at end of file diff --git a/build/contracts/ISecurityToken.json b/build/contracts/ISecurityToken.json index f5ef314..bcbc5cf 100644 --- a/build/contracts/ISecurityToken.json +++ b/build/contracts/ISecurityToken.json @@ -291,10 +291,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": " pragma solidity ^0.4.18;\n\n interface ISecurityToken {\n\n /**\n * @dev `selectTemplate` Select a proposed template for the issuance\n * @param _templateIndex Array index of the delegates proposed template\n * @return bool success\n */\n function selectTemplate(uint8 _templateIndex) public returns (bool success);\n\n /**\n * @dev Update compliance proof hash for the issuance\n * @param _newMerkleRoot New merkle root hash of the compliance Proofs\n * @param _complianceProof Compliance Proof hash\n * @return bool success\n */\n function updateComplianceProof(\n bytes32 _newMerkleRoot,\n bytes32 _complianceProof\n ) public returns (bool success);\n\n /**\n * @dev `selectOfferingFactory` Select an security token offering proposal for the issuance\n * @param _offeringFactoryProposalIndex Array index of the STO proposal\n * @return bool success\n */\n function selectOfferingFactory (\n uint8 _offeringFactoryProposalIndex\n ) public returns (bool success);\n\n /**\n * @dev Start the offering by sending all the tokens to STO contract\n * @param _startTime Unix timestamp to start the offering\n * @param _endTime Unix timestamp to end the offering\n * @param _polyTokenRate Price of one security token in terms of poly\n * @param _maxPoly Maximum amount of poly issuer wants to collect\n * @param _lockupPeriod Length of time raised POLY will be locked up for dispute\n * @param _quorum Percent of initial investors required to freeze POLY raise\n * @return bool\n */\n function initialiseOffering(uint256 _startTime, uint256 _endTime, uint256 _polyTokenRate, uint256 _maxPoly, uint256 _lockupPeriod, uint8 _quorum) external returns (bool success);\n\n /**\n * @dev Add a verified address to the Security Token whitelist\n * @param _whitelistAddress Address attempting to join ST whitelist\n * @return bool success\n */\n function addToWhitelist(address _whitelistAddress) public returns (bool success);\n\n /**\n * @dev Add verified addresses to the Security Token whitelist\n * @param _whitelistAddresses Array of addresses attempting to join ST whitelist\n * @return bool success\n */\n function addToWhitelistMulti(address[] _whitelistAddresses) public returns (bool success);\n\n /**\n * @dev Removes a previosly verified address to the Security Token blacklist\n * @param _blacklistAddress Address being added to the blacklist\n * @return bool success\n */\n function addToBlacklist(address _blacklistAddress) public returns (bool success);\n\n /**\n * @dev Removes previously verified addresseses to the Security Token whitelist\n * @param _blacklistAddresses Array of addresses attempting to join ST whitelist\n * @return bool success\n */\n function addToBlacklistMulti(address[] _blacklistAddresses) public returns (bool success);\n\n /**\n * @dev Allow POLY allocations to be withdrawn by owner, delegate, and the STO auditor at appropriate times\n * @return bool success\n */\n function withdrawPoly() public returns (bool success);\n\n /**\n * @dev Vote to freeze the fee of a certain network participant\n * @param _recipient The fee recipient being protested\n * @return bool success\n */\n function voteToFreeze(address _recipient) public returns (bool success);\n\n /**\n * @dev `issueSecurityTokens` is used by the STO to keep track of STO investors\n * @param _contributor The address of the person whose contributing\n * @param _amountOfSecurityTokens The amount of ST to pay out.\n * @param _polyContributed The amount of POLY paid for the security tokens.\n */\n function issueSecurityTokens(address _contributor, uint256 _amountOfSecurityTokens, uint256 _polyContributed) public returns (bool success);\n\n /// Get token details\n function getTokenDetails() view public returns (address, address, bytes32, address, address, address);\n\n /// Get token decimals\n function decimals() view public returns (uint8);\n }\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityToken.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityToken.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityToken.sol", "exportedSymbols": { "ISecurityToken": [ 5279 @@ -1787,5 +1787,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.749Z" + "updatedAt": "2018-02-25T12:43:54.442Z" } \ No newline at end of file diff --git a/build/contracts/ISecurityTokenRegistrar.json b/build/contracts/ISecurityTokenRegistrar.json index 2343458..76c3ec3 100644 --- a/build/contracts/ISecurityTokenRegistrar.json +++ b/build/contracts/ISecurityTokenRegistrar.json @@ -76,10 +76,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.4.18;\r\n\r\ninterface ISecurityTokenRegistrar {\r\n\r\n /**\r\n * @dev Creates a new Security Token and saves it to the registry\r\n * @param _nameSpace Name space for this security token\r\n * @param _name Name of the security token\r\n * @param _ticker Ticker name of the security\r\n * @param _totalSupply Total amount of tokens being created\r\n * @param _owner Ethereum public key address of the security token owner\r\n * @param _type Type of security being tokenized\r\n */\r\n function createSecurityToken (\r\n string _nameSpace,\r\n string _name,\r\n string _ticker,\r\n uint256 _totalSupply,\r\n uint8 _decimals,\r\n address _owner,\r\n uint8 _type\r\n ) external;\r\n\r\n /**\r\n * @dev Get Security token details by its ethereum address\r\n * @param _STAddress Security token address\r\n */\r\n function getSecurityTokenData(address _STAddress) public view returns (\r\n string,\r\n string,\r\n address,\r\n uint8\r\n );\r\n\r\n}\r\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityTokenRegistrar.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityTokenRegistrar.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityTokenRegistrar.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityTokenRegistrar.sol", "exportedSymbols": { "ISecurityTokenRegistrar": [ 5312 @@ -522,5 +522,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.748Z" + "updatedAt": "2018-02-25T12:43:54.443Z" } \ No newline at end of file diff --git a/build/contracts/ITemplate.json b/build/contracts/ITemplate.json index c36ced8..4147f88 100644 --- a/build/contracts/ITemplate.json +++ b/build/contracts/ITemplate.json @@ -211,10 +211,10 @@ "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.4.18;\n\ninterface ITemplate {\n\n /**\n * @dev `addJurisdiction` allows the adding of new jurisdictions to a template\n * @param _allowedJurisdictions An array of jurisdictions\n * @param _allowed An array of whether the jurisdiction is allowed to purchase the security or not\n */\n function addJurisdiction(bytes32[] _allowedJurisdictions, bool[] _allowed) public;\n\n /**\n * @dev `addDivisionJurisdiction` allows the adding of new jurisdictions to a template\n * @param _blockedDivisionJurisdictions An array of jurisdictions\n * @param _blocked An array of whether the jurisdiction is allowed to purchase the security or not\n */\n function addDivisionJurisdiction(bytes32[] _blockedDivisionJurisdictions, bool[] _blocked) public;\n\n /**\n * @dev `addRole` allows the adding of new roles to be added to whitelist\n * @param _allowedRoles User roles that can purchase the security\n */\n function addRoles(uint8[] _allowedRoles) public;\n\n /**\n * @notice `updateDetails`\n * @param _details details of the template need to change\n * @return allowed boolean variable\n */\n function updateDetails(bytes32 _details) public returns (bool allowed);\n\n /**\n * @dev `finalizeTemplate` is used to finalize template.full compliance process/requirements\n * @return success\n */\n function finalizeTemplate() public returns (bool success);\n\n /**\n * @dev `checkTemplateRequirements` is a constant function that checks if templates requirements are met\n * @param _countryJurisdiction The ISO-3166 code of the investors country jurisdiction\n * @param _divisionJurisdiction The ISO-3166 code of the investors subdivision jurisdiction\n * @param _accredited Whether the investor is accredited or not\n * @param _role role of the user\n * @return allowed boolean variable\n */\n function checkTemplateRequirements(\n bytes32 _countryJurisdiction,\n bytes32 _divisionJurisdiction,\n bool _accredited,\n uint8 _role\n ) public view returns (bool allowed);\n\n /**\n * @dev getTemplateDetails is a constant function that gets template details\n * @return bytes32 details, bool finalized\n */\n function getTemplateDetails() view public returns (bytes32, bool);\n\n /**\n * @dev `getUsageDetails` is a function to get all the details on template usage fees\n * @return uint256 fee, uint8 quorum, uint256 vestingPeriod, address owner, address KYC\n */\n function getUsageDetails() view public returns (uint256, uint8, uint256, address, address);\n\n /**\n * @dev Get the list of allowed jurisdictions\n * @return bytes32[]\n */\n function getAllowedJurisdictionsList() view public returns (bytes32[]);\n\n /**\n * @dev Get the list of allowed roles\n * @return uin8[]\n */\n function getAllowedRolesList() view public returns (uint8[]);\n \n /**\n * @dev Get the list of allowed roles\n * @return bytes32[]\n */\n function getblockedDivisionJurisdictionsList() view public returns (bytes32[]);\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ITemplate.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ITemplate.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ITemplate.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ITemplate.sol", "exportedSymbols": { "ITemplate": [ 5402 @@ -1387,5 +1387,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.750Z" + "updatedAt": "2018-02-25T12:43:54.444Z" } \ No newline at end of file diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json index f97bf62..a2187a7 100644 --- a/build/contracts/Migrations.json +++ b/build/contracts/Migrations.json @@ -64,15 +64,15 @@ "type": "constructor" } ], - "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101ea8061003b6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f0108114610066578063445df0ac146100875780638da5cb5b146100ac578063fdacd576146100db575b600080fd5b341561007157600080fd5b610085600160a060020a03600435166100f1565b005b341561009257600080fd5b61009a610189565b60405190815260200160405180910390f35b34156100b757600080fd5b6100bf61018f565b604051600160a060020a03909116815260200160405180910390f35b34156100e657600080fd5b61008560043561019e565b6000805433600160a060020a0390811691161461010d57600080fd5b81905080600160a060020a031663fdacd5766001546040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401600060405180830381600087803b151561017157600080fd5b6102c65a03f1151561018257600080fd5b5050505050565b60015481565b600054600160a060020a031681565b60005433600160a060020a039081169116146101b957600080fd5b6001555600a165627a7a72305820c8b8a83915ee5145b873bfac69f34b3cf8c9d1f8643c8491b4309b5fa6f5399d0029", - "deployedBytecode": "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f0108114610066578063445df0ac146100875780638da5cb5b146100ac578063fdacd576146100db575b600080fd5b341561007157600080fd5b610085600160a060020a03600435166100f1565b005b341561009257600080fd5b61009a610189565b60405190815260200160405180910390f35b34156100b757600080fd5b6100bf61018f565b604051600160a060020a03909116815260200160405180910390f35b34156100e657600080fd5b61008560043561019e565b6000805433600160a060020a0390811691161461010d57600080fd5b81905080600160a060020a031663fdacd5766001546040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401600060405180830381600087803b151561017157600080fd5b6102c65a03f1151561018257600080fd5b5050505050565b60015481565b600054600160a060020a031681565b60005433600160a060020a039081169116146101b957600080fd5b6001555600a165627a7a72305820c8b8a83915ee5145b873bfac69f34b3cf8c9d1f8643c8491b4309b5fa6f5399d0029", + "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556101ea8061003b6000396000f3006060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f0108114610066578063445df0ac146100875780638da5cb5b146100ac578063fdacd576146100db575b600080fd5b341561007157600080fd5b610085600160a060020a03600435166100f1565b005b341561009257600080fd5b61009a610189565b60405190815260200160405180910390f35b34156100b757600080fd5b6100bf61018f565b604051600160a060020a03909116815260200160405180910390f35b34156100e657600080fd5b61008560043561019e565b6000805433600160a060020a0390811691161461010d57600080fd5b81905080600160a060020a031663fdacd5766001546040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401600060405180830381600087803b151561017157600080fd5b6102c65a03f1151561018257600080fd5b5050505050565b60015481565b600054600160a060020a031681565b60005433600160a060020a039081169116146101b957600080fd5b6001555600a165627a7a72305820873162a444c51cfe915a6e59b9a67e8b62ac17c0915b6201e62876c3a396cd960029", + "deployedBytecode": "0x6060604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630900f0108114610066578063445df0ac146100875780638da5cb5b146100ac578063fdacd576146100db575b600080fd5b341561007157600080fd5b610085600160a060020a03600435166100f1565b005b341561009257600080fd5b61009a610189565b60405190815260200160405180910390f35b34156100b757600080fd5b6100bf61018f565b604051600160a060020a03909116815260200160405180910390f35b34156100e657600080fd5b61008560043561019e565b6000805433600160a060020a0390811691161461010d57600080fd5b81905080600160a060020a031663fdacd5766001546040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401600060405180830381600087803b151561017157600080fd5b6102c65a03f1151561018257600080fd5b5050505050565b60015481565b600054600160a060020a031681565b60005433600160a060020a039081169116146101b957600080fd5b6001555600a165627a7a72305820873162a444c51cfe915a6e59b9a67e8b62ac17c0915b6201e62876c3a396cd960029", "sourceMap": "26:542:2:-;;;206:64;;;;;;;;245:5;:18;;-1:-1:-1;;;;;253:10:2;245:18;-1:-1:-1;;;;;;245:18:2;;;;;;26:542;;;;;;", "deployedSourceMap": "26:542:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;391:175;;;;;;;;;;-1:-1:-1;;;;;391:175:2;;;;;;;78:36;;;;;;;;;;;;;;;;;;;;;;;;;;;52:20;;;;;;;;;;;;;;;-1:-1:-1;;;;;52:20:2;;;;;;;;;;;;;;276:109;;;;;;;;;;;;;;391:175;457:19;176:5;;162:10;-1:-1:-1;;;;;162:19:2;;;176:5;;162:19;153:29;;;;;;490:11;457:45;;512:8;-1:-1:-1;;;;;512:21:2;;534:24;;512:47;;;;;;;;;;;;;;;;;;-1:-1:-1;512:47:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;391:175;;:::o;78:36::-;;;;:::o;52:20::-;;;-1:-1:-1;;;;;52:20:2;;:::o;276:109::-;176:5;;162:10;-1:-1:-1;;;;;162:19:2;;;176:5;;162:19;153:29;;;;;;342:24;:36;276:109::o", "source": "pragma solidity ^0.4.18;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n require (msg.sender == owner);\n _;\n }\n\n function Migrations() 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": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Migrations.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Migrations.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Migrations.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ 1346 @@ -853,5 +853,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T07:00:11.134Z" + "updatedAt": "2018-02-25T12:54:40.695Z" } \ No newline at end of file diff --git a/build/contracts/NameSpaceRegistrar.json b/build/contracts/NameSpaceRegistrar.json index 1fb7bee..85e42a7 100644 --- a/build/contracts/NameSpaceRegistrar.json +++ b/build/contracts/NameSpaceRegistrar.json @@ -202,15 +202,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000083565b5034156200005a57600080fd5b600160a060020a0333166000908152600660205260409020805460ff1916600117905562000128565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000c657805160ff1916838001178555620000f6565b82800160010185558215620000f6579182015b82811115620000f6578251825591602001919060010190620000d9565b506200010492915062000108565b5090565b6200012591905b808211156200010457600081556001016200010f565b90565b61120580620001386000396000f3006060604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663429b62e5811461007c5780635009c296146100af57806398b130eb14610223578063a1884512146102d8578063dc11a496146103fc578063ffa1ad7414610420575b600080fd5b341561008757600080fd5b61009b600160a060020a03600435166104aa565b604051901515815260200160405180910390f35b34156100ba57600080fd5b61014260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506104bf95505050505050565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561018357808201518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156101e65780820151838201526020016101ce565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561022e57600080fd5b6102b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506107a295505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156102e357600080fd5b6103fa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061094c915050565b005b341561040757600080fd5b6103fa600160a060020a03600435166024351515611008565b341561042b57600080fd5b61043361108e565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f578082015183820152602001610457565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60066020526000908152604090205460ff1681565b6104c761112c565b6104cf61112c565b6003846040518082805190602001908083835b602083106105015780518252601f1990920191602091820191016104e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b602083106105645780518252601f199092019160209182019101610545565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206003856040518082805190602001908083835b602083106105c95780518252601f1990920191602091820191016105aa565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061062c5780518252601f19909201916020918201910161060d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106f45780601f106106c9576101008083540402835291602001916106f4565b820191906000526020600020905b8154815290600101906020018083116106d757829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107905780601f1061076557610100808354040283529160200191610790565b820191906000526020600020905b81548152906001019060200180831161077357829003601f168201915b50505050509050915091509250929050565b6000806001846040518082805190602001908083835b602083106107d75780518252601f1990920191602091820191016107b8565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b6020831061083a5780518252601f19909201916020918201910161081b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166002856040518082805190602001908083835b602083106108aa5780518252601f19909201916020918201910161088b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061090d5780518252601f1990920191602091820191016108ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915091509250929050565b600160a060020a03331660009081526006602052604090205460ff16151561097357600080fd5b600160a060020a03811660009081526005602052604090205460ff161561099957600080fd5b60006001866040518082805190602001908083835b602083106109cd5780518252601f1990920191602091820191016109ae565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610a305780518252601f199092019160209182019101610a11565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031614610a7857600080fd5b600160a060020a03811660009081526005602052604090819020805460ff1916600190811790915582918790518082805190602001908083835b60208310610ad15780518252601f199092019160209182019101610ab2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610b345780518252601f199092019160209182019101610b15565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055826003866040518082805190602001908083835b60208310610bc65780518252601f199092019160209182019101610ba7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610c295780518252601f199092019160209182019101610c0a565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610c6d92916020019061113e565b50816004866040518082805190602001908083835b60208310610ca15780518252601f199092019160209182019101610c82565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610d045780518252601f199092019160209182019101610ce5565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610d4892916020019061113e565b50426002866040518082805190602001908083835b60208310610d7c5780518252601f199092019160209182019101610d5d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610ddf5780518252601f199092019160209182019101610dc0565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902055600160a060020a033381169082167fa538b1c2422f53170cd65d656c3b67a4ce1b02ab92673fddd6c553f583e8a4428787878742604051808060200180602001806020018060200186815260200185810385528a818151815260200191508051906020019080838360005b83811015610e97578082015183820152602001610e7f565b50505050905090810190601f168015610ec45780820380516001836020036101000a031916815260200191505b50858103845289818151815260200191508051906020019080838360005b83811015610efa578082015183820152602001610ee2565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b50858103835288818151815260200191508051906020019080838360005b83811015610f5d578082015183820152602001610f45565b50505050905090810190601f168015610f8a5780820380516001836020036101000a031916815260200191505b50858103825287818151815260200191508051906020019080838360005b83811015610fc0578082015183820152602001610fa8565b50505050905090810190601f168015610fed5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a35050505050565b600160a060020a03331660009081526006602052604090205460ff16151561102f57600080fd5b600160a060020a03821660008181526006602052604090819020805460ff19168415151790557faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f90839051901515815260200160405180910390a25050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111245780601f106110f957610100808354040283529160200191611124565b820191906000526020600020905b81548152906001019060200180831161110757829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061117f57805160ff19168380011785556111ac565b828001600101855582156111ac579182015b828111156111ac578251825591602001919060010190611191565b506111b89291506111bc565b5090565b6111d691905b808211156111b857600081556001016111c2565b905600a165627a7a723058207e19168d24a9af98edd5f7e03db82720a11f9e788a218d0a7259068980b6bf850029", - "deployedBytecode": "0x6060604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663429b62e5811461007c5780635009c296146100af57806398b130eb14610223578063a1884512146102d8578063dc11a496146103fc578063ffa1ad7414610420575b600080fd5b341561008757600080fd5b61009b600160a060020a03600435166104aa565b604051901515815260200160405180910390f35b34156100ba57600080fd5b61014260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506104bf95505050505050565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561018357808201518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156101e65780820151838201526020016101ce565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561022e57600080fd5b6102b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506107a295505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156102e357600080fd5b6103fa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061094c915050565b005b341561040757600080fd5b6103fa600160a060020a03600435166024351515611008565b341561042b57600080fd5b61043361108e565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f578082015183820152602001610457565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60066020526000908152604090205460ff1681565b6104c761112c565b6104cf61112c565b6003846040518082805190602001908083835b602083106105015780518252601f1990920191602091820191016104e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b602083106105645780518252601f199092019160209182019101610545565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206003856040518082805190602001908083835b602083106105c95780518252601f1990920191602091820191016105aa565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061062c5780518252601f19909201916020918201910161060d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106f45780601f106106c9576101008083540402835291602001916106f4565b820191906000526020600020905b8154815290600101906020018083116106d757829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107905780601f1061076557610100808354040283529160200191610790565b820191906000526020600020905b81548152906001019060200180831161077357829003601f168201915b50505050509050915091509250929050565b6000806001846040518082805190602001908083835b602083106107d75780518252601f1990920191602091820191016107b8565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b6020831061083a5780518252601f19909201916020918201910161081b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166002856040518082805190602001908083835b602083106108aa5780518252601f19909201916020918201910161088b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061090d5780518252601f1990920191602091820191016108ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915091509250929050565b600160a060020a03331660009081526006602052604090205460ff16151561097357600080fd5b600160a060020a03811660009081526005602052604090205460ff161561099957600080fd5b60006001866040518082805190602001908083835b602083106109cd5780518252601f1990920191602091820191016109ae565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610a305780518252601f199092019160209182019101610a11565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031614610a7857600080fd5b600160a060020a03811660009081526005602052604090819020805460ff1916600190811790915582918790518082805190602001908083835b60208310610ad15780518252601f199092019160209182019101610ab2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610b345780518252601f199092019160209182019101610b15565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055826003866040518082805190602001908083835b60208310610bc65780518252601f199092019160209182019101610ba7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610c295780518252601f199092019160209182019101610c0a565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610c6d92916020019061113e565b50816004866040518082805190602001908083835b60208310610ca15780518252601f199092019160209182019101610c82565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610d045780518252601f199092019160209182019101610ce5565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610d4892916020019061113e565b50426002866040518082805190602001908083835b60208310610d7c5780518252601f199092019160209182019101610d5d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610ddf5780518252601f199092019160209182019101610dc0565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902055600160a060020a033381169082167fa538b1c2422f53170cd65d656c3b67a4ce1b02ab92673fddd6c553f583e8a4428787878742604051808060200180602001806020018060200186815260200185810385528a818151815260200191508051906020019080838360005b83811015610e97578082015183820152602001610e7f565b50505050905090810190601f168015610ec45780820380516001836020036101000a031916815260200191505b50858103845289818151815260200191508051906020019080838360005b83811015610efa578082015183820152602001610ee2565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b50858103835288818151815260200191508051906020019080838360005b83811015610f5d578082015183820152602001610f45565b50505050905090810190601f168015610f8a5780820380516001836020036101000a031916815260200191505b50858103825287818151815260200191508051906020019080838360005b83811015610fc0578082015183820152602001610fa8565b50505050905090810190601f168015610fed5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a35050505050565b600160a060020a03331660009081526006602052604090205460ff16151561102f57600080fd5b600160a060020a03821660008181526006602052604090819020805460ff19168415151790557faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f90839051901515815260200160405180910390a25050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111245780601f106110f957610100808354040283529160200191611124565b820191906000526020600020905b81548152906001019060200180831161110757829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061117f57805160ff19168380011785556111ac565b828001600101855582156111ac579182015b828111156111ac578251825591602001919060010190611191565b506111b89291506111bc565b5090565b6111d691905b808211156111b857600081556001016111c2565b905600a165627a7a723058207e19168d24a9af98edd5f7e03db82720a11f9e788a218d0a7259068980b6bf850029", + "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000083565b5034156200005a57600080fd5b600160a060020a0333166000908152600660205260409020805460ff1916600117905562000128565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000c657805160ff1916838001178555620000f6565b82800160010185558215620000f6579182015b82811115620000f6578251825591602001919060010190620000d9565b506200010492915062000108565b5090565b6200012591905b808211156200010457600081556001016200010f565b90565b61120580620001386000396000f3006060604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663429b62e5811461007c5780635009c296146100af57806398b130eb14610223578063a1884512146102d8578063dc11a496146103fc578063ffa1ad7414610420575b600080fd5b341561008757600080fd5b61009b600160a060020a03600435166104aa565b604051901515815260200160405180910390f35b34156100ba57600080fd5b61014260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506104bf95505050505050565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561018357808201518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156101e65780820151838201526020016101ce565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561022e57600080fd5b6102b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506107a295505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156102e357600080fd5b6103fa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061094c915050565b005b341561040757600080fd5b6103fa600160a060020a03600435166024351515611008565b341561042b57600080fd5b61043361108e565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f578082015183820152602001610457565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60066020526000908152604090205460ff1681565b6104c761112c565b6104cf61112c565b6003846040518082805190602001908083835b602083106105015780518252601f1990920191602091820191016104e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b602083106105645780518252601f199092019160209182019101610545565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206003856040518082805190602001908083835b602083106105c95780518252601f1990920191602091820191016105aa565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061062c5780518252601f19909201916020918201910161060d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106f45780601f106106c9576101008083540402835291602001916106f4565b820191906000526020600020905b8154815290600101906020018083116106d757829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107905780601f1061076557610100808354040283529160200191610790565b820191906000526020600020905b81548152906001019060200180831161077357829003601f168201915b50505050509050915091509250929050565b6000806001846040518082805190602001908083835b602083106107d75780518252601f1990920191602091820191016107b8565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b6020831061083a5780518252601f19909201916020918201910161081b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166002856040518082805190602001908083835b602083106108aa5780518252601f19909201916020918201910161088b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061090d5780518252601f1990920191602091820191016108ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915091509250929050565b600160a060020a03331660009081526006602052604090205460ff16151561097357600080fd5b600160a060020a03811660009081526005602052604090205460ff161561099957600080fd5b60006001866040518082805190602001908083835b602083106109cd5780518252601f1990920191602091820191016109ae565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610a305780518252601f199092019160209182019101610a11565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031614610a7857600080fd5b600160a060020a03811660009081526005602052604090819020805460ff1916600190811790915582918790518082805190602001908083835b60208310610ad15780518252601f199092019160209182019101610ab2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610b345780518252601f199092019160209182019101610b15565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055826003866040518082805190602001908083835b60208310610bc65780518252601f199092019160209182019101610ba7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610c295780518252601f199092019160209182019101610c0a565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610c6d92916020019061113e565b50816004866040518082805190602001908083835b60208310610ca15780518252601f199092019160209182019101610c82565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610d045780518252601f199092019160209182019101610ce5565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610d4892916020019061113e565b50426002866040518082805190602001908083835b60208310610d7c5780518252601f199092019160209182019101610d5d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610ddf5780518252601f199092019160209182019101610dc0565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902055600160a060020a033381169082167fa538b1c2422f53170cd65d656c3b67a4ce1b02ab92673fddd6c553f583e8a4428787878742604051808060200180602001806020018060200186815260200185810385528a818151815260200191508051906020019080838360005b83811015610e97578082015183820152602001610e7f565b50505050905090810190601f168015610ec45780820380516001836020036101000a031916815260200191505b50858103845289818151815260200191508051906020019080838360005b83811015610efa578082015183820152602001610ee2565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b50858103835288818151815260200191508051906020019080838360005b83811015610f5d578082015183820152602001610f45565b50505050905090810190601f168015610f8a5780820380516001836020036101000a031916815260200191505b50858103825287818151815260200191508051906020019080838360005b83811015610fc0578082015183820152602001610fa8565b50505050905090810190601f168015610fed5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a35050505050565b600160a060020a03331660009081526006602052604090205460ff16151561102f57600080fd5b600160a060020a03821660008181526006602052604090819020805460ff19168415151790557faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f90839051901515815260200160405180910390a25050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111245780601f106110f957610100808354040283529160200191611124565b820191906000526020600020905b81548152906001019060200180831161110757829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061117f57805160ff19168380011785556111ac565b828001600101855582156111ac579182015b828111156111ac578251825591602001919060010190611191565b506111b89291506111bc565b5090565b6111d691905b808211156111b857600081556001016111c2565b905600a165627a7a723058209bf5115712db73b72336c7be91097ed751577f710459b5e426662562fd8fa71b0029", + "deployedBytecode": "0x6060604052600436106100775763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663429b62e5811461007c5780635009c296146100af57806398b130eb14610223578063a1884512146102d8578063dc11a496146103fc578063ffa1ad7414610420575b600080fd5b341561008757600080fd5b61009b600160a060020a03600435166104aa565b604051901515815260200160405180910390f35b34156100ba57600080fd5b61014260046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506104bf95505050505050565b604051808060200180602001838103835285818151815260200191508051906020019080838360005b8381101561018357808201518382015260200161016b565b50505050905090810190601f1680156101b05780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b838110156101e65780820151838201526020016101ce565b50505050905090810190601f1680156102135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b341561022e57600080fd5b6102b660046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f0160208091040260200160405190810160405281815292919060208401838380828437509496506107a295505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156102e357600080fd5b6103fa60046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965050509235600160a060020a0316925061094c915050565b005b341561040757600080fd5b6103fa600160a060020a03600435166024351515611008565b341561042b57600080fd5b61043361108e565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561046f578082015183820152602001610457565b50505050905090810190601f16801561049c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60066020526000908152604090205460ff1681565b6104c761112c565b6104cf61112c565b6003846040518082805190602001908083835b602083106105015780518252601f1990920191602091820191016104e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b602083106105645780518252601f199092019160209182019101610545565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206003856040518082805190602001908083835b602083106105c95780518252601f1990920191602091820191016105aa565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061062c5780518252601f19909201916020918201910161060d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020818054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106f45780601f106106c9576101008083540402835291602001916106f4565b820191906000526020600020905b8154815290600101906020018083116106d757829003601f168201915b50505050509150808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107905780601f1061076557610100808354040283529160200191610790565b820191906000526020600020905b81548152906001019060200180831161077357829003601f168201915b50505050509050915091509250929050565b6000806001846040518082805190602001908083835b602083106107d75780518252601f1990920191602091820191016107b8565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b6020831061083a5780518252601f19909201916020918201910161081b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166002856040518082805190602001908083835b602083106108aa5780518252601f19909201916020918201910161088b565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061090d5780518252601f1990920191602091820191016108ee565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915091509250929050565b600160a060020a03331660009081526006602052604090205460ff16151561097357600080fd5b600160a060020a03811660009081526005602052604090205460ff161561099957600080fd5b60006001866040518082805190602001908083835b602083106109cd5780518252601f1990920191602091820191016109ae565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610a305780518252601f199092019160209182019101610a11565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031614610a7857600080fd5b600160a060020a03811660009081526005602052604090819020805460ff1916600190811790915582918790518082805190602001908083835b60208310610ad15780518252601f199092019160209182019101610ab2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610b345780518252601f199092019160209182019101610b15565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055826003866040518082805190602001908083835b60208310610bc65780518252601f199092019160209182019101610ba7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610c295780518252601f199092019160209182019101610c0a565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610c6d92916020019061113e565b50816004866040518082805190602001908083835b60208310610ca15780518252601f199092019160209182019101610c82565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610d045780518252601f199092019160209182019101610ce5565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051610d4892916020019061113e565b50426002866040518082805190602001908083835b60208310610d7c5780518252601f199092019160209182019101610d5d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020856040518082805190602001908083835b60208310610ddf5780518252601f199092019160209182019101610dc0565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902055600160a060020a033381169082167fa538b1c2422f53170cd65d656c3b67a4ce1b02ab92673fddd6c553f583e8a4428787878742604051808060200180602001806020018060200186815260200185810385528a818151815260200191508051906020019080838360005b83811015610e97578082015183820152602001610e7f565b50505050905090810190601f168015610ec45780820380516001836020036101000a031916815260200191505b50858103845289818151815260200191508051906020019080838360005b83811015610efa578082015183820152602001610ee2565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b50858103835288818151815260200191508051906020019080838360005b83811015610f5d578082015183820152602001610f45565b50505050905090810190601f168015610f8a5780820380516001836020036101000a031916815260200191505b50858103825287818151815260200191508051906020019080838360005b83811015610fc0578082015183820152602001610fa8565b50505050905090810190601f168015610fed5780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390a35050505050565b600160a060020a03331660009081526006602052604090205460ff16151561102f57600080fd5b600160a060020a03821660008181526006602052604090819020805460ff19168415151790557faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f90839051901515815260200160405180910390a25050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111245780601f106110f957610100808354040283529160200191611124565b820191906000526020600020905b81548152906001019060200180831161110757829003601f168201915b505050505081565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061117f57805160ff19168380011785556111ac565b828001600101855582156111ac579182015b828111156111ac578251825591602001919060010190611191565b506111b89291506111bc565b5090565b6111d691905b808211156111b857600081556001016111c2565b905600a165627a7a723058209bf5115712db73b72336c7be91097ed751577f710459b5e426662562fd8fa71b0029", "sourceMap": "399:3382:3:-;;;434:27;;;;;;;;;;;;;;;;-1:-1:-1;;434:27:3;;;;;;;;;:::i;:::-;;1781:81;;;;;;;;-1:-1:-1;;;;;1837:10:3;1830:18;;;;;:6;:18;;;;;:25;;-1:-1:-1;;1830:25:3;1851:4;1830:25;;;399:3382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;399:3382:3;;;-1:-1:-1;399:3382:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "399:3382:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:39;;;;;;;;;;-1:-1:-1;;;;;1231:39:3;;;;;;;;;;;;;;;;;;;;;;3580:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3580:198:3;;-1:-1:-1;3580:198:3;;-1:-1:-1;;;;;;3580:198:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3168:188:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3168:188:3;;-1:-1:-1;3168:188:3;;-1:-1:-1;;;;;;3168:188:3;;;;-1:-1:-1;;;;;3168:188:3;;;;;;;;;;;;;;;;;;;;2379:580;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2379:580:3;;-1:-1:-1;;;2379:580:3;;-1:-1:-1;;;;;2379:580:3;;-1:-1:-1;2379:580:3;;-1:-1:-1;;2379:580:3;;;2046:140;;;;;;;;;;-1:-1:-1;;;;;2046:140:3;;;;;;;;;434:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1231:39:3;;;;;;;;;;;;;;;:::o;3580:198::-;3660:6;;:::i;:::-;3668;;:::i;:::-;3692:17;3710:10;3692:29;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;3722:7:3;3692:38;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;3732:17:3;3750:10;3732:29;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;3762:7:3;3732:38;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;3684:87:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3580:198;;;;;:::o;3168:188::-;3244:7;3253;3278:11;3290:10;3278:23;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;3302:7:3;3278:32;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;;;;3:399;3312:15:3;3328:10;3312:27;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;3340:7:3;3312:36;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;3270:79:3;;;;3168:188;;;;;:::o;2379:580::-;-1:-1:-1;;;;;1648:10:3;1641:18;;;;;:6;:18;;;;;;;;1633:27;;;;;;;;-1:-1:-1;;;;;2525:21:3;;;;;;:13;:21;;;;;;;;2524:22;2516:31;;;;;;2607:1;2563:11;2575:10;2563:23;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2587:7:3;2563:32;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;;;;3:399;2563:46:3;2555:55;;;;;;-1:-1:-1;;;;;2618:21:3;;;;;;:13;:21;;;;;;;:28;;-1:-1:-1;;2618:28:3;2642:4;2618:28;;;;;;2632:6;;2666:10;;2654:23;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2678:7:3;2654:32;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;2654:41:3;;-1:-1:-1;;2654:41:3;-1:-1:-1;;;;;2654:41:3;;;;;;;;;;2744:12;2703:17;2721:10;2703:29;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2733:7:3;2703:38;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2703:53:3;;;;;;;;;;:::i;:::-;;2801:8;2764:13;2778:10;2764:25;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2790:7:3;2764:34;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2764:45:3;;;;;;;;;;:::i;:::-;;2856:3;2817:15;2833:10;2817:27;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;2845:7:3;2817:36;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;2817:42:3;-1:-1:-1;;;;;2936:10:3;2867:85;;;;;;2883:10;2895:7;2904:12;2918:8;2948:3;2867:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:580:3;;;;;:::o;2046:140::-;-1:-1:-1;;;;;1648:10:3;1641:18;;;;;:6;:18;;;;;;;;1633:27;;;;;;;;-1:-1:-1;;;;;2121:14:3;;;;;;:6;:14;;;;;;;:23;;-1:-1:-1;;2121:23:3;;;;;;;2152:27;;2121:23;;2152:27;;;;;;;;;;;;;;;2046:140;;:::o;434:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;399:3382::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;399:3382:3;;;-1:-1:-1;399:3382:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.18;\n\n/*\n Allows issuers to reserve their token symbols under a given namespace ahead\n of actually generating their security token.\n SecurityTokenRegistrar would reference this contract and ensure that any token symbols\n registered here can only be created by their owner.\n*/\n\n/**\n * @title NameSpaceRegistrar\n * @dev Contract use to register the security token symbols\n */\n\ncontract NameSpaceRegistrar {\n\n string public VERSION = \"2\";\n\n mapping (string => mapping (string => address)) symbolOwner; //Maps namespaces to token symbols to owner address\n mapping (string => mapping (string => uint256)) symbolTimestamp; //Maps namespaces to token symbols to registration timestamp\n mapping (string => mapping (string => string)) symbolDescription; //Maps token symbols to their description - this is only used internally within this contract\n mapping (string => mapping (string => string)) symbolContact; //Maps token symbols to their contact details - this is only used internally within this contract\n mapping (address => bool) hasRegistered; //Tracks addresses that have registered tokens, only allow one registration per address\n mapping (address => bool) public admins; //Track valid admin addresses\n\n event AdminChange(address indexed _admin, bool _valid);\n event RegisteredToken(string _nameSpace, string _symbol, string _description, string _contact, address indexed _owner, address indexed _admin, uint256 _timestamp);\n\n // Check that msg.sender is an admin\n modifier onlyAdmin {\n require(admins[msg.sender]);\n _;\n }\n\n /**\n * @dev Constructor - sets the admin\n * the creation of the security token\n */\n function NameSpaceRegistrar() public\n {\n admins[msg.sender] = true;\n }\n\n /**\n * @dev allows the admin address to set a new admin\n * @param _admin admin address\n * @param _valid bool to indicate whether admin address is allowed\n */\n function changeAdmin(address _admin, bool _valid) onlyAdmin public {\n admins[_admin] = _valid;\n AdminChange(_admin, _valid);\n }\n\n /**\n * @dev Registers a new token symbol and owner against a specific namespace\n * @param _nameSpace namespace\n * @param _symbol symbol\n * @param _owner owner\n */\n function registerToken(string _nameSpace, string _symbol, string _description, string _contact, address _owner) onlyAdmin public {\n require(!hasRegistered[_owner]);\n require(symbolOwner[_nameSpace][_symbol] == address(0));\n hasRegistered[_owner] = true;\n symbolOwner[_nameSpace][_symbol] = _owner;\n symbolDescription[_nameSpace][_symbol] = _description;\n symbolContact[_nameSpace][_symbol] = _contact;\n symbolTimestamp[_nameSpace][_symbol] = now;\n RegisteredToken(_nameSpace, _symbol, _description, _contact, _owner, msg.sender, now);\n }\n\n /**\n * @dev Returns the owner and timestamp for a given symbol, under a given namespace - can be called by other contracts\n * @param _nameSpace namespace\n * @param _symbol symbol\n */\n function getDetails(string _nameSpace, string _symbol) view public returns (address, uint256) {\n return (symbolOwner[_nameSpace][_symbol], symbolTimestamp[_nameSpace][_symbol]);\n }\n\n /**\n * @dev Returns the description and contact details for a given symbol, under a given namespace - cannot be called by other contracts\n * @param _nameSpace namespace\n * @param _symbol symbol\n */\n function getDescription(string _nameSpace, string _symbol) view public returns (string, string) {\n return (symbolDescription[_nameSpace][_symbol], symbolDescription[_nameSpace][_symbol]);\n }\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/NameSpaceRegistrar.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/NameSpaceRegistrar.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/NameSpaceRegistrar.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/NameSpaceRegistrar.sol", "exportedSymbols": { "NameSpaceRegistrar": [ 1581 @@ -3336,5 +3336,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T07:00:11.137Z" + "updatedAt": "2018-02-25T12:54:40.708Z" } \ No newline at end of file diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json index 59011f4..fbc2e74 100644 --- a/build/contracts/SafeMath.json +++ b/build/contracts/SafeMath.json @@ -1,15 +1,15 @@ { "contractName": "SafeMath", "abi": [], - "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a72305820509bc17b41c0ac8691b3449b7ac0a7d57dffb2c7a171122fd03ffc9a16a753030029", - "deployedBytecode": "0x6060604052600080fd00a165627a7a72305820509bc17b41c0ac8691b3449b7ac0a7d57dffb2c7a171122fd03ffc9a16a753030029", + "bytecode": "0x60606040523415600e57600080fd5b603580601b6000396000f3006060604052600080fd00a165627a7a723058206a7f69c2bbeb2cda8d0b61abae83b5158beb844a111c97e4c63203015c811d980029", + "deployedBytecode": "0x6060604052600080fd00a165627a7a723058206a7f69c2bbeb2cda8d0b61abae83b5158beb844a111c97e4c63203015c811d980029", "sourceMap": "282:1192:6:-;;;;;;;;;;;;;;;;;", "deployedSourceMap": "282:1192:6:-;;;;;", "source": "pragma solidity ^0.4.18;\n\n/**\n * SafeMath \n * Copyright (c) 2016 Smart Contract Solutions, Inc.\n * Released under the MIT License (MIT)\n */\n\n/// @title Math operations with safety checks\nlibrary SafeMath {\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a * b;\n assert(a == 0 || c / a == b);\n return c;\n }\n\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n // assert(b > 0); // Solidity automatically throws when dividing by 0\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n return c;\n }\n\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n assert(b <= a);\n return a - b;\n }\n\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n assert(c >= a);\n return c;\n }\n\n function max64(uint64 a, uint64 b) internal pure returns (uint64) {\n return a >= b ? a : b;\n }\n\n function min64(uint64 a, uint64 b) internal pure returns (uint64) {\n return a < b ? a : b;\n }\n\n function max256(uint256 a, uint256 b) internal pure returns (uint256) {\n return a >= b ? a : b;\n }\n\n function min256(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SafeMath.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SafeMath.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SafeMath.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SafeMath.sol", "exportedSymbols": { "SafeMath": [ 2109 @@ -2203,5 +2203,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.687Z" + "updatedAt": "2018-02-25T12:43:54.363Z" } \ No newline at end of file diff --git a/build/contracts/SecurityToken.json b/build/contracts/SecurityToken.json index 3225f11..03c5436 100644 --- a/build/contracts/SecurityToken.json +++ b/build/contracts/SecurityToken.json @@ -1039,15 +1039,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001af565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002a8338038062002a838339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff8916179055915060079050888051620000e4929160200190620001af565b506008878051620000fa929160200190620001af565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a3505050505050505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000222565b8280016001018555821562000222579182015b828111156200022257825182559160200191906001019062000205565b506200023092915062000234565b5090565b6200025191905b808211156200023057600081556001016200023b565b90565b61281f80620002646000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c43d623d5b873c7c137b14e8b3a0cd037c0d1aec715e7b567ac3af4e187211a80029", - "deployedBytecode": "0x6060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c43d623d5b873c7c137b14e8b3a0cd037c0d1aec715e7b567ac3af4e187211a80029", + "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001af565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002a8338038062002a838339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff8916179055915060079050888051620000e4929160200190620001af565b506008878051620000fa929160200190620001af565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a3505050505050505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000222565b8280016001018555821562000222579182015b828111156200022257825182559160200191906001019062000205565b506200023092915062000234565b5090565b6200025191905b808211156200023057600081556001016200023b565b90565b61281f80620002646000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820eb3e44f2eb473cdb89eeaa4d69a11e29a7b6c66288a1aa990525e6f45a329ec50029", + "deployedBytecode": "0x6060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820eb3e44f2eb473cdb89eeaa4d69a11e29a7b6c66288a1aa990525e6f45a329ec50029", "sourceMap": "406:19927:7:-;;;495:27;;;;;;;;;;;;;;;;-1:-1:-1;;495:27:7;;;;;;;;;:::i;:::-;-1:-1:-1;3044:40:7;;;-1:-1:-1;;3090:33:7;;;3079:5;3129:38;;;;4037:33;;5990:673;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6279:8;:20;;-1:-1:-1;;6279:20:7;;;;;;;5990:673;-1:-1:-1;6309:4:7;;-1:-1:-1;6316:5:7;;6309:12;;;;;;;;:::i;:::-;-1:-1:-1;6331:6:7;6340:7;;6331:16;;;;;;;;:::i;:::-;-1:-1:-1;6357:5:7;:14;;-1:-1:-1;;;;;;6357:14:7;;-1:-1:-1;;;;;6357:14:7;;;;;;;;;;;;;6381:11;:26;;;-1:-1:-1;6417:16:7;;;:8;:16;;;;;;:31;;;-1:-1:-1;6458:32:7;;-1:-1:-1;;;;;;6458:32:7;;;;;;;;;;6500:13;:49;;;;;;;;;;6559:14;:52;;;;;;;;;;;;;;;-1:-1:-1;6621:35:7;;6381:26;;6621:35;;;;;;;;;;;;;5990:673;;;;;;;;406:19927;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;406:19927:7;;;-1:-1:-1;406:19927:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "406:19927:7:-;;;;;;;;-1:-1:-1;;;406:19927:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19522:205:7;;;;;;;;;;;;-1:-1:-1;;;;;19522:205:7;;;;;;;;;;;;;;;;;;;;;;6862:797;;;;;;;;;;;;;;;;20161:86;;;;;;;;;;;;;;;;;;;;;;;;;;;3044:40;;;;;;;;;;;;9867:1080;;;;;;;;;;;;;;;;;;;;;;;;;;18400:604;;;;;;;;;;-1:-1:-1;;;;;18400:604:7;;;;;;;;;;;;13002:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13002:247:7;;-1:-1:-1;13002:247:7;;-1:-1:-1;;;;;;13002:247:7;2294:25;;;;;;;;;;;;20253:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15633:1479;;;;;;;;;;;;-1:-1:-1;;;;;15633:1479:7;;;;;;;12496:287;;;;;;;;;;;;-1:-1:-1;;;;;12496:287:7;;;4037:33;;;;;;;;;;;;3895:51;;;;;;;;;;;;-1:-1:-1;;;;;3895:51:7;;;3690:49;;;;;;;;;;;;-1:-1:-1;;;;;3690:49:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13411:234;;;;;;;;;;;;2878:51;;;;;;;;;;;;-1:-1:-1;;;;;2878:51:7;;;;;;-1:-1:-1;;;;;2878:51:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19191:117;;;;;;;;;;;;-1:-1:-1;;;;;19191:117:7;;;14403:908;;;;;;;;;;;;-1:-1:-1;;;;;14403:908:7;;;12063:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12063:247:7;;-1:-1:-1;12063:247:7;;-1:-1:-1;;;;;;12063:247:7;749:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;749:25:7;;;;;;;;;;;;;;;1540:20;;;;;;;;;;;;3595:57;;;;;;;;;;-1:-1:-1;;;;;3595:57:7;;;;;;;;;;1306:20;;;;;;;;;;;;2135:18;;;;;;;;;;;;8390:932;;;;;;;;;;;;;;;;3090:33;;;;;;;;;;;;1077:31;;;;;;;;;;;;17685:444;;;;;;;;;;;;-1:-1:-1;;;;;17685:444:7;;;;;964:23;;;;;;;;;;;;7890:277;;;;;;;;;;;;;;;;2030:23;;;;;;;;;;;;3129:38;;;;;;;;;;;;639:33;;;;;;;;;;;;20009:146;;;;;;;;;;-1:-1:-1;;;;;20009:146:7;;;;;;;;;;857:39;;;;;;;;;;;;11324:537;;;;;;;;;;;;-1:-1:-1;;;;;11324:537:7;;;529:18;;;;;;;;;;;;13807:419;;;;;;;;;;;;17143:190;;;;;;;;;;;;;;;-1:-1:-1;;;;;17143:190:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17143:190:7;;;;;;;;;;;;495:27;;;;;;;;;;;;1206:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19522:205::-;-1:-1:-1;;;;;19621:10:7;19613:19;;19589:12;19613:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;:38;;;19589:12;;19613:29;:19;19661:38;;19613;;19661;;;;;;;;;;;;;-1:-1:-1;19716:4:7;19522:205;;;;;:::o;6862:797::-;5020:5;;6934:12;;;;;;;;;;;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;6967:13;;;;;;;6966:14;6958:23;;;;;;6991:13;:20;;-1:-1:-1;;6991:20:7;;;;;7050:14;;-1:-1:-1;;;;;7050:14:7;:36;7087:4;7093:14;-1:-1:-1;7050:58:7;;;;;;;;;;-1:-1:-1;;;7050:58:7;;;-1:-1:-1;;;;;7050:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;7127:22:7;;;;7119:31;;;;;;7160:8;:30;;-1:-1:-1;;;;;;7160:30:7;-1:-1:-1;;;;;7160:30:7;;;;;;;;;;;7255:8;:24;-1:-1:-1;7255:26:7;;;;;;;-1:-1:-1;;;7255:26:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7299:4;;7200:81;;-1:-1:-1;7200:81:7;;-1:-1:-1;7200:81:7;;-1:-1:-1;7200:81:7;-1:-1:-1;7200:81:7;;-1:-1:-1;7200:81:7;;-1:-1:-1;;;;;7299:4:7;;-1:-1:-1;7299:14:7;7314:4;7299;:20;;;;;;;;;;-1:-1:-1;;;7299:20:7;;;-1:-1:-1;;;;;7299:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;7291:37;;;;;;;;7363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7363:54:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7338:22:7;;;;:11;:22;;;;7363:54;7338:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7338:79:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7338:79:7;;;;;;;;;-1:-1:-1;7444:14:7;;:24;;7463:4;7444:24;:18;:24;:::i;:::-;7427:14;:41;7478:8;:20;;-1:-1:-1;;;;;7478:20:7;;;-1:-1:-1;;;;;;7478:20:7;;;;;;;7508:3;:10;;;;;;;;;;;;;-1:-1:-1;7528:14:7;;:39;7568:8;-1:-1:-1;;7528:52:7;;;;;;;;;;-1:-1:-1;;;7528:52:7;;;-1:-1:-1;;;;;7528:52:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;7590:41:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7648:4:7;;6862:797;-1:-1:-1;;;;;;;6862:797:7:o;20161:86::-;20229:11;;20161:86;:::o;3044:40::-;;;;;;:::o;9867:1080::-;5020:5;;10041:12;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;10073:20;;;;10065:29;;;;;;;;10112:8;;-1:-1:-1;;;;;10112:8:7;:22;10104:31;;;;;;10145:19;:32;;;10208:3;10195:16;;:41;;;;;10226:10;10215:8;:21;10195:41;10187:50;;;;;;;;10272:3;10255:20;;;10247:29;;;;;;10307:50;;;;;;;;;;10318:1;10307:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10298:5;;;;;-1:-1:-1;;;;;10298:5:7;10286:18;;:11;:18;;;10307:50;10286:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10286:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10286:71:7;;;;;;;;;10493:15;-1:-1:-1;;;;;10493:15:7;;-1:-1:-1;10493:30:7;10524:10;10536:8;10546:14;10562:8;-1:-1:-1;10493:78:7;;;;;;;;;;-1:-1:-1;;;10493:78:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10482:8;:89;;-1:-1:-1;;;;;;10482:89:7;-1:-1:-1;;;;;10482:89:7;;;;;;;;;;-1:-1:-1;10606:26:7;;;;;;;;;;-1:-1:-1;;;;;10618:4:7;10606:26;;;;-1:-1:-1;10606:26:7;;;;;;;;10630:1;10606:26;;;;;;10594:8;;;;-1:-1:-1;10581:22:7;;;:12;:22;;;;10606:26;10581:51;;;-1:-1:-1;;;;;;10581:51:7;-1:-1:-1;;;;;10581:51:7;;;;;;;;;;;;;;;;-1:-1:-1;;;10581:51:7;-1:-1:-1;;10581:51:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10581:51:7;;;;;;-1:-1:-1;;;;;;10664:4:7;:14;;10679:10;-1:-1:-1;10664:26:7;;;;;;;;;;-1:-1:-1;;;10664:26:7;;;-1:-1:-1;;;;;10664:26:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10723:11;;10664:26;;-1:-1:-1;10708:26:7;;;-1:-1:-1;10700:35:7;;;;;;10775:8;;-1:-1:-1;;;;;10775:8:7;10766:18;;;;:8;:18;;;;;;:35;;10789:11;10766:22;:35::i;:::-;10754:8;;-1:-1:-1;;;;;10754:8:7;;;10745:18;;;;:8;:18;;;;;;:56;;;;10843:10;10834:20;;;;;;;:37;;10859:11;10834:24;:37::i;:::-;-1:-1:-1;;;;;10820:10:7;10811:20;;;;;;:8;:20;;;;;;:60;;;;10897:8;;10890:5;;10897:8;;;;;10890:5;;;;;;;10811:20;;-1:-1:-1;;;;;;;;;10881:38:7;10907:11;;10881:38;;;;;;;;;;;;;-1:-1:-1;10936:4:7;;9867:1080;-1:-1:-1;;;;;;;9867:1080:7:o;18400:604::-;-1:-1:-1;;;;;18510:17:7;;18482:12;18510:17;;;:12;:17;;;;;:25;18482:12;;-1:-1:-1;;;18510:25:7;;;;:56;;;;-1:-1:-1;;;;;;18539:19:7;;;;;;:12;:19;;;;;:27;-1:-1:-1;;;18539:27:7;;;;18510:56;:85;;;;-1:-1:-1;;;;;;18570:15:7;;;;;;:8;:15;;;;;;:25;;;;18510:85;:125;;;;-1:-1:-1;;;;;;18599:14:7;;;;;;;:7;:14;;;;;;;;18614:10;18599:26;;;;;;;;;;:36;;;;18510:125;18506:492;;;-1:-1:-1;;;;;;18672:14:7;;;;;;;:7;:14;;;;;;;;18687:10;18672:26;;;;;;;;;;;;18730:15;;;:8;:15;;;;;;;:27;;18750:6;18730:19;:27::i;:::-;-1:-1:-1;;;;;18712:15:7;;;;;;:8;:15;;;;;:45;18800:22;:10;18815:6;18800:14;:22::i;:::-;-1:-1:-1;;;;;18771:14:7;;;;;;;:7;:14;;;;;;;;18786:10;18771:26;;;;;;;;;:51;;;;18852:13;;;;;:8;:13;;;;;:25;;18870:6;18852:17;:25::i;:::-;-1:-1:-1;;;;;18836:13:7;;;;;;;:8;:13;;;;;;:41;;;;:13;;18891:28;;;;18836:13;;-1:-1:-1;;;;;;;;;18891:28:7;18912:6;;18891:28;;;;;;;;;;;;;18940:4;18933:11;;;;18506:492;18982:5;18975:12;;18506:492;18400:604;;;;;;:::o;13002:247::-;5020:5;;13088:12;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;-1:-1:-1;13127:1:7;13110:114;13134:19;:26;13130:1;:30;13110:114;;;13177:38;13192:19;13212:1;13192:22;;;;;;;;;;;;;;;;13177:14;:38::i;:::-;-1:-1:-1;13162:3:7;;13110:114;;;-1:-1:-1;13238:4:7;;13002:247;-1:-1:-1;;13002:247:7:o;2294:25::-;;;;:::o;20253:78::-;20316:8;;;;20253:78;:::o;15633:1479::-;5317:8;;15772:12;;5303:10;-1:-1:-1;;;;;5303:22:7;;;5317:8;;5303:22;5294:32;;;;;;15852:8;;-1:-1:-1;;;;;15852:8:7;:22;;15844:31;;;;;;-1:-1:-1;;;;;15962:26:7;;;;;;:12;:26;;;;;:34;-1:-1:-1;;;15962:34:7;;;;15954:43;;;;;;;;16084:4;;-1:-1:-1;;;;;16084:4:7;:17;16102:12;16116:4;16122:16;16084:4;:55;;;;;;;;;;-1:-1:-1;;;16084:55:7;;;-1:-1:-1;;;;;16084:55:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16076:64;;;;;;;;16246:8;;-1:-1:-1;;;;;16246:8:7;16237:18;;;;:8;:18;;;;;;:47;;16260:23;16237:22;:47::i;:::-;16225:8;;-1:-1:-1;;;;;16225:8:7;;;16216:18;;;;:8;:18;;;;;;:68;;;;16317:22;;;;;;;:51;;16344:23;16317:26;:51::i;:::-;-1:-1:-1;;;;;16292:22:7;;;;;;;:8;:22;;;;;;:76;;;;-1:-1:-1;16404:14:7;16459:15;;16404:14;;;;:46;;16459:15;;;;;16477:16;;16404:90;;;;;;;;;-1:-1:-1;;;16404:90:7;;;-1:-1:-1;;;;;16404:90:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16502:14:7;;16550:8;;-1:-1:-1;;;;;16502:14:7;;;;:39;;16550:8;16561:16;16502:14;:76;;;;;;;;;;-1:-1:-1;;;16502:76:7;;;-1:-1:-1;;;;;16502:76:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16625:8:7;;-1:-1:-1;;;;;16616:57:7;;;;16625:8;-1:-1:-1;;;;;;;;;;;16649:23:7;16616:57;;;;;;;;;;;;;;-1:-1:-1;;;;;16806:30:7;;;;;;:16;:30;;;;;;:52;;16841:16;16806:34;:52::i;:::-;-1:-1:-1;;;;;16773:30:7;;;;;;;:16;:30;;;;;;;;:85;;;;16906:5;;;;;;;;16894:18;;:11;:18;;;;:25;:47;;16924:16;16894:29;:47::i;:::-;16878:5;;;;;-1:-1:-1;;;;;16878:5:7;16866:18;;;;:11;:18;;;;;:75;16966:14;;:36;;16985:16;16966:18;:36::i;:::-;16949:14;:53;-1:-1:-1;;;;;17010:76:7;;;17039:23;17064:16;17082:3;17010:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17101:4:7;15633:1479;;;;;:::o;12496:287::-;5020:5;;12573:12;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;-1:-1:-1;;;;;12605:31:7;;;;;;:12;:31;;;;;:39;-1:-1:-1;;;12605:39:7;;;;12597:48;;;;;;;;-1:-1:-1;;;;;12655:31:7;;12697:5;12655:31;;;:12;:31;;;;;;;:47;;-1:-1:-1;;12655:47:7;;;12712:43;;;;;;;;;;-1:-1:-1;12772:4:7;12496:287;;;:::o;4037:33::-;;;;:::o;3895:51::-;;;;;;;;;;;;;:::o;3690:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13411:234::-;5020:5;;13472:12;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;13525:14;;13502:4;;-1:-1:-1;;;;;13502:4:7;:14;13517:4;13502;:20;;;;;;;;;;-1:-1:-1;;;13502:20:7;;;-1:-1:-1;;;;;13502:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;13494:46;;;;;;;;13556:4;;13570:5;;13602:14;;-1:-1:-1;;;;;13556:4:7;;;;:13;;:4;13570:5;;;;13577:40;;13556:4;13577:14;13592:4;13556;13577:20;;;;;;;;;;-1:-1:-1;;;13577:20:7;;;-1:-1:-1;;;;;13577:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:40;-1:-1:-1;13577:40:7;:24;:40;:::i;:::-;13556:62;;;;;;;;;;;-1:-1:-1;;;13556:62:7;;;-1:-1:-1;;;;;13556:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13548:71;;;;;;;;-1:-1:-1;13634:4:7;13411:234;:::o;2878:51::-;;;;;;;;;;;;-1:-1:-1;;;;;2878:51:7;;;;-1:-1:-1;;;2878:51:7;;;;;;;;;;:::o;19191:117::-;-1:-1:-1;;;;;19285:16:7;19251:15;19285:16;;;:8;:16;;;;;;;19191:117::o;14403:908::-;5409:10;-1:-1:-1;;;;;5396:24:7;14477:12;5396:24;;;:12;:24;;;;;:32;-1:-1:-1;;;5396:32:7;;;;5387:42;;;;;;;;14507:8;;-1:-1:-1;;;;;14507:8:7;:22;;14499:31;;;;;;14546:8;;-1:-1:-1;;;;;14546:8:7;:22;;14538:31;;;;;;14591:19;;14585:3;:25;14577:34;;;;;;-1:-1:-1;;;;;14657:23:7;;;;;;:11;:23;;;;;-1:-1:-1;14657:37:7;;14633:19;;:62;;:23;:62::i;:::-;14627:3;:68;14619:77;;;;;;-1:-1:-1;;;;;14719:10:7;14713:17;;;;;;:5;:17;;;;;;;;:29;;;;;;;;;;;;14712:30;14704:39;;;;;;14757:10;-1:-1:-1;;;;;14751:17:7;;;;;;;:5;:17;;;;;;;;:29;;;;;;;;;;;;:36;;-1:-1:-1;;14751:36:7;-1:-1:-1;14751:36:7;;;14867:28;;;:16;:28;;;;;;14830:23;;;:11;:23;;;-1:-1:-1;14830:32:7;;:66;;:36;:66::i;:::-;-1:-1:-1;;;;;14795:23:7;;;;;;;:11;:23;;;;;;-1:-1:-1;14795:32:7;:101;;;14999:5;;;;;;;;14987:18;;;;;:25;14941:23;;:72;;:41;;14978:3;14941:36;:41::i;:::-;:45;:72;:45;:72;:::i;:::-;-1:-1:-1;;;;;14904:23:7;;;;;;:11;:23;;;;;:34;;;:109;;;15063:30;;;;;15025:68;;15021:130;;-1:-1:-1;;;;;15105:23:7;;;;;;:11;:23;;;;;:30;;:37;;-1:-1:-1;;15105:37:7;;;;;15021:130;-1:-1:-1;;;;;15158:127:7;;15186:23;;;;:11;:23;;;;;;;:34;;;;15222:30;;;;;15158:127;;15222:30;;;;;;15254;;;;15158:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15300:4:7;14403:908;;;:::o;12063:247::-;5020:5;;12149:12;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;-1:-1:-1;12188:1:7;12171:114;12195:19;:26;12191:1;:30;12171:114;;;12238:38;12253:19;12273:1;12253:22;;;;;;;;;;;;;;;;12238:14;:38::i;:::-;-1:-1:-1;12223:3:7;;12171:114;;749:25;;;-1:-1:-1;;;;;749:25:7;;:::o;1540:20::-;;;;;;-1:-1:-1;;;;;1540:20:7;;:::o;3595:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1306:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:18;;;-1:-1:-1;;;;;2135:18:7;;:::o;8390:932::-;5107:8;;8487:12;;;;;;;;;;;;;;5093:10;-1:-1:-1;;;;;5093:22:7;;;5107:8;;5093:22;5084:32;;;;;;8520:20;;;;8519:21;8511:30;;;;;;8559:10;;:17;;8551:26;;;;;;8587:20;:27;;-1:-1:-1;;8587:27:7;8610:4;8587:27;;;8650:14;;-1:-1:-1;;;;;8650:14:7;:43;8694:4;8700:29;-1:-1:-1;8650:80:7;;;;;;;;;;-1:-1:-1;;;8650:80:7;;;-1:-1:-1;;;;;8650:80:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;8748:29:7;;;;8740:38;;;;;;8789:15;:51;;-1:-1:-1;;;;;;8789:51:7;-1:-1:-1;;;;;8789:51:7;;;;;;;;;;;8910:15;:31;-1:-1:-1;8910:33:7;;;;;;;-1:-1:-1;;;8910:33:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8850:93;;;;;;;;;;8985:24;9004:4;8985:14;;:18;;:24;;;;:::i;:::-;8961:4;;-1:-1:-1;;;;;8961:4:7;:14;8976:4;8961;:20;;;;;;;;;;-1:-1:-1;;;8961:20:7;;;-1:-1:-1;;;;;8961:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;8953:57;;;;;;;;9042:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9042:54:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9020:19:7;;;;:11;:19;;;;9042:54;9020:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9020:76:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9020:76:7;;;;;;;;;-1:-1:-1;9123:14:7;;:24;;9142:4;9123:24;:18;:24;:::i;:::-;9106:14;:41;9158:14;;-1:-1:-1;;;;;9158:14:7;:46;9205:15;9158:14;;:66;;;;;;;;;;-1:-1:-1;;;9158:66:7;;;-1:-1:-1;;;;;9158:66:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;9234:60:7;;;;;;;9281:12;9234:60;;;;;;;;;;;;;;-1:-1:-1;9311:4:7;;8390:932;-1:-1:-1;;;;;;;8390:932:7:o;3090:33::-;;;;;;;;;:::o;1077:31::-;;;-1:-1:-1;;;;;1077:31:7;;:::o;17685:444::-;-1:-1:-1;;;;;17776:17:7;;17748:12;17776:17;;;:12;:17;;;;;:25;-1:-1:-1;;;17776:25:7;;;;:61;;;;-1:-1:-1;17818:10:7;-1:-1:-1;;;;;17805:24:7;;;;;:12;:24;;;;;:32;-1:-1:-1;;;17805:32:7;;;;17776:61;:95;;;;-1:-1:-1;17850:10:7;-1:-1:-1;;;;;17841:20:7;;;;;:8;:20;;;;;;:30;;;;17776:95;17772:351;;;17919:10;-1:-1:-1;;;;;17910:20:7;;;;;:8;:20;;;;;;:32;;17935:6;17910:24;:32::i;:::-;-1:-1:-1;;;;;17896:10:7;17887:20;;;;;;:8;:20;;;;;;:55;;;;17972:13;;;;;;;:25;;17990:6;17972:17;:25::i;:::-;-1:-1:-1;;;;;17956:13:7;;;;;;;:8;:13;;;;;;:41;;;;:13;;18020:10;18011:33;;;;17956:13;;-1:-1:-1;;;;;;;;;18011:33:7;18037:6;;18011:33;;;;;;;;;;;;;-1:-1:-1;18065:4:7;18058:11;;17772:351;-1:-1:-1;18107:5:7;18100:12;;964:23;;;-1:-1:-1;;;;;964:23:7;;:::o;7890:277::-;5204:8;;8024:12;;5190:10;-1:-1:-1;;;;;5190:22:7;;;5204:8;;5190:22;;:45;;-1:-1:-1;5230:5:7;;5216:10;-1:-1:-1;;;;;5216:19:7;;;5230:5;;;;;5216:19;5190:45;5181:55;;;;;;;;8052:10;:27;;;8089:50;8065:14;8127:11;8089:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8156:4:7;7890:277;;;;:::o;2030:23::-;;;-1:-1:-1;;;;;2030:23:7;;:::o;3129:38::-;;;;:::o;639:33::-;;;-1:-1:-1;;;;;639:33:7;;:::o;20009:146::-;-1:-1:-1;;;;;20123:15:7;;;20087:17;20123:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;20009:146::o;857:39::-;;;-1:-1:-1;;;;;857:39:7;;:::o;11324:537::-;5020:5;;11401:12;;;;;;;;;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;11502:13;;11528:3;;-1:-1:-1;;;;;11502:13:7;;;;:25;;11528:3;11533:17;11502:13;:49;;;;;;;;;;-1:-1:-1;;;11502:49:7;;;-1:-1:-1;;;;;11502:49:7;;;;;;;;;;;;;;;-1:-1:-1;11502:49:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11425:126;;;;;;;;;;11579:3;11569:7;:13;11561:22;;;;;;;;11601:8;;-1:-1:-1;;;;;11601:8:7;:34;11636:19;11657:20;11679:10;11691:4;11601:8;:95;;;;;;;;;;-1:-1:-1;;;11601:95:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11593:104;;;;;;;;11741:28;;;;;;;;;;11753:3;;-1:-1:-1;;;;;11753:3:7;;;11741:28;;-1:-1:-1;11741:28:7;;;;;;;;;;;;;;;11707:31;;;-1:-1:-1;11707:31:7;;;:12;:31;;;;11741:28;11707:62;;;-1:-1:-1;;;;;;11707:62:7;-1:-1:-1;;;;;11707:62:7;;;;;;;;;;;;;;;;-1:-1:-1;;;11707:62:7;-1:-1:-1;;11707:62:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11707:62:7;;;;;;-1:-1:-1;11804:3:7;;-1:-1:-1;;;;;11779:54:7;;;;11804:3;11779:54;11828:4;11779:54;;;;;;;;;;;;;;;;;-1:-1:-1;11850:4:7;;11324:537;-1:-1:-1;;;;;;11324:537:7:o;529:18::-;;;-1:-1:-1;;;;;529:18:7;;:::o;13807:419::-;13877:8;;13847:12;;-1:-1:-1;;;;;13877:8:7;:22;;13869:31;;;;;;13958:10;-1:-1:-1;;;;;13946:23:7;;;;;:11;:23;;;;;-1:-1:-1;13946:37:7;;13922:19;;:62;;:23;:62::i;:::-;13916:3;:68;13908:77;;;;;;14014:10;-1:-1:-1;;;;;14002:23:7;;;;;:11;:23;;;;;:30;;;;;;;;14001:31;13993:40;;;;;;14061:10;-1:-1:-1;;;;;14049:23:7;14082:1;14049:23;;;:11;:23;;;;;:30;:34;14041:43;;;;;;14100:4;;-1:-1:-1;;;;;14114:10:7;14126:23;;;14100:4;14126:23;;;:11;:23;;;;;;:30;14100:4;;;;;:13;;14126:30;14100:4;:57;;;;;;;;;-1:-1:-1;;;14100:57:7;;;-1:-1:-1;;;;;14100:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14092:66;;;;;;;;-1:-1:-1;14178:10:7;-1:-1:-1;;;;;14166:23:7;14199:1;14166:23;;;:11;:23;;;;;:34;-1:-1:-1;;13807:419:7:o;17143:190::-;17263:8;;17273;;17283:10;;17295:15;;17312:3;;17317:8;;-1:-1:-1;;;;;17263:8:7;;;;17273;;;;17283:10;;17295:15;;;;17312:3;;;;17317:8;;;17143:190::o;495:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:143:6;941:7;972:5;;;994:6;;;;987:14;;;;1018:1;883:143;-1:-1:-1;;;883:143:6:o;757:120::-;815:7;841:6;;;;834:14;;;;-1:-1:-1;865:5:6;;;757:120::o;305:157::-;363:7;394:5;;;416:6;;;:20;;;435:1;430;426;:5;;;;;;;;:10;416:20;409:28;;;;;468:283;526:7;623:9;639:1;635;:5;;;;;;;;;468:283;-1:-1:-1;;;;468:283:6:o", "source": "pragma solidity ^0.4.18;\n\nimport './SafeMath.sol';\nimport './interfaces/IERC20.sol';\nimport './interfaces/ICustomers.sol';\nimport './interfaces/ISecurityToken.sol';\nimport './interfaces/ICompliance.sol';\nimport './interfaces/ITemplate.sol';\nimport './interfaces/IOfferingFactory.sol';\n\n/**\n * @title SecurityToken\n * @dev Contract (A Blueprint) that contains the functionalities of the security token\n */\n\ncontract SecurityToken is ISecurityToken, IERC20 {\n\n using SafeMath for uint256;\n\n string public VERSION = \"2\";\n\n IERC20 public POLY; // Instance of the POLY token contract\n\n ICompliance public PolyCompliance; // Instance of the Compliance contract\n\n ITemplate public Template; // Instance of the Template contract\n\n IOfferingFactory public OfferingFactory; // Instance of the offering factory\n\n address public offering; // Address of generated offering contract\n\n ICustomers public PolyCustomers; // Instance of the Customers contract\n\n // ERC20 Fields\n string public name; // Name of the security token\n string public symbol; // Symbol of the security token\n uint8 public decimals; // Decimals for the security token it should be 0 as standard\n address public owner; // Address of the owner of the security token\n uint256 public totalSupply; // Total number of security token generated\n mapping(address => mapping(address => uint256)) allowed; // Mapping as same as in ERC20 token\n mapping(address => uint256) balances; // Array used to store the balances of the security token holders\n\n // Template\n address public delegate; // Address who create the template\n address public KYC; // Address of the KYC provider which aloowed the roles and jurisdictions in the template\n bytes32 public merkleRoot;\n\n // Security token shareholders\n struct Shareholder { // Structure that contains the data of the shareholders\n address verifier; // verifier - address of the KYC oracle\n bool allowed; // allowed - whether the shareholder is allowed to transfer or recieve the security token\n uint8 role; // role - role of the shareholder {1,2,3,4}\n }\n\n mapping(address => Shareholder) public shareholders; // Mapping that holds the data of the shareholder corresponding to investor address\n\n // STO\n bool public isOfferingFactorySet = false;\n bool public isTemplateSet = false;\n uint256 public allocationStartTime = 0;\n\n // POLY allocations\n struct Allocation { // Structure that contains the allocation of the POLY for stakeholders\n uint256 amount; // stakeholders - delegate, issuer(owner), auditor\n uint256 vestingPeriod;\n uint256 yayVotes;\n uint256 yayPercent;\n uint8 quorum;\n bool frozen;\n }\n\n mapping(address => mapping(address => bool)) public voted; // Voting mapping\n mapping(address => Allocation) public allocations; // Mapping that contains the data of allocation corresponding to stakeholder address\n\n // Security Token Offering statistics\n mapping(address => uint256) public contributedToSTO; // Mapping for tracking the POLY contribution by the contributor\n uint256 public totalAllocated = 0;\n\n // Notifications\n event LogTemplateSet(address indexed _delegateAddress, address indexed _template, address indexed _KYC);\n event LogUpdatedComplianceProof(bytes32 _merkleRoot, bytes32 _complianceProofHash);\n event LogOfferingFactorySet(address indexed _offeringFactory, address indexed _owner, bytes32 _description);\n event LogOfferingStarted(address indexed _offeringFactory, address indexed _owner, uint256 _startTime, uint256 _endTime, uint256 _fxPolyToken);\n event LogNewWhitelistedAddress(address indexed _KYC, address indexed _shareholder, uint8 _role);\n event LogNewBlacklistedAddress(address indexed _shareholder);\n event LogVoteToFreeze(address indexed _recipient, uint256 _yayPercent, uint8 _quorum, bool _frozen);\n event LogTokenIssued(address indexed _contributor, uint256 _stAmount, uint256 _polyContributed, uint256 _timestamp);\n\n //Modifiers\n modifier onlyOwner() {\n require (msg.sender == owner);\n _;\n }\n\n modifier onlyDelegate() {\n require (msg.sender == delegate);\n _;\n }\n\n modifier onlyOwnerOrDelegate() {\n require (msg.sender == delegate || msg.sender == owner);\n _;\n }\n\n modifier onlyOffering() {\n require (msg.sender == offering);\n _;\n }\n\n modifier onlyShareholder() {\n require (shareholders[msg.sender].allowed);\n _;\n }\n\n /**\n * @dev Set default security token parameters\n * @param _name Name of the security token\n * @param _ticker Ticker name of the security\n * @param _totalSupply Total amount of tokens being created\n * @param _owner Ethereum address of the security token owner\n * @param _polyTokenAddress Ethereum address of the POLY token contract\n * @param _polyCustomersAddress Ethereum address of the PolyCustomers contract\n * @param _polyComplianceAddress Ethereum address of the PolyCompliance contract\n */\n function SecurityToken(\n string _name,\n string _ticker,\n uint256 _totalSupply,\n uint8 _decimals,\n address _owner,\n address _polyTokenAddress,\n address _polyCustomersAddress,\n address _polyComplianceAddress\n ) public\n {\n decimals = _decimals;\n name = _name;\n symbol = _ticker;\n owner = _owner;\n totalSupply = _totalSupply;\n balances[_owner] = _totalSupply;\n POLY = IERC20(_polyTokenAddress);\n PolyCustomers = ICustomers(_polyCustomersAddress);\n PolyCompliance = ICompliance(_polyComplianceAddress);\n Transfer(0x0, _owner, _totalSupply);\n }\n\n /**\n * @dev `selectTemplate` Select a proposed template for the issuance\n * @param _templateIndex Array index of the delegates proposed template\n * @return bool success\n */\n function selectTemplate(uint8 _templateIndex) public onlyOwner returns (bool success) {\n require(!isTemplateSet);\n isTemplateSet = true;\n address template = ITemplate(PolyCompliance.getTemplateByProposal(this, _templateIndex));\n require(template != address(0));\n Template = ITemplate(template);\n var (_fee, _quorum, _vestingPeriod, _delegate, _KYC) = Template.getUsageDetails();\n require(POLY.balanceOf(this) >= _fee);\n allocations[_delegate] = Allocation(_fee, _vestingPeriod, _quorum, 0, 0, false);\n totalAllocated = totalAllocated.add(_fee);\n delegate = _delegate;\n KYC = _KYC;\n PolyCompliance.updateTemplateReputation(template, 0);\n LogTemplateSet(_delegate, template, _KYC);\n return true;\n }\n\n /**\n * @dev Update compliance proof hash for the issuance\n * @param _newMerkleRoot New merkle root hash of the compliance Proofs\n * @param _merkleRoot Compliance Proof hash\n * @return bool success\n */\n function updateComplianceProof(\n bytes32 _newMerkleRoot,\n bytes32 _merkleRoot\n ) public onlyOwnerOrDelegate returns (bool success)\n {\n merkleRoot = _newMerkleRoot;\n LogUpdatedComplianceProof(merkleRoot, _merkleRoot);\n return true;\n }\n\n /**\n * @dev `selectOfferingProposal` Select an security token offering proposal for the issuance\n * @param _offeringFactoryProposalIndex Array index of the STO proposal\n * @return bool success\n */\n function selectOfferingFactory(uint8 _offeringFactoryProposalIndex) public onlyDelegate returns (bool success) {\n require(!isOfferingFactorySet);\n require(merkleRoot != 0x0);\n isOfferingFactorySet = true;\n address offeringFactory = PolyCompliance.getOfferingFactoryByProposal(this, _offeringFactoryProposalIndex);\n require(offeringFactory != address(0));\n\n OfferingFactory = IOfferingFactory(offeringFactory);\n var (_fee, _quorum, _vestingPeriod, _owner, _description) = OfferingFactory.getUsageDetails();\n require(POLY.balanceOf(this) >= totalAllocated.add(_fee));\n allocations[_owner] = Allocation(_fee, _vestingPeriod, _quorum, 0, 0, false);\n totalAllocated = totalAllocated.add(_fee);\n\n PolyCompliance.updateOfferingFactoryReputation(offeringFactory, 0);\n LogOfferingFactorySet(offeringFactory, _owner, _description);\n return true;\n }\n\n /**\n * @dev Start the offering by sending all the tokens to STO contract\n * @param _startTime Unix timestamp to start the offering\n * @param _endTime Unix timestamp to end the offering\n * @param _polyTokenRate Price of one security token in terms of poly\n * @param _maxPoly Maximum amount of poly issuer wants to collect\n * @param _lockupPeriod Length of time raised POLY will be locked up for dispute\n * @param _quorum Percent of initial investors required to freeze POLY raise\n * @return bool\n */\n function initialiseOffering(uint256 _startTime, uint256 _endTime, uint256 _polyTokenRate, uint256 _maxPoly, uint256 _lockupPeriod, uint8 _quorum) onlyOwner external returns (bool success) {\n require(isOfferingFactorySet);\n require(offering == address(0));\n allocationStartTime = _startTime;\n require(_startTime > now && _endTime > _startTime);\n require(_lockupPeriod >= now);\n allocations[owner] = Allocation(0, _lockupPeriod, _quorum, 0, 0, false);\n // Creation of the new instance of the offering contract to facilitate the offering of this security token\n offering = OfferingFactory.createOffering(_startTime, _endTime, _polyTokenRate, _maxPoly);\n shareholders[offering] = Shareholder(this, true, 5);\n uint256 tokenAmount = this.balanceOf(msg.sender);\n require(tokenAmount == totalSupply);\n balances[offering] = balances[offering].add(tokenAmount);\n balances[msg.sender] = balances[msg.sender].sub(tokenAmount);\n Transfer(owner, offering, tokenAmount);\n return true;\n }\n\n /**\n * @dev Add a verified address to the Security Token whitelist\n * The Issuer can add an address to the whitelist by themselves by\n * creating their own KYC provider and using it to verify the accounts\n * they want to add to the whitelist.\n * @param _whitelistAddress Address attempting to join ST whitelist\n * @return bool success\n */\n function addToWhitelist(address _whitelistAddress) onlyOwner public returns (bool success) {\n var (countryJurisdiction, divisionJurisdiction, accredited, role, expires) = PolyCustomers.getCustomer(KYC, _whitelistAddress);\n require(expires > now);\n require(Template.checkTemplateRequirements(countryJurisdiction, divisionJurisdiction, accredited, role));\n shareholders[_whitelistAddress] = Shareholder(KYC, true, role);\n LogNewWhitelistedAddress(KYC, _whitelistAddress, role);\n return true;\n }\n\n /**\n * @dev Add verified addresses to the Security Token whitelist\n * @param _whitelistAddresses Array of addresses attempting to join ST whitelist\n * @return bool success\n */\n function addToWhitelistMulti(address[] _whitelistAddresses) onlyOwner public returns (bool success) {\n for (uint256 i = 0; i < _whitelistAddresses.length; i++) {\n addToWhitelist(_whitelistAddresses[i]);\n }\n return true;\n }\n\n /**\n * @dev Add a verified address to the Security Token blacklist\n * @param _blacklistAddress Address being added to the blacklist\n * @return bool success\n */\n function addToBlacklist(address _blacklistAddress) onlyOwner public returns (bool success) {\n require(shareholders[_blacklistAddress].allowed);\n shareholders[_blacklistAddress].allowed = false;\n LogNewBlacklistedAddress(_blacklistAddress);\n return true;\n }\n\n /**\n * @dev Removes previously verified addresseses to the Security Token whitelist\n * @param _blacklistAddresses Array of addresses attempting to join ST whitelist\n * @return bool success\n */\n function addToBlacklistMulti(address[] _blacklistAddresses) onlyOwner public returns (bool success) {\n for (uint256 i = 0; i < _blacklistAddresses.length; i++) {\n addToBlacklist(_blacklistAddresses[i]);\n }\n return true;\n }\n\n /**\n * @dev Allow POLY allocations to be withdrawn by owner, delegate, and the STO auditor at appropriate times\n * @return bool success\n */\n function withdrawUnallocatedPoly() public onlyOwner returns (bool success) {\n require(POLY.balanceOf(this) > totalAllocated);\n require(POLY.transfer(owner, POLY.balanceOf(this).sub(totalAllocated)));\n return true;\n }\n\n /**\n * @dev Allow POLY allocations to be withdrawn by owner, delegate, and the STO auditor at appropriate times\n * @return bool success\n */\n function withdrawPoly() public returns (bool success) {\n require(offering != address(0));\n require(now > allocationStartTime.add(allocations[msg.sender].vestingPeriod));\n require(!allocations[msg.sender].frozen);\n require(allocations[msg.sender].amount > 0);\n require(POLY.transfer(msg.sender, allocations[msg.sender].amount));\n allocations[msg.sender].amount = 0;\n return true;\n }\n\n /**\n * @dev Vote to freeze the fee of a certain network participant\n * @param _recipient The fee recipient being protested\n * @return bool success\n */\n function voteToFreeze(address _recipient) public onlyShareholder returns (bool success) {\n require(delegate != address(0));\n require(offering != address(0));\n require(now > allocationStartTime);\n require(now < allocationStartTime.add(allocations[_recipient].vestingPeriod));\n require(!voted[msg.sender][_recipient]);\n voted[msg.sender][_recipient] = true;\n allocations[_recipient].yayVotes = allocations[_recipient].yayVotes.add(contributedToSTO[msg.sender]);\n allocations[_recipient].yayPercent = allocations[_recipient].yayVotes.mul(100).div(allocations[owner].amount);\n if (allocations[_recipient].yayPercent >= allocations[_recipient].quorum) {\n allocations[_recipient].frozen = true;\n }\n LogVoteToFreeze(_recipient, allocations[_recipient].yayPercent, allocations[_recipient].quorum, allocations[_recipient].frozen);\n return true;\n }\n\n\t/**\n * @dev `issueSecurityTokens` is used by the STO to keep track of STO investors\n * @param _contributor The address of the person whose contributing\n * @param _amountOfSecurityTokens The amount of ST to pay out.\n * @param _polyContributed The amount of POLY paid for the security tokens.\n */\n function issueSecurityTokens(address _contributor, uint256 _amountOfSecurityTokens, uint256 _polyContributed) public onlyOffering returns (bool success) {\n // Check whether the offering active or not\n require(offering != address(0));\n // The _contributor being issued tokens must be in the whitelist\n require(shareholders[_contributor].allowed);\n // In order to issue the ST, the _contributor first pays in POLY\n require(POLY.transferFrom(_contributor, this, _polyContributed));\n // Update ST balances (transfers ST from STO to _contributor)\n balances[offering] = balances[offering].sub(_amountOfSecurityTokens);\n balances[_contributor] = balances[_contributor].add(_amountOfSecurityTokens);\n // Update Reputations\n PolyCompliance.updateOfferingFactoryReputation(address(OfferingFactory), _polyContributed);\n PolyCompliance.updateTemplateReputation(address(Template), _polyContributed);\n // ERC20 Transfer event\n Transfer(offering, _contributor, _amountOfSecurityTokens);\n // Update the amount of POLY a contributor has contributed and allocated to the owner\n contributedToSTO[_contributor] = contributedToSTO[_contributor].add(_polyContributed);\n allocations[owner].amount = allocations[owner].amount.add(_polyContributed);\n totalAllocated = totalAllocated.add(_polyContributed);\n LogTokenIssued(_contributor, _amountOfSecurityTokens, _polyContributed, now);\n return true;\n }\n\n // Get token details\n function getTokenDetails() view public returns (address, address, bytes32, address, address, address) {\n return (Template, delegate, merkleRoot, OfferingFactory, KYC, offering);\n }\n\n/////////////////////////////////////////////// Customized ERC20 Functions ////////////////////////////////////////////////////////////\n\n /**\n * @dev Trasfer tokens from one address to another\n * @param _to Ethereum public address to transfer tokens to\n * @param _value Amount of tokens to send\n * @return bool success\n */\n function transfer(address _to, uint256 _value) public returns (bool success) {\n if (shareholders[_to].allowed && shareholders[msg.sender].allowed && balances[msg.sender] >= _value) {\n balances[msg.sender] = balances[msg.sender].sub(_value);\n balances[_to] = balances[_to].add(_value);\n Transfer(msg.sender, _to, _value);\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Allows contracts to transfer tokens on behalf of token holders\n * @param _from Address to transfer tokens from\n * @param _to Address to send tokens to\n * @param _value Number of tokens to transfer\n * @return bool success\n */\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {\n if (shareholders[_to].allowed && shareholders[_from].allowed && balances[_from] >= _value && allowed[_from][msg.sender] >= _value) {\n uint256 _allowance = allowed[_from][msg.sender];\n balances[_from] = balances[_from].sub(_value);\n allowed[_from][msg.sender] = _allowance.sub(_value);\n balances[_to] = balances[_to].add(_value);\n Transfer(_from, _to, _value);\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev `balanceOf` used to get the balance of shareholders\n * @param _owner The address from which the balance will be retrieved\n * @return The balance\n */\n function balanceOf(address _owner) public constant returns (uint256 balance) {\n return balances[_owner];\n }\n\n /**\n * @dev Approve transfer of tokens manually\n * @param _spender Address to approve transfer to\n * @param _value Amount of tokens to approve for transfer\n * @return bool success\n */\n function approve(address _spender, uint256 _value) public returns (bool success) {\n allowed[msg.sender][_spender] = _value;\n Approval(msg.sender, _spender, _value);\n return true;\n }\n\n /**\n * @dev Use to get the allowance provided to the spender\n * @param _owner The address of the account owning tokens\n * @param _spender The address of the account able to transfer the tokens\n * @return Amount of remaining tokens allowed to spent\n */\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining) {\n return allowed[_owner][_spender];\n }\n\n function totalSupply() public view returns (uint256) {\n return totalSupply;\n }\n\n function decimals() public view returns (uint8) {\n return decimals;\n }\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SecurityToken.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SecurityToken.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SecurityToken.sol", "exportedSymbols": { "SecurityToken": [ 3537 @@ -1071,7 +1071,7 @@ { "attributes": { "SourceUnit": 2110, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SafeMath.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SafeMath.sol", "file": "./SafeMath.sol", "scope": 3538, "symbolAliases": [ @@ -1086,7 +1086,7 @@ { "attributes": { "SourceUnit": 5135, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IERC20.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IERC20.sol", "file": "./interfaces/IERC20.sol", "scope": 3538, "symbolAliases": [ @@ -1101,7 +1101,7 @@ { "attributes": { "SourceUnit": 5066, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICustomers.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICustomers.sol", "file": "./interfaces/ICustomers.sol", "scope": 3538, "symbolAliases": [ @@ -1116,7 +1116,7 @@ { "attributes": { "SourceUnit": 5280, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityToken.sol", "file": "./interfaces/ISecurityToken.sol", "scope": 3538, "symbolAliases": [ @@ -1131,7 +1131,7 @@ { "attributes": { "SourceUnit": 4990, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ICompliance.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ICompliance.sol", "file": "./interfaces/ICompliance.sol", "scope": 3538, "symbolAliases": [ @@ -1146,7 +1146,7 @@ { "attributes": { "SourceUnit": 5403, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ITemplate.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ITemplate.sol", "file": "./interfaces/ITemplate.sol", "scope": 3538, "symbolAliases": [ @@ -1161,7 +1161,7 @@ { "attributes": { "SourceUnit": 5164, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IOfferingFactory.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IOfferingFactory.sol", "file": "./interfaces/IOfferingFactory.sol", "scope": 3538, "symbolAliases": [ @@ -21655,5 +21655,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T07:00:11.151Z" + "updatedAt": "2018-02-25T12:54:40.743Z" } \ No newline at end of file diff --git a/build/contracts/SecurityTokenMOCK.json b/build/contracts/SecurityTokenMOCK.json index e5f4288..c5f4142 100644 --- a/build/contracts/SecurityTokenMOCK.json +++ b/build/contracts/SecurityTokenMOCK.json @@ -1058,15 +1058,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001bf565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002b0038038062002b008339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff89161790559150889050878787878787876007888051620000ec929160200190620001bf565b50600887805162000102929160200190620001bf565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a35050505050505050505050505050505062000264565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020257805160ff191683800117855562000232565b8280016001018555821562000232579182015b828111156200023257825182559160200191906001019062000215565b506200024092915062000244565b5090565b6200026191905b808211156200024057600081556001016200024b565b90565b61288c80620002746000396000f3006060604052600436106101ea5763ffffffff60e060020a60003504166306fdde0381146101ef578063095ea7b3146102795780631247d6d5146102af5780631402f80d146102ce57806318160ddd146102e7578063221777d51461030c57806322cf939d1461031f57806323b872dd1461034757806325221a4f1461036f5780632eb4a7ab146103be578063313ce567146103d15780633e045845146103fa57806344337ea11461041f57806345f7f2491461043e578063475c5ed11461045157806352a9039c1461047057806355c0e65e146104cb5780635c2930ad146104de57806370a082311461052e578063764c6dd31461054d5780637f4ed2c71461056c57806388026706146105bb5780638da5cb5b146105ea5780638f59c066146105fd57806395d89b4114610622578063a12a6bb014610635578063a40aa37c14610648578063a42b05dc14610661578063a5d5ca5414610674578063a9059cbb14610687578063b266cb01146106a9578063b2ad3d44146106bc578063c89e4361146106d5578063d2e17f59146106e8578063d4434387146106fb578063dd62ed3e1461070e578063de325e0214610733578063e43252d714610746578063e4bbb4b014610765578063fc1eb4d114610778578063ff332ab71461078b578063ffa1ad74146107e1575b600080fd5b34156101fa57600080fd5b6102026107f4565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023e578082015183820152602001610226565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028457600080fd5b61029b600160a060020a0360043516602435610892565b604051901515815260200160405180910390f35b34156102ba57600080fd5b61029b600160a060020a03600435166108ff565b34156102d957600080fd5b61029b60ff60043516610b51565b34156102f257600080fd5b6102fa610f20565b60405190815260200160405180910390f35b341561031757600080fd5b61029b610f26565b341561032a57600080fd5b61029b60043560243560443560643560843560ff60a43516610f2f565b341561035257600080fd5b61029b600160a060020a03600435811690602435166044356112f3565b341561037a57600080fd5b61029b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506114b095505050505050565b34156103c957600080fd5b6102fa611512565b34156103dc57600080fd5b6103e4611518565b60405160ff909116815260200160405180910390f35b341561040557600080fd5b61029b600160a060020a0360043516602435604435611521565b341561042a57600080fd5b61029b600160a060020a03600435166116e2565b341561044957600080fd5b6102fa61179c565b341561045c57600080fd5b6102fa600160a060020a03600435166117a2565b341561047b57600080fd5b61048f600160a060020a03600435166117b4565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104d657600080fd5b61029b6117ef565b34156104e957600080fd5b6104fd600160a060020a03600435166119a8565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561053957600080fd5b6102fa600160a060020a03600435166119d9565b341561055857600080fd5b61029b600160a060020a03600435166119f4565b341561057757600080fd5b61029b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611c4d95505050505050565b34156105c657600080fd5b6105ce611ca6565b604051600160a060020a03909116815260200160405180910390f35b34156105f557600080fd5b6105ce611cb5565b341561060857600080fd5b61029b600160a060020a0360043581169060243516611cc9565b341561062d57600080fd5b610202611ce9565b341561064057600080fd5b6105ce611d54565b341561065357600080fd5b61029b60ff60043516611d63565b341561066c57600080fd5b61029b612109565b341561067f57600080fd5b6105ce612117565b341561069257600080fd5b61029b600160a060020a0360043516602435612126565b34156106b457600080fd5b6105ce612252565b34156106c757600080fd5b61029b600435602435612261565b34156106e057600080fd5b6105ce6122e7565b34156106f357600080fd5b6102fa6122f6565b341561070657600080fd5b6105ce6122fc565b341561071957600080fd5b6102fa600160a060020a036004358116906024351661230b565b341561073e57600080fd5b6105ce612336565b341561075157600080fd5b61029b600160a060020a0360043516612345565b341561077057600080fd5b6105ce6125d5565b341561078357600080fd5b61029b6125e4565b341561079657600080fd5b61079e612741565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107ec57600080fd5b610202612772565b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600954600090819033600160a060020a03908116610100909204161461092457600080fd5b600554600160a060020a03161561093a57600080fd5b60058054600160a060020a031916600160a060020a03851617905560606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6457600080fd5b6102c65a03f11515610a7557600080fd5b5050506040518051600a5490925082149050610a9057600080fd5b600554600160a060020a03166000908152600c6020526040902054610abb908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054610af4908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a350600192915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316141515610b9157600080fd5b601154610100900460ff1615610ba657600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515610c1757600080fd5b6102c65a03f11515610c2857600080fd5b5050506040518051965050600160a060020a0386161515610c4857600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610ca657600080fd5b6102c65a03f11515610cb757600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d4257600080fd5b6102c65a03f11515610d5357600080fd5b5050506040518051905010151515610d6a57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610e24908663ffffffff6127dd16565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610eac57600080fd5b6102c65a03f11515610ebd57600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610f5457600080fd5b60115460ff161515610f6557600080fd5b600554600160a060020a031615610f7b57600080fd5b60128890554288118015610f8e57508787115b1515610f9957600080fd5b42841015610fa657600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b15156110b857600080fd5b6102c65a03f115156110c957600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561120157600080fd5b6102c65a03f1151561121257600080fd5b5050506040518051600a549092508214905061122d57600080fd5b600554600160a060020a03166000908152600c6020526040902054611258908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611291908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156113435750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156113685750600160a060020a0385166000908152600c6020526040902054839010155b801561139b5750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156114a35750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c905291909120546113e6908463ffffffff6127f316565b600160a060020a0386166000908152600c602052604090205561140f818463ffffffff6127f316565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c9091522054611455908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206128418339815191529086905190815260200160405180910390a3600191506114a8565b600091505b509392505050565b600954600090819033600160a060020a0390811661010090920416146114d557600080fd5b5060005b8251811015611509576115008382815181106114f157fe5b906020019060200201516116e2565b506001016114d9565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a0390811691161461153f57600080fd5b600554600160a060020a03166000908152600c602052604090205461156a908463ffffffff6127f316565b600554600160a060020a039081166000908152600c602052604080822093909355908616815220546115a2908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935560055490929116906000805160206128418339815191529086905190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611613908363ffffffff6127dd16565b600160a060020a038086166000908152601560209081526040808320949094556009546101009004909216815260149091522054611657908363ffffffff6127dd16565b6009546101009004600160a060020a031660009081526014602052604090205560165461168490836127dd565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461170557600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff16151561173357600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461181257600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561186e57600080fd5b6102c65a03f1151561187f57600080fd5b5050506040518051905011151561189557600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061193090846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561190957600080fd5b6102c65a03f1151561191a57600080fd5b505050604051805191905063ffffffff6127f316565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197c57600080fd5b6102c65a03f1151561198d57600080fd5b5050506040518051905015156119a257600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a820481169160a860020a90041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff161515611a2257600080fd5b600d54600160a060020a03161515611a3957600080fd5b600554600160a060020a03161515611a5057600080fd5b6012544211611a5e57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a8c9163ffffffff6127dd16565b4210611a9757600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611aca57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611b239163ffffffff6127dd16565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611b7791611b6b90606463ffffffff61280516565b9063ffffffff61282916565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611bcc57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611c7257600080fd5b5060005b825181101561150957611c9d838281518110611c8e57fe5b90602001906020020151612345565b50600101611c76565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d8d57600080fd5b60115460ff1615611d9d57600080fd5b600f541515611dab57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611e1a57600080fd5b6102c65a03f11515611e2b57600080fd5b5050506040518051965050600160a060020a0386161515611e4b57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611ea957600080fd5b6102c65a03f11515611eba57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611efb856016546127dd90919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611f5457600080fd5b6102c65a03f11515611f6557600080fd5b5050506040518051905010151515611f7c57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654612036908663ffffffff6127dd16565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561209857600080fd5b6102c65a03f115156120a957600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff168015612174575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b80156121995750600160a060020a0333166000908152600c6020526040902054829010155b1561224a57600160a060020a0333166000908152600c60205260409020546121c7908363ffffffff6127f316565b600160a060020a033381166000908152600c602052604080822093909355908516815220546121fc908363ffffffff6127dd16565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206128418339815191529085905190815260200160405180910390a35060016108f9565b5060006108f9565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612294575060095433600160a060020a0390811661010090920416145b151561229f57600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561238357600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b15156123eb57600080fd5b6102c65a03f115156123fc57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450428111151561243657600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b15156124a157600080fd5b6102c65a03f115156124b257600080fd5b5050506040518051905015156124c757600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a031615156125fe57600080fd5b600160a060020a03331660009081526014602052604090206001015460125461262c9163ffffffff6127dd16565b421161263757600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff161561266557600080fd5b600160a060020a0333166000908152601460205260408120541161268857600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156126fc57600080fd5b6102c65a03f1151561270d57600080fd5b50505060405180519050151561272257600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b6000828201838110156127ec57fe5b9392505050565b6000828211156127ff57fe5b50900390565b6000828202831580612821575082848281151561281e57fe5b04145b15156127ec57fe5b600080828481151561283757fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a9112ad085db739cbcb13345239007d2616c950ddfe004cc677a166318358f490029", - "deployedBytecode": "0x6060604052600436106101ea5763ffffffff60e060020a60003504166306fdde0381146101ef578063095ea7b3146102795780631247d6d5146102af5780631402f80d146102ce57806318160ddd146102e7578063221777d51461030c57806322cf939d1461031f57806323b872dd1461034757806325221a4f1461036f5780632eb4a7ab146103be578063313ce567146103d15780633e045845146103fa57806344337ea11461041f57806345f7f2491461043e578063475c5ed11461045157806352a9039c1461047057806355c0e65e146104cb5780635c2930ad146104de57806370a082311461052e578063764c6dd31461054d5780637f4ed2c71461056c57806388026706146105bb5780638da5cb5b146105ea5780638f59c066146105fd57806395d89b4114610622578063a12a6bb014610635578063a40aa37c14610648578063a42b05dc14610661578063a5d5ca5414610674578063a9059cbb14610687578063b266cb01146106a9578063b2ad3d44146106bc578063c89e4361146106d5578063d2e17f59146106e8578063d4434387146106fb578063dd62ed3e1461070e578063de325e0214610733578063e43252d714610746578063e4bbb4b014610765578063fc1eb4d114610778578063ff332ab71461078b578063ffa1ad74146107e1575b600080fd5b34156101fa57600080fd5b6102026107f4565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023e578082015183820152602001610226565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028457600080fd5b61029b600160a060020a0360043516602435610892565b604051901515815260200160405180910390f35b34156102ba57600080fd5b61029b600160a060020a03600435166108ff565b34156102d957600080fd5b61029b60ff60043516610b51565b34156102f257600080fd5b6102fa610f20565b60405190815260200160405180910390f35b341561031757600080fd5b61029b610f26565b341561032a57600080fd5b61029b60043560243560443560643560843560ff60a43516610f2f565b341561035257600080fd5b61029b600160a060020a03600435811690602435166044356112f3565b341561037a57600080fd5b61029b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506114b095505050505050565b34156103c957600080fd5b6102fa611512565b34156103dc57600080fd5b6103e4611518565b60405160ff909116815260200160405180910390f35b341561040557600080fd5b61029b600160a060020a0360043516602435604435611521565b341561042a57600080fd5b61029b600160a060020a03600435166116e2565b341561044957600080fd5b6102fa61179c565b341561045c57600080fd5b6102fa600160a060020a03600435166117a2565b341561047b57600080fd5b61048f600160a060020a03600435166117b4565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104d657600080fd5b61029b6117ef565b34156104e957600080fd5b6104fd600160a060020a03600435166119a8565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561053957600080fd5b6102fa600160a060020a03600435166119d9565b341561055857600080fd5b61029b600160a060020a03600435166119f4565b341561057757600080fd5b61029b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611c4d95505050505050565b34156105c657600080fd5b6105ce611ca6565b604051600160a060020a03909116815260200160405180910390f35b34156105f557600080fd5b6105ce611cb5565b341561060857600080fd5b61029b600160a060020a0360043581169060243516611cc9565b341561062d57600080fd5b610202611ce9565b341561064057600080fd5b6105ce611d54565b341561065357600080fd5b61029b60ff60043516611d63565b341561066c57600080fd5b61029b612109565b341561067f57600080fd5b6105ce612117565b341561069257600080fd5b61029b600160a060020a0360043516602435612126565b34156106b457600080fd5b6105ce612252565b34156106c757600080fd5b61029b600435602435612261565b34156106e057600080fd5b6105ce6122e7565b34156106f357600080fd5b6102fa6122f6565b341561070657600080fd5b6105ce6122fc565b341561071957600080fd5b6102fa600160a060020a036004358116906024351661230b565b341561073e57600080fd5b6105ce612336565b341561075157600080fd5b61029b600160a060020a0360043516612345565b341561077057600080fd5b6105ce6125d5565b341561078357600080fd5b61029b6125e4565b341561079657600080fd5b61079e612741565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107ec57600080fd5b610202612772565b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600954600090819033600160a060020a03908116610100909204161461092457600080fd5b600554600160a060020a03161561093a57600080fd5b60058054600160a060020a031916600160a060020a03851617905560606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6457600080fd5b6102c65a03f11515610a7557600080fd5b5050506040518051600a5490925082149050610a9057600080fd5b600554600160a060020a03166000908152600c6020526040902054610abb908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054610af4908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a350600192915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316141515610b9157600080fd5b601154610100900460ff1615610ba657600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515610c1757600080fd5b6102c65a03f11515610c2857600080fd5b5050506040518051965050600160a060020a0386161515610c4857600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610ca657600080fd5b6102c65a03f11515610cb757600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d4257600080fd5b6102c65a03f11515610d5357600080fd5b5050506040518051905010151515610d6a57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610e24908663ffffffff6127dd16565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610eac57600080fd5b6102c65a03f11515610ebd57600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610f5457600080fd5b60115460ff161515610f6557600080fd5b600554600160a060020a031615610f7b57600080fd5b60128890554288118015610f8e57508787115b1515610f9957600080fd5b42841015610fa657600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b15156110b857600080fd5b6102c65a03f115156110c957600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561120157600080fd5b6102c65a03f1151561121257600080fd5b5050506040518051600a549092508214905061122d57600080fd5b600554600160a060020a03166000908152600c6020526040902054611258908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611291908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156113435750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156113685750600160a060020a0385166000908152600c6020526040902054839010155b801561139b5750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156114a35750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c905291909120546113e6908463ffffffff6127f316565b600160a060020a0386166000908152600c602052604090205561140f818463ffffffff6127f316565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c9091522054611455908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206128418339815191529086905190815260200160405180910390a3600191506114a8565b600091505b509392505050565b600954600090819033600160a060020a0390811661010090920416146114d557600080fd5b5060005b8251811015611509576115008382815181106114f157fe5b906020019060200201516116e2565b506001016114d9565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a0390811691161461153f57600080fd5b600554600160a060020a03166000908152600c602052604090205461156a908463ffffffff6127f316565b600554600160a060020a039081166000908152600c602052604080822093909355908616815220546115a2908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935560055490929116906000805160206128418339815191529086905190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611613908363ffffffff6127dd16565b600160a060020a038086166000908152601560209081526040808320949094556009546101009004909216815260149091522054611657908363ffffffff6127dd16565b6009546101009004600160a060020a031660009081526014602052604090205560165461168490836127dd565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461170557600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff16151561173357600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461181257600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561186e57600080fd5b6102c65a03f1151561187f57600080fd5b5050506040518051905011151561189557600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061193090846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561190957600080fd5b6102c65a03f1151561191a57600080fd5b505050604051805191905063ffffffff6127f316565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197c57600080fd5b6102c65a03f1151561198d57600080fd5b5050506040518051905015156119a257600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a820481169160a860020a90041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff161515611a2257600080fd5b600d54600160a060020a03161515611a3957600080fd5b600554600160a060020a03161515611a5057600080fd5b6012544211611a5e57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a8c9163ffffffff6127dd16565b4210611a9757600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611aca57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611b239163ffffffff6127dd16565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611b7791611b6b90606463ffffffff61280516565b9063ffffffff61282916565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611bcc57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611c7257600080fd5b5060005b825181101561150957611c9d838281518110611c8e57fe5b90602001906020020151612345565b50600101611c76565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d8d57600080fd5b60115460ff1615611d9d57600080fd5b600f541515611dab57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611e1a57600080fd5b6102c65a03f11515611e2b57600080fd5b5050506040518051965050600160a060020a0386161515611e4b57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611ea957600080fd5b6102c65a03f11515611eba57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611efb856016546127dd90919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611f5457600080fd5b6102c65a03f11515611f6557600080fd5b5050506040518051905010151515611f7c57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654612036908663ffffffff6127dd16565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561209857600080fd5b6102c65a03f115156120a957600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff168015612174575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b80156121995750600160a060020a0333166000908152600c6020526040902054829010155b1561224a57600160a060020a0333166000908152600c60205260409020546121c7908363ffffffff6127f316565b600160a060020a033381166000908152600c602052604080822093909355908516815220546121fc908363ffffffff6127dd16565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206128418339815191529085905190815260200160405180910390a35060016108f9565b5060006108f9565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612294575060095433600160a060020a0390811661010090920416145b151561229f57600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561238357600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b15156123eb57600080fd5b6102c65a03f115156123fc57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450428111151561243657600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b15156124a157600080fd5b6102c65a03f115156124b257600080fd5b5050506040518051905015156124c757600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a031615156125fe57600080fd5b600160a060020a03331660009081526014602052604090206001015460125461262c9163ffffffff6127dd16565b421161263757600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff161561266557600080fd5b600160a060020a0333166000908152601460205260408120541161268857600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156126fc57600080fd5b6102c65a03f1151561270d57600080fd5b50505060405180519050151561272257600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b6000828201838110156127ec57fe5b9392505050565b6000828211156127ff57fe5b50900390565b6000828202831580612821575082848281151561281e57fe5b04145b15156127ec57fe5b600080828481151561283757fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820a9112ad085db739cbcb13345239007d2616c950ddfe004cc677a166318358f490029", + "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001bf565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002b0038038062002b008339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff89161790559150889050878787878787876007888051620000ec929160200190620001bf565b50600887805162000102929160200190620001bf565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a35050505050505050505050505050505062000264565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020257805160ff191683800117855562000232565b8280016001018555821562000232579182015b828111156200023257825182559160200191906001019062000215565b506200024092915062000244565b5090565b6200026191905b808211156200024057600081556001016200024b565b90565b61288c80620002746000396000f3006060604052600436106101ea5763ffffffff60e060020a60003504166306fdde0381146101ef578063095ea7b3146102795780631247d6d5146102af5780631402f80d146102ce57806318160ddd146102e7578063221777d51461030c57806322cf939d1461031f57806323b872dd1461034757806325221a4f1461036f5780632eb4a7ab146103be578063313ce567146103d15780633e045845146103fa57806344337ea11461041f57806345f7f2491461043e578063475c5ed11461045157806352a9039c1461047057806355c0e65e146104cb5780635c2930ad146104de57806370a082311461052e578063764c6dd31461054d5780637f4ed2c71461056c57806388026706146105bb5780638da5cb5b146105ea5780638f59c066146105fd57806395d89b4114610622578063a12a6bb014610635578063a40aa37c14610648578063a42b05dc14610661578063a5d5ca5414610674578063a9059cbb14610687578063b266cb01146106a9578063b2ad3d44146106bc578063c89e4361146106d5578063d2e17f59146106e8578063d4434387146106fb578063dd62ed3e1461070e578063de325e0214610733578063e43252d714610746578063e4bbb4b014610765578063fc1eb4d114610778578063ff332ab71461078b578063ffa1ad74146107e1575b600080fd5b34156101fa57600080fd5b6102026107f4565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023e578082015183820152602001610226565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028457600080fd5b61029b600160a060020a0360043516602435610892565b604051901515815260200160405180910390f35b34156102ba57600080fd5b61029b600160a060020a03600435166108ff565b34156102d957600080fd5b61029b60ff60043516610b51565b34156102f257600080fd5b6102fa610f20565b60405190815260200160405180910390f35b341561031757600080fd5b61029b610f26565b341561032a57600080fd5b61029b60043560243560443560643560843560ff60a43516610f2f565b341561035257600080fd5b61029b600160a060020a03600435811690602435166044356112f3565b341561037a57600080fd5b61029b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506114b095505050505050565b34156103c957600080fd5b6102fa611512565b34156103dc57600080fd5b6103e4611518565b60405160ff909116815260200160405180910390f35b341561040557600080fd5b61029b600160a060020a0360043516602435604435611521565b341561042a57600080fd5b61029b600160a060020a03600435166116e2565b341561044957600080fd5b6102fa61179c565b341561045c57600080fd5b6102fa600160a060020a03600435166117a2565b341561047b57600080fd5b61048f600160a060020a03600435166117b4565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104d657600080fd5b61029b6117ef565b34156104e957600080fd5b6104fd600160a060020a03600435166119a8565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561053957600080fd5b6102fa600160a060020a03600435166119d9565b341561055857600080fd5b61029b600160a060020a03600435166119f4565b341561057757600080fd5b61029b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611c4d95505050505050565b34156105c657600080fd5b6105ce611ca6565b604051600160a060020a03909116815260200160405180910390f35b34156105f557600080fd5b6105ce611cb5565b341561060857600080fd5b61029b600160a060020a0360043581169060243516611cc9565b341561062d57600080fd5b610202611ce9565b341561064057600080fd5b6105ce611d54565b341561065357600080fd5b61029b60ff60043516611d63565b341561066c57600080fd5b61029b612109565b341561067f57600080fd5b6105ce612117565b341561069257600080fd5b61029b600160a060020a0360043516602435612126565b34156106b457600080fd5b6105ce612252565b34156106c757600080fd5b61029b600435602435612261565b34156106e057600080fd5b6105ce6122e7565b34156106f357600080fd5b6102fa6122f6565b341561070657600080fd5b6105ce6122fc565b341561071957600080fd5b6102fa600160a060020a036004358116906024351661230b565b341561073e57600080fd5b6105ce612336565b341561075157600080fd5b61029b600160a060020a0360043516612345565b341561077057600080fd5b6105ce6125d5565b341561078357600080fd5b61029b6125e4565b341561079657600080fd5b61079e612741565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107ec57600080fd5b610202612772565b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600954600090819033600160a060020a03908116610100909204161461092457600080fd5b600554600160a060020a03161561093a57600080fd5b60058054600160a060020a031916600160a060020a03851617905560606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6457600080fd5b6102c65a03f11515610a7557600080fd5b5050506040518051600a5490925082149050610a9057600080fd5b600554600160a060020a03166000908152600c6020526040902054610abb908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054610af4908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a350600192915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316141515610b9157600080fd5b601154610100900460ff1615610ba657600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515610c1757600080fd5b6102c65a03f11515610c2857600080fd5b5050506040518051965050600160a060020a0386161515610c4857600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610ca657600080fd5b6102c65a03f11515610cb757600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d4257600080fd5b6102c65a03f11515610d5357600080fd5b5050506040518051905010151515610d6a57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610e24908663ffffffff6127dd16565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610eac57600080fd5b6102c65a03f11515610ebd57600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610f5457600080fd5b60115460ff161515610f6557600080fd5b600554600160a060020a031615610f7b57600080fd5b60128890554288118015610f8e57508787115b1515610f9957600080fd5b42841015610fa657600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b15156110b857600080fd5b6102c65a03f115156110c957600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561120157600080fd5b6102c65a03f1151561121257600080fd5b5050506040518051600a549092508214905061122d57600080fd5b600554600160a060020a03166000908152600c6020526040902054611258908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611291908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156113435750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156113685750600160a060020a0385166000908152600c6020526040902054839010155b801561139b5750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156114a35750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c905291909120546113e6908463ffffffff6127f316565b600160a060020a0386166000908152600c602052604090205561140f818463ffffffff6127f316565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c9091522054611455908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206128418339815191529086905190815260200160405180910390a3600191506114a8565b600091505b509392505050565b600954600090819033600160a060020a0390811661010090920416146114d557600080fd5b5060005b8251811015611509576115008382815181106114f157fe5b906020019060200201516116e2565b506001016114d9565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a0390811691161461153f57600080fd5b600554600160a060020a03166000908152600c602052604090205461156a908463ffffffff6127f316565b600554600160a060020a039081166000908152600c602052604080822093909355908616815220546115a2908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935560055490929116906000805160206128418339815191529086905190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611613908363ffffffff6127dd16565b600160a060020a038086166000908152601560209081526040808320949094556009546101009004909216815260149091522054611657908363ffffffff6127dd16565b6009546101009004600160a060020a031660009081526014602052604090205560165461168490836127dd565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461170557600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff16151561173357600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461181257600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561186e57600080fd5b6102c65a03f1151561187f57600080fd5b5050506040518051905011151561189557600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061193090846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561190957600080fd5b6102c65a03f1151561191a57600080fd5b505050604051805191905063ffffffff6127f316565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197c57600080fd5b6102c65a03f1151561198d57600080fd5b5050506040518051905015156119a257600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a820481169160a860020a90041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff161515611a2257600080fd5b600d54600160a060020a03161515611a3957600080fd5b600554600160a060020a03161515611a5057600080fd5b6012544211611a5e57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a8c9163ffffffff6127dd16565b4210611a9757600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611aca57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611b239163ffffffff6127dd16565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611b7791611b6b90606463ffffffff61280516565b9063ffffffff61282916565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611bcc57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611c7257600080fd5b5060005b825181101561150957611c9d838281518110611c8e57fe5b90602001906020020151612345565b50600101611c76565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d8d57600080fd5b60115460ff1615611d9d57600080fd5b600f541515611dab57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611e1a57600080fd5b6102c65a03f11515611e2b57600080fd5b5050506040518051965050600160a060020a0386161515611e4b57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611ea957600080fd5b6102c65a03f11515611eba57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611efb856016546127dd90919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611f5457600080fd5b6102c65a03f11515611f6557600080fd5b5050506040518051905010151515611f7c57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654612036908663ffffffff6127dd16565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561209857600080fd5b6102c65a03f115156120a957600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff168015612174575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b80156121995750600160a060020a0333166000908152600c6020526040902054829010155b1561224a57600160a060020a0333166000908152600c60205260409020546121c7908363ffffffff6127f316565b600160a060020a033381166000908152600c602052604080822093909355908516815220546121fc908363ffffffff6127dd16565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206128418339815191529085905190815260200160405180910390a35060016108f9565b5060006108f9565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612294575060095433600160a060020a0390811661010090920416145b151561229f57600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561238357600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b15156123eb57600080fd5b6102c65a03f115156123fc57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450428111151561243657600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b15156124a157600080fd5b6102c65a03f115156124b257600080fd5b5050506040518051905015156124c757600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a031615156125fe57600080fd5b600160a060020a03331660009081526014602052604090206001015460125461262c9163ffffffff6127dd16565b421161263757600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff161561266557600080fd5b600160a060020a0333166000908152601460205260408120541161268857600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156126fc57600080fd5b6102c65a03f1151561270d57600080fd5b50505060405180519050151561272257600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b6000828201838110156127ec57fe5b9392505050565b6000828211156127ff57fe5b50900390565b6000828202831580612821575082848281151561281e57fe5b04145b15156127ec57fe5b600080828481151561283757fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820dcd72282e50553a20d57c1cc59429a8c9491f2f33abb3c602d28e6ce491eeb710029", + "deployedBytecode": "0x6060604052600436106101ea5763ffffffff60e060020a60003504166306fdde0381146101ef578063095ea7b3146102795780631247d6d5146102af5780631402f80d146102ce57806318160ddd146102e7578063221777d51461030c57806322cf939d1461031f57806323b872dd1461034757806325221a4f1461036f5780632eb4a7ab146103be578063313ce567146103d15780633e045845146103fa57806344337ea11461041f57806345f7f2491461043e578063475c5ed11461045157806352a9039c1461047057806355c0e65e146104cb5780635c2930ad146104de57806370a082311461052e578063764c6dd31461054d5780637f4ed2c71461056c57806388026706146105bb5780638da5cb5b146105ea5780638f59c066146105fd57806395d89b4114610622578063a12a6bb014610635578063a40aa37c14610648578063a42b05dc14610661578063a5d5ca5414610674578063a9059cbb14610687578063b266cb01146106a9578063b2ad3d44146106bc578063c89e4361146106d5578063d2e17f59146106e8578063d4434387146106fb578063dd62ed3e1461070e578063de325e0214610733578063e43252d714610746578063e4bbb4b014610765578063fc1eb4d114610778578063ff332ab71461078b578063ffa1ad74146107e1575b600080fd5b34156101fa57600080fd5b6102026107f4565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023e578082015183820152602001610226565b50505050905090810190601f16801561026b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561028457600080fd5b61029b600160a060020a0360043516602435610892565b604051901515815260200160405180910390f35b34156102ba57600080fd5b61029b600160a060020a03600435166108ff565b34156102d957600080fd5b61029b60ff60043516610b51565b34156102f257600080fd5b6102fa610f20565b60405190815260200160405180910390f35b341561031757600080fd5b61029b610f26565b341561032a57600080fd5b61029b60043560243560443560643560843560ff60a43516610f2f565b341561035257600080fd5b61029b600160a060020a03600435811690602435166044356112f3565b341561037a57600080fd5b61029b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506114b095505050505050565b34156103c957600080fd5b6102fa611512565b34156103dc57600080fd5b6103e4611518565b60405160ff909116815260200160405180910390f35b341561040557600080fd5b61029b600160a060020a0360043516602435604435611521565b341561042a57600080fd5b61029b600160a060020a03600435166116e2565b341561044957600080fd5b6102fa61179c565b341561045c57600080fd5b6102fa600160a060020a03600435166117a2565b341561047b57600080fd5b61048f600160a060020a03600435166117b4565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104d657600080fd5b61029b6117ef565b34156104e957600080fd5b6104fd600160a060020a03600435166119a8565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561053957600080fd5b6102fa600160a060020a03600435166119d9565b341561055857600080fd5b61029b600160a060020a03600435166119f4565b341561057757600080fd5b61029b6004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611c4d95505050505050565b34156105c657600080fd5b6105ce611ca6565b604051600160a060020a03909116815260200160405180910390f35b34156105f557600080fd5b6105ce611cb5565b341561060857600080fd5b61029b600160a060020a0360043581169060243516611cc9565b341561062d57600080fd5b610202611ce9565b341561064057600080fd5b6105ce611d54565b341561065357600080fd5b61029b60ff60043516611d63565b341561066c57600080fd5b61029b612109565b341561067f57600080fd5b6105ce612117565b341561069257600080fd5b61029b600160a060020a0360043516602435612126565b34156106b457600080fd5b6105ce612252565b34156106c757600080fd5b61029b600435602435612261565b34156106e057600080fd5b6105ce6122e7565b34156106f357600080fd5b6102fa6122f6565b341561070657600080fd5b6105ce6122fc565b341561071957600080fd5b6102fa600160a060020a036004358116906024351661230b565b341561073e57600080fd5b6105ce612336565b341561075157600080fd5b61029b600160a060020a0360043516612345565b341561077057600080fd5b6105ce6125d5565b341561078357600080fd5b61029b6125e4565b341561079657600080fd5b61079e612741565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107ec57600080fd5b610202612772565b60078054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b820191906000526020600020905b81548152906001019060200180831161086d57829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b600954600090819033600160a060020a03908116610100909204161461092457600080fd5b600554600160a060020a03161561093a57600080fd5b60058054600160a060020a031916600160a060020a03851617905560606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610a6457600080fd5b6102c65a03f11515610a7557600080fd5b5050506040518051600a5490925082149050610a9057600080fd5b600554600160a060020a03166000908152600c6020526040902054610abb908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054610af4908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a350600192915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a0316141515610b9157600080fd5b601154610100900460ff1615610ba657600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515610c1757600080fd5b6102c65a03f11515610c2857600080fd5b5050506040518051965050600160a060020a0386161515610c4857600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610ca657600080fd5b6102c65a03f11515610cb757600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610d4257600080fd5b6102c65a03f11515610d5357600080fd5b5050506040518051905010151515610d6a57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610e24908663ffffffff6127dd16565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610eac57600080fd5b6102c65a03f11515610ebd57600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610f5457600080fd5b60115460ff161515610f6557600080fd5b600554600160a060020a031615610f7b57600080fd5b60128890554288118015610f8e57508787115b1515610f9957600080fd5b42841015610fa657600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b15156110b857600080fd5b6102c65a03f115156110c957600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561120157600080fd5b6102c65a03f1151561121257600080fd5b5050506040518051600a549092508214905061122d57600080fd5b600554600160a060020a03166000908152600c6020526040902054611258908263ffffffff6127dd16565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611291908263ffffffff6127f316565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206128418339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156113435750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156113685750600160a060020a0385166000908152600c6020526040902054839010155b801561139b5750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156114a35750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c905291909120546113e6908463ffffffff6127f316565b600160a060020a0386166000908152600c602052604090205561140f818463ffffffff6127f316565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c9091522054611455908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206128418339815191529086905190815260200160405180910390a3600191506114a8565b600091505b509392505050565b600954600090819033600160a060020a0390811661010090920416146114d557600080fd5b5060005b8251811015611509576115008382815181106114f157fe5b906020019060200201516116e2565b506001016114d9565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a0390811691161461153f57600080fd5b600554600160a060020a03166000908152600c602052604090205461156a908463ffffffff6127f316565b600554600160a060020a039081166000908152600c602052604080822093909355908616815220546115a2908463ffffffff6127dd16565b600160a060020a038086166000818152600c6020526040908190209390935560055490929116906000805160206128418339815191529086905190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611613908363ffffffff6127dd16565b600160a060020a038086166000908152601560209081526040808320949094556009546101009004909216815260149091522054611657908363ffffffff6127dd16565b6009546101009004600160a060020a031660009081526014602052604090205560165461168490836127dd565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461170557600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff16151561173357600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461181257600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561186e57600080fd5b6102c65a03f1151561187f57600080fd5b5050506040518051905011151561189557600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061193090846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561190957600080fd5b6102c65a03f1151561191a57600080fd5b505050604051805191905063ffffffff6127f316565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561197c57600080fd5b6102c65a03f1151561198d57600080fd5b5050506040518051905015156119a257600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a820481169160a860020a90041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff161515611a2257600080fd5b600d54600160a060020a03161515611a3957600080fd5b600554600160a060020a03161515611a5057600080fd5b6012544211611a5e57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a8c9163ffffffff6127dd16565b4210611a9757600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611aca57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611b239163ffffffff6127dd16565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611b7791611b6b90606463ffffffff61280516565b9063ffffffff61282916565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611bcc57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611c7257600080fd5b5060005b825181101561150957611c9d838281518110611c8e57fe5b90602001906020020151612345565b50600101611c76565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d8d57600080fd5b60115460ff1615611d9d57600080fd5b600f541515611dab57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611e1a57600080fd5b6102c65a03f11515611e2b57600080fd5b5050506040518051965050600160a060020a0386161515611e4b57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611ea957600080fd5b6102c65a03f11515611eba57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611efb856016546127dd90919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611f5457600080fd5b6102c65a03f11515611f6557600080fd5b5050506040518051905010151515611f7c57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654612036908663ffffffff6127dd16565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561209857600080fd5b6102c65a03f115156120a957600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff168015612174575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b80156121995750600160a060020a0333166000908152600c6020526040902054829010155b1561224a57600160a060020a0333166000908152600c60205260409020546121c7908363ffffffff6127f316565b600160a060020a033381166000908152600c602052604080822093909355908516815220546121fc908363ffffffff6127dd16565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206128418339815191529085905190815260200160405180910390a35060016108f9565b5060006108f9565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612294575060095433600160a060020a0390811661010090920416145b151561229f57600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561238357600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b15156123eb57600080fd5b6102c65a03f115156123fc57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450428111151561243657600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b15156124a157600080fd5b6102c65a03f115156124b257600080fd5b5050506040518051905015156124c757600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911660a860020a0275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a031615156125fe57600080fd5b600160a060020a03331660009081526014602052604090206001015460125461262c9163ffffffff6127dd16565b421161263757600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff161561266557600080fd5b600160a060020a0333166000908152601460205260408120541161268857600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156126fc57600080fd5b6102c65a03f1151561270d57600080fd5b50505060405180519050151561272257600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561088a5780601f1061085f5761010080835404028352916020019161088a565b6000828201838110156127ec57fe5b9392505050565b6000828211156127ff57fe5b50900390565b6000828202831580612821575082848281151561281e57fe5b04145b15156127ec57fe5b600080828481151561283757fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820dcd72282e50553a20d57c1cc59429a8c9491f2f33abb3c602d28e6ce491eeb710029", "sourceMap": "178:2051:10:-;;;495:27:7;;;;;;;;;;;;;;;;-1:-1:-1;;495:27:7;;;;;;;;;:::i;:::-;-1:-1:-1;3044:40:7;;;-1:-1:-1;;3090:33:7;;;3079:5;3129:38;;;;4037:33;;227:467:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6279:8:7;:20;;-1:-1:-1;;6279:20:7;;;;;;;227:467:10;-1:-1:-1;513:5:10;;-1:-1:-1;528:7:10;545:12;6279:20:7;586:6:10;602:17;629:21;227:467;6309:4:7;513:5:10;;6309:12:7;;;;;;;;:::i;:::-;-1:-1:-1;6331:6:7;6340:7;;6331:16;;;;;;;;:::i;:::-;-1:-1:-1;6357:5:7;:14;;-1:-1:-1;;;;;;6357:14:7;;-1:-1:-1;;;;;6357:14:7;;;;;;;;;;;;;6381:11;:26;;;-1:-1:-1;6417:16:7;;;:8;:16;;;;;;:31;;;-1:-1:-1;6458:32:7;;-1:-1:-1;;;;;;6458:32:7;;;;;;;;;;6500:13;:49;;;;;;;;;;6559:14;:52;;;;;;;;;;;;;;;-1:-1:-1;6621:35:7;;6381:26;;6621:35;;;;;;;;;;;;;5990:673;;;;;;;;227:467:10;;;;;;;;178:2051;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;178:2051:10;;;-1:-1:-1;178:2051:10;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "178:2051:10:-;;;;;;;;;-1:-1:-1;;;178:2051:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1206:18:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19522:205:7;;;;;;;;;;-1:-1:-1;;;;;19522:205:7;;;;;;;;;;;;;;;;;;;;;;;;1717:509:10;;;;;;;;;;-1:-1:-1;;;;;1717:509:10;;;;;6862:797:7;;;;;;;;;;;;;;;;20161:86;;;;;;;;;;;;;;;;;;;;;;;;;;;3044:40;;;;;;;;;;;;9867:1080;;;;;;;;;;;;;;;;;;;;;;;;;;18400:604;;;;;;;;;;-1:-1:-1;;;;;18400:604:7;;;;;;;;;;;;13002:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13002:247:7;;-1:-1:-1;13002:247:7;;-1:-1:-1;;;;;;13002:247:7;2294:25;;;;;;;;;;;;20253:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;698:914:10;;;;;;;;;;-1:-1:-1;;;;;698:914:10;;;;;;;;;12496:287:7;;;;;;;;;;-1:-1:-1;;;;;12496:287:7;;;;;4037:33;;;;;;;;;;;;3895:51;;;;;;;;;;-1:-1:-1;;;;;3895:51:7;;;;;3690:49;;;;;;;;;;-1:-1:-1;;;;;3690:49:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13411:234;;;;;;;;;;;;2878:51;;;;;;;;;;-1:-1:-1;;;;;2878:51:7;;;;;;;;-1:-1:-1;;;;;2878:51:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19191:117;;;;;;;;;;-1:-1:-1;;;;;19191:117:7;;;;;14403:908;;;;;;;;;;-1:-1:-1;;;;;14403:908:7;;;;;12063:247;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12063:247:7;;-1:-1:-1;12063:247:7;;-1:-1:-1;;;;;;12063:247:7;749:25;;;;;;;;;;;;;;;-1:-1:-1;;;;;749:25:7;;;;;;;;;;;;;;1540:20;;;;;;;;;;;;3595:57;;;;;;;;;;-1:-1:-1;;;;;3595:57:7;;;;;;;;;;1306:20;;;;;;;;;;;;2135:18;;;;;;;;;;;;8390:932;;;;;;;;;;;;;;;;3090:33;;;;;;;;;;;;1077:31;;;;;;;;;;;;17685:444;;;;;;;;;;-1:-1:-1;;;;;17685:444:7;;;;;;;964:23;;;;;;;;;;;;7890:277;;;;;;;;;;;;;;;;2030:23;;;;;;;;;;;;3129:38;;;;;;;;;;;;639:33;;;;;;;;;;;;20009:146;;;;;;;;;;-1:-1:-1;;;;;20009:146:7;;;;;;;;;;857:39;;;;;;;;;;;;11324:537;;;;;;;;;;-1:-1:-1;;;;;11324:537:7;;;;;529:18;;;;;;;;;;;;13807:419;;;;;;;;;;;;17143:190;;;;;;;;;;;;;;;-1:-1:-1;;;;;17143:190:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:27;;;;;;;;;;;;1206:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19522:205::-;-1:-1:-1;;;;;19621:10:7;19613:19;;19589:12;19613:19;;;:7;:19;;;;;;;;:29;;;;;;;;;;;;;:38;;;19589:12;;19613:29;:19;19661:38;;19645:6;;19661:38;;;;;;;;;;;;;-1:-1:-1;19716:4:7;19522:205;;;;;:::o;1717:509:10:-;5020:5:7;;1792:12:10;;;;5006:10:7;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;1822:8:10;;-1:-1:-1;;;;;1822:8:10;:15;1814:24;;;;;;1846:8;:20;;-1:-1:-1;;;;;;1846:20:10;-1:-1:-1;;;;;1846:20:10;;;;;1899:26;;;;;;;;;;-1:-1:-1;;;;;1911:4:10;1899:26;;;;1917:4;1899:26;;;;;;;;1923:1;1899:26;;;;;;1887:8;;;;1899:26;1874:22;;;:12;:22;;;;1899:26;1874:51;;;-1:-1:-1;;;;;;1874:51:10;-1:-1:-1;;;;;1874:51:10;;;;;;;;;;;;;;;;-1:-1:-1;;;1874:51:10;-1:-1:-1;;1874:51:10;;;;;;;;;;;;;;;;;-1:-1:-1;;;1874:51:10;-1:-1:-1;;1874:51:10;;;;;;-1:-1:-1;;;;;;1955:4:10;:14;;1970:10;1874:51;1955:26;;;;;;;-1:-1:-1;;;1955:26:10;;;;;;-1:-1:-1;;;;;1955:26:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2012:11;;1955:26;;-1:-1:-1;1997:26:10;;;-1:-1:-1;1989:35:10;;;;;;2062:8;;-1:-1:-1;;;;;2062:8:10;2053:18;;;;:8;:18;;;;;;:35;;2076:11;2053:35;:22;:35;:::i;:::-;2041:8;;-1:-1:-1;;;;;2041:8:10;;;2032:18;;;;:8;:18;;;;;;:56;;;;2128:10;2119:20;;;;;;;:37;;2144:11;2119:37;:24;:37;:::i;:::-;-1:-1:-1;;;;;2105:10:10;2096:20;;;;;;:8;:20;;;;;;;:60;;;;2180:8;;2173:5;;2180:8;;;;;2173:5;;;;;;;-1:-1:-1;;;;;;;;;;;2164:38:10;2190:11;;2164:38;;;;;;;;;;;;;-1:-1:-1;2217:4:10;;1717:509;-1:-1:-1;;1717:509:10:o;6862:797:7:-;6934:12;7021:16;7205:4;7211:7;7220:14;7236:9;7247:4;5020:5;;;;;;;;;-1:-1:-1;;;;;5020:5:7;-1:-1:-1;;;;;5006:19:7;:10;-1:-1:-1;;;;;5006:19:7;;4997:29;;;;;;;;6967:13;;;;;;;6966:14;6958:23;;;;;;6991:13;:20;;-1:-1:-1;;6991:20:7;;;;;7050:14;;-1:-1:-1;;;;;7050:14:7;:36;7087:4;7093:14;6991:20;7050:58;;;;;;;-1:-1:-1;;;7050:58:7;;;;;;-1:-1:-1;;;;;7050:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;7127:22:7;;;;7119:31;;;;;;7160:8;:30;;-1:-1:-1;;;;;;7160:30:7;-1:-1:-1;;;;;7160:30:7;;;;;;;;;;;7255:8;:24;-1:-1:-1;7255:26:7;;;;;;;;;;-1:-1:-1;;;7255:26:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7299:4;;7200:81;;-1:-1:-1;7200:81:7;;-1:-1:-1;7200:81:7;;-1:-1:-1;7200:81:7;-1:-1:-1;7255:26:7;;-1:-1:-1;7200:81:7;;-1:-1:-1;;;;;7299:4:7;;-1:-1:-1;7299:14:7;7314:4;7299;:20;;;;;;;-1:-1:-1;;;7299:20:7;;;;;;-1:-1:-1;;;;;7299:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:28;;7291:37;;;;;;;;7363:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7363:54:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7338:22:7;;;;:11;:22;;;;7363:54;7338:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7338:79:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7338:79:7;;;;;;;;;-1:-1:-1;7444:14:7;;:24;;7463:4;7444:24;:18;:24;:::i;:::-;7427:14;:41;7478:8;:20;;-1:-1:-1;;;;;7478:20:7;;;-1:-1:-1;;;;;;7478:20:7;;;;;;;7508:3;:10;;;;;;;;;;;;;7528:14;;;:39;7568:8;7478;;7528:52;;;;;;;-1:-1:-1;;;7528:52:7;;;;;;-1:-1:-1;;;;;7528:52:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7626:4;-1:-1:-1;;;;;7590:41:7;7616:8;-1:-1:-1;;;;;7590:41:7;7605:9;-1:-1:-1;;;;;7590:41:7;;;;;;;;;;;-1:-1:-1;7648:4:7;;6862:797;-1:-1:-1;;;;;;;6862:797:7:o;20161:86::-;20229:11;;20161:86;:::o;3044:40::-;;;;;;:::o;9867:1080::-;5020:5;;10041:12;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;10073:20;;;;10065:29;;;;;;;;10112:8;;-1:-1:-1;;;;;10112:8:7;:22;10104:31;;;;;;10145:19;:32;;;10208:3;10195:16;;:41;;;;;10226:10;10215:8;:21;10195:41;10187:50;;;;;;;;10272:3;10255:20;;;10247:29;;;;;;10307:50;;;;;;;;;;10318:1;10307:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10298:5;;;;;-1:-1:-1;;;;;10298:5:7;10286:18;;:11;:18;;;10307:50;10286:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10286:71:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10286:71:7;;;;;;;;;10493:15;-1:-1:-1;;;;;10493:15:7;;-1:-1:-1;10493:30:7;10524:10;10536:8;10546:14;10562:8;-1:-1:-1;10493:78:7;;;;;;;-1:-1:-1;;;10493:78:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10482:8;:89;;-1:-1:-1;;;;;;10482:89:7;-1:-1:-1;;;;;10482:89:7;;;;;;;;;;-1:-1:-1;10606:26:7;;;;;;;;;;-1:-1:-1;;;;;10618:4:7;10606:26;;;;10624:4;10606:26;;;;;;;;10630:1;10606:26;;;;;;10594:8;;;;10606:26;10581:22;;;:12;:22;;;;10606:26;10581:51;;;-1:-1:-1;;;;;;10581:51:7;-1:-1:-1;;;;;10581:51:7;;;;;;;;;;;;;;;;-1:-1:-1;;;10581:51:7;-1:-1:-1;;10581:51:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;10581:51:7;-1:-1:-1;;10581:51:7;;;;;;-1:-1:-1;;;;;;10664:4:7;:14;;10679:10;10581:51;10664:26;;;;;;;-1:-1:-1;;;10664:26:7;;;;;;-1:-1:-1;;;;;10664:26:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10723:11;;10664:26;;-1:-1:-1;10708:26:7;;;-1:-1:-1;10700:35:7;;;;;;10775:8;;-1:-1:-1;;;;;10775:8:7;10766:18;;;;:8;:18;;;;;;:35;;10789:11;10766:35;:22;:35;:::i;:::-;10754:8;;-1:-1:-1;;;;;10754:8:7;;;10745:18;;;;:8;:18;;;;;;:56;;;;10843:10;10834:20;;;;;;;:37;;10859:11;10834:37;:24;:37;:::i;:::-;-1:-1:-1;;;;;10820:10:7;10811:20;;;;;;:8;:20;;;;;;;:60;;;;10897:8;;10890:5;;10897:8;;;;;10890:5;;;;;;;-1:-1:-1;;;;;;;;;;;10881:38:7;10907:11;;10881:38;;;;;;;;;;;;;-1:-1:-1;10936:4:7;;9867:1080;-1:-1:-1;;;;;;;9867:1080:7:o;18400:604::-;-1:-1:-1;;;;;18510:17:7;;18482:12;18510:17;;;:12;:17;;;;;:25;18482:12;;-1:-1:-1;;;18510:25:7;;;;:56;;;;-1:-1:-1;;;;;;18539:19:7;;;;;;:12;:19;;;;;:27;-1:-1:-1;;;18539:27:7;;;;18510:56;:85;;;;-1:-1:-1;;;;;;18570:15:7;;;;;;:8;:15;;;;;;:25;;;;18510:85;:125;;;;-1:-1:-1;;;;;;18599:14:7;;;;;;;:7;:14;;;;;;;;18614:10;18599:26;;;;;;;;;;:36;;;;18510:125;18506:492;;;-1:-1:-1;;;;;;18672:14:7;;;;;;;:7;:14;;;;;;;;18687:10;18672:26;;;;;;;;;;;;18730:15;;;:8;:15;;;;;;;:27;;18750:6;18730:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;18712:15:7;;;;;;:8;:15;;;;;:45;18800:22;:10;18815:6;18800:22;:14;:22;:::i;:::-;-1:-1:-1;;;;;18771:14:7;;;;;;;:7;:14;;;;;;;;18786:10;18771:26;;;;;;;;;:51;;;;18852:13;;;;;:8;:13;;;;;:25;;18870:6;18852:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;18836:13:7;;;;;;;:8;:13;;;;;;;:41;;;;:13;18891:28;;;;-1:-1:-1;;;;;;;;;;;18891:28:7;18912:6;;18891:28;;;;;;;;;;;;;18940:4;18933:11;;;;18506:492;18982:5;18975:12;;18506:492;18400:604;;;;;;:::o;13002:247::-;5020:5;;13088:12;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;-1:-1:-1;13127:1:7;13110:114;13134:19;:26;13130:1;:30;13110:114;;;13177:38;13192:19;13212:1;13192:22;;;;;;;;;;;;;;;;13177:14;:38::i;:::-;-1:-1:-1;13162:3:7;;13110:114;;;-1:-1:-1;13238:4:7;;13002:247;-1:-1:-1;;13002:247:7:o;2294:25::-;;;;:::o;20253:78::-;20316:8;;;;20253:78;:::o;698:914:10:-;5317:8:7;;837:12:10;;5303:10:7;-1:-1:-1;;;;;5303:22:7;;;5317:8;;5303:22;5294:32;;;;;;958:8:10;;-1:-1:-1;;;;;958:8:10;949:18;;;;:8;:18;;;;;;:47;;972:23;949:47;:22;:47;:::i;:::-;937:8;;-1:-1:-1;;;;;937:8:10;;;928:18;;;;:8;:18;;;;;;:68;;;;1029:22;;;;;;;:51;;1056:23;1029:51;:26;:51;:::i;:::-;-1:-1:-1;;;;;1004:22:10;;;;;;;:8;:22;;;;;;;:76;;;;1127:8;;1004:22;;1127:8;;;-1:-1:-1;;;;;;;;;;;1118:57:10;1151:23;;1118:57;;;;;;;;;;;;;-1:-1:-1;;;;;1308:30:10;;;;;;:16;:30;;;;;;:52;;1343:16;1308:52;:34;:52;:::i;:::-;-1:-1:-1;;;;;1275:30:10;;;;;;;:16;:30;;;;;;;;:85;;;;1408:5;;;;;;;;1396:18;;:11;:18;;;;:25;:47;;1426:16;1396:47;:29;:47;:::i;:::-;1380:5;;;;;-1:-1:-1;;;;;1380:5:10;1368:18;;;;:11;:18;;;;;:75;1468:14;;:36;;1487:16;1468:18;:36::i;:::-;1451:14;:53;-1:-1:-1;;;;;1512:76:10;;;1541:23;1566:16;1584:3;1512:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1603:4:10;698:914;;;;;:::o;12496:287:7:-;5020:5;;12573:12;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;-1:-1:-1;;;;;12605:31:7;;;;;;:12;:31;;;;;:39;-1:-1:-1;;;12605:39:7;;;;12597:48;;;;;;;;-1:-1:-1;;;;;12655:31:7;;12697:5;12655:31;;;:12;:31;;;;;;;:47;;-1:-1:-1;;12655:47:7;;;12712:43;;;;;;;;;;-1:-1:-1;12772:4:7;12496:287;;;:::o;4037:33::-;;;;:::o;3895:51::-;;;;;;;;;;;;;:::o;3690:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13411:234::-;5020:5;;13472:12;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;13525:14;;13502:4;;-1:-1:-1;;;;;13502:4:7;:14;13517:4;13502;:20;;;;;;;-1:-1:-1;;;13502:20:7;;;;;;-1:-1:-1;;;;;13502:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;13494:46;;;;;;;;13556:4;;13570:5;;13602:14;;-1:-1:-1;;;;;13556:4:7;;;;:13;;:4;13570:5;;;;13577:40;;13556:4;13577:14;13592:4;13556;13577:20;;;;;;;-1:-1:-1;;;13577:20:7;;;;;;-1:-1:-1;;;;;13577:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:40;-1:-1:-1;13577:40:7;:24;:40;:::i;:::-;13556:62;;;;;;;;-1:-1:-1;;;13556:62:7;;;;;;-1:-1:-1;;;;;13556:62:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13548:71;;;;;;;;-1:-1:-1;13634:4:7;13411:234;:::o;2878:51::-;;;;;;;;;;;;-1:-1:-1;;;;;2878:51:7;;;;-1:-1:-1;;;2878:51:7;;;;;-1:-1:-1;;;2878:51:7;;;;:::o;19191:117::-;-1:-1:-1;;;;;19285:16:7;19251:15;19285:16;;;:8;:16;;;;;;;19191:117::o;14403:908::-;5409:10;-1:-1:-1;;;;;5396:24:7;14477:12;5396:24;;;:12;:24;;;;;:32;-1:-1:-1;;;5396:32:7;;;;5387:42;;;;;;;;14507:8;;-1:-1:-1;;;;;14507:8:7;:22;;14499:31;;;;;;14546:8;;-1:-1:-1;;;;;14546:8:7;:22;;14538:31;;;;;;14591:19;;14585:3;:25;14577:34;;;;;;-1:-1:-1;;;;;14657:23:7;;;;;;:11;:23;;;;;:37;;;14633:19;;:62;;;:23;:62;:::i;:::-;14627:3;:68;14619:77;;;;;;-1:-1:-1;;;;;14719:10:7;14713:17;;;;;;:5;:17;;;;;;;;:29;;;;;;;;;;;;14712:30;14704:39;;;;;;-1:-1:-1;;;;;14757:10:7;14751:17;;;;;;:5;:17;;;;;;;;:29;;;;;;;;;;;;:36;;-1:-1:-1;;14751:36:7;14783:4;14751:36;;;14867:28;;;:16;:28;;;;;;14830:23;;;:11;:23;;;:32;;;:66;;;:36;:66;:::i;:::-;-1:-1:-1;;;;;14795:23:7;;;;;;;:11;:23;;;;;;:32;;:101;;;14999:5;;;;;;;;14987:18;;;;;:25;14941:23;;:72;;:41;;14978:3;14941:41;:36;:41;:::i;:::-;:45;:72;:45;:72;:::i;:::-;-1:-1:-1;;;;;14904:23:7;;;;;;:11;:23;;;;;:34;;;:109;;;15063:30;;;;;15025:68;;15021:130;;-1:-1:-1;;;;;15105:23:7;;;;;;:11;:23;;;;;:30;;:37;;-1:-1:-1;;15105:37:7;;;;;15021:130;-1:-1:-1;;;;;15158:127:7;;15186:23;;;;:11;:23;;;;;;;:34;;;;15222:30;;;;;15158:127;;15222:30;;;;;;15254;;;;15158:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15300:4:7;14403:908;;;:::o;12063:247::-;5020:5;;12149:12;;;;5006:10;-1:-1:-1;;;;;5006:19:7;;;5020:5;;;;;5006:19;4997:29;;;;;;-1:-1:-1;12188:1:7;12171:114;12195:19;:26;12191:1;:30;12171:114;;;12238:38;12253:19;12273:1;12253:22;;;;;;;;;;;;;;;;12238:14;:38::i;:::-;-1:-1:-1;12223:3:7;;12171:114;;749:25;;;-1:-1:-1;;;;;749:25:7;;:::o;1540:20::-;;;;;;-1:-1:-1;;;;;1540:20:7;;:::o;3595:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1306:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2135:18;;;-1:-1:-1;;;;;2135:18:7;;:::o;8390:932::-;5107:8;;8487:12;;;;;;;;;;;;;;5093:10;-1:-1:-1;;;;;5093:22:7;;;5107:8;;5093:22;5084:32;;;;;;8520:20;;;;8519:21;8511:30;;;;;;8559:10;;:17;;8551:26;;;;;;8587:20;:27;;-1:-1:-1;;8587:27:7;8610:4;8587:27;;;8650:14;;-1:-1:-1;;;;;8650:14:7;:43;8694:4;8700:29;8587:20;8650:80;;;;;;;-1:-1:-1;;;8650:80:7;;;;;;-1:-1:-1;;;;;8650:80:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;8748:29:7;;;;8740:38;;;;;;8789:15;:51;;-1:-1:-1;;;;;;8789:51:7;-1:-1:-1;;;;;8789:51:7;;;;;;;;;;;8910:15;:31;-1:-1:-1;8910:33:7;;;;;;;;;;-1:-1:-1;;;8910:33:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8850:93;;;;;;;;;;8985:24;9004:4;8985:14;;:18;;:24;;;;:::i;:::-;8961:4;;-1:-1:-1;;;;;8961:4:7;:14;8976:4;8961;:20;;;;;;;-1:-1:-1;;;8961:20:7;;;;;;-1:-1:-1;;;;;8961:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;8953:57;;;;;;;;9042:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9042:54:7;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9020:19:7;;;;:11;:19;;;;9042:54;9020:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9020:76:7;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9020:76:7;;;;;;;;;-1:-1:-1;9123:14:7;;:24;;9142:4;9123:24;:18;:24;:::i;:::-;9106:14;:41;9158:14;;-1:-1:-1;;;;;9158:14:7;:46;9205:15;9158:14;;:66;;;;;;;-1:-1:-1;;;9158:66:7;;;;;;-1:-1:-1;;;;;9158:66:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9273:6;-1:-1:-1;;;;;9234:60:7;9256:15;-1:-1:-1;;;;;9234:60:7;;9281:12;9234:60;;;;;;;;;;;;;;-1:-1:-1;9311:4:7;;8390:932;-1:-1:-1;;;;;;;8390:932:7:o;3090:33::-;;;;;;;;;:::o;1077:31::-;;;-1:-1:-1;;;;;1077:31:7;;:::o;17685:444::-;-1:-1:-1;;;;;17776:17:7;;17748:12;17776:17;;;:12;:17;;;;;:25;-1:-1:-1;;;17776:25:7;;;;:61;;;;-1:-1:-1;17818:10:7;-1:-1:-1;;;;;17805:24:7;;;;;:12;:24;;;;;:32;-1:-1:-1;;;17805:32:7;;;;17776:61;:95;;;;-1:-1:-1;;;;;;17850:10:7;17841:20;;;;;:8;:20;;;;;;:30;;;;17776:95;17772:351;;;-1:-1:-1;;;;;17919:10:7;17910:20;;;;;:8;:20;;;;;;:32;;17935:6;17910:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;17896:10:7;17887:20;;;;;;:8;:20;;;;;;:55;;;;17972:13;;;;;;;:25;;17990:6;17972:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;17956:13:7;;;;;;;:8;:13;;;;;;;:41;;;;:13;18020:10;18011:33;;;;-1:-1:-1;;;;;;;;;;;18011:33:7;18037:6;;18011:33;;;;;;;;;;;;;-1:-1:-1;18065:4:7;18058:11;;17772:351;-1:-1:-1;18107:5:7;18100:12;;964:23;;;-1:-1:-1;;;;;964:23:7;;:::o;7890:277::-;5204:8;;8024:12;;5190:10;-1:-1:-1;;;;;5190:22:7;;;5204:8;;5190:22;;:45;;-1:-1:-1;5230:5:7;;5216:10;-1:-1:-1;;;;;5216:19:7;;;5230:5;;;;;5216:19;5190:45;5181:55;;;;;;;;8052:10;:27;;;8089:50;8065:14;8127:11;8089:50;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8156:4:7;7890:277;;;;:::o;2030:23::-;;;-1:-1:-1;;;;;2030:23:7;;:::o;3129:38::-;;;;:::o;639:33::-;;;-1:-1:-1;;;;;639:33:7;;:::o;20009:146::-;-1:-1:-1;;;;;20123:15:7;;;20087:17;20123:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;20009:146::o;857:39::-;;;-1:-1:-1;;;;;857:39:7;;:::o;11324:537::-;11401:12;11430:19;11451:20;11473:10;11485:4;11491:7;5020:5;;;;;;;;;-1:-1:-1;;;;;5020:5:7;-1:-1:-1;;;;;5006:19:7;:10;-1:-1:-1;;;;;5006:19:7;;4997:29;;;;;;;;11502:13;;11528:3;;-1:-1:-1;;;;;11502:13:7;;;;:25;;11528:3;11533:17;11502:13;:49;;;;;;;-1:-1:-1;;;11502:49:7;;;;;;-1:-1:-1;;;;;11502:49:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11425:126;;;;;;;;;;11579:3;11569:7;:13;11561:22;;;;;;;;11601:8;;-1:-1:-1;;;;;11601:8:7;:34;11636:19;11657:20;11679:10;11691:4;11601:8;:95;;;;;;;-1:-1:-1;;;11601:95:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11593:104;;;;;;;;11741:28;;;;;;;;;;11753:3;;-1:-1:-1;;;;;11753:3:7;;;11741:28;;11753:3;11741:28;;;;;;;;;;;;;;;11707:31;;;11753:3;11707:31;;;:12;:31;;;;11741:28;11707:62;;;-1:-1:-1;;;;;;11707:62:7;-1:-1:-1;;;;;11707:62:7;;;;;;;;;;;;;;;;-1:-1:-1;;;11707:62:7;-1:-1:-1;;11707:62:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;11707:62:7;-1:-1:-1;;11707:62:7;;;;;;-1:-1:-1;11804:3:7;;-1:-1:-1;;;;;11779:54:7;;;;11804:3;11779:54;11828:4;11779:54;;;;;;;;;;;;;;;;;-1:-1:-1;11850:4:7;;11324:537;-1:-1:-1;;;;;;11324:537:7:o;529:18::-;;;-1:-1:-1;;;;;529:18:7;;:::o;13807:419::-;13877:8;;13847:12;;-1:-1:-1;;;;;13877:8:7;:22;;13869:31;;;;;;-1:-1:-1;;;;;13958:10:7;13946:23;;;;;:11;:23;;;;;:37;;;13922:19;;:62;;;:23;:62;:::i;:::-;13916:3;:68;13908:77;;;;;;14014:10;-1:-1:-1;;;;;14002:23:7;;;;;:11;:23;;;;;:30;;;;;;;;14001:31;13993:40;;;;;;-1:-1:-1;;;;;14061:10:7;14049:23;14082:1;14049:23;;;:11;:23;;;;;:30;:34;14041:43;;;;;;14100:4;;-1:-1:-1;;;;;14114:10:7;14126:23;;;14100:4;14126:23;;;:11;:23;;;;;;:30;14100:4;;;;;:13;;14126:30;14100:4;:57;;;;;;-1:-1:-1;;;14100:57:7;;;;;;-1:-1:-1;;;;;14100:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14092:66;;;;;;;;-1:-1:-1;;;;;;14178:10:7;14166:23;14199:1;14166:23;;;:11;:23;;;;;:34;14215:4;13807:419;:::o;17143:190::-;17263:8;;17273;;17283:10;;17295:15;;17312:3;;17317:8;;-1:-1:-1;;;;;17263:8:7;;;;17273;;;;17283:10;;17295:15;;;;17312:3;;;;17317:8;;;17143:190::o;495:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;883:143:6;941:7;972:5;;;994:6;;;;987:14;;;;1018:1;883:143;-1:-1:-1;;;883:143:6:o;757:120::-;815:7;841:6;;;;834:14;;;;-1:-1:-1;865:5:6;;;757:120::o;305:157::-;363:7;394:5;;;416:6;;;:20;;;435:1;430;426;:5;;;;;;;;:10;416:20;409:28;;;;;468:283;526:7;623:9;639:1;635;:5;;;;;;;;;468:283;-1:-1:-1;;;;468:283:6:o", "source": "pragma solidity ^0.4.18;\n\nimport '../SecurityToken.sol';\n\n/**\n * @title SecurityToken\n * @dev Contract (A Blueprint) that contains the functionalities of the security token\n */\n\ncontract SecurityTokenMOCK is SecurityToken {\n\n function SecurityTokenMOCK(\n string _name,\n string _ticker,\n uint256 _totalSupply,\n uint8 _decimals,\n address _owner,\n address _polyTokenAddress,\n address _polyCustomersAddress,\n address _polyComplianceAddress\n ) public\n SecurityToken(\n _name,\n _ticker,\n _totalSupply,\n _decimals,\n _owner,\n _polyTokenAddress,\n _polyCustomersAddress,\n _polyComplianceAddress\n\n )\n {}\n\n function issueSecurityTokens(address _contributor, uint256 _amountOfSecurityTokens, uint256 _polyContributed) public onlyOffering returns (bool success) {\n\n // Update ST balances (transfers ST from STO to _contributor)\n balances[offering] = balances[offering].sub(_amountOfSecurityTokens);\n balances[_contributor] = balances[_contributor].add(_amountOfSecurityTokens);\n // ERC20 Transfer event\n Transfer(offering, _contributor, _amountOfSecurityTokens);\n // Update the amount of POLY a contributor has contributed and allocated to the owner\n contributedToSTO[_contributor] = contributedToSTO[_contributor].add(_polyContributed);\n allocations[owner].amount = allocations[owner].amount.add(_polyContributed);\n totalAllocated = totalAllocated.add(_polyContributed);\n LogTokenIssued(_contributor, _amountOfSecurityTokens, _polyContributed, now);\n return true;\n }\n\n /**\n * @dev Start the offering by sending all the tokens to STO contract\n * @return bool\n */\n function initialiseOffering(address _offering) onlyOwner external returns (bool success) {\n require(offering == 0x0);\n offering = _offering;\n shareholders[offering] = Shareholder(this, true, 5);\n uint256 tokenAmount = this.balanceOf(msg.sender);\n require(tokenAmount == totalSupply);\n balances[offering] = balances[offering].add(tokenAmount);\n balances[msg.sender] = balances[msg.sender].sub(tokenAmount);\n Transfer(owner, offering, tokenAmount);\n return true;\n }\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Test Contracts/SecurityTokenMOCK.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Test Contracts/SecurityTokenMOCK.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Test Contracts/SecurityTokenMOCK.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Test Contracts/SecurityTokenMOCK.sol", "exportedSymbols": { "SecurityTokenMOCK": [ 4879 @@ -1090,7 +1090,7 @@ { "attributes": { "SourceUnit": 3538, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SecurityToken.sol", "file": "../SecurityToken.sol", "scope": 4880, "symbolAliases": [ @@ -3888,5 +3888,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.745Z" + "updatedAt": "2018-02-25T12:43:54.404Z" } \ No newline at end of file diff --git a/build/contracts/SecurityTokenRegistrar.json b/build/contracts/SecurityTokenRegistrar.json index 46f152f..2b65a9a 100644 --- a/build/contracts/SecurityTokenRegistrar.json +++ b/build/contracts/SecurityTokenRegistrar.json @@ -304,15 +304,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000104565b5034156200005a57600080fd5b60405160608062004057833981016040528080519190602001805191906020018051915050600160a060020a03831615156200009557600080fd5b600160a060020a0382161515620000ab57600080fd5b600160a060020a0381161515620000c157600080fd5b60018054600160a060020a03948516600160a060020a031991821617909155600280549385169382169390931790925560038054919093169116179055620001a9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014757805160ff191683800117855562000177565b8280016001018555821562000177579182015b82811115620001775782518255916020019190600101906200015a565b506200018592915062000189565b5090565b620001a691905b8082111562000185576000815560010162000190565b90565b613e9e80620001b96000396000f300606060405260043610620000ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ab763d08114620000b357806369bf2ffb14620000e55780637a1c553f146200017b57806382bbc9ae14620001d35780638dc5e89314620002295780638f9bbf16146200027e57806395a13ff314620003a157806397d0423f14620003b7578063d514b93d14620003cd578063ffa1ad741462000443575b600080fd5b3415620000bf57600080fd5b620000c9620004d3565b604051600160a060020a03909116815260200160405180910390f35b3415620000f157600080fd5b620000c960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650620004e295505050505050565b34156200018757600080fd5b620001d160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350620005c292505050565b005b3415620001df57600080fd5b620001d160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050933593506200078292505050565b34156200023557600080fd5b620001d1602460048035828101929082013591813580830192908201359160443591820191013560643560ff608435811690600160a060020a0360a435169060c435166200099f565b34156200028a57600080fd5b620002a0600160a060020a036004351662000e3c565b604051600160a060020a038316604082015260ff82166060820152608080825281906020820190820187818151815260200191508051906020019080838360005b83811015620002fb578082015183820152602001620002e1565b50505050905090810190601f168015620003295780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156200036157808201518382015260200162000347565b50505050905090810190601f1680156200038f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415620003ad57600080fd5b620000c962000ff0565b3415620003c357600080fd5b620000c962000fff565b3415620003d957600080fd5b6200042160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506200100e95505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156200044f57600080fd5b620004596200110f565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015620004975780820151838201526020016200047d565b50505050905090810190601f168015620004c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600254600160a060020a031681565b60006006836040518082805190602001908083835b60208310620005185780518252601f199092019160209182019101620004f7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083106200057d5780518252601f1990920191602091820191016200055c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03169392505050565b620005cc62001327565b620005d783620011b1565b90506004816040518082805190602001908083835b602083106200060d5780518252601f199092019160209182019101620005ec565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390205433600160a060020a039081169116146200065b57600080fd5b816004826040518082805190602001908083835b60208310620006905780518252601f1990920191602091820191016200066f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557f18926a062b552542639e90aeaa7bcd211fdbad5ce317ddbc324c3d9c58ab6db6813384604051600160a060020a03831660208201526040810182905260608082528190810185818151815260200191508051906020019080838360005b838110156200074057808201518382015260200162000726565b50505050905090810190601f1680156200076e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b6200078c62001327565b60008351116200079b57600080fd5b620007a683620011b1565b905060006004826040518082805190602001908083835b60208310620007de5780518252601f199092019160209182019101620007bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316146200082757600080fd5b336004826040518082805190602001908083835b602083106200085c5780518252601f1990920191602091820191016200083b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055816004826040518082805190602001908083835b60208310620008f05780518252601f199092019160209182019101620008cf565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557fc3bc4e25bb7624c0f1542a22087b6caa33d2df4f1657f9add940f33a4358fd2a813384604051600160a060020a0383166020820152604081018290526060808252819081018581815181526020019150805190602001908083836000838110156200074057808201518382015260200162000726565b600080808611620009af57600080fd5b60048c8c604051808383808284378201915050925050509081526020016040519081900390209150600060068d8d60405180838380828437820191505092505050908152602001604051809103902089896040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03161462000a3757600080fd5b8154600160a060020a0316151562000a4e57600080fd5b600160a060020a038416151562000a6457600080fd5b60008911801562000a755750600087115b151562000a8157600080fd5b60018054835491840154600160a060020a03918216926323b872dd9233929116906000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151562000b1457600080fd5b6102c65a03f1151562000b2657600080fd5b50505060405180519050151562000b3c57600080fd5b6001546002546003548c928c928c928c928c928c928c92600160a060020a03908116928116911662000b6d62001339565b6040810187905260ff86166060820152600160a060020a03808616608083015284811660a083015283811660c0830152821660e082015261010080825281018a9052806020810161012082018d8d8082843790910184810383528b815260200190508b8b8082843782019150509c50505050505050505050505050604051809103906000f080151562000bff57600080fd5b90508060068d8d604051808383808284378201915050925050509081526020016040518091039020898960405180838380828437820191505092505050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556080604051908101604052808d8d8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f0160208091040260200160405190810160405281815292919060208401838380828437505050928452505050600160a060020a0380871660208084019190915260ff8716604093840152908416600090815260059091522081518190805162000d2d9291602001906200134a565b5060208201518160010190805162000d4a9291602001906200134a565b50604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560608201518160020160146101000a81548160ff021916908360ff16021790555090505083600160a060020a031681600160a060020a03167f4e4d54dca46c434c8be154f7b58dcf5069c562cac934edcd012d1f3faf6aa60d8e8e8c8c8960405160ff821660408201526060808252810185905280602081016080820188888082843790910184810383528681526020019050868680828437820191505097505050505050505060405180910390a3505050505050505050505050565b62000e4662001327565b62000e5062001327565b600160a060020a0383811660009081526005602090815260408083206002808201548254959687969395600180880196928416957401000000000000000000000000000000000000000090940460ff169488946101009281161592909202600019019091160491601f830182900482029091019051908101604052809291908181526020018280546001816001161561010002031660029004801562000f3a5780601f1062000f0e5761010080835404028352916020019162000f3a565b820191906000526020600020905b81548152906001019060200180831162000f1c57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000fda5780601f1062000fae5761010080835404028352916020019162000fda565b820191906000526020600020905b81548152906001019060200180831162000fbc57829003601f168201915b5050505050925093509350935093509193509193565b600354600160a060020a031681565b600154600160a060020a031681565b6000806200101b62001327565b6200102684620011b1565b90506004816040518082805190602001908083835b602083106200105c5780518252601f1990920191602091820191016200103b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166004826040518082805190602001908083835b60208310620010ce5780518252601f199092019160209182019101620010ad565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101549250925050915091565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620011a95780601f106200117d57610100808354040283529160200191620011a9565b820191906000526020600020905b8154815290600101906020018083116200118b57829003601f168201915b505050505081565b620011bb62001327565b620011c562001327565b50816000805b82518210156200131e57828281518110620011e257fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190040290507f41000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610801590620012a457507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15620012d45760207f01000000000000000000000000000000000000000000000000000000000000009182900401025b80838381518110620012e257fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190620011cb565b50909392505050565b60206040519081016040526000815290565b604051612a8380620013f083390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200138d57805160ff1916838001178555620013bd565b82800160010185558215620013bd579182015b82811115620013bd578251825591602001919060010190620013a0565b50620013cb929150620013cf565b5090565b620013ec91905b80821115620013cb5760008155600101620013d6565b905600606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001af565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002a8338038062002a838339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff8916179055915060079050888051620000e4929160200190620001af565b506008878051620000fa929160200190620001af565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a3505050505050505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000222565b8280016001018555821562000222579182015b828111156200022257825182559160200191906001019062000205565b506200023092915062000234565b5090565b6200025191905b808211156200023057600081556001016200023b565b90565b61281f80620002646000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c43d623d5b873c7c137b14e8b3a0cd037c0d1aec715e7b567ac3af4e187211a80029a165627a7a72305820b65b3cc8fd1ccf18dd69afadca148f74a464d9e9996e50306d6de17e7b5e3b0f0029", - "deployedBytecode": "0x606060405260043610620000ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ab763d08114620000b357806369bf2ffb14620000e55780637a1c553f146200017b57806382bbc9ae14620001d35780638dc5e89314620002295780638f9bbf16146200027e57806395a13ff314620003a157806397d0423f14620003b7578063d514b93d14620003cd578063ffa1ad741462000443575b600080fd5b3415620000bf57600080fd5b620000c9620004d3565b604051600160a060020a03909116815260200160405180910390f35b3415620000f157600080fd5b620000c960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650620004e295505050505050565b34156200018757600080fd5b620001d160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350620005c292505050565b005b3415620001df57600080fd5b620001d160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050933593506200078292505050565b34156200023557600080fd5b620001d1602460048035828101929082013591813580830192908201359160443591820191013560643560ff608435811690600160a060020a0360a435169060c435166200099f565b34156200028a57600080fd5b620002a0600160a060020a036004351662000e3c565b604051600160a060020a038316604082015260ff82166060820152608080825281906020820190820187818151815260200191508051906020019080838360005b83811015620002fb578082015183820152602001620002e1565b50505050905090810190601f168015620003295780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156200036157808201518382015260200162000347565b50505050905090810190601f1680156200038f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415620003ad57600080fd5b620000c962000ff0565b3415620003c357600080fd5b620000c962000fff565b3415620003d957600080fd5b6200042160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506200100e95505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156200044f57600080fd5b620004596200110f565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015620004975780820151838201526020016200047d565b50505050905090810190601f168015620004c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600254600160a060020a031681565b60006006836040518082805190602001908083835b60208310620005185780518252601f199092019160209182019101620004f7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083106200057d5780518252601f1990920191602091820191016200055c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03169392505050565b620005cc62001327565b620005d783620011b1565b90506004816040518082805190602001908083835b602083106200060d5780518252601f199092019160209182019101620005ec565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390205433600160a060020a039081169116146200065b57600080fd5b816004826040518082805190602001908083835b60208310620006905780518252601f1990920191602091820191016200066f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557f18926a062b552542639e90aeaa7bcd211fdbad5ce317ddbc324c3d9c58ab6db6813384604051600160a060020a03831660208201526040810182905260608082528190810185818151815260200191508051906020019080838360005b838110156200074057808201518382015260200162000726565b50505050905090810190601f1680156200076e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b6200078c62001327565b60008351116200079b57600080fd5b620007a683620011b1565b905060006004826040518082805190602001908083835b60208310620007de5780518252601f199092019160209182019101620007bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316146200082757600080fd5b336004826040518082805190602001908083835b602083106200085c5780518252601f1990920191602091820191016200083b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055816004826040518082805190602001908083835b60208310620008f05780518252601f199092019160209182019101620008cf565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557fc3bc4e25bb7624c0f1542a22087b6caa33d2df4f1657f9add940f33a4358fd2a813384604051600160a060020a0383166020820152604081018290526060808252819081018581815181526020019150805190602001908083836000838110156200074057808201518382015260200162000726565b600080808611620009af57600080fd5b60048c8c604051808383808284378201915050925050509081526020016040519081900390209150600060068d8d60405180838380828437820191505092505050908152602001604051809103902089896040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03161462000a3757600080fd5b8154600160a060020a0316151562000a4e57600080fd5b600160a060020a038416151562000a6457600080fd5b60008911801562000a755750600087115b151562000a8157600080fd5b60018054835491840154600160a060020a03918216926323b872dd9233929116906000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151562000b1457600080fd5b6102c65a03f1151562000b2657600080fd5b50505060405180519050151562000b3c57600080fd5b6001546002546003548c928c928c928c928c928c928c92600160a060020a03908116928116911662000b6d62001339565b6040810187905260ff86166060820152600160a060020a03808616608083015284811660a083015283811660c0830152821660e082015261010080825281018a9052806020810161012082018d8d8082843790910184810383528b815260200190508b8b8082843782019150509c50505050505050505050505050604051809103906000f080151562000bff57600080fd5b90508060068d8d604051808383808284378201915050925050509081526020016040518091039020898960405180838380828437820191505092505050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556080604051908101604052808d8d8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f0160208091040260200160405190810160405281815292919060208401838380828437505050928452505050600160a060020a0380871660208084019190915260ff8716604093840152908416600090815260059091522081518190805162000d2d9291602001906200134a565b5060208201518160010190805162000d4a9291602001906200134a565b50604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560608201518160020160146101000a81548160ff021916908360ff16021790555090505083600160a060020a031681600160a060020a03167f4e4d54dca46c434c8be154f7b58dcf5069c562cac934edcd012d1f3faf6aa60d8e8e8c8c8960405160ff821660408201526060808252810185905280602081016080820188888082843790910184810383528681526020019050868680828437820191505097505050505050505060405180910390a3505050505050505050505050565b62000e4662001327565b62000e5062001327565b600160a060020a0383811660009081526005602090815260408083206002808201548254959687969395600180880196928416957401000000000000000000000000000000000000000090940460ff169488946101009281161592909202600019019091160491601f830182900482029091019051908101604052809291908181526020018280546001816001161561010002031660029004801562000f3a5780601f1062000f0e5761010080835404028352916020019162000f3a565b820191906000526020600020905b81548152906001019060200180831162000f1c57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000fda5780601f1062000fae5761010080835404028352916020019162000fda565b820191906000526020600020905b81548152906001019060200180831162000fbc57829003601f168201915b5050505050925093509350935093509193509193565b600354600160a060020a031681565b600154600160a060020a031681565b6000806200101b62001327565b6200102684620011b1565b90506004816040518082805190602001908083835b602083106200105c5780518252601f1990920191602091820191016200103b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166004826040518082805190602001908083835b60208310620010ce5780518252601f199092019160209182019101620010ad565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101549250925050915091565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620011a95780601f106200117d57610100808354040283529160200191620011a9565b820191906000526020600020905b8154815290600101906020018083116200118b57829003601f168201915b505050505081565b620011bb62001327565b620011c562001327565b50816000805b82518210156200131e57828281518110620011e257fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190040290507f41000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610801590620012a457507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15620012d45760207f01000000000000000000000000000000000000000000000000000000000000009182900401025b80838381518110620012e257fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190620011cb565b50909392505050565b60206040519081016040526000815290565b604051612a8380620013f083390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200138d57805160ff1916838001178555620013bd565b82800160010185558215620013bd579182015b82811115620013bd578251825591602001919060010190620013a0565b50620013cb929150620013cf565b5090565b620013ec91905b80821115620013cb5760008155600101620013d6565b905600606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001af565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002a8338038062002a838339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff8916179055915060079050888051620000e4929160200190620001af565b506008878051620000fa929160200190620001af565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a3505050505050505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000222565b8280016001018555821562000222579182015b828111156200022257825182559160200191906001019062000205565b506200023092915062000234565b5090565b6200025191905b808211156200023057600081556001016200023b565b90565b61281f80620002646000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820c43d623d5b873c7c137b14e8b3a0cd037c0d1aec715e7b567ac3af4e187211a80029a165627a7a72305820b65b3cc8fd1ccf18dd69afadca148f74a464d9e9996e50306d6de17e7b5e3b0f0029", + "bytecode": "0x606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d92916020019062000104565b5034156200005a57600080fd5b60405160608062004057833981016040528080519190602001805191906020018051915050600160a060020a03831615156200009557600080fd5b600160a060020a0382161515620000ab57600080fd5b600160a060020a0381161515620000c157600080fd5b60018054600160a060020a03948516600160a060020a031991821617909155600280549385169382169390931790925560038054919093169116179055620001a9565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200014757805160ff191683800117855562000177565b8280016001018555821562000177579182015b82811115620001775782518255916020019190600101906200015a565b506200018592915062000189565b5090565b620001a691905b8082111562000185576000815560010162000190565b90565b613e9e80620001b96000396000f300606060405260043610620000ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ab763d08114620000b357806369bf2ffb14620000e55780637a1c553f146200017b57806382bbc9ae14620001d35780638dc5e89314620002295780638f9bbf16146200027e57806395a13ff314620003a157806397d0423f14620003b7578063d514b93d14620003cd578063ffa1ad741462000443575b600080fd5b3415620000bf57600080fd5b620000c9620004d3565b604051600160a060020a03909116815260200160405180910390f35b3415620000f157600080fd5b620000c960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650620004e295505050505050565b34156200018757600080fd5b620001d160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350620005c292505050565b005b3415620001df57600080fd5b620001d160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050933593506200078292505050565b34156200023557600080fd5b620001d1602460048035828101929082013591813580830192908201359160443591820191013560643560ff608435811690600160a060020a0360a435169060c435166200099f565b34156200028a57600080fd5b620002a0600160a060020a036004351662000e3c565b604051600160a060020a038316604082015260ff82166060820152608080825281906020820190820187818151815260200191508051906020019080838360005b83811015620002fb578082015183820152602001620002e1565b50505050905090810190601f168015620003295780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156200036157808201518382015260200162000347565b50505050905090810190601f1680156200038f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415620003ad57600080fd5b620000c962000ff0565b3415620003c357600080fd5b620000c962000fff565b3415620003d957600080fd5b6200042160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506200100e95505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156200044f57600080fd5b620004596200110f565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015620004975780820151838201526020016200047d565b50505050905090810190601f168015620004c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600254600160a060020a031681565b60006006836040518082805190602001908083835b60208310620005185780518252601f199092019160209182019101620004f7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083106200057d5780518252601f1990920191602091820191016200055c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03169392505050565b620005cc62001327565b620005d783620011b1565b90506004816040518082805190602001908083835b602083106200060d5780518252601f199092019160209182019101620005ec565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390205433600160a060020a039081169116146200065b57600080fd5b816004826040518082805190602001908083835b60208310620006905780518252601f1990920191602091820191016200066f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557f18926a062b552542639e90aeaa7bcd211fdbad5ce317ddbc324c3d9c58ab6db6813384604051600160a060020a03831660208201526040810182905260608082528190810185818151815260200191508051906020019080838360005b838110156200074057808201518382015260200162000726565b50505050905090810190601f1680156200076e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b6200078c62001327565b60008351116200079b57600080fd5b620007a683620011b1565b905060006004826040518082805190602001908083835b60208310620007de5780518252601f199092019160209182019101620007bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316146200082757600080fd5b336004826040518082805190602001908083835b602083106200085c5780518252601f1990920191602091820191016200083b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055816004826040518082805190602001908083835b60208310620008f05780518252601f199092019160209182019101620008cf565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557fc3bc4e25bb7624c0f1542a22087b6caa33d2df4f1657f9add940f33a4358fd2a813384604051600160a060020a0383166020820152604081018290526060808252819081018581815181526020019150805190602001908083836000838110156200074057808201518382015260200162000726565b600080808611620009af57600080fd5b60048c8c604051808383808284378201915050925050509081526020016040519081900390209150600060068d8d60405180838380828437820191505092505050908152602001604051809103902089896040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03161462000a3757600080fd5b8154600160a060020a0316151562000a4e57600080fd5b600160a060020a038416151562000a6457600080fd5b60008911801562000a755750600087115b151562000a8157600080fd5b60018054835491840154600160a060020a03918216926323b872dd9233929116906000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151562000b1457600080fd5b6102c65a03f1151562000b2657600080fd5b50505060405180519050151562000b3c57600080fd5b6001546002546003548c928c928c928c928c928c928c92600160a060020a03908116928116911662000b6d62001339565b6040810187905260ff86166060820152600160a060020a03808616608083015284811660a083015283811660c0830152821660e082015261010080825281018a9052806020810161012082018d8d8082843790910184810383528b815260200190508b8b8082843782019150509c50505050505050505050505050604051809103906000f080151562000bff57600080fd5b90508060068d8d604051808383808284378201915050925050509081526020016040518091039020898960405180838380828437820191505092505050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556080604051908101604052808d8d8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f0160208091040260200160405190810160405281815292919060208401838380828437505050928452505050600160a060020a0380871660208084019190915260ff8716604093840152908416600090815260059091522081518190805162000d2d9291602001906200134a565b5060208201518160010190805162000d4a9291602001906200134a565b50604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560608201518160020160146101000a81548160ff021916908360ff16021790555090505083600160a060020a031681600160a060020a03167f4e4d54dca46c434c8be154f7b58dcf5069c562cac934edcd012d1f3faf6aa60d8e8e8c8c8960405160ff821660408201526060808252810185905280602081016080820188888082843790910184810383528681526020019050868680828437820191505097505050505050505060405180910390a3505050505050505050505050565b62000e4662001327565b62000e5062001327565b600160a060020a0383811660009081526005602090815260408083206002808201548254959687969395600180880196928416957401000000000000000000000000000000000000000090940460ff169488946101009281161592909202600019019091160491601f830182900482029091019051908101604052809291908181526020018280546001816001161561010002031660029004801562000f3a5780601f1062000f0e5761010080835404028352916020019162000f3a565b820191906000526020600020905b81548152906001019060200180831162000f1c57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000fda5780601f1062000fae5761010080835404028352916020019162000fda565b820191906000526020600020905b81548152906001019060200180831162000fbc57829003601f168201915b5050505050925093509350935093509193509193565b600354600160a060020a031681565b600154600160a060020a031681565b6000806200101b62001327565b6200102684620011b1565b90506004816040518082805190602001908083835b602083106200105c5780518252601f1990920191602091820191016200103b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166004826040518082805190602001908083835b60208310620010ce5780518252601f199092019160209182019101620010ad565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101549250925050915091565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620011a95780601f106200117d57610100808354040283529160200191620011a9565b820191906000526020600020905b8154815290600101906020018083116200118b57829003601f168201915b505050505081565b620011bb62001327565b620011c562001327565b50816000805b82518210156200131e57828281518110620011e257fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190040290507f41000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610801590620012a457507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15620012d45760207f01000000000000000000000000000000000000000000000000000000000000009182900401025b80838381518110620012e257fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190620011cb565b50909392505050565b60206040519081016040526000815290565b604051612a8380620013f083390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200138d57805160ff1916838001178555620013bd565b82800160010185558215620013bd579182015b82811115620013bd578251825591602001919060010190620013a0565b50620013cb929150620013cf565b5090565b620013ec91905b80821115620013cb5760008155600101620013d6565b905600606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001af565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002a8338038062002a838339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff8916179055915060079050888051620000e4929160200190620001af565b506008878051620000fa929160200190620001af565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a3505050505050505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000222565b8280016001018555821562000222579182015b828111156200022257825182559160200191906001019062000205565b506200023092915062000234565b5090565b6200025191905b808211156200023057600081556001016200023b565b90565b61281f80620002646000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820eb3e44f2eb473cdb89eeaa4d69a11e29a7b6c66288a1aa990525e6f45a329ec50029a165627a7a72305820e0764268d1210e61765f064dcce12280944e9e96c677fa8a33c2d27aa13b5d2d0029", + "deployedBytecode": "0x606060405260043610620000ae5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630ab763d08114620000b357806369bf2ffb14620000e55780637a1c553f146200017b57806382bbc9ae14620001d35780638dc5e89314620002295780638f9bbf16146200027e57806395a13ff314620003a157806397d0423f14620003b7578063d514b93d14620003cd578063ffa1ad741462000443575b600080fd5b3415620000bf57600080fd5b620000c9620004d3565b604051600160a060020a03909116815260200160405180910390f35b3415620000f157600080fd5b620000c960046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f016020809104026020016040519081016040528181529291906020840183838082843750949650620004e295505050505050565b34156200018757600080fd5b620001d160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505093359350620005c292505050565b005b3415620001df57600080fd5b620001d160046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965050933593506200078292505050565b34156200023557600080fd5b620001d1602460048035828101929082013591813580830192908201359160443591820191013560643560ff608435811690600160a060020a0360a435169060c435166200099f565b34156200028a57600080fd5b620002a0600160a060020a036004351662000e3c565b604051600160a060020a038316604082015260ff82166060820152608080825281906020820190820187818151815260200191508051906020019080838360005b83811015620002fb578082015183820152602001620002e1565b50505050905090810190601f168015620003295780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156200036157808201518382015260200162000347565b50505050905090810190601f1680156200038f5780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b3415620003ad57600080fd5b620000c962000ff0565b3415620003c357600080fd5b620000c962000fff565b3415620003d957600080fd5b6200042160046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506200100e95505050505050565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156200044f57600080fd5b620004596200110f565b60405160208082528190810183818151815260200191508051906020019080838360005b83811015620004975780820151838201526020016200047d565b50505050905090810190601f168015620004c55780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600254600160a060020a031681565b60006006836040518082805190602001908083835b60208310620005185780518252601f199092019160209182019101620004f7565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020826040518082805190602001908083835b602083106200057d5780518252601f1990920191602091820191016200055c565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03169392505050565b620005cc62001327565b620005d783620011b1565b90506004816040518082805190602001908083835b602083106200060d5780518252601f199092019160209182019101620005ec565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390205433600160a060020a039081169116146200065b57600080fd5b816004826040518082805190602001908083835b60208310620006905780518252601f1990920191602091820191016200066f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557f18926a062b552542639e90aeaa7bcd211fdbad5ce317ddbc324c3d9c58ab6db6813384604051600160a060020a03831660208201526040810182905260608082528190810185818151815260200191508051906020019080838360005b838110156200074057808201518382015260200162000726565b50505050905090810190601f1680156200076e5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1505050565b6200078c62001327565b60008351116200079b57600080fd5b620007a683620011b1565b905060006004826040518082805190602001908083835b60208310620007de5780518252601f199092019160209182019101620007bd565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316146200082757600080fd5b336004826040518082805190602001908083835b602083106200085c5780518252601f1990920191602091820191016200083b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055816004826040518082805190602001908083835b60208310620008f05780518252601f199092019160209182019101620008cf565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020600101557fc3bc4e25bb7624c0f1542a22087b6caa33d2df4f1657f9add940f33a4358fd2a813384604051600160a060020a0383166020820152604081018290526060808252819081018581815181526020019150805190602001908083836000838110156200074057808201518382015260200162000726565b600080808611620009af57600080fd5b60048c8c604051808383808284378201915050925050509081526020016040519081900390209150600060068d8d60405180838380828437820191505092505050908152602001604051809103902089896040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03161462000a3757600080fd5b8154600160a060020a0316151562000a4e57600080fd5b600160a060020a038416151562000a6457600080fd5b60008911801562000a755750600087115b151562000a8157600080fd5b60018054835491840154600160a060020a03918216926323b872dd9233929116906000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151562000b1457600080fd5b6102c65a03f1151562000b2657600080fd5b50505060405180519050151562000b3c57600080fd5b6001546002546003548c928c928c928c928c928c928c92600160a060020a03908116928116911662000b6d62001339565b6040810187905260ff86166060820152600160a060020a03808616608083015284811660a083015283811660c0830152821660e082015261010080825281018a9052806020810161012082018d8d8082843790910184810383528b815260200190508b8b8082843782019150509c50505050505050505050505050604051809103906000f080151562000bff57600080fd5b90508060068d8d604051808383808284378201915050925050509081526020016040518091039020898960405180838380828437820191505092505050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790556080604051908101604052808d8d8080601f0160208091040260200160405190810160405281815292919060208401838380828437820191505050505050815260200189898080601f0160208091040260200160405190810160405281815292919060208401838380828437505050928452505050600160a060020a0380871660208084019190915260ff8716604093840152908416600090815260059091522081518190805162000d2d9291602001906200134a565b5060208201518160010190805162000d4a9291602001906200134a565b50604082015160028201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039290921691909117905560608201518160020160146101000a81548160ff021916908360ff16021790555090505083600160a060020a031681600160a060020a03167f4e4d54dca46c434c8be154f7b58dcf5069c562cac934edcd012d1f3faf6aa60d8e8e8c8c8960405160ff821660408201526060808252810185905280602081016080820188888082843790910184810383528681526020019050868680828437820191505097505050505050505060405180910390a3505050505050505050505050565b62000e4662001327565b62000e5062001327565b600160a060020a0383811660009081526005602090815260408083206002808201548254959687969395600180880196928416957401000000000000000000000000000000000000000090940460ff169488946101009281161592909202600019019091160491601f830182900482029091019051908101604052809291908181526020018280546001816001161561010002031660029004801562000f3a5780601f1062000f0e5761010080835404028352916020019162000f3a565b820191906000526020600020905b81548152906001019060200180831162000f1c57829003601f168201915b50505050509350828054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801562000fda5780601f1062000fae5761010080835404028352916020019162000fda565b820191906000526020600020905b81548152906001019060200180831162000fbc57829003601f168201915b5050505050925093509350935093509193509193565b600354600160a060020a031681565b600154600160a060020a031681565b6000806200101b62001327565b6200102684620011b1565b90506004816040518082805190602001908083835b602083106200105c5780518252601f1990920191602091820191016200103b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03166004826040518082805190602001908083835b60208310620010ce5780518252601f199092019160209182019101620010ad565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101549250925050915091565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620011a95780601f106200117d57610100808354040283529160200191620011a9565b820191906000526020600020905b8154815290600101906020018083116200118b57829003601f168201915b505050505081565b620011bb62001327565b620011c562001327565b50816000805b82518210156200131e57828281518110620011e257fe5b01602001517f0100000000000000000000000000000000000000000000000000000000000000908190040290507f41000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821610801590620012a457507f5a000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000821611155b15620012d45760207f01000000000000000000000000000000000000000000000000000000000000009182900401025b80838381518110620012e257fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190620011cb565b50909392505050565b60206040519081016040526000815290565b604051612a8380620013f083390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200138d57805160ff1916838001178555620013bd565b82800160010185558215620013bd579182015b82811115620013bd578251825591602001919060010190620013a0565b50620013cb929150620013cf565b5090565b620013ec91905b80821115620013cb5760008155600101620013d6565b905600606060405260408051908101604052600181527f3200000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001af565b506011805461ffff191690556000601281905560165534156200006f57600080fd5b60405162002a8338038062002a838339810160405280805182019190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180516009805460ff191660ff8916179055915060079050888051620000e4929160200190620001af565b506008878051620000fa929160200190620001af565b506009805461010060a860020a031916610100600160a060020a0387811691820292909217909255600a8890556000828152600c60205260408082208a905560018054600160a060020a0319908116898616179091556006805482168886161790556002805490911693861693909317909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9089905190815260200160405180910390a3505050505050505062000254565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001f257805160ff191683800117855562000222565b8280016001018555821562000222579182015b828111156200022257825182559160200191906001019062000205565b506200023092915062000234565b5090565b6200025191905b808211156200023057600081556001016200023b565b90565b61281f80620002646000396000f3006060604052600436106101df5763ffffffff60e060020a60003504166306fdde0381146101e4578063095ea7b31461026e5780631402f80d146102a457806318160ddd146102bd578063221777d5146102e257806322cf939d146102f557806323b872dd1461031d57806325221a4f146103455780632eb4a7ab14610394578063313ce567146103a75780633e045845146103d057806344337ea1146103f557806345f7f24914610414578063475c5ed11461042757806352a9039c1461044657806355c0e65e146104a15780635c2930ad146104b457806370a0823114610504578063764c6dd3146105235780637f4ed2c71461054257806388026706146105915780638da5cb5b146105c05780638f59c066146105d357806395d89b41146105f8578063a12a6bb01461060b578063a40aa37c1461061e578063a42b05dc14610637578063a5d5ca541461064a578063a9059cbb1461065d578063b266cb011461067f578063b2ad3d4414610692578063c89e4361146106ab578063d2e17f59146106be578063d4434387146106d1578063dd62ed3e146106e4578063de325e0214610709578063e43252d71461071c578063e4bbb4b01461073b578063fc1eb4d11461074e578063ff332ab714610761578063ffa1ad74146107b7575b600080fd5b34156101ef57600080fd5b6101f76107ca565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023357808201518382015260200161021b565b50505050905090810190601f1680156102605780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027957600080fd5b610290600160a060020a0360043516602435610868565b604051901515815260200160405180910390f35b34156102af57600080fd5b61029060ff600435166108d5565b34156102c857600080fd5b6102d0610ca4565b60405190815260200160405180910390f35b34156102ed57600080fd5b610290610caa565b341561030057600080fd5b61029060043560243560443560643560843560ff60a43516610cb3565b341561032857600080fd5b610290600160a060020a0360043581169060243516604435611089565b341561035057600080fd5b610290600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061124695505050505050565b341561039f57600080fd5b6102d06112a8565b34156103b257600080fd5b6103ba6112ae565b60405160ff909116815260200160405180910390f35b34156103db57600080fd5b610290600160a060020a03600435166024356044356112b7565b341561040057600080fd5b610290600160a060020a0360043516611651565b341561041f57600080fd5b6102d061170b565b341561043257600080fd5b6102d0600160a060020a0360043516611711565b341561045157600080fd5b610465600160a060020a0360043516611723565b6040519586526020860194909452604080860193909352606085019190915260ff16608084015290151560a083015260c0909101905180910390f35b34156104ac57600080fd5b61029061175e565b34156104bf57600080fd5b6104d3600160a060020a0360043516611917565b604051600160a060020a039093168352901515602083015260ff166040808301919091526060909101905180910390f35b341561050f57600080fd5b6102d0600160a060020a036004351661195a565b341561052e57600080fd5b610290600160a060020a0360043516611975565b341561054d57600080fd5b6102906004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650611bce95505050505050565b341561059c57600080fd5b6105a4611c27565b604051600160a060020a03909116815260200160405180910390f35b34156105cb57600080fd5b6105a4611c36565b34156105de57600080fd5b610290600160a060020a0360043581169060243516611c4a565b341561060357600080fd5b6101f7611c6a565b341561061657600080fd5b6105a4611cd5565b341561062957600080fd5b61029060ff60043516611ce4565b341561064257600080fd5b61029061208a565b341561065557600080fd5b6105a4612098565b341561066857600080fd5b610290600160a060020a03600435166024356120a7565b341561068a57600080fd5b6105a46121d3565b341561069d57600080fd5b6102906004356024356121e2565b34156106b657600080fd5b6105a4612268565b34156106c957600080fd5b6102d0612277565b34156106dc57600080fd5b6105a461227d565b34156106ef57600080fd5b6102d0600160a060020a036004358116906024351661228c565b341561071457600080fd5b6105a46122b7565b341561072757600080fd5b610290600160a060020a03600435166122c6565b341561074657600080fd5b6105a4612568565b341561075957600080fd5b610290612577565b341561076c57600080fd5b6107746126d4565b604051600160a060020a039687168152948616602086015260408086019490945291851660608501528416608084015290921660a082015260c001905180910390f35b34156107c257600080fd5b6101f7612705565b60078054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b820191906000526020600020905b81548152906001019060200180831161084357829003601f168201915b505050505081565b600160a060020a033381166000818152600b6020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a35060015b92915050565b6000806000806000806000600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561091557600080fd5b601154610100900460ff161561092a57600080fd5b6011805461ff001916610100179055600254600160a060020a031663520eb620308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b151561099b57600080fd5b6102c65a03f115156109ac57600080fd5b5050506040518051965050600160a060020a03861615156109cc57600080fd5b60038054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515610a2a57600080fd5b6102c65a03f11515610a3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051600154959a5093985091965094509092508691600160a060020a031690506370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ac657600080fd5b6102c65a03f11515610ad757600080fd5b5050506040518051905010151515610aee57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654610ba8908663ffffffff61277016565b601655600d8054600160a060020a03808516600160a060020a031992831617909255600e805484841692169190911790556002541663c027bfaa876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610c3057600080fd5b6102c65a03f11515610c4157600080fd5b505050604051805190505080600160a060020a031686600160a060020a031683600160a060020a03167fcef7a4d027af73bec668ac893bb66fc614c345b379e087731ad95a0fa56b576c60405160405180910390a4506001979650505050505050565b600a5490565b60115460ff1681565b600954600090819033600160a060020a039081166101009092041614610cd857600080fd5b60115460ff161515610ce957600080fd5b600554600160a060020a031615610cff57600080fd5b60128890554288118015610d1257508787115b1515610d1d57600080fd5b42841015610d2a57600080fd5b60c060405190810160409081526000808352602080840188905260ff871683850152606084018290526080840182905260a084018290526009546101009004600160a060020a03168252601490522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600491820180549115156101000261ff001990921691909117905554600160a060020a03169050635184f9458989898960006040516020015260405160e060020a63ffffffff87160281526004810194909452602484019290925260448301526064820152608401602060405180830381600087803b1515610e3c57600080fd5b6102c65a03f11515610e4d57600080fd5b505050604051805160058054600160a060020a031916600160a060020a03929092169190911790555060606040519081016040908152600160a060020a0330811683526001602080850191909152600583850181905254909116600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600160a060020a0330166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610f9757600080fd5b6102c65a03f11515610fa857600080fd5b5050506040518051600a5490925082149050610fc357600080fd5b600554600160a060020a03166000908152600c6020526040902054610fee908263ffffffff61277016565b600554600160a060020a039081166000908152600c6020526040808220939093553390911681522054611027908263ffffffff61278616565b600160a060020a033381166000908152600c6020526040908190209290925560055460095490821692610100909104909116906000805160206127d48339815191529084905190815260200160405180910390a3506001979650505050505050565b600160a060020a038216600090815260106020526040812054819060a060020a900460ff1680156110d95750600160a060020a03851660009081526010602052604090205460a060020a900460ff165b80156110fe5750600160a060020a0385166000908152600c6020526040902054839010155b80156111315750600160a060020a038086166000908152600b602090815260408083203390941683529290522054839010155b156112395750600160a060020a038085166000818152600b6020908152604080832033909516835293815283822054928252600c9052919091205461117c908463ffffffff61278616565b600160a060020a0386166000908152600c60205260409020556111a5818463ffffffff61278616565b600160a060020a038087166000908152600b6020908152604080832033851684528252808320949094559187168152600c90915220546111eb908463ffffffff61277016565b600160a060020a038086166000818152600c6020526040908190209390935591908716906000805160206127d48339815191529086905190815260200160405180910390a36001915061123e565b600091505b509392505050565b600954600090819033600160a060020a03908116610100909204161461126b57600080fd5b5060005b825181101561129f5761129683828151811061128757fe5b90602001906020020151611651565b5060010161126f565b50600192915050565b600f5481565b60095460ff1690565b60055460009033600160a060020a039081169116146112d557600080fd5b600554600160a060020a031615156112ec57600080fd5b600160a060020a03841660009081526010602052604090205460a060020a900460ff16151561131a57600080fd5b600154600160a060020a03166323b872dd85308560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561138657600080fd5b6102c65a03f1151561139757600080fd5b5050506040518051905015156113ac57600080fd5b600554600160a060020a03166000908152600c60205260409020546113d7908463ffffffff61278616565b600554600160a060020a039081166000908152600c6020526040808220939093559086168152205461140f908463ffffffff61277016565b600160a060020a038086166000908152600c6020526040808220939093556002546004549083169363a5fb3f369391909116918691516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561148c57600080fd5b6102c65a03f1151561149d57600080fd5b50505060405180515050600254600354600160a060020a039182169163c027bfaa91168460006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561150d57600080fd5b6102c65a03f1151561151e57600080fd5b50505060405180515050600554600160a060020a0380861691166000805160206127d48339815191528560405190815260200160405180910390a3600160a060020a038416600090815260156020526040902054611582908363ffffffff61277016565b600160a060020a0380861660009081526015602090815260408083209490945560095461010090049092168152601490915220546115c6908363ffffffff61277016565b6009546101009004600160a060020a03166000908152601460205260409020556016546115f39083612770565b601655600160a060020a0384167feec71bead39c1146e3b882d2cac84a2510d46f95d646da6be6058e065219562784844260405180848152602001838152602001828152602001935050505060405180910390a25060019392505050565b60095460009033600160a060020a03908116610100909204161461167457600080fd5b600160a060020a03821660009081526010602052604090205460a060020a900460ff1615156116a257600080fd5b600160a060020a03821660008181526010602052604090819020805474ff0000000000000000000000000000000000000000191690557f7c498df7a5d7c54460e31018c6399030b4ce21464bda048298f7a971c4ed82f9905160405180910390a2506001919050565b60165481565b60156020526000908152604090205481565b601460205260009081526040902080546001820154600283015460038401546004909401549293919290919060ff8082169161010090041686565b60095460009033600160a060020a03908116610100909204161461178157600080fd5b601654600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b15156117dd57600080fd5b6102c65a03f115156117ee57600080fd5b5050506040518051905011151561180457600080fd5b600154600954601654600160a060020a039283169263a9059cbb926101009004169061189f90846370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561187857600080fd5b6102c65a03f1151561188957600080fd5b505050604051805191905063ffffffff61278616565b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156118eb57600080fd5b6102c65a03f115156118fc57600080fd5b50505060405180519050151561191157600080fd5b50600190565b601060205260009081526040902054600160a060020a0381169060ff60a060020a8204811691750100000000000000000000000000000000000000000090041683565b600160a060020a03166000908152600c602052604090205490565b33600160a060020a031660009081526010602052604081205460a060020a900460ff1615156119a357600080fd5b600d54600160a060020a031615156119ba57600080fd5b600554600160a060020a031615156119d157600080fd5b60125442116119df57600080fd5b600160a060020a038216600090815260146020526040902060010154601254611a0d9163ffffffff61277016565b4210611a1857600080fd5b600160a060020a0333811660009081526013602090815260408083209386168352929052205460ff1615611a4b57600080fd5b600160a060020a033381166000818152601360209081526040808320948716808452948252808320805460ff191660011790559282526015815282822054938252601490522060020154611aa49163ffffffff61277016565b600160a060020a0380841660008181526014602052604080822060020185905560095461010090049093168152918220549152611af891611aec90606463ffffffff61279816565b9063ffffffff6127bc16565b600160a060020a0383166000908152601460205260409020600381018290556004015460ff169010611b4d57600160a060020a0382166000908152601460205260409020600401805461ff0019166101001790555b600160a060020a0382166000818152601460205260409081902060038101546004909101547f32aae34dc20e1ddbf72ba489a7a2b73b82695d37f79d52a18f4ac93a68a087139260ff80831692610100900416905192835260ff909116602083015215156040808301919091526060909101905180910390a2506001919050565b600954600090819033600160a060020a039081166101009092041614611bf357600080fd5b5060005b825181101561129f57611c1e838281518110611c0f57fe5b906020019060200201516122c6565b50600101611bf7565b600354600160a060020a031681565b6009546101009004600160a060020a031681565b601360209081526000928352604080842090915290825290205460ff1681565b60088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b600e54600160a060020a031681565b600d5460009081908190819081908190819033600160a060020a03908116911614611d0e57600080fd5b60115460ff1615611d1e57600080fd5b600f541515611d2c57600080fd5b6011805460ff19166001179055600254600160a060020a03166347c676ac308a60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03909216600483015260ff166024820152604401602060405180830381600087803b1515611d9b57600080fd5b6102c65a03f11515611dac57600080fd5b5050506040518051965050600160a060020a0386161515611dcc57600080fd5b60048054600160a060020a031916600160a060020a0388811691909117918290551663506dc7e1600060405160a001526040518163ffffffff1660e060020a02815260040160a060405180830381600087803b1515611e2a57600080fd5b6102c65a03f11515611e3b57600080fd5b5050506040518051906020018051906020018051906020018051906020018051905094509450945094509450611e7c8560165461277090919063ffffffff16565b600154600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515611ed557600080fd5b6102c65a03f11515611ee657600080fd5b5050506040518051905010151515611efd57600080fd5b60c06040519081016040908152868252602080830186905260ff8716828401526000606084018190526080840181905260a08401819052600160a060020a038616815260149091522081518155602082015181600101556040820151816002015560608201518160030155608082015160048201805460ff191660ff9290921691909117905560a0820151600490910180549115156101000261ff001990921691909117905550601654611fb7908663ffffffff61277016565b601655600254600160a060020a031663a5fb3f36876000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561201957600080fd5b6102c65a03f1151561202a57600080fd5b505050604051805190505081600160a060020a031686600160a060020a03167f772ca642e6a0cb33662495425cac6bad8442ef8e59d981c9712364c1aabe7ae68360405190815260200160405180910390a3506001979650505050505050565b601154610100900460ff1681565b600654600160a060020a031681565b600160a060020a03821660009081526010602052604081205460a060020a900460ff1680156120f5575033600160a060020a031660009081526010602052604090205460a060020a900460ff165b801561211a5750600160a060020a0333166000908152600c6020526040902054829010155b156121cb57600160a060020a0333166000908152600c6020526040902054612148908363ffffffff61278616565b600160a060020a033381166000908152600c6020526040808220939093559085168152205461217d908363ffffffff61277016565b600160a060020a038085166000818152600c602052604090819020939093559133909116906000805160206127d48339815191529085905190815260200160405180910390a35060016108cf565b5060006108cf565b600554600160a060020a031681565b600d5460009033600160a060020a0390811691161480612215575060095433600160a060020a0390811661010090920416145b151561222057600080fd5b600f8390557f27d3a8ad107a1634478f1f2fab84ae66121aef6afee6231e4bb07921505361b3838360405191825260208201526040908101905180910390a150600192915050565b600d54600160a060020a031681565b60125481565b600254600160a060020a031681565b600160a060020a039182166000908152600b6020908152604080832093909416825291909152205490565b600454600160a060020a031681565b600080600080600080600960019054906101000a9004600160a060020a0316600160a060020a031633600160a060020a031614151561230457600080fd5b600654600e54600160a060020a03918216916313bdbb19911689600060405160a0015260405160e060020a63ffffffff8516028152600160a060020a0392831660048201529116602482015260440160a060405180830381600087803b151561236c57600080fd5b6102c65a03f1151561237d57600080fd5b505050604051805190602001805190602001805190602001805190602001805190509450945094509450945042811115156123b757600080fd5b600354600160a060020a031663f8d970b68686868660006040516020015260405160e060020a63ffffffff8716028152600481019490945260248401929092521515604483015260ff166064820152608401602060405180830381600087803b151561242257600080fd5b6102c65a03f1151561243357600080fd5b50505060405180519050151561244857600080fd5b60606040519081016040908152600e54600160a060020a039081168352600160208085019190915260ff861683850152908a16600090815260109091522081518154600160a060020a031916600160a060020a03919091161781556020820151815490151560a060020a0274ff0000000000000000000000000000000000000000199091161781556040820151815460ff9190911675010000000000000000000000000000000000000000000275ff0000000000000000000000000000000000000000001990911617905550600e54600160a060020a0380891691167f224f127dbfee6923bf0b835148eb27199e5f8766952f7d2b34bce0c718298b078460405160ff909116815260200160405180910390a35060019695505050505050565b600154600160a060020a031681565b600554600090600160a060020a0316151561259157600080fd5b600160a060020a0333166000908152601460205260409020600101546012546125bf9163ffffffff61277016565b42116125ca57600080fd5b33600160a060020a0316600090815260146020526040902060040154610100900460ff16156125f857600080fd5b600160a060020a0333166000908152601460205260408120541161261b57600080fd5b600154600160a060020a033381811660009081526014602052604080822054939094169363a9059cbb939190516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561268f57600080fd5b6102c65a03f115156126a057600080fd5b5050506040518051905015156126b557600080fd5b50600160a060020a033316600090815260146020526040812055600190565b600354600d54600f54600454600e54600554600160a060020a03958616969486169593949284169391821692911690565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108605780601f1061083557610100808354040283529160200191610860565b60008282018381101561277f57fe5b9392505050565b60008282111561279257fe5b50900390565b60008282028315806127b457508284828115156127b157fe5b04145b151561277f57fe5b60008082848115156127ca57fe5b049493505050505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820eb3e44f2eb473cdb89eeaa4d69a11e29a7b6c66288a1aa990525e6f45a329ec50029a165627a7a72305820e0764268d1210e61765f064dcce12280944e9e96c677fa8a33c2d27aa13b5d2d0029", "sourceMap": "451:6500:8:-;;;517:27;;;;;;;;;;;;;;;;-1:-1:-1;;517:27:8;;;;;;;;;:::i;:::-;;2088:468;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;2261:31:8;;;;2253:40;;;;;;-1:-1:-1;;;;;2309:35:8;;;;2301:44;;;;;;-1:-1:-1;;;;;2361:36:8;;;;2353:45;;;;;;2406:9;:37;;-1:-1:-1;;;;;2406:37:8;;;-1:-1:-1;;;;;;2406:37:8;;;;;;;2451:20;:44;;;;;;;;;;;;;;;2503:21;:46;;;;;;;;;;;451:6500;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;451:6500:8;;;-1:-1:-1;451:6500:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "451:6500:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;643:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;643:35:8;;;;;;;;;;;;;;5971:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5971:148:8;;-1:-1:-1;5971:148:8;;-1:-1:-1;;;;;;5971:148:8;3719:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3719:282:8;;-1:-1:-1;;3719:282:8;;;-1:-1:-1;3719:282:8;;-1:-1:-1;;;3719:282:8;;;2711:379;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2711:379:8;;-1:-1:-1;;2711:379:8;;;-1:-1:-1;2711:379:8;;-1:-1:-1;;;2711:379:8;4497:1162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4497:1162:8;;;;;;;;;6252:343;;;;;;;;;;-1:-1:-1;;;;;6252:343:8;;;;;;;;-1:-1:-1;;;;;6252:343:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:36:8;;;;;;;;;;;;550:23;;;;;;;;;;;;6698:249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6698:249:8;;-1:-1:-1;6698:249:8;;-1:-1:-1;;;;;;6698:249:8;;;;-1:-1:-1;;;;;6698:249:8;;;;;;;;;;;;;;;;;;;;517:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;643:35:8;;;-1:-1:-1;;;;;643:35:8;;:::o;5971:148::-;6060:7;6084;6092:10;6084:19;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;6104:7:8;6084:28;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1;;;;;3:399;;5971:148:8;-1:-1:-1;;;5971:148:8:o;3719:282::-;3792:23;;:::i;:::-;3818:17;3824:10;3818:5;:17::i;:::-;3792:43;;3865:13;3879:9;3865:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;3865:30:8;3851:10;-1:-1:-1;;;;;3851:44:8;;;3865:30;;3851:44;3843:53;;;;;;3935:4;3904:13;3918:9;3904:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;3904:28:8;;:35;3947:47;3966:9;3977:10;3989:4;3947:47;;-1:-1:-1;;;;;3947:47:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3719:282:8;;;:::o;2711:379::-;2829:23;;:::i;:::-;2819:1;2798:10;2792:24;:28;2784:37;;;;;;2855:17;2861:10;2855:5;:17::i;:::-;2829:43;-1:-1:-1;2930:1:8;2888:13;2829:43;2888:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;2888:30:8;-1:-1:-1;;;;;2888:30:8;:44;2880:53;;;;;;2974:10;2941:13;2955:9;2941:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;2941:43:8;;-1:-1:-1;;2941:43:8;-1:-1:-1;;;;;2941:43:8;;;;;;;;;;3023:4;2992:13;3006:9;2992:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;2992:28:8;;:35;3035:48;3055:9;3066:10;3078:4;3035:48;;-1:-1:-1;;;;;3035:48:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;4497:1162:8;4750:31;;4725:16;;;4717:25;;;;;;4784:13;4798:14;;4784:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4873:1:8;4829:7;4837:14;;4829:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4853:7;;4829:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4829:32:8;:46;4821:55;;;;;;4892:15;;-1:-1:-1;;;;;4892:15:8;:29;;4884:38;;;;;;-1:-1:-1;;;;;4938:20:8;;;;4930:29;;;;;;4997:1;4975:23;;:52;;;;-1:-1:-1;5026:1:8;5002:25;;4975:52;4967:61;;;;;;;;5044:9;;;5079:15;;5096:13;;;;-1:-1:-1;;;;;5044:9:8;;;;:22;;5067:10;;5079:15;;;5044:9;:66;;;;;;;;;;;;;;-1:-1:-1;;;;;5044:66:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5036:75;;;;;;;;5269:9;;5288:20;;5318:21;;5180:5;;;;5195:7;;;;5212:12;;5234:9;;5253:6;;-1:-1:-1;;;;;5269:9:8;;;;5288:20;;;5318:21;5153:194;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;5153:194:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5153:194:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5119:228;;5390:23;5355:7;5363:14;;5355:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5379:7;;5355:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:58;;-1:-1:-1;;5355:58:8;-1:-1:-1;;;;;5355:58:8;;;;;;;;;;5463:97;;;;;;;;;5490:14;;5463:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:7;;5463:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5463:97:8;;;-1:-1:-1;;;;;;;;5463:97:8;;;;;;;;;;;;;;;;;;;5421:39;;;-1:-1:-1;5421:39:8;;;:14;:39;;;;:139;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;5421:139:8;-1:-1:-1;;;;;5421:139:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:6;-1:-1:-1;;;;;5568:84:8;5613:23;-1:-1:-1;;;;;5568:84:8;;5588:14;;5604:7;;5646:5;5568:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5568:84:8;;;;;;;;;;;;;;;;;;;;;;;;;;;4497:1162;;;;;;;;;;;;:::o;6252:343::-;6330:6;;:::i;:::-;6344;;:::i;:::-;-1:-1:-1;;;;;6410:26:8;;;6358:7;6410:26;;;:14;:26;;;;;;;;6499:32;;;;;6393:195;;6358:7;;;;6410:26;;6456:33;;;;;6499:32;;;;6541:39;;;;;;;6410:26;;6499:32;6393:195;;;;;;;;-1:-1:-1;;6393:195:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6252:343;;;;;:::o;770:36::-;;;-1:-1:-1;;;;;770:36:8;;:::o;550:23::-;;;-1:-1:-1;;;;;550:23:8;;:::o;6698:249::-;6763:7;6772;6790:23;;:::i;:::-;6816:17;6822:10;6816:5;:17::i;:::-;6790:43;;6861:13;6875:9;6861:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;;6861:30:8;-1:-1:-1;;;;;6861:30:8;6902:13;6916:9;6902:24;;;;;;;;;;;;;36:153:-1;66:2;58;;36:153;;182:3;176:5;164:6;;-1:-1;;139:3;;;;98:2;89:3;;;;114;36:153;;;274:1;267:3;263:2;259:3;254;250;246;315:4;311:3;305;299:5;295:3;356:4;350:3;344:5;340:3;389:7;380;377:2;372:3;365:6;3:399;;;;;;;;;;;;;;;;;;;;;;;;6902:28:8;;;6843:96;;;;6698:249;;;;:::o;517:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3192:352::-;3244:6;;:::i;:::-;3260:23;;:::i;:::-;-1:-1:-1;3292:5:8;3311:6;;3306:199;3327:10;:17;3323:1;:21;3306:199;;;3372:10;3383:1;3372:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;3398:10:8;;;;;;;;:24;;-1:-1:-1;3412:10:8;;;;;;3398:24;3394:76;;;3457:2;3447:9;;;;;:12;3440:20;3394:76;3494:2;3478:10;3489:1;3478:13;;;;;;;;;;;;:18;;;;;;;;;;-1:-1:-1;3346:3:8;;;;;3306:199;;;-1:-1:-1;3526:10:8;;3192:352;-1:-1:-1;;;3192:352:8:o;451:6500::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;451:6500:8;;;-1:-1:-1;451:6500:8;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.18;\n\n/*\n The Polymath Security Token Registrar provides a way to lookup security token details\n from a single place and allows wizard creators to earn POLY fees by uploading to the\n registrar.\n*/\nimport './interfaces/ISecurityTokenRegistrar.sol';\nimport './interfaces/IERC20.sol';\nimport './SecurityToken.sol';\n\n/**\n * @title SecurityTokenRegistrar\n * @dev Contract use to register the security token on Polymath platform\n */\n\ncontract SecurityTokenRegistrar is ISecurityTokenRegistrar {\n\n string public VERSION = \"2\";\n IERC20 public PolyToken; // Address of POLY token\n address public polyCustomersAddress; // Address of the polymath-core Customers contract address\n address public polyComplianceAddress; // Address of the polymath-core Compliance contract address\n\n struct NameSpaceData {\n address owner;\n uint256 fee;\n }\n\n // Security Token\n struct SecurityTokenData { // A structure that contains the specific info of each ST\n string nameSpace;\n string ticker;\n address owner;\n uint8 securityType;\n }\n\n mapping (string => NameSpaceData) nameSpaceData; // Mapping from nameSpace to owner / fee of nameSpace\n mapping (address => SecurityTokenData) securityTokens; // Mapping from securityToken address to data about the securityToken\n mapping (string => mapping (string => address)) tickers; // Mapping from nameSpace, to a mapping of ticker name to correspondong securityToken addresses\n\n event LogNewSecurityToken(string _nameSpace, string _ticker, address indexed _securityTokenAddress, address indexed _owner, uint8 _type);\n event LogNameSpaceCreated(string _nameSpace, address _owner, uint256 _fee);\n event LogNameSpaceChange(string _nameSpace, address _newOwner, uint256 _newFee);\n\n /**\n * @dev Constructor use to set the essentials addresses to facilitate\n * the creation of the security token\n */\n function SecurityTokenRegistrar(\n address _polyTokenAddress,\n address _polyCustomersAddress,\n address _polyComplianceAddress\n ) public\n {\n require(_polyTokenAddress != address(0));\n require(_polyCustomersAddress != address(0));\n require(_polyComplianceAddress != address(0));\n PolyToken = IERC20(_polyTokenAddress);\n polyCustomersAddress = _polyCustomersAddress;\n polyComplianceAddress = _polyComplianceAddress;\n }\n\n /**\n * @dev Creates a securityToken name space\n * @param _nameSpace Name space string\n * @param _fee Fee for this name space\n */\n function createNameSpace(string _nameSpace, uint256 _fee) public {\n require(bytes(_nameSpace).length > 0);\n string memory nameSpace = lower(_nameSpace);\n require(nameSpaceData[nameSpace].owner == address(0));\n nameSpaceData[nameSpace].owner = msg.sender;\n nameSpaceData[nameSpace].fee = _fee;\n LogNameSpaceCreated(nameSpace, msg.sender, _fee);\n }\n\n /**\n * @dev changes a string to lower case\n * @param _base string to change\n */\n function lower(string _base) internal pure returns (string) {\n bytes memory _baseBytes = bytes(_base);\n for (uint i = 0; i < _baseBytes.length; i++) {\n bytes1 b1 = _baseBytes[i];\n if (b1 >= 0x41 && b1 <= 0x5A) {\n b1 = bytes1(uint8(b1)+32);\n }\n _baseBytes[i] = b1;\n }\n return string(_baseBytes);\n }\n\n /**\n * @dev Changes name space fee\n * @param _nameSpace Name space string\n * @param _fee New fee for security token creation for this name space\n */\n function changeNameSpace(string _nameSpace, uint256 _fee) public {\n string memory nameSpace = lower(_nameSpace);\n require(msg.sender == nameSpaceData[nameSpace].owner);\n nameSpaceData[nameSpace].fee = _fee;\n LogNameSpaceChange(nameSpace, msg.sender, _fee);\n }\n\n /**\n * @dev Creates a new Security Token and saves it to the registry\n * @param _nameSpaceName Name space for this security token\n * @param _name Name of the security token\n * @param _ticker Ticker name of the security\n * @param _totalSupply Total amount of tokens being created\n * @param _decimals Decimals value for token\n * @param _owner Ethereum public key address of the security token owner\n * @param _type Type of security being tokenized\n */\n function createSecurityToken (\n string _nameSpaceName,\n string _name,\n string _ticker,\n uint256 _totalSupply,\n uint8 _decimals,\n address _owner,\n uint8 _type\n ) external\n {\n require(_totalSupply > 0);\n NameSpaceData storage nameSpace = nameSpaceData[_nameSpaceName];\n require(tickers[_nameSpaceName][_ticker] == address(0));\n require(nameSpace.owner != address(0));\n require(_owner != address(0));\n require(bytes(_name).length > 0 && bytes(_ticker).length > 0);\n require(PolyToken.transferFrom(msg.sender, nameSpace.owner, nameSpace.fee));\n address newSecurityTokenAddress = new SecurityToken(\n _name,\n _ticker,\n _totalSupply,\n _decimals,\n _owner,\n PolyToken,\n polyCustomersAddress,\n polyComplianceAddress\n );\n tickers[_nameSpaceName][_ticker] = newSecurityTokenAddress;\n securityTokens[newSecurityTokenAddress] = SecurityTokenData(\n _nameSpaceName,\n _ticker,\n _owner,\n _type\n );\n LogNewSecurityToken(_nameSpaceName, _ticker, newSecurityTokenAddress, _owner, _type);\n }\n\n //////////////////////////////\n ///////// Get Functions\n //////////////////////////////\n /**\n * @dev Get security token address by ticker name\n * @param _nameSpace Name space of the Scurity token\n * @param _ticker Symbol of the Scurity token\n * @return address _ticker\n */\n function getSecurityTokenAddress(string _nameSpace, string _ticker) public view returns (address) {\n return tickers[_nameSpace][_ticker];\n }\n\n /**\n * @dev Get Security token details by its ethereum address\n * @param _STAddress Security token address\n */\n function getSecurityTokenData(address _STAddress) public view returns (\n string,\n string,\n address,\n uint8\n ) {\n return (\n securityTokens[_STAddress].nameSpace,\n securityTokens[_STAddress].ticker,\n securityTokens[_STAddress].owner,\n securityTokens[_STAddress].securityType\n );\n }\n\n /**\n * @dev Get the name space data\n * @param _nameSpace Name space string.\n */\n function getNameSpaceData(string _nameSpace) public view returns(address, uint256) {\n string memory nameSpace = lower(_nameSpace); \n return (\n nameSpaceData[nameSpace].owner,\n nameSpaceData[nameSpace].fee\n );\n } \n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SecurityTokenRegistrar.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SecurityTokenRegistrar.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SecurityTokenRegistrar.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SecurityTokenRegistrar.sol", "exportedSymbols": { "SecurityTokenRegistrar": [ 4016 @@ -336,7 +336,7 @@ { "attributes": { "SourceUnit": 5313, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityTokenRegistrar.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityTokenRegistrar.sol", "file": "./interfaces/ISecurityTokenRegistrar.sol", "scope": 4017, "symbolAliases": [ @@ -351,7 +351,7 @@ { "attributes": { "SourceUnit": 5135, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IERC20.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IERC20.sol", "file": "./interfaces/IERC20.sol", "scope": 4017, "symbolAliases": [ @@ -366,7 +366,7 @@ { "attributes": { "SourceUnit": 3538, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SecurityToken.sol", "file": "./SecurityToken.sol", "scope": 4017, "symbolAliases": [ @@ -7275,5 +7275,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T07:00:11.131Z" + "updatedAt": "2018-02-25T12:54:40.691Z" } \ No newline at end of file diff --git a/build/contracts/SimpleCappedOffering.json b/build/contracts/SimpleCappedOffering.json index 398624a..8858a1d 100644 --- a/build/contracts/SimpleCappedOffering.json +++ b/build/contracts/SimpleCappedOffering.json @@ -294,15 +294,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610173565b50341561005757600080fd5b60405160a08061089083398101604052808051919060200180519190602001805191906020018051919060200180519150504285101561009657600080fd5b8484116100a257600080fd5b600083116100af57600080fd5b600160a060020a03811615156100c457600080fd5b69d3c21bcecceda100000061011d69152d02c7e14af680000061010a692a5a058fc295ed000000816969e10de76676d08000008264010000000061063861015d82021704565b9064010000000061063861015d82021704565b1461012757600080fd5b60049490945560059290925560065560025560018054600160a060020a031916600160a060020a0390921691909117905561020e565b60008282018381101561016c57fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b457805160ff19168380011785556101e1565b828001600101855582156101e1579182015b828111156101e15782518255916020019190600101906101c6565b506101ed9291506101f1565b5090565b61020b91905b808211156101ed57600081556001016101f7565b90565b6106738061021d6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a72305820c8c960a8df68f6892d040abef2dc2da5aaf1a4e12a0f9bc6bfe5947bad64b3390029", - "deployedBytecode": "0x6060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a72305820c8c960a8df68f6892d040abef2dc2da5aaf1a4e12a0f9bc6bfe5947bad64b3390029", + "bytecode": "0x606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610173565b50341561005757600080fd5b60405160a08061089083398101604052808051919060200180519190602001805191906020018051919060200180519150504285101561009657600080fd5b8484116100a257600080fd5b600083116100af57600080fd5b600160a060020a03811615156100c457600080fd5b69d3c21bcecceda100000061011d69152d02c7e14af680000061010a692a5a058fc295ed000000816969e10de76676d08000008264010000000061063861015d82021704565b9064010000000061063861015d82021704565b1461012757600080fd5b60049490945560059290925560065560025560018054600160a060020a031916600160a060020a0390921691909117905561020e565b60008282018381101561016c57fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b457805160ff19168380011785556101e1565b828001600101855582156101e1579182015b828111156101e15782518255916020019190600101906101c6565b506101ed9291506101f1565b5090565b61020b91905b808211156101ed57600081556001016101f7565b90565b6106738061021d6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a723058201c4db322cdb2123359aecaed1ea0fa4fbab5692cb514b64c86aa0f9c06252b370029", + "deployedBytecode": "0x6060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a723058201c4db322cdb2123359aecaed1ea0fa4fbab5692cb514b64c86aa0f9c06252b370029", "sourceMap": "131:4838:4:-;;;200:27;;;;;;;;;;;;;;;;-1:-1:-1;;200:27:4;;;;;;;;;:::i;:::-;;2358:710;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2537:3:4;2523:17;;;2515:26;;;;;;2557:21;;;2549:30;;;;;;2620:1;2595:26;;2587:35;;;;;;-1:-1:-1;;;;;2638:28:4;;;;2630:37;;;;;;991:24;2769:80;1356:24;2769:59;1265:24;2769:59;1083:23;1265:24;2769:14;;;;;;:31;:::i;:::-;:35;;;;;;;:59;:::i;:80::-;:100;2761:109;;;;;;2879:9;:22;;;;2909:7;:18;;;;2935:21;:46;2989:7;:18;3015:13;:46;;-1:-1:-1;;;;;;3015:46:4;-1:-1:-1;;;;;3015:46:4;;;;;;;;;131:4838;;883:143:6;941:7;972:5;;;994:6;;;;987:14;;;;1018:1;883:143;-1:-1:-1;;;883:143:6:o;131:4838:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;131:4838:4;;;-1:-1:-1;131:4838:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "131:4838:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:76;;;;;;;;;;;;;;;;;;;;;;;;;;;629:36;;;;;;;;;;;;545:22;;;;;;;;;;;;276;;;;;;;;;;;;1212:77;;;;;;;;;;;;4875:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;459:24;;;;;;;;;;;;939:76;;;;;;;;;;;;876:56;;;;;;;;;;;;1303:77;;;;;;;;;;;;376:25;;;;;;;;;;;;725:33;;;;;;;;;;;;3261:837;;;;;;;;;;;;;;4744:86;;;;;;;;;;;;200:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;234:35:4;;;;;;:::o;1030:76::-;1083:23;1030:76;:::o;629:36::-;;;;:::o;545:22::-;;;;:::o;276:::-;;;;:::o;1212:77::-;1265:24;1212:77;:::o;4875:91::-;4950:9;;4943:3;:16;;4875:91;:::o;459:24::-;;;;:::o;939:76::-;991:24;939:76;:::o;876:56::-;917:15;876:56;:::o;1303:77::-;1356:24;1303:77;:::o;376:25::-;;;;:::o;725:33::-;;;;:::o;3261:837::-;3330:4;3435:31;1502:12;:10;:12::i;:::-;:27;;;;;1519:10;:8;:10::i;:::-;1518:11;1502:27;1494:36;;;;;;;;3373:1;3354:20;;3346:29;;;;;;3393:31;3407:16;3393:13;:31::i;:::-;3385:40;;;;;;;;3490:21;;3469:43;;:16;;:43;:20;:43;:::i;:::-;3669:18;;3435:77;;-1:-1:-1;1083:23:4;;3669:47;;3435:77;3669:47;:22;:47;:::i;:::-;:61;;3660:71;;;;;;3750:13;;;;:33;3784:10;3796:23;3821:16;3750:13;:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3742:97;;;;;;;;3863:10;;:32;;3878:16;3863:32;:14;:32;:::i;:::-;3850:10;:45;3926:18;;:47;;3949:23;3926:47;:22;:47;:::i;:::-;3905:18;:68;4012:57;4035:10;4012:57;;4047:16;4065:3;4012:57;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4087:4:4;;3261:837;-1:-1:-1;;3261:837:4:o;4744:86::-;4816:7;;4810:3;:13;4744:86;:::o;200:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4419:199::-;4490:4;4506:15;4534:1;4524:7;;:11;:58;;;;-1:-1:-1;4575:7:4;;4539:10;;:32;;4554:16;4539:32;:14;:32;:::i;:::-;:43;;4524:58;4506:76;4419:199;-1:-1:-1;;;4419:199:4:o;468:283:6:-;526:7;623:9;639:1;635;:5;;;;;;;;;468:283;-1:-1:-1;;;;468:283:6:o;883:143::-;941:7;972:5;;;994:6;;;;987:14;;", "source": "pragma solidity ^0.4.18;\n\nimport '../interfaces/ISecurityToken.sol';\nimport '../interfaces/IERC20.sol';\nimport '../SafeMath.sol';\n\ncontract SimpleCappedOffering {\n\n using SafeMath for uint256;\n string public VERSION = \"1\";\n\n ISecurityToken public SecurityToken;\n\n uint256 public maxPoly; // Maximum Poly limit raised by the offering contract\n uint256 public polyRaised; // Variable to track the poly raised\n uint256 public startTime; // Unix timestamp to start the offering\n uint256 public endTime; // Unix timestamp to end the offering\n uint256 public exchangeRatePolyToken; // Fix rate of 1 security token in terms of POLY\n\n uint256 public securityTokensSold; // Amount of security tokens sold through the STO\n\n /////////////\n // Constants\n /////////////\n\n uint256 public constant DECIMALSFACTOR = 10**uint256(18);\n\n uint256 public constant TOKENS_MAX_TOTAL = 1000000 * DECIMALSFACTOR; // 100%\n uint256 public constant TOKENS_STO = 500000 * DECIMALSFACTOR; // 50%\n uint256 public constant TOKENS_FOUNDERS = 200000 * DECIMALSFACTOR; // 20%\n uint256 public constant TOKENS_EARLY_INVESTORS = 200000 * DECIMALSFACTOR; // 20%\n uint256 public constant TOKENS_ADVISORS = 100000 * DECIMALSFACTOR; // 10%\n\n ///////////////\n // MODIFIERS //\n ///////////////\n\n modifier onlyDuringSale() {\n require(hasStarted() && !hasEnded());\n _;\n }\n\n modifier onlyAfterSale() {\n // require finalized is stronger than hasSaleEnded\n require(hasEnded());\n _;\n }\n\n ////////////\n // EVENTS //\n ////////////\n\n event LogBoughtSecurityToken(address indexed _contributor, uint256 _ployContribution, uint256 _timestamp);\n\n /**\n * @dev Constructor A new instance of the capped offering contract get launch\n * everytime when the constructor called by the factory contract\n * @param _startTime Unix timestamp to start the offering\n * @param _endTime Unix timestamp to end the offering\n * @param _exchangeRatePolyToken Price of one security token in terms of poly\n * @param _maxPoly Maximum amount of poly issuer wants to collect\n * @param _securityToken Address of the security token\n */\n\n function SimpleCappedOffering(uint256 _startTime, uint256 _endTime, uint256 _exchangeRatePolyToken, uint256 _maxPoly, address _securityToken) public {\n require(_startTime >= now);\n require(_endTime > _startTime);\n require(_exchangeRatePolyToken > 0);\n require(_securityToken != address(0));\n\n //TOKENS_MAX_TOTAL MUST BE equal to all other token token allocations combined\n require(TOKENS_STO.add(TOKENS_FOUNDERS).add(TOKENS_EARLY_INVESTORS).add(TOKENS_ADVISORS) == TOKENS_MAX_TOTAL);\n\n startTime = _startTime;\n endTime = _endTime;\n exchangeRatePolyToken = _exchangeRatePolyToken;\n maxPoly = _maxPoly;\n SecurityToken = ISecurityToken(_securityToken);\n }\n\n /**\n * @dev `buy` Facilitate the buying of SecurityToken in exchange of POLY\n * @param _polyContributed Amount of POLY contributor want to invest.\n * @return bool\n */\n function buy(uint256 _polyContributed) public onlyDuringSale returns(bool) {\n require(_polyContributed > 0);\n require(validPurchase(_polyContributed));\n uint256 _amountOfSecurityTokens = _polyContributed.div(exchangeRatePolyToken);\n\n // Make sure we don't sell more tokens than those available to the STO\n // TBD change this so we can sell the difference.\n require (securityTokensSold.add(_amountOfSecurityTokens) <= TOKENS_STO);\n\n require(SecurityToken.issueSecurityTokens(msg.sender, _amountOfSecurityTokens, _polyContributed));\n\n polyRaised = polyRaised.add(_polyContributed);\n securityTokensSold = securityTokensSold.add(_amountOfSecurityTokens); //Keep track of tokens sold\n\n LogBoughtSecurityToken(msg.sender, _polyContributed, now);\n\n return true;\n }\n\n /**\n * @dev Use to validate the poly contribution\n * If issuer sets the capping over the offering contract then raised amount should\n * always less than or equal to the maximum amount set (maxPoly)\n * @param _polyContributed Amount of POLY contributor want to invest\n * @return bool\n */\n function validPurchase(uint256 _polyContributed) internal view returns(bool) {\n bool reachedCap = maxPoly > 0 && polyRaised.add(_polyContributed) <= maxPoly;\n return (reachedCap);\n }\n\n //\n //Helper functions for onlyDuringSale / onlyAfterSale modifiers\n //\n\n // @return true if STO has ended\n function hasEnded() public constant returns (bool) {\n return now > endTime;\n }\n\n // @return true if STO has started\n function hasStarted() public constant returns (bool) {\n return now >= startTime;\n }\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/OfferingFactories/SimpleCappedOffering.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/OfferingFactories/SimpleCappedOffering.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/OfferingFactories/SimpleCappedOffering.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/OfferingFactories/SimpleCappedOffering.sol", "exportedSymbols": { "SimpleCappedOffering": [ 1861 @@ -326,7 +326,7 @@ { "attributes": { "SourceUnit": 5280, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ISecurityToken.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ISecurityToken.sol", "file": "../interfaces/ISecurityToken.sol", "scope": 1862, "symbolAliases": [ @@ -341,7 +341,7 @@ { "attributes": { "SourceUnit": 5135, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IERC20.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IERC20.sol", "file": "../interfaces/IERC20.sol", "scope": 1862, "symbolAliases": [ @@ -356,7 +356,7 @@ { "attributes": { "SourceUnit": 2110, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/SafeMath.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/SafeMath.sol", "file": "../SafeMath.sol", "scope": 1862, "symbolAliases": [ @@ -4420,5 +4420,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.693Z" + "updatedAt": "2018-02-25T12:43:54.368Z" } \ No newline at end of file diff --git a/build/contracts/SimpleCappedOfferingFactory.json b/build/contracts/SimpleCappedOfferingFactory.json index fbd3f46..99f17a5 100644 --- a/build/contracts/SimpleCappedOfferingFactory.json +++ b/build/contracts/SimpleCappedOfferingFactory.json @@ -181,15 +181,15 @@ "type": "constructor" } ], - "bytecode": "0x606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b9291602001906100b4565b5060646002556003805460ff1916600a1790556287a2386004557f4361707065640000000000000000000000000000000000000000000000000000600555341561009457600080fd5b60078054600160a060020a03191633600160a060020a031617905561014f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f557805160ff1916838001178555610122565b82800160010185558215610122579182015b82811115610122578251825591602001919060010190610107565b5061012e929150610132565b5090565b61014c91905b8082111561012e5760008155600101610138565b90565b610c938061015e6000396000f3006060604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100a85780631703a018146100d7578063506dc7e1146101005780635184f9451461014f5780636a01980a1461016e5780637284e416146101935780637313ee5a146101a65780638da5cb5b146101b9578063ddca3f43146101cc578063ffa1ad74146101df575b600080fd5b34156100b357600080fd5b6100bb610269565b604051600160a060020a03909116815260200160405180910390f35b34156100e257600080fd5b6100ea610278565b60405160ff909116815260200160405180910390f35b341561010b57600080fd5b610113610281565b60405194855260ff9093166020850152604080850192909252600160a060020a03166060840152608083019190915260a0909101905180910390f35b341561015a57600080fd5b6100bb6004356024356044356064356102a7565b341561017957600080fd5b610181610302565b60405190815260200160405180910390f35b341561019e57600080fd5b610181610308565b34156101b157600080fd5b61018161030e565b34156101c457600080fd5b6100bb610314565b34156101d757600080fd5b610181610323565b34156101ea57600080fd5b6101f2610329565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022e578082015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600154600160a060020a031681565b60035460ff1681565b60025460035460045460075460055460ff90931692600160a060020a0390911691929394565b600084848484336102b66103c7565b94855260208501939093526040808501929092526060840152600160a060020a03909116608083015260a09091019051809103906000f08015156102f957600080fd5b95945050505050565b60065481565b60055481565b60045481565b600754600160a060020a031681565b60025481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b505050505081565b604051610890806103d8833901905600606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610173565b50341561005757600080fd5b60405160a08061089083398101604052808051919060200180519190602001805191906020018051919060200180519150504285101561009657600080fd5b8484116100a257600080fd5b600083116100af57600080fd5b600160a060020a03811615156100c457600080fd5b69d3c21bcecceda100000061011d69152d02c7e14af680000061010a692a5a058fc295ed000000816969e10de76676d08000008264010000000061063861015d82021704565b9064010000000061063861015d82021704565b1461012757600080fd5b60049490945560059290925560065560025560018054600160a060020a031916600160a060020a0390921691909117905561020e565b60008282018381101561016c57fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b457805160ff19168380011785556101e1565b828001600101855582156101e1579182015b828111156101e15782518255916020019190600101906101c6565b506101ed9291506101f1565b5090565b61020b91905b808211156101ed57600081556001016101f7565b90565b6106738061021d6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a72305820c8c960a8df68f6892d040abef2dc2da5aaf1a4e12a0f9bc6bfe5947bad64b3390029a165627a7a72305820ff58f1da228fdc366bc2dc8251dd334e5256b46340121ed0596a8ae6b84599ed0029", - "deployedBytecode": "0x6060604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100a85780631703a018146100d7578063506dc7e1146101005780635184f9451461014f5780636a01980a1461016e5780637284e416146101935780637313ee5a146101a65780638da5cb5b146101b9578063ddca3f43146101cc578063ffa1ad74146101df575b600080fd5b34156100b357600080fd5b6100bb610269565b604051600160a060020a03909116815260200160405180910390f35b34156100e257600080fd5b6100ea610278565b60405160ff909116815260200160405180910390f35b341561010b57600080fd5b610113610281565b60405194855260ff9093166020850152604080850192909252600160a060020a03166060840152608083019190915260a0909101905180910390f35b341561015a57600080fd5b6100bb6004356024356044356064356102a7565b341561017957600080fd5b610181610302565b60405190815260200160405180910390f35b341561019e57600080fd5b610181610308565b34156101b157600080fd5b61018161030e565b34156101c457600080fd5b6100bb610314565b34156101d757600080fd5b610181610323565b34156101ea57600080fd5b6101f2610329565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022e578082015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600154600160a060020a031681565b60035460ff1681565b60025460035460045460075460055460ff90931692600160a060020a0390911691929394565b600084848484336102b66103c7565b94855260208501939093526040808501929092526060840152600160a060020a03909116608083015260a09091019051809103906000f08015156102f957600080fd5b95945050505050565b60065481565b60055481565b60045481565b600754600160a060020a031681565b60025481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b505050505081565b604051610890806103d8833901905600606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610173565b50341561005757600080fd5b60405160a08061089083398101604052808051919060200180519190602001805191906020018051919060200180519150504285101561009657600080fd5b8484116100a257600080fd5b600083116100af57600080fd5b600160a060020a03811615156100c457600080fd5b69d3c21bcecceda100000061011d69152d02c7e14af680000061010a692a5a058fc295ed000000816969e10de76676d08000008264010000000061063861015d82021704565b9064010000000061063861015d82021704565b1461012757600080fd5b60049490945560059290925560065560025560018054600160a060020a031916600160a060020a0390921691909117905561020e565b60008282018381101561016c57fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b457805160ff19168380011785556101e1565b828001600101855582156101e1579182015b828111156101e15782518255916020019190600101906101c6565b506101ed9291506101f1565b5090565b61020b91905b808211156101ed57600081556001016101f7565b90565b6106738061021d6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a72305820c8c960a8df68f6892d040abef2dc2da5aaf1a4e12a0f9bc6bfe5947bad64b3390029a165627a7a72305820ff58f1da228fdc366bc2dc8251dd334e5256b46340121ed0596a8ae6b84599ed0029", + "bytecode": "0x606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b9291602001906100b4565b5060646002556003805460ff1916600a1790556287a2386004557f4361707065640000000000000000000000000000000000000000000000000000600555341561009457600080fd5b60078054600160a060020a03191633600160a060020a031617905561014f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100f557805160ff1916838001178555610122565b82800160010185558215610122579182015b82811115610122578251825591602001919060010190610107565b5061012e929150610132565b5090565b61014c91905b8082111561012e5760008155600101610138565b90565b610c938061015e6000396000f3006060604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100a85780631703a018146100d7578063506dc7e1146101005780635184f9451461014f5780636a01980a1461016e5780637284e416146101935780637313ee5a146101a65780638da5cb5b146101b9578063ddca3f43146101cc578063ffa1ad74146101df575b600080fd5b34156100b357600080fd5b6100bb610269565b604051600160a060020a03909116815260200160405180910390f35b34156100e257600080fd5b6100ea610278565b60405160ff909116815260200160405180910390f35b341561010b57600080fd5b610113610281565b60405194855260ff9093166020850152604080850192909252600160a060020a03166060840152608083019190915260a0909101905180910390f35b341561015a57600080fd5b6100bb6004356024356044356064356102a7565b341561017957600080fd5b610181610302565b60405190815260200160405180910390f35b341561019e57600080fd5b610181610308565b34156101b157600080fd5b61018161030e565b34156101c457600080fd5b6100bb610314565b34156101d757600080fd5b610181610323565b34156101ea57600080fd5b6101f2610329565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022e578082015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600154600160a060020a031681565b60035460ff1681565b60025460035460045460075460055460ff90931692600160a060020a0390911691929394565b600084848484336102b66103c7565b94855260208501939093526040808501929092526060840152600160a060020a03909116608083015260a09091019051809103906000f08015156102f957600080fd5b95945050505050565b60065481565b60055481565b60045481565b600754600160a060020a031681565b60025481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b505050505081565b604051610890806103d8833901905600606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610173565b50341561005757600080fd5b60405160a08061089083398101604052808051919060200180519190602001805191906020018051919060200180519150504285101561009657600080fd5b8484116100a257600080fd5b600083116100af57600080fd5b600160a060020a03811615156100c457600080fd5b69d3c21bcecceda100000061011d69152d02c7e14af680000061010a692a5a058fc295ed000000816969e10de76676d08000008264010000000061063861015d82021704565b9064010000000061063861015d82021704565b1461012757600080fd5b60049490945560059290925560065560025560018054600160a060020a031916600160a060020a0390921691909117905561020e565b60008282018381101561016c57fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b457805160ff19168380011785556101e1565b828001600101855582156101e1579182015b828111156101e15782518255916020019190600101906101c6565b506101ed9291506101f1565b5090565b61020b91905b808211156101ed57600081556001016101f7565b90565b6106738061021d6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a723058201c4db322cdb2123359aecaed1ea0fa4fbab5692cb514b64c86aa0f9c06252b370029a165627a7a723058200257820a2b2ec9707299d64791ad0abe57d11af86fe42a65c3d01628b54ea26d0029", + "deployedBytecode": "0x6060604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100a85780631703a018146100d7578063506dc7e1146101005780635184f9451461014f5780636a01980a1461016e5780637284e416146101935780637313ee5a146101a65780638da5cb5b146101b9578063ddca3f43146101cc578063ffa1ad74146101df575b600080fd5b34156100b357600080fd5b6100bb610269565b604051600160a060020a03909116815260200160405180910390f35b34156100e257600080fd5b6100ea610278565b60405160ff909116815260200160405180910390f35b341561010b57600080fd5b610113610281565b60405194855260ff9093166020850152604080850192909252600160a060020a03166060840152608083019190915260a0909101905180910390f35b341561015a57600080fd5b6100bb6004356024356044356064356102a7565b341561017957600080fd5b610181610302565b60405190815260200160405180910390f35b341561019e57600080fd5b610181610308565b34156101b157600080fd5b61018161030e565b34156101c457600080fd5b6100bb610314565b34156101d757600080fd5b610181610323565b34156101ea57600080fd5b6101f2610329565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561022e578082015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600154600160a060020a031681565b60035460ff1681565b60025460035460045460075460055460ff90931692600160a060020a0390911691929394565b600084848484336102b66103c7565b94855260208501939093526040808501929092526060840152600160a060020a03909116608083015260a09091019051809103906000f08015156102f957600080fd5b95945050505050565b60065481565b60055481565b60045481565b600754600160a060020a031681565b60025481565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103bf5780601f10610394576101008083540402835291602001916103bf565b820191906000526020600020905b8154815290600101906020018083116103a257829003601f168201915b505050505081565b604051610890806103d8833901905600606060405260408051908101604052600181527f31000000000000000000000000000000000000000000000000000000000000006020820152600090805161004b929160200190610173565b50341561005757600080fd5b60405160a08061089083398101604052808051919060200180519190602001805191906020018051919060200180519150504285101561009657600080fd5b8484116100a257600080fd5b600083116100af57600080fd5b600160a060020a03811615156100c457600080fd5b69d3c21bcecceda100000061011d69152d02c7e14af680000061010a692a5a058fc295ed000000816969e10de76676d08000008264010000000061063861015d82021704565b9064010000000061063861015d82021704565b1461012757600080fd5b60049490945560059290925560065560025560018054600160a060020a031916600160a060020a0390921691909117905561020e565b60008282018381101561016c57fe5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101b457805160ff19168380011785556101e1565b828001600101855582156101e1579182015b828111156101e15782518255916020019190600101906101c6565b506101ed9291506101f1565b5090565b61020b91905b808211156101ed57600081556001016101f7565b90565b6106738061021d6000396000f3006060604052600436106100f05763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630736531681146100f557806321ed804814610131578063277b0faf146101565780633197cbb6146101695780633e127ab71461017c57806342702ac91461018f57806344691f7e146101a257806378e97925146101c95780637ca5cbc7146101dc5780638bc04eb7146101ef5780639978be9514610202578063be16338c14610215578063c9a5853f14610228578063d96a094a1461023b578063ecb70fb714610251578063f653279c1461018f578063ffa1ad7414610264575b600080fd5b341561010057600080fd5b6101086102ee565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b341561013c57600080fd5b61014461030a565b60405190815260200160405180910390f35b341561016157600080fd5b610144610318565b341561017457600080fd5b61014461031e565b341561018757600080fd5b610144610324565b341561019a57600080fd5b61014461032a565b34156101ad57600080fd5b6101b5610338565b604051901515815260200160405180910390f35b34156101d457600080fd5b610144610341565b34156101e757600080fd5b610144610347565b34156101fa57600080fd5b610144610355565b341561020d57600080fd5b610144610361565b341561022057600080fd5b61014461036f565b341561023357600080fd5b610144610375565b341561024657600080fd5b6101b560043561037b565b341561025c57600080fd5b6101b561054b565b341561026f57600080fd5b610277610553565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102b357808201518382015260200161029b565b50505050905090810190601f1680156102e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6969e10de76676d080000081565b60065481565b60055481565b60025481565b692a5a058fc295ed00000081565b60045442101590565b60045481565b69d3c21bcecceda100000081565b670de0b6b3a764000081565b69152d02c7e14af680000081565b60035481565b60075481565b600080610386610338565b8015610397575061039561054b565b155b15156103a257600080fd5b600083116103af57600080fd5b6103b8836105f1565b15156103c357600080fd5b6006546103d790849063ffffffff61062116565b6007549091506969e10de76676d0800000906103f9908363ffffffff61063816565b111561040457600080fd5b60015473ffffffffffffffffffffffffffffffffffffffff16633e0458453383866000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff861602815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401602060405180830381600087803b151561049f57600080fd5b6102c65a03f115156104b057600080fd5b5050506040518051905015156104c557600080fd5b6003546104d8908463ffffffff61063816565b6003556007546104ee908263ffffffff61063816565b60075573ffffffffffffffffffffffffffffffffffffffff33167fb471869ff0a9be2737b4e2aef2c634a6755fcbb01f7835c1c30defb6e01775c6844260405191825260208201526040908101905180910390a250600192915050565b600554421190565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105e95780601f106105be576101008083540402835291602001916105e9565b820191906000526020600020905b8154815290600101906020018083116105cc57829003601f168201915b505050505081565b600080600060025411801561061a5750600254600354610617908563ffffffff61063816565b11155b9392505050565b600080828481151561062f57fe5b04949350505050565b60008282018381101561061a57fe00a165627a7a723058201c4db322cdb2123359aecaed1ea0fa4fbab5692cb514b64c86aa0f9c06252b370029a165627a7a723058200257820a2b2ec9707299d64791ad0abe57d11af86fe42a65c3d01628b54ea26d0029", "sourceMap": "197:1537:5:-;;;293:27;;;;;;;;;;;;;;;;-1:-1:-1;;293:27:5;;;;;;;;;:::i;:::-;-1:-1:-1;390:3:5;369:24;;399;;;-1:-1:-1;;399:24:5;421:2;399:24;;;460:7;429:38;;473:37;;;576:81;;;;;;;;632:5;:18;;-1:-1:-1;;;;;;632:18:5;640:10;-1:-1:-1;;;;;632:18:5;;;;197:1537;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;197:1537:5;;;-1:-1:-1;197:1537:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "197:1537:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;327:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;327:35:5;;;;;;;;;;;;;;399:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1570:161:5;;;;;;;;;;;;;;;;;;;;;;;1089:271;;;;;;;;;;;;;;;;;;;;516:26;;;;;;;;;;;;;;;;;;;;;;;;;;;473:37;;;;;;;;;;;;429:38;;;;;;;;;;;;549:20;;;;;;;;;;;;369:24;;;;;;;;;;;;293:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;327:35:5;;;-1:-1:-1;;;;;327:35:5;;:::o;399:24::-;;;;;;:::o;1570:161::-;1677:3;;1682:6;;1690:13;;1705:5;;1712:11;;1682:6;;;;;-1:-1:-1;;;;;1705:5:5;;;1570:161;;;;:::o;1089:271::-;1241:7;1294:10;1306:8;1316:14;1332:8;1342:10;1269:84;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1269:84:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1262:91;1089:271;-1:-1:-1;;;;;1089:271:5:o;516:26::-;;;;:::o;473:37::-;;;;:::o;429:38::-;;;;:::o;549:20::-;;;-1:-1:-1;;;;;549:20:5;;:::o;369:24::-;;;;:::o;293:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;197:1537::-;;;;;;;;;;:::o", "source": "pragma solidity ^0.4.18;\n\nimport './SimpleCappedOffering.sol';\nimport '../interfaces/IOfferingFactory.sol';\n\n/**\n * @dev Highly Recommended - Only a sample STO factory Not used for mainnet !!\n */\n\ncontract SimpleCappedOfferingFactory is IOfferingFactory {\n\n using SafeMath for uint256;\n string public VERSION = \"1\";\n\n ISecurityToken public SecurityToken;\n\n uint256 public fee = 100;\n uint8 public quorum = 10;\n uint256 public vestingPeriod = 8888888;\n bytes32 public description = \"Capped\";\n uint256 public fxPolyToken;\n\n address public owner;\n\n function SimpleCappedOfferingFactory() public {\n owner = msg.sender;\n }\n\n /**\n * @dev It facilitate the creation of the STO contract with essentials parameters\n * @param _startTime Unix timestamp to start the offering\n * @param _endTime Unix timestamp to end the offering\n * @param _polyTokenRate Price of one security token in terms of poly\n * @param _maxPoly Maximum amount of poly issuer wants to collect\n * @return address Address of the new offering instance\n */\n function createOffering(\n uint256 _startTime,\n uint256 _endTime,\n uint256 _polyTokenRate,\n uint256 _maxPoly\n ) public returns (address)\n {\n return new SimpleCappedOffering(_startTime, _endTime, _polyTokenRate, _maxPoly, msg.sender);\n }\n\n /**\n * @dev `getUsageDetails` is a function to get all the details on factory usage fees\n * @return uint256 fee, uint8 quorum, uint256 vestingPeriod, address owner, string description\n */\n function getUsageDetails() view public returns (uint256, uint8, uint256, address, bytes32) {\n return (fee, quorum, vestingPeriod, owner, description);\n }\n\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/OfferingFactories/SimpleCappedOfferingFactory.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/OfferingFactories/SimpleCappedOfferingFactory.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/OfferingFactories/SimpleCappedOfferingFactory.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/OfferingFactories/SimpleCappedOfferingFactory.sol", "exportedSymbols": { "SimpleCappedOfferingFactory": [ 1946 @@ -213,7 +213,7 @@ { "attributes": { "SourceUnit": 1862, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/OfferingFactories/SimpleCappedOffering.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/OfferingFactories/SimpleCappedOffering.sol", "file": "./SimpleCappedOffering.sol", "scope": 1947, "symbolAliases": [ @@ -228,7 +228,7 @@ { "attributes": { "SourceUnit": 5164, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/IOfferingFactory.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/IOfferingFactory.sol", "file": "../interfaces/IOfferingFactory.sol", "scope": 1947, "symbolAliases": [ @@ -1337,7 +1337,13 @@ "name": "solc", "version": "0.4.18+commit.9cf6e910.Emscripten.clang" }, - "networks": {}, + "networks": { + "3": { + "events": {}, + "links": {}, + "address": "0x38de2c4c86a88690736ff376344ea22b135bace8" + } + }, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.689Z" + "updatedAt": "2018-02-25T12:54:40.699Z" } \ No newline at end of file diff --git a/build/contracts/Template.json b/build/contracts/Template.json index eca4f67..08ac554 100644 --- a/build/contracts/Template.json +++ b/build/contracts/Template.json @@ -504,15 +504,15 @@ "type": "event" } ], - "bytecode": "0x606060405260408051908101604052600181527f3100000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001cb565b5034156200005a57600080fd5b6040516200132e3803806200132e833981016040528080519190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051915050600160a060020a03861615801590620000d75750600160a060020a038a1615155b1515620000e357600080fd5b4284118015620000f1575060015b1515620000fd57600080fd5b60008260ff1611801562000115575060648260ff1611155b15156200012157600080fd5b600081116200012f57600080fd5b60018054600160a060020a031916600160a060020a038c1617905560028980516200015f929160200190620001cb565b50600397909755600a805460ff199081169715159790971761010060a860020a031916610100600160a060020a03979097169690960295909517909455600b92909255600c805485169055600d55600e55600f805490921660ff90911617905560105550620002709050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020e57805160ff19168380011785556200023e565b828001600101855582156200023e579182015b828111156200023e57825182559160200191906001019062000221565b506200024c92915062000250565b5090565b6200026d91905b808211156200024c576000815560010162000257565b90565b6110ae80620002806000396000f30060606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a723058208268f516da35a65166488329b0a9868c657f4629018efe9cdbec450f61e8f4470029", - "deployedBytecode": "0x60606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a723058208268f516da35a65166488329b0a9868c657f4629018efe9cdbec450f61e8f4470029", + "bytecode": "0x606060405260408051908101604052600181527f3100000000000000000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001cb565b5034156200005a57600080fd5b6040516200132e3803806200132e833981016040528080519190602001805182019190602001805191906020018051919060200180519190602001805191906020018051919060200180519190602001805191906020018051915050600160a060020a03861615801590620000d75750600160a060020a038a1615155b1515620000e357600080fd5b4284118015620000f1575060015b1515620000fd57600080fd5b60008260ff1611801562000115575060648260ff1611155b15156200012157600080fd5b600081116200012f57600080fd5b60018054600160a060020a031916600160a060020a038c1617905560028980516200015f929160200190620001cb565b50600397909755600a805460ff199081169715159790971761010060a860020a031916610100600160a060020a03979097169690960295909517909455600b92909255600c805485169055600d55600e55600f805490921660ff90911617905560105550620002709050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020e57805160ff19168380011785556200023e565b828001600101855582156200023e579182015b828111156200023e57825182559160200191906001019062000221565b506200024c92915062000250565b5090565b6200026d91905b808211156200024c576000815560010162000257565b90565b6110ae80620002806000396000f30060606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a72305820f3d30edb15a508c6620c68b811c7b0d879dfc09af6cf2c9c35af6ddc5c6ad7b70029", + "deployedBytecode": "0x60606040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166318037b7881146101425780631acd64b614610167578063219fd010146101cd57806329dbdd77146101f45780632eda79001461020a578063506dc7e1146102365780638862d26a146102885780638da5cb5b1461031257806391360cdb14610341578063a12a6bb014610354578063a23d20f414610367578063abb4108e1461037d578063ae3d81b8146103ce578063b1cb0db3146103e4578063b20cc590146103f7578063b60d00ac14610410578063b74a326614610423578063bc54f56f14610436578063c0cd02dd14610463578063c574a53c14610479578063d2f80c1514610508578063f8d970b614610597578063fc1e0ee2146105bb578063ffa1ad74146105d1575b600080fd5b341561014d57600080fd5b6101556105e4565b60405190815260200160405180910390f35b341561017257600080fd5b61017a6105ea565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156101b95780820151838201526020016101a1565b505050509050019250505060405180910390f35b34156101d857600080fd5b6101e061064a565b604051901515815260200160405180910390f35b34156101ff57600080fd5b6101e0600435610653565b341561021557600080fd5b6102206004356106d6565b60405160ff909116815260200160405180910390f35b341561024157600080fd5b610249610708565b60405194855260ff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390f35b341561029357600080fd5b61029b610737565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156102d75780820151838201526020016102bf565b50505050905090810190601f1680156103045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561031d57600080fd5b6103256107d5565b604051600160a060020a03909116815260200160405180910390f35b341561034c57600080fd5b61017a6107e4565b341561035f57600080fd5b61032561085f565b341561037257600080fd5b6101e0600435610873565b341561038857600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284375094965061088895505050505050565b005b34156103d957600080fd5b6101e060043561099c565b34156103ef57600080fd5b6101556109b1565b341561040257600080fd5b6101e060ff600435166109b7565b341561041b57600080fd5b61017a6109cc565b341561042e57600080fd5b6101e0610a29565b341561044157600080fd5b610449610abc565b604051918252151560208201526040908101905180910390f35b341561046e57600080fd5b610155600435610ade565b341561048457600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610afd95505050505050565b341561051357600080fd5b6103cc600460248135818101908301358060208181020160405190810160405280939291908181526020018383602002808284378201915050505050509190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843750949650610cae95505050505050565b34156105a257600080fd5b6101e0600435602435604435151560ff60643516610e50565b34156105c657600080fd5b610155600435610ed7565b34156105dc57600080fd5b61029b610ee5565b60035481565b6105f2610ffe565b600880548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020905b8154815260019091019060200180831161062a575b505050505090505b90565b600a5460ff1681565b60008082151561066257600080fd5b60015433600160a060020a0390811691161461067d57600080fd5b50600b8054908390557f36ea8189911f562dab2c41b38f706d6d0ccb80d135b0873b1ad84674dd2d2c9981844260405192835260208301919091526040808301919091526060909101905180910390a150600192915050565b60098054829081106106e457fe5b9060005260206000209060209182820401919006915054906101000a900460ff1681565b600e54600f54601054600154600a5460ff90931692600160a060020a0391821691610100909104169091929394565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b820191906000526020600020905b8154815290600101906020018083116107b057829003601f168201915b505050505081565b600154600160a060020a031681565b6107ec610ffe565b600980548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116108275790505050505050905090565b600a546101009004600160a060020a031681565b60056020526000908152604090205460ff1681565b60015460009033600160a060020a039081169116146108a657600080fd5b600c5460ff16156108b657600080fd5b5060005b815181101561099857600660008383815181106108d357fe5b9060200190602002015160ff908116825260208201929092526040016000205416151561095257600980546001810161090c8382611010565b916000526020600020906020918282040191900684848151811061092c57fe5b90602001906020020151909190916101000a81548160ff021916908360ff160217905550505b60016006600084848151811061096457fe5b9060200190602002015160ff1681526020810191909152604001600020805460ff19169115159190911790556001016108ba565b5050565b60046020526000908152604090205460ff1681565b600d5481565b60066020526000908152604090205460ff1681565b6109d4610ffe565b600780548060200260200160405190810160405280929190818152602001828054801561063f57602002820191906000526020600020908154815260019091019060200180831161062a575050505050905090565b60015460009033600160a060020a03908116911614610a4757600080fd5b6007546011541415610a5857600080fd5b60095460009011610a6857600080fd5b600c805460ff1916600117908190557f08dc52dd221ca845b91e72cd481a59a91ee434d125889ef58f5f411879ece55e9060ff1642604051911515825260208201526040908101905180910390a150600190565b60008042600d54111515610acf57600080fd5b5050600b54600c5460ff169091565b6007805482908110610aec57fe5b600091825260209091200154905081565b60015460009033600160a060020a03908116911614610b1b57600080fd5b8151835114610b2957600080fd5b600c5460ff1615610b3957600080fd5b5060005b8251811015610ca95760046000848381518110610b5657fe5b90602001906020020151815260208101919091526040016000205460ff16158015610b935750818181518110610b8857fe5b906020019060200201515b15610bd8576007805460018101610baa8382611044565b91600052602060002090016000858481518110610bc357fe5b9060200190602002015190915550610c529050565b60046000848381518110610be857fe5b90602001906020020151815260208101919091526040016000205460ff168015610c255750818181518110610c1957fe5b90602001906020020151155b15610c5257610c48838281518110610c3957fe5b90602001906020020151610f50565b6011805460010190555b818181518110610c5e57fe5b9060200190602002015160046000858481518110610c7857fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610b3d565b505050565b60015460009033600160a060020a03908116911614610ccc57600080fd5b8151835114610cda57600080fd5b600c5460ff1615610cea57600080fd5b5060005b8251811015610ca95760056000848381518110610d0757fe5b90602001906020020151815260208101919091526040016000205460ff16158015610d445750818181518110610d3957fe5b906020019060200201515b15610d89576008805460018101610d5b8382611044565b91600052602060002090016000858481518110610d7457fe5b9060200190602002015190915550610df99050565b60056000848381518110610d9957fe5b90602001906020020151815260208101919091526040016000205460ff168015610dd65750818181518110610dca57fe5b90602001906020020151155b15610df957610df9838281518110610dea57fe5b90602001906020020151610fa7565b818181518110610e0557fe5b9060200190602002015160056000858481518110610e1f57fe5b9060200190602002015181526020810191909152604001600020805460ff1916911515919091179055600101610cee565b6000841515610e5e57600080fd5b60008581526004602052604090205460ff1680610e8a575060008481526005602052604090205460ff16155b1515610e9557600080fd5b60ff808316600090815260066020526040902054161515610eb557600080fd5b600a5460ff1615610ecc57821515610ecc57600080fd5b506001949350505050565b6008805482908110610aec57fe5b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156107cd5780601f106107a2576101008083540402835291602001916107cd565b60005b600754811015610998576007805483919083908110610f6e57fe5b6000918252602090912001541415610f9f57600780546000919083908110610f9257fe5b6000918252602090912001555b600101610f53565b60005b600854811015610998576008805483919083908110610fc557fe5b6000918252602090912001541415610ff657600880546000919083908110610fe957fe5b6000918252602090912001555b600101610faa565b60206040519081016040526000815290565b815481835581811511610ca957601f016020900481601f01602090048360005260206000209182019101610ca99190611064565b815481835581811511610ca957600083815260209020610ca99181019083015b61064791905b8082111561107e576000815560010161106a565b50905600a165627a7a72305820f3d30edb15a508c6620c68b811c7b0d879dfc09af6cf2c9c35af6ddc5c6ad7b70029", "sourceMap": "490:10126:9:-;;;528:27;;;;;;;;;;;;;;;;-1:-1:-1;;528:27:9;;;;;;;;;:::i;:::-;;2942:882;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;3264:18:9;;;;;;:42;;-1:-1:-1;;;;;;3286:20:9;;;;3264:42;3256:51;;;;;;;;3359:3;3348:8;:14;3325:71;;;;-1:-1:-1;3366:30:9;3325:71;3317:80;;;;;;;;3425:1;3415:7;:11;;;:29;;;;;3441:3;3430:7;:14;;;;3415:29;3407:38;;;;;;;;3480:1;3463:18;;3455:27;;;;;;3492:5;:14;;-1:-1:-1;;;;;;3492:14:9;-1:-1:-1;;;;;3492:14:9;;;;;3516:12;3531:13;;3516:28;;;;;;;;:::i;:::-;-1:-1:-1;3554:18:9;:40;;;;3604:10;:24;;-1:-1:-1;;3604:24:9;;;;;;;;;;-1:-1:-1;;;;;;3638:10:9;3604:24;-1:-1:-1;;;;;3638:10:9;;;;;;;;;;;;;;;3658:7;:18;;;;3686:9;:17;;;;;;3713:7;:18;3741:3;:10;3761:6;:16;;;;;3604:24;3761:16;;;;;;3787:13;:30;-1:-1:-1;490:10126:9;;-1:-1:-1;490:10126:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;490:10126:9;;;-1:-1:-1;490:10126:9;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", "deployedSourceMap": "490:10126:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;771:33;;;;;;;;;;;;;;;;;;;;;;;;;;;10479:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;1622:22:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7618:289;;;;;;;;;;;;;;1524:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9832:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9832:155:9;;;;;;;;;;;;;;-1:-1:-1;9832:155:9;;;;;;;;;;666:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;71:3;;;64:6;52:2;45:3;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:20:9;;;;;;;;;;;;;;;-1:-1:-1;;;;;562:20:9;;;;;;;;;;;;;;;10289:101;;;;;;;;;;;;1766:18;;;;;;;;;;;;1035:60;;;;;;;;;;;;;;7116:347;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7116:347:9;;-1:-1:-1;7116:347:9;;-1:-1:-1;;;;;;7116:347:9;;;907:52;;;;;;;;;;;;;;2128:22;;;;;;;;;;;;1163:42;;;;;;;;;;;;;;;;10084:119;;;;;;;;;;;;8049:321;;;;;;;;;;;;9486:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1284:41;;;;;;;;;;;;;;4094:754;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4094:754:9;;-1:-1:-1;4094:754:9;;-1:-1:-1;;;;;;4094:754:9;5158:824;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5158:824:9;;-1:-1:-1;5158:824:9;;-1:-1:-1;;;;;;5158:824:9;8833:503;;;;;;;;;;;;;;;;;;;;;;;;1400:49;;;;;;;;;;;;;;528:27;;;;;;;;;;;;771:33;;;;:::o;10479:135::-;10547:9;;:::i;:::-;10575:32;10568:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10479:135;;:::o;1622:22::-;;;;;;:::o;7618:289::-;7675:12;;7707:15;;;7699:24;;;;;;7741:5;;7750:10;-1:-1:-1;;;;;7741:19:9;;;:5;;:19;7733:28;;;;;;-1:-1:-1;7793:7:9;;;7810:18;;;;7838:41;7793:7;7820:8;7875:3;7838:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7896:4:9;;7618:289;-1:-1:-1;;7618:289:9:o;1524:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9832:155::-;9941:3;;9946:6;;9954:13;;9946:6;9969:5;9976:3;;9941;;9946:6;;;;;9954:13;;-1:-1:-1;;;;;9969:5:9;;;;9946:6;9976:3;;;;;;9832:155::o;666:26::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;562:20::-;;;-1:-1:-1;;;;;562:20:9;;:::o;10289:101::-;10341:7;;:::i;:::-;10367:16;10360:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10289:101;:::o;1766:18::-;;;;;;-1:-1:-1;;;;;1766:18:9;;:::o;1035:60::-;;;;;;;;;;;;;;;:::o;7116:347::-;7182:5;;7246:6;;7191:10;-1:-1:-1;;;;;7182:19:9;;;:5;;:19;7174:28;;;;;;7221:9;;;;7220:10;7212:19;;;;;;-1:-1:-1;7255:1:9;7241:216;7262:13;:20;7258:1;:24;7241:216;;;7307:12;:30;7320:13;7334:1;7320:16;;;;;;;;;;;;;;;;7307:30;;;;;;;;;;;;;;;-1:-1:-1;7307:30:9;;;7306:31;7303:91;;;7355:16;:39;;;;;;:16;:39;;:::i;:::-;;;;;;;;;;;;;;;;;7377:13;7391:1;7377:16;;;;;;;;;;;;;;;;7355:39;;;;;;;;;;;;;;;;;;;;;;;7303:91;7442:4;7409:12;:30;7422:13;7436:1;7422:16;;;;;;;;;;;;;;;;7409:30;;;;;;;;;;;;;-1:-1:-1;7409:30:9;:37;;-1:-1:-1;;7409:37:9;;;;;;;;;;-1:-1:-1;7284:3:9;7241:216;;;7116:347;;:::o;907:52::-;;;;;;;;;;;;;;;:::o;2128:22::-;;;;:::o;1163:42::-;;;;;;;;;;;;;;;:::o;10084:119::-;10144:9;;:::i;:::-;10172:24;10165:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10084:119;:::o;8049:321::-;8125:5;;8093:12;;8134:10;-1:-1:-1;;;;;8125:19:9;;;:5;;:19;8117:28;;;;;;8192:24;:31;8163:25;;:60;;8155:69;;;;;;8242:16;:23;8268:1;8242:27;;8234:36;;;;;;8280:9;:16;;-1:-1:-1;;8280:16:9;8292:4;8280:16;;;;;8306:36;;8280:16;8327:9;8338:3;8306:36;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8359:4:9;8049:321;:::o;9486:142::-;9537:7;9546:4;9580:3;9570:7;;:13;9562:22;;;;;;;;-1:-1:-1;;9602:7:9;;9611:9;;;;9486:142;;:::o;1284:41::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1284:41:9;:::o;4094:754::-;4194:5;;4324:6;;4203:10;-1:-1:-1;;;;;4194:19:9;;;:5;;:19;4186:28;;;;;;4264:8;:15;4232:21;:28;:47;4224:56;;;;;;4299:9;;;;4298:10;4290:19;;;;;;-1:-1:-1;4333:1:9;4319:523;4340:21;:28;4336:1;:32;4319:523;;;4394:20;:46;4415:21;4437:1;4415:24;;;;;;;;;;;;;;;;4394:46;;;;;;;;;;;;;;;;4393:47;:62;;;;;4444:8;4453:1;4444:11;;;;;;;;;;;;;;;;4393:62;4389:354;;;4471:24;:55;;;;;;:24;:55;;:::i;:::-;;;;;;;;;;4501:21;4523:1;4501:24;;;;;;;;;;;;;;;;4471:55;;;-1:-1:-1;4389:354:9;;-1:-1:-1;4389:354:9;;4549:20;:46;4570:21;4592:1;4570:24;;;;;;;;;;;;;;;;4549:46;;;;;;;;;;;;;;;;:62;;;;;4600:8;4609:1;4600:11;;;;;;;;;;;;;;;;4599:12;4549:62;4545:198;;;4631:52;4658:21;4680:1;4658:24;;;;;;;;;;;;;;;;4631:26;:52::i;:::-;4701:25;:27;;;;;;4545:198;4820:8;4829:1;4820:11;;;;;;;;;;;;;;;;4771:20;:46;4792:21;4814:1;4792:24;;;;;;;;;;;;;;;;4771:46;;;;;;;;;;;-1:-1:-1;4771:46:9;:60;;-1:-1:-1;;4771:60:9;;;;;;;;;;-1:-1:-1;4370:3:9;4319:523;;;4094:754;;;:::o;5158:824::-;5274:5;;5412:6;;5283:10;-1:-1:-1;;;;;5274:19:9;;;:5;;:19;5266:28;;;;;;5352:8;:15;5312:29;:36;:55;5304:64;;;;;;5387:9;;;;5386:10;5378:19;;;;;;-1:-1:-1;5421:1:9;5407:569;5428:29;:36;5424:1;:40;5407:569;;;5491:28;:62;5520:29;5550:1;5520:32;;;;;;;;;;;;;;;;5491:62;;;;;;;;;;;;;;;;5490:63;:78;;;;;5557:8;5566:1;5557:11;;;;;;;;;;;;;;;;5490:78;5486:375;;;5586:32;:71;;;;;;:32;:71;;:::i;:::-;;;;;;;;;;5624:29;5654:1;5624:32;;;;;;;;;;;;;;;;5586:71;;;-1:-1:-1;5486:375:9;;-1:-1:-1;5486:375:9;;5680:28;:62;5709:29;5739:1;5709:32;;;;;;;;;;;;;;;;5680:62;;;;;;;;;;;;;;;;:78;;;;;5747:8;5756:1;5747:11;;;;;;;;;;;;;;;;5746:12;5680:78;5676:185;;;5778:68;5813:29;5843:1;5813:32;;;;;;;;;;;;;;;;5778:34;:68::i;:::-;5954:8;5963:1;5954:11;;;;;;;;;;;;;;;;5889:28;:62;5918:29;5948:1;5918:32;;;;;;;;;;;;;;;;5889:62;;;;;;;;;;;-1:-1:-1;5889:62:9;:76;;-1:-1:-1;;5889:76:9;;;;;;;;;;-1:-1:-1;5466:3:9;5407:569;;8833:503;9019:12;9055:27;;;9047:36;;;;;;9101:42;;;;:20;:42;;;;;;;;;:98;;-1:-1:-1;9148:51:9;;;;:28;:51;;;;;;;;9147:52;9101:98;9093:107;;;;;;;;9218:19;;;;;;;;:12;:19;;;;;;;9210:28;;;;;;;;9252:10;;;;9248:61;;;9286:11;9278:20;;;;;;;;-1:-1:-1;9325:4:9;8833:503;;;;;;:::o;1400:49::-;;;;;;;;;;;528:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6146:267;6229:6;6224:183;6245:24;:31;6241:35;;6224:183;;;6301:24;:27;;6332:13;;6301:24;6326:1;;6301:27;;;;;;;;;;;;;;;;:44;6297:99;;;6363:24;:27;;6393:3;;6363:24;6388:1;;6363:27;;;;;;;;;;;;;;;:33;6297:99;6278:3;;6224:183;;6615:330;6722:6;6717:222;6738:32;:39;6734:43;;6717:222;;;6802:32;:35;;6841:28;;6802:32;6835:1;;6802:35;;;;;;;;;;;;;;;;:67;6798:130;;;6887:32;:35;;6925:3;;6887:32;6920:1;;6887:35;;;;;;;;;;;;;;;:41;6798:130;6779:3;;6717:222;;490:10126;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "source": "pragma solidity ^0.4.18;\n\n/*\n Polymath compliance template is intended to ensure regulatory compliance\n in the jurisdictions that security tokens are being offered in. The compliance\n template allows security tokens to enforce purchase restrictions on chain and\n keep a log of documents for future auditing purposes.\n*/\n\nimport './interfaces/ITemplate.sol';\n\n/**\n * @title Template\n * @dev Template details used for the security token offering to ensure the regulatory compliance\n */\n\ncontract Template is ITemplate {\n\n string public VERSION = \"1\";\n\n address public owner; // Address of the owner of template\n string public offeringType; // Name of the security being issued\n bytes32 public issuerJurisdiction; // Variable contains the jurisdiction of the issuer of the template\n mapping(bytes32 => bool) public allowedJurisdictions; // Mapping that contains the allowed staus of Jurisdictions\n mapping(bytes32 => bool) public blockedDivisionJurisdictions; // Mapping that contains the allowed staus of Jurisdictions\n mapping(uint8 => bool) public allowedRoles; // Mapping that contains the allowed status of Roles\n bytes32[] public allowedJurisdictionsList; // List of allowed jurisdiction in the template\n bytes32[] public blockedDivisionJurisdictionsList; // List of blocked divison jurisdiction in the template\n uint8[] public allowedRolesList; // List of allowed roles list\n bool public accredited; // Variable that define the required level of accrediation for the investor\n address public KYC; // Address of the KYC provider\n bytes32 details; // Details of the offering requirements\n bool finalized; // Variable to know the status of the template (complete - true, not complete - false)\n uint256 public expires; // Timestamp when template expires\n uint256 fee; // Amount of POLY to use the template (held in escrow until issuance)\n uint8 quorum; // Minimum percent of shareholders which need to vote to freeze\n uint256 vestingPeriod; // Length of time to vest funds\n\n uint removedJurisdictionsCount; // Keeps track of how many jurisdictions have been removed from allowed list for this template\n // Notification\n event DetailsUpdated(bytes32 _prevDetails, bytes32 _newDetails, uint _updateDate);\n event LogFinalizedTemplate(bool _finalized, uint256 _timestamp);\n\n function Template (\n address _owner,\n string _offeringType,\n bytes32 _issuerJurisdiction,\n bool _accredited,\n address _KYC,\n bytes32 _details,\n uint256 _expires,\n uint256 _fee,\n uint8 _quorum,\n uint256 _vestingPeriod\n ) public\n {\n require(_KYC != address(0) && _owner != address(0));\n require(_details.length > 0 && _expires > now && _issuerJurisdiction.length > 0);\n require(_quorum > 0 && _quorum <= 100);\n require(_vestingPeriod > 0);\n owner = _owner;\n offeringType = _offeringType;\n issuerJurisdiction = _issuerJurisdiction;\n accredited = _accredited;\n KYC = _KYC;\n details = _details;\n finalized = false;\n expires = _expires;\n fee = _fee;\n quorum = _quorum;\n vestingPeriod = _vestingPeriod;\n }\n\n /**\n * @dev `addJurisdiction` allows the adding of new jurisdictions to a template\n * @param _allowedJurisdictions An array of jurisdictions\n * @param _allowed An array of whether the jurisdiction is allowed to purchase the security or not\n */\n function addJurisdiction(bytes32[] _allowedJurisdictions, bool[] _allowed) public {\n require(owner == msg.sender);\n require(_allowedJurisdictions.length == _allowed.length);\n require(!finalized);\n for (uint i = 0; i < _allowedJurisdictions.length; ++i) {\n if (!allowedJurisdictions[_allowedJurisdictions[i]] && _allowed[i])\n allowedJurisdictionsList.push(_allowedJurisdictions[i]);\n else if (allowedJurisdictions[_allowedJurisdictions[i]] && !_allowed[i]) {\n removeFromJurisdictionList(_allowedJurisdictions[i]);\n removedJurisdictionsCount++;\n }\n \n allowedJurisdictions[_allowedJurisdictions[i]] = _allowed[i];\n }\n }\n\n /**\n * @dev `addDivisionJurisdiction` allows the adding of new jurisdictions to a template\n * @param _blockedDivisionJurisdictions An array of subdivision jurisdictions\n * @param _blocked An array of whether the subdivision jurisdiction is blocked to purchase the security or not\n */\n function addDivisionJurisdiction(bytes32[] _blockedDivisionJurisdictions, bool[] _blocked) public {\n require(owner == msg.sender);\n require(_blockedDivisionJurisdictions.length == _blocked.length);\n require(!finalized);\n for (uint i = 0; i < _blockedDivisionJurisdictions.length; ++i) {\n if (!blockedDivisionJurisdictions[_blockedDivisionJurisdictions[i]] && _blocked[i])\n blockedDivisionJurisdictionsList.push(_blockedDivisionJurisdictions[i]);\n else if (blockedDivisionJurisdictions[_blockedDivisionJurisdictions[i]] && !_blocked[i]) {\n removeFromDivisionJurisdictionList(_blockedDivisionJurisdictions[i]);\n }\n \n blockedDivisionJurisdictions[_blockedDivisionJurisdictions[i]] = _blocked[i];\n }\n }\n\n /**\n * @dev remove the jurisdiction from the allowed list of jurisdictions\n * @param _jurisdiction Jurisdiction which need to be removed\n */\n function removeFromJurisdictionList(bytes32 _jurisdiction) internal {\n for (uint i = 0; i < allowedJurisdictionsList.length; i++) {\n if (allowedJurisdictionsList[i] == _jurisdiction)\n allowedJurisdictionsList[i] = 0x0;\n }\n }\n\n\n /**\n * @dev remove the divisionJurisdiction from the blocked list of divisionJurisdiction\n * @param _blockedDivisionJurisdiction divisionJurisdiction which need to be removed\n */\n function removeFromDivisionJurisdictionList(bytes32 _blockedDivisionJurisdiction) internal {\n for (uint i = 0; i < blockedDivisionJurisdictionsList.length; i++) {\n if (blockedDivisionJurisdictionsList[i] == _blockedDivisionJurisdiction)\n blockedDivisionJurisdictionsList[i] = 0x0;\n }\n }\n\n /**\n * @dev `addRoles` allows the adding of new roles to be added to whitelist\n * @param _allowedRoles User roles that can purchase the security\n */\n function addRoles(uint8[] _allowedRoles) public {\n require(owner == msg.sender);\n require(!finalized);\n for (uint i = 0; i < _allowedRoles.length; ++i) {\n if(!allowedRoles[_allowedRoles[i]])\n allowedRolesList.push(_allowedRoles[i]);\n\n allowedRoles[_allowedRoles[i]] = true;\n }\n }\n\n /**\n * @notice `updateDetails`\n * @param _details details of the template need to change\n * @return allowed boolean variable\n */\n function updateDetails(bytes32 _details) public returns (bool allowed) {\n require(_details != 0x0);\n require(owner == msg.sender);\n bytes32 prevDetails = details;\n details = _details;\n DetailsUpdated(prevDetails, details, now);\n return true;\n }\n\n /**\n * @dev `finalizeTemplate` is used to finalize template.full compliance process/requirements\n * @return success\n */\n function finalizeTemplate() public returns (bool success) {\n require(owner == msg.sender);\n require(removedJurisdictionsCount != allowedJurisdictionsList.length);\n require(allowedRolesList.length > 0);\n finalized = true;\n LogFinalizedTemplate(finalized, now);\n return true;\n }\n\n /**\n * @dev `checkTemplateRequirements` is a constant function that checks if templates requirements are met\n * @param _countryJurisdiction The ISO-3166 code of the investors country jurisdiction\n * @param _divisionJurisdiction The ISO-3166 code of the investors subdivision jurisdiction\n * @param _accredited Whether the investor is accredited or not\n * @param _role role of the user\n * @return allowed boolean variable\n */\n function checkTemplateRequirements(\n bytes32 _countryJurisdiction,\n bytes32 _divisionJurisdiction,\n bool _accredited,\n uint8 _role\n ) public view returns (bool allowed)\n {\n require(_countryJurisdiction != 0x0);\n require(allowedJurisdictions[_countryJurisdiction] || !blockedDivisionJurisdictions[_divisionJurisdiction]);\n require(allowedRoles[_role]);\n if (accredited) {\n require(_accredited);\n }\n return true;\n }\n\n /**\n * @dev getTemplateDetails is a constant function that gets template details\n * @return bytes32 details, bool finalized\n */\n function getTemplateDetails() view public returns (bytes32, bool) {\n require(expires > now);\n return (details, finalized);\n }\n\n /**\n * @dev `getUsageDetails` is a function to get all the details on template usage fees\n * @return uint256 fee, uint8 quorum, uint256 vestingPeriod, address owner, address KYC\n */\n function getUsageDetails() view public returns (uint256, uint8, uint256, address, address) {\n return (fee, quorum, vestingPeriod, owner, KYC);\n }\n\n /**\n * @dev Get the list of allowed jurisdictions\n * @return bytes32[]\n */\n function getAllowedJurisdictionsList() view public returns (bytes32[]) {\n return allowedJurisdictionsList;\n }\n\n /**\n * @dev Get the list of allowed roles\n * @return uin8[]\n */\n function getAllowedRolesList() view public returns (uint8[]) {\n return allowedRolesList;\n }\n\n /**\n * @dev Get the list of allowed roles\n * @return bytes32[]\n */\n function getblockedDivisionJurisdictionsList() view public returns (bytes32[]) {\n return blockedDivisionJurisdictionsList;\n }\n}\n", - "sourcePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Template.sol", + "sourcePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Template.sol", "ast": { "attributes": { - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/Template.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/Template.sol", "exportedSymbols": { "Template": [ 4685 @@ -536,7 +536,7 @@ { "attributes": { "SourceUnit": 5403, - "absolutePath": "/Users/everhusk/Ethereum/Polymath/Core/contracts/interfaces/ITemplate.sol", + "absolutePath": "/Users/pabloruiz55/DocumentsBackup/Polymath/polymath-core/contracts/interfaces/ITemplate.sol", "file": "./interfaces/ITemplate.sol", "scope": 4686, "symbolAliases": [ @@ -9768,5 +9768,5 @@ }, "networks": {}, "schemaVersion": "1.0.1", - "updatedAt": "2018-02-25T06:59:38.740Z" + "updatedAt": "2018-02-25T12:43:54.437Z" } \ No newline at end of file diff --git a/migrations/1_deploy_contracts.js b/migrations/1_deploy_contracts.js index aebc37a..288860e 100644 --- a/migrations/1_deploy_contracts.js +++ b/migrations/1_deploy_contracts.js @@ -3,6 +3,7 @@ const Customers = artifacts.require('./Customers.sol'); const SecurityToken = artifacts.require('./SecurityToken.sol'); const SecurityTokenRegistrar = artifacts.require('./SecurityTokenRegistrar.sol'); const NameSpaceRegistrar = artifacts.require('./NameSpaceRegistrar.sol'); +const SimpleCappedOfferingFactory = artifacts.require('./SimpleCappedOfferingFactory.sol'); //NB - these are Ropsten addresses const PolyToken = '0x96a62428509002a7ae5f6ad29e4750d852a3f3d7'; const PolyFeeAddress = '0x627306090abaB3A6e1400e9345bC60c78a8BEf57'; @@ -28,3 +29,19 @@ module.exports = async (deployer, network) => { console.log('Deploy error', err); } }; + +// +// Uncomment the lines below to deploy an offering factory with a developer account +// + +// module.exports = async (deployer, network) => { +// console.log(`Deploying Offering Factory to ${network}...`); +// try{ +// await deployer.deploy(SimpleCappedOfferingFactory); +// console.log(`\nPolymath Network Smart Contracts Deployed:\n +// Offering Factory: ${PolyToken}\n +// `); +// } catch(err) { +// console.log('Deploy error', err); +// } +// }; diff --git a/package.json b/package.json index e1f2a70..73d60ff 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "mocha-lcov-reporter": "1.3.0", "solc": "0.4.17", "truffle": "4.0.1", + "truffle-hdwallet-provider-privkey": "^0.1.0", "truffle-wallet-provider": "0.0.5", "xtend": "4.0.1", "yargs": "8.0.2" diff --git a/truffle.js b/truffle.js index 4563b99..909996e 100644 --- a/truffle.js +++ b/truffle.js @@ -1,9 +1,13 @@ require('babel-register'); require('babel-polyfill'); -const WalletProvider = require("truffle-wallet-provider"); -const keystore = require('fs').readFileSync('./sample-keystore').toString(); -const pass = require('fs').readFileSync('./sample-pass').toString(); -const wallet = require('ethereumjs-wallet').fromV3(keystore, pass); +const WalletProvider = require("truffle-hdwallet-provider-privkey"); +const privKey = require('fs').readFileSync('./infura_privKey').toString(); +const apiKey = require('fs').readFileSync('./infura_apiKey').toString(); + +// const WalletProvider = require("truffle-wallet-provider"); +// const keystore = require('fs').readFileSync('./sample-keystore').toString(); +// const pass = require('fs').readFileSync('./sample-pass').toString(); +// const wallet = require('ethereumjs-wallet').fromV3(keystore, pass); const config = { networks: { @@ -15,7 +19,7 @@ const config = { network_id: '*', }, ropsten: { - provider: new WalletProvider(wallet, "https://ropsten.infura.io/"), + provider: new WalletProvider(privKey, "https://ropsten.infura.io/"+ apiKey), network_id: 3, gas: 4700036, gasPrice: 130000000000, diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..7203e49 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,4569 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + +abbrev@1.0.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" + +abstract-leveldown@~2.6.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz#1c5e8c6a5ef965ae8c35dfb3a8770c476b82c4b8" + dependencies: + xtend "~4.0.0" + +abstract-leveldown@~2.7.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz#87a44d7ebebc341d59665204834c8b7e0932cc93" + dependencies: + xtend "~4.0.0" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.4.1.tgz#fdc58d9d17f4a4e98d102ded826a9b9759125102" + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + +aes-js@^0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-0.2.4.tgz#94b881ab717286d015fa219e08fb66709dda5a3d" + +ajv-keywords@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +ajv@^6.1.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.1.1.tgz#978d597fbc2b7d0e5a5c3ddeb149a682f2abfa0e" + dependencies: + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-regex@^2.0.0, ansi-regex@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +aproba@^1.0.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + +argv@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/argv/-/argv-0.0.2.tgz#ecbd16f8949b157183711b1bda334f37840185ab" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-eventemitter@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.4.tgz#f5e7c8ca7d3e46aab9ec40a292baf686a0bafaca" + dependencies: + async "^2.4.0" + +async-eventemitter@ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c: + version "0.2.3" + resolved "https://codeload.github.com/ahultgren/async-eventemitter/tar.gz/fa06e39e56786ba541c180061dbf2c0a5bbf951c" + dependencies: + async "^2.4.0" + +async@1.x, async@^1.4.0, async@^1.4.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.1, async@^2.1.2, async@^2.4.0, async@^2.5.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + +aws4@^1.2.1, aws4@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@^6.0.14, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + +babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + +babel-helper-bindify-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-explode-class@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" + dependencies: + babel-helper-bindify-decorators "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + +babel-plugin-syntax-async-generators@^6.5.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" + +babel-plugin-syntax-class-properties@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" + +babel-plugin-syntax-decorators@^6.13.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" + +babel-plugin-syntax-dynamic-import@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" + +babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + +babel-plugin-syntax-object-rest-spread@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" + +babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + +babel-plugin-transform-async-generator-functions@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-generators "^6.5.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-async-to-generator@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-class-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" + dependencies: + babel-helper-function-name "^6.24.1" + babel-plugin-syntax-class-properties "^6.8.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-decorators@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" + dependencies: + babel-helper-explode-class "^6.24.1" + babel-plugin-syntax-decorators "^6.13.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + +babel-plugin-transform-es2015-classes@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-computed-properties@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + +babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + +babel-plugin-transform-es2015-object-super@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-shorthand-properties@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + +babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + +babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + +babel-plugin-transform-object-rest-spread@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" + dependencies: + babel-plugin-syntax-object-rest-spread "^6.8.0" + babel-runtime "^6.26.0" + +babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + +babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + +babel-polyfill@6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-polyfill/-/babel-polyfill-6.26.0.tgz#379937abc67d7895970adc621f284cd966cf2153" + dependencies: + babel-runtime "^6.26.0" + core-js "^2.5.0" + regenerator-runtime "^0.10.5" + +babel-preset-env@^1.3.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + +babel-preset-es2015@6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.24.1" + babel-plugin-transform-es2015-classes "^6.24.1" + babel-plugin-transform-es2015-computed-properties "^6.24.1" + babel-plugin-transform-es2015-destructuring "^6.22.0" + babel-plugin-transform-es2015-duplicate-keys "^6.24.1" + babel-plugin-transform-es2015-for-of "^6.22.0" + babel-plugin-transform-es2015-function-name "^6.24.1" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-plugin-transform-es2015-modules-systemjs "^6.24.1" + babel-plugin-transform-es2015-modules-umd "^6.24.1" + babel-plugin-transform-es2015-object-super "^6.24.1" + babel-plugin-transform-es2015-parameters "^6.24.1" + babel-plugin-transform-es2015-shorthand-properties "^6.24.1" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.24.1" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.22.0" + babel-plugin-transform-es2015-unicode-regex "^6.24.1" + babel-plugin-transform-regenerator "^6.24.1" + +babel-preset-stage-2@6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" + dependencies: + babel-plugin-syntax-dynamic-import "^6.18.0" + babel-plugin-transform-class-properties "^6.24.1" + babel-plugin-transform-decorators "^6.24.1" + babel-preset-stage-3 "^6.24.1" + +babel-preset-stage-3@6.24.1, babel-preset-stage-3@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" + dependencies: + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-generator-functions "^6.24.1" + babel-plugin-transform-async-to-generator "^6.24.1" + babel-plugin-transform-exponentiation-operator "^6.24.1" + babel-plugin-transform-object-rest-spread "^6.22.0" + +babel-register@6.26.0, babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babelify@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/babelify/-/babelify-7.3.0.tgz#aa56aede7067fd7bd549666ee16dc285087e88e5" + dependencies: + babel-core "^6.0.14" + object-assign "^4.0.0" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base-x@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac" + +base64-js@^1.0.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + +bignumber.js@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-4.0.2.tgz#2d1dc37ee5968867ecea90b6da4d16e68608d21d" + +"bignumber.js@git+https://github.com/debris/bignumber.js#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" + +"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" + +"bignumber.js@git+https://github.com/frozeman/bignumber.js-nolookahead.git": + version "2.0.7" + resolved "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934" + +binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + +bindings@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" + +bip39@^2.2.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + safe-buffer "^5.0.1" + unorm "^1.3.3" + +bip66@^1.1.3: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + dependencies: + safe-buffer "^5.0.1" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +bluebird@^3.5.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.10.0, bn.js@^4.11.0, bn.js@^4.11.3, bn.js@^4.4.0, bn.js@^4.8.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + +boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-stdout@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6: + version "1.1.1" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sha3@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.1.tgz#3ff34a3006ef15c0fb3567e541b91a2340123d11" + dependencies: + js-sha3 "^0.3.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + +browserslist@^2.1.2: + version "2.11.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + dependencies: + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" + +bs58@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d" + +bs58@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e" + dependencies: + base-x "^1.1.0" + +bs58check@^1.0.8: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-1.3.4.tgz#c52540073749117714fa042c3047eb8f9151cbf8" + dependencies: + bs58 "^3.1.0" + create-hash "^1.1.0" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-lite@^1.0.30000792: + version "1.0.30000809" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000809.tgz#1e12c1344b8f74d56737ee2614bcedb648943479" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +checkpoint-store@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" + dependencies: + functional-red-black-tree "^1.0.1" + +chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cli-color@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/cli-color/-/cli-color-1.2.0.tgz#3a5ae74fd76b6267af666e69e2afbbd01def34d1" + dependencies: + ansi-regex "^2.1.1" + d "1" + es5-ext "^0.10.12" + es6-iterator "2" + memoizee "^0.4.3" + timers-ext "0.1" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +codecov@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/codecov/-/codecov-2.3.0.tgz#ad25a2c6e0442d13740d9d4ddbb9a3e2714330f4" + dependencies: + argv "0.0.2" + request "2.81.0" + urlgrey "0.4.4" + +coinstring@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/coinstring/-/coinstring-2.3.0.tgz#cdb63363a961502404a25afb82c2e26d5ff627a4" + dependencies: + bs58 "^2.0.1" + create-hash "^1.1.1" + +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + +commander@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" + +commander@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" + +commander@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" + dependencies: + graceful-readlink ">= 1.0.0" + +commander@^2.11.0: + version "2.14.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.14.1.tgz#2235123e37af8ca3c65df45b026dbd357b01b9aa" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +convert-source-map@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + +core-js@^2.4.0, core-js@^2.5.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-js@^3.1.4: + version "3.1.8" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +death@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + +debug@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@^2.2.0, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + +debug@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + +decamelize@^1.0.0, decamelize@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + +deferred-leveldown@~1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" + dependencies: + abstract-leveldown "~2.6.0" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + +diff@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" + +diff@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +electron-to-chromium@^1.3.30: + version "1.3.33" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.33.tgz#bf00703d62a7c65238136578c352d6c5c042a545" + +elliptic@6.3.3: + version "6.3.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.3.3.tgz#5482d9646d54bcb89fd7d994fc9e2e9568876e3f" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + inherits "^2.0.1" + +elliptic@^6.0.0, elliptic@^6.2.3: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +errno@^0.1.3, errno@~0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.5.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.12, es5-ext@^0.10.14, es5-ext@^0.10.30, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14, es5-ext@~0.10.2: + version "0.10.39" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.39.tgz#fca21b67559277ca4ac1a1ed7048b107b6f76d87" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1, es6-weak-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-string-regexp@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escodegen@1.8.x: + version "1.8.1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018" + dependencies: + esprima "^2.7.1" + estraverse "^1.9.1" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.2.0" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esprima@2.7.x, esprima@^2.7.1: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +eth-block-tracker@^2.2.2: + version "2.3.0" + resolved "https://registry.yarnpkg.com/eth-block-tracker/-/eth-block-tracker-2.3.0.tgz#4cb782c8ef8fde2f5dc894921ae1f5c1077c35a4" + dependencies: + async-eventemitter ahultgren/async-eventemitter#fa06e39e56786ba541c180061dbf2c0a5bbf951c + eth-query "^2.1.0" + ethereumjs-tx "^1.3.3" + ethereumjs-util "^5.1.3" + ethjs-util "^0.1.3" + json-rpc-engine "^3.6.0" + pify "^2.3.0" + tape "^4.6.3" + +eth-query@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/eth-query/-/eth-query-2.1.2.tgz#d6741d9000106b51510c72db92d6365456a6da5e" + dependencies: + json-rpc-random-id "^1.0.0" + xtend "^4.0.1" + +eth-sig-util@^1.3.0: + version "1.4.2" + resolved "https://registry.yarnpkg.com/eth-sig-util/-/eth-sig-util-1.4.2.tgz#8d958202c7edbaae839707fba6f09ff327606210" + dependencies: + ethereumjs-abi "git+https://github.com/ethereumjs/ethereumjs-abi.git" + ethereumjs-util "^5.1.1" + +ethereum-common@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.2.0.tgz#13bf966131cce1eeade62a1b434249bb4cb120ca" + +ethereum-common@^0.0.18: + version "0.0.18" + resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" + +ethereumjs-abi@^0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.5.tgz#5a637ef16ab43473fa72a29ad90871405b3f5241" + dependencies: + bn.js "^4.10.0" + ethereumjs-util "^4.3.0" + +"ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": + version "0.6.5" + resolved "git+https://github.com/ethereumjs/ethereumjs-abi.git#71f123b676f2b2d81bc20f343670d90045a3d3d8" + dependencies: + bn.js "^4.10.0" + ethereumjs-util "^4.3.0" + +ethereumjs-account@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz#f8c30231bcb707f4514d8a052c1f9da103624d47" + dependencies: + ethereumjs-util "^4.0.1" + rlp "^2.0.0" + +ethereumjs-block@^1.2.2, ethereumjs-block@~1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz#78b88e6cc56de29a6b4884ee75379b6860333c3f" + dependencies: + async "^2.0.1" + ethereum-common "0.2.0" + ethereumjs-tx "^1.2.2" + ethereumjs-util "^5.0.0" + merkle-patricia-tree "^2.1.2" + +ethereumjs-testrpc-sc@6.0.7: + version "6.0.7" + resolved "https://registry.yarnpkg.com/ethereumjs-testrpc-sc/-/ethereumjs-testrpc-sc-6.0.7.tgz#580a5b4dfb00d27fa6f4f9126aca56e0c722b2bf" + dependencies: + webpack "^3.0.0" + +ethereumjs-testrpc@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-4.1.1.tgz#ea4af03ff24463dead1116404d25083b4bf869a6" + dependencies: + webpack "^3.0.0" + +ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2, ethereumjs-tx@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz#ece051d3efdbe771ad2a518d61632ca2ab75ecbb" + dependencies: + ethereum-common "^0.0.18" + ethereumjs-util "^5.0.0" + +ethereumjs-util@^4.0.1, ethereumjs-util@^4.3.0, ethereumjs-util@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" + dependencies: + bn.js "^4.8.0" + create-hash "^1.1.2" + keccakjs "^0.2.0" + rlp "^2.0.0" + secp256k1 "^3.0.1" + +ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereumjs-util@^5.1.3: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.1.4.tgz#d1a4a9be31eaf8b33aad399894f854fdafda2469" + dependencies: + bn.js "^4.11.0" + create-hash "^1.1.2" + ethjs-util "^0.1.3" + keccak "^1.0.2" + rlp "^2.0.0" + safe-buffer "^5.1.1" + secp256k1 "^3.0.1" + +ethereumjs-vm@^2.0.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.3.3.tgz#05719139e0c4a59e829022964a6048b17d2d84b0" + dependencies: + async "^2.1.2" + async-eventemitter "^0.2.2" + ethereum-common "0.2.0" + ethereumjs-account "^2.0.3" + ethereumjs-block "~1.7.0" + ethereumjs-util "^5.1.3" + fake-merkle-patricia-tree "^1.0.1" + functional-red-black-tree "^1.0.1" + merkle-patricia-tree "^2.1.2" + rustbn.js "~0.1.1" + safe-buffer "^5.1.1" + +ethereumjs-wallet@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz#82763b1697ee7a796be7155da9dfb49b2f98cfdb" + dependencies: + aes-js "^0.2.3" + bs58check "^1.0.8" + ethereumjs-util "^4.4.0" + hdkey "^0.7.0" + scrypt.js "^0.2.0" + utf8 "^2.1.1" + uuid "^2.0.1" + +ethers-contracts@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ethers-contracts/-/ethers-contracts-2.2.1.tgz#e2bf5dd5e157313ba454b50c646c8472fcd0a8b3" + dependencies: + ethers-utils "^2.1.0" + +ethers-providers@2.1.19: + version "2.1.19" + resolved "https://registry.yarnpkg.com/ethers-providers/-/ethers-providers-2.1.19.tgz#d597e298f70cfbf8da207c303af0a5cbed5b4cd2" + dependencies: + ethers-utils "^2.1.0" + inherits "2.0.1" + xmlhttprequest "1.8.0" + +ethers-utils@2.1.11, ethers-utils@^2.1.0: + version "2.1.11" + resolved "https://registry.yarnpkg.com/ethers-utils/-/ethers-utils-2.1.11.tgz#b27535ca3226118be300211c39c896b1e5e21641" + dependencies: + bn.js "^4.4.0" + hash.js "^1.0.0" + js-sha3 "0.5.7" + xmlhttprequest "1.8.0" + +ethers-wallet@2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/ethers-wallet/-/ethers-wallet-2.1.8.tgz#2819a51d439525ddedeec84992b0b83f59da3cef" + dependencies: + aes-js "3.0.0" + elliptic "6.3.3" + ethers-utils "^2.1.0" + scrypt-js "2.0.3" + setimmediate "1.0.4" + uuid "2.0.1" + +ethers@^2.2.4: + version "2.2.6" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-2.2.6.tgz#d1081c3e132930686fa7a3b508ae4d0ef8bd986a" + dependencies: + ethers-contracts "2.2.1" + ethers-providers "2.1.19" + ethers-utils "2.1.11" + ethers-wallet "2.1.8" + +ethjs-util@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.4.tgz#1c8b6879257444ef4d3f3fbbac2ded12cd997d93" + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +event-emitter@^0.3.5, event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + +fake-merkle-patricia-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" + dependencies: + checkpoint-store "^1.1.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + +fast-levenshtein@~2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + +fetch-ponyfill@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz#ae3ce5f732c645eab87e4ae8793414709b239893" + dependencies: + node-fetch "~1.7.1" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +for-each@^0.3.2, for-each@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" + dependencies: + is-function "~1.0.0" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + +fs-extra@^0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob@3.2.11: + version "3.2.11" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" + dependencies: + inherits "2" + minimatch "0.3" + +glob@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^5.0.15: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.5, glob@^7.1.2, glob@~7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +"graceful-readlink@>= 1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" + +growl@1.9.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" + +handlebars@^4.0.1: + version "4.0.11" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1, has@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + +hdkey@^0.7.0: + version "0.7.1" + resolved "https://registry.yarnpkg.com/hdkey/-/hdkey-0.7.1.tgz#caee4be81aa77921e909b8d228dd0f29acaee632" + dependencies: + coinstring "^2.0.0" + secp256k1 "^3.0.1" + +he@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + +home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + +iconv-lite@~0.4.13: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +immediate@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + +interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + +invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fn/-/is-fn-1.0.0.tgz#9543d5de7bcf5b08a22ec8a20bae6e286d510d8c" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@^1.0.1, is-function@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-promise@^2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isomorphic-fetch@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" + dependencies: + node-fetch "^1.0.1" + whatwg-fetch ">=0.10.0" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b" + dependencies: + abbrev "1.0.x" + async "1.x" + escodegen "1.8.x" + esprima "2.7.x" + glob "^5.0.15" + handlebars "^4.0.1" + js-yaml "3.x" + mkdirp "0.5.x" + nopt "3.x" + once "1.x" + resolve "1.1.x" + supports-color "^3.1.0" + which "^1.1.1" + wordwrap "^1.0.0" + +jade@0.26.3: + version "0.26.3" + resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" + dependencies: + commander "0.6.1" + mkdirp "0.3.0" + +js-sha3@0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + +js-sha3@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.3.1.tgz#86122802142f0828502a0d1dee1d95e253bb0243" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@3.x: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-rpc-engine@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/json-rpc-engine/-/json-rpc-engine-3.6.1.tgz#f53084726dc6dedeead0e2c457eeb997135f1e25" + dependencies: + async "^2.0.1" + babel-preset-env "^1.3.2" + babelify "^7.3.0" + json-rpc-error "^2.0.0" + promise-to-callback "^1.0.0" + +json-rpc-error@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/json-rpc-error/-/json-rpc-error-2.0.0.tgz#a7af9c202838b5e905c7250e547f1aff77258a02" + dependencies: + inherits "^2.0.1" + +json-rpc-random-id@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz#ba49d96aded1444dbb8da3d203748acbbcdec8c8" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keccak@^1.0.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-1.4.0.tgz#572f8a6dbee8e7b3aa421550f9e6408ca2186f80" + dependencies: + bindings "^1.2.1" + inherits "^2.0.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +keccakjs@^0.2.0, keccakjs@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.1.tgz#1d633af907ef305bbf9f2fa616d56c44561dfa4d" + dependencies: + browserify-sha3 "^0.0.1" + sha3 "^1.1.0" + +kind-of@^3.0.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +level-codec@~7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.1.tgz#341f22f907ce0f16763f24bddd681e395a0fb8a7" + +level-errors@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.1.2.tgz#4399c2f3d3ab87d0625f7e3676e2d807deff404d" + dependencies: + errno "~0.1.1" + +level-errors@~1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.5.tgz#83dbfb12f0b8a2516bdc9a31c4876038e227b859" + dependencies: + errno "~0.1.1" + +level-iterator-stream@~1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" + dependencies: + inherits "^2.0.1" + level-errors "^1.0.3" + readable-stream "^1.0.33" + xtend "^4.0.0" + +level-ws@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" + dependencies: + readable-stream "~1.0.15" + xtend "~2.1.1" + +levelup@^1.2.1: + version "1.3.9" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" + dependencies: + deferred-leveldown "~1.2.1" + level-codec "~7.0.0" + level-errors "~1.0.3" + level-iterator-stream "~1.3.0" + prr "~1.0.1" + semver "~5.4.1" + xtend "~4.0.0" + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basecreate@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash.assign@^4.0.3, lodash.assign@^4.0.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.create@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7" + dependencies: + lodash._baseassign "^3.0.0" + lodash._basecreate "^3.0.0" + lodash._isiterateecall "^3.0.0" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash@4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@^4.14.0, lodash@^4.17.4: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-queue@0.1: + version "0.1.0" + resolved "https://registry.yarnpkg.com/lru-queue/-/lru-queue-0.1.0.tgz#2738bd9f0d3cf4f84490c5736c48699ac632cda3" + dependencies: + es5-ext "~0.10.2" + +ltgt@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.0.tgz#b65ba5fcb349a29924c8e333f7c6a5562f2e4842" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memdown@^1.0.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" + dependencies: + abstract-leveldown "~2.7.1" + functional-red-black-tree "^1.0.1" + immediate "^3.2.3" + inherits "~2.0.1" + ltgt "~2.2.0" + safe-buffer "~5.1.1" + +memoizee@^0.4.3: + version "0.4.11" + resolved "https://registry.yarnpkg.com/memoizee/-/memoizee-0.4.11.tgz#bde9817663c9e40fdb2a4ea1c367296087ae8c8f" + dependencies: + d "1" + es5-ext "^0.10.30" + es6-weak-map "^2.0.2" + event-emitter "^0.3.5" + is-promise "^2.1" + lru-queue "0.1" + next-tick "1" + timers-ext "^0.1.2" + +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memorystream@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" + +merkle-patricia-tree@^2.1.2: + version "2.3.0" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.3.0.tgz#84c606232ef343f1b96fc972e697708754f08573" + dependencies: + async "^1.4.2" + ethereumjs-util "^5.0.0" + level-ws "0.0.0" + levelup "^1.2.1" + memdown "^1.0.0" + readable-stream "^2.0.0" + rlp "^2.0.0" + semaphore ">=1.0.1" + +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + +mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + dependencies: + dom-walk "^0.1.0" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +minimatch@0.3: + version "0.3.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +mkdirp@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" + +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mocha-lcov-reporter@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz#469bdef4f8afc9a116056f079df6182d0afb0384" + +mocha@^2.4.5: + version "2.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58" + dependencies: + commander "2.3.0" + debug "2.2.0" + diff "1.4.0" + escape-string-regexp "1.0.2" + glob "3.2.11" + growl "1.9.2" + jade "0.26.3" + mkdirp "0.5.1" + supports-color "1.2.0" + to-iso-string "0.0.2" + +mocha@^3.4.2: + version "3.5.3" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d" + dependencies: + browser-stdout "1.3.0" + commander "2.9.0" + debug "2.6.8" + diff "3.2.0" + escape-string-regexp "1.0.5" + glob "7.1.1" + growl "1.9.2" + he "1.1.1" + json3 "3.3.2" + lodash.create "3.1.1" + mkdirp "0.5.1" + supports-color "3.1.2" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.8.0.tgz#ed715f3fe9de02b57a5e6252d90a96675e1f085a" + +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + +node-fetch@^1.0.1, node-fetch@~1.7.1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + +node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + +nopt@3.x: + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-inspect@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.5.0.tgz#9d876c11e40f485c79215670281b767488f9bfe3" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@1.x, once@^1.3.0, once@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +optimist@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optionator@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.4" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + wordwrap "~1.0.0" + +original-require@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/original-require/-/original-require-1.0.1.tgz#0f130471584cd33511c5ec38c8d59213f9ac5e20" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + +pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-headers@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536" + dependencies: + for-each "^0.3.2" + trim "0.0.1" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pbkdf2@^3.0.3, pbkdf2@^3.0.9: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +pegjs@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +private@^0.1.6, private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + +process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + +promise-to-callback@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" + dependencies: + is-fn "^1.0.0" + set-immediate-shim "^1.0.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +rc@^1.1.7: + version "1.2.5" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^1.0.33: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.9, readable-stream@^2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.4.tgz#c946c3f47fa7d8eabc0b6150f4a12f69a4574071" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.0.15: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + +regenerator-runtime@^0.10.5: + version "0.10.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658" + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + +regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +req-cwd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/req-cwd/-/req-cwd-1.0.1.tgz#0d73aeae9266e697a78f7976019677e76acf0fff" + dependencies: + req-from "^1.0.1" + +req-from@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/req-from/-/req-from-1.0.1.tgz#bf81da5147947d32d13b947dc12a58ad4587350e" + dependencies: + resolve-from "^2.0.0" + +request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@^2.67.0: + version "2.83.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +resolve-from@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" + +resolve@1.1.x: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36" + dependencies: + path-parse "^1.0.5" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +rlp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.0.0.tgz#9db384ff4b89a8f61563d92395d8625b18f3afb0" + +rustbn.js@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/rustbn.js/-/rustbn.js-0.1.2.tgz#979fa0f9562216dd667c9d2cd179ae5d13830eff" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +scrypt-js@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" + +scrypt.js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" + dependencies: + scrypt "^6.0.2" + scryptsy "^1.2.1" + +scrypt@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/scrypt/-/scrypt-6.0.3.tgz#04e014a5682b53fa50c2d5cce167d719c06d870d" + dependencies: + nan "^2.0.8" + +scryptsy@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/scryptsy/-/scryptsy-1.2.1.tgz#a3225fa4b2524f802700761e2855bdf3b2d92163" + dependencies: + pbkdf2 "^3.0.3" + +secp256k1@^3.0.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.5.0.tgz#677d3b8a8e04e1a5fa381a1ae437c54207b738d0" + dependencies: + bindings "^1.2.1" + bip66 "^1.1.3" + bn.js "^4.11.3" + create-hash "^1.1.2" + drbg.js "^1.0.1" + elliptic "^6.2.3" + nan "^2.2.1" + safe-buffer "^5.1.0" + +semaphore@>=1.0.1, semaphore@^1.0.3: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" + +"semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +semver@~5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.10" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.10.tgz#b1fde5cd7d11a5626638a07c604ab909cfa31f9b" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha3@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.0.tgz#6989f1b70a498705876a373e2c62ace96aa9399a" + dependencies: + nan "^2.0.5" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shelljs@^0.7.4: + version "0.7.8" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +should-equal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" + dependencies: + should-type "^1.4.0" + +should-format@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" + dependencies: + should-type "^1.3.0" + should-type-adaptors "^1.0.1" + +should-type-adaptors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" + dependencies: + should-type "^1.3.0" + should-util "^1.0.0" + +should-type@^1.3.0, should-type@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" + +should-util@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.0.tgz#c98cda374aa6b190df8ba87c9889c2b4db620063" + +should@13.1.3: + version "13.1.3" + resolved "https://registry.yarnpkg.com/should/-/should-13.1.3.tgz#a089bdf7979392a8272a712c8b63acbaafb7948f" + dependencies: + should-equal "^2.0.0" + should-format "^3.0.3" + should-type "^1.4.0" + should-type-adaptors "^1.0.1" + should-util "^1.0.0" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + +sol-explore@^1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" + +sol-merger@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/sol-merger/-/sol-merger-0.1.2.tgz#1f12500f42d427dc0ec8e4c113392acd8a6f62d9" + dependencies: + bluebird "^3.5.0" + cli-color "^1.2.0" + commander "^2.11.0" + debug "^3.0.1" + fs-extra "^4.0.2" + glob "^7.1.2" + +solc@0.4.17: + version "0.4.17" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.17.tgz#75f93da6bc190becb89f6663076ab943ff95cd2f" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + +solc@0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.18.tgz#83ac6d871dd16a9710e67dbb76dad7f614100702" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + +solc@^0.4.2: + version "0.4.20" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.20.tgz#1f8dd0b830cfe0064092d3a135dcaf2af1896009" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + +solidity-coverage@0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.4.7.tgz#840552d8990152d2e18b3eca5e40364fe8debfe2" + dependencies: + death "^1.1.0" + ethereumjs-testrpc-sc "6.0.7" + istanbul "^0.4.5" + keccakjs "^0.2.1" + req-cwd "^1.0.1" + shelljs "^0.7.4" + sol-explore "^1.6.2" + solidity-parser-sc "0.4.4" + web3 "^0.18.4" + +solidity-parser-sc@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/solidity-parser-sc/-/solidity-parser-sc-0.4.4.tgz#a7354476ce7b774caa43c9089c00b68a2efbec61" + dependencies: + mocha "^2.4.5" + pegjs "^0.10.0" + yargs "^4.6.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d" + dependencies: + amdefine ">=0.0.4" + +source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.7.2: + version "2.8.0" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.0.tgz#fd86546dac9b1c91aff8fc5d287b98fafb41bc10" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.3" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string_decoder@^1.0.0, string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + dependencies: + is-hex-prefixed "1.0.0" + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +supports-color@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" + +supports-color@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" + dependencies: + has-flag "^1.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tape@^4.4.0, tape@^4.6.3: + version "4.9.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.9.0.tgz#855c08360395133709d34d3fbf9ef341eb73ca6a" + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.2" + function-bind "~1.1.1" + glob "~7.1.2" + has "~1.0.1" + inherits "~2.0.3" + minimist "~1.2.0" + object-inspect "~1.5.0" + resolve "~1.5.0" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +testrpc@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/testrpc/-/testrpc-0.0.1.tgz#83e2195b1f5873aec7be1af8cbe6dcf39edb7aed" + +through@~2.3.4, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +timers-browserify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + dependencies: + setimmediate "^1.0.4" + +timers-ext@0.1, timers-ext@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/timers-ext/-/timers-ext-0.1.2.tgz#61cc47a76c1abd3195f14527f978d58ae94c5204" + dependencies: + es5-ext "~0.10.14" + next-tick "1" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +to-iso-string@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" + +tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" + dependencies: + punycode "^1.4.1" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + +truffle-hdwallet-provider-privkey@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/truffle-hdwallet-provider-privkey/-/truffle-hdwallet-provider-privkey-0.1.0.tgz#9417047a74ad37d923df926154b6486ffb57f6c9" + dependencies: + ethereumjs-tx "^1.3.3" + ethereumjs-wallet "^0.6.0" + web3 "^0.20.5" + web3-provider-engine "^13.6.4" + +truffle-hdwallet-provider@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/truffle-hdwallet-provider/-/truffle-hdwallet-provider-0.0.3.tgz#0e1de02104b73d3875e1cf7093305b4ea8a2d843" + dependencies: + bip39 "^2.2.0" + ethereumjs-wallet "^0.6.0" + web3 "^0.18.2" + web3-provider-engine "^8.4.0" + +truffle-wallet-provider@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/truffle-wallet-provider/-/truffle-wallet-provider-0.0.5.tgz#db59ce6fa1c558766011137509a94dfca8d1408e" + dependencies: + ethereumjs-wallet "^0.6.0" + web3 "^0.18.2" + web3-provider-engine "^8.4.0" + +truffle@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/truffle/-/truffle-4.0.1.tgz#d8661a4ad7a6ca094b7517d29b199c60e6dde665" + dependencies: + mocha "^3.4.2" + original-require "^1.0.1" + solc "0.4.18" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + dependencies: + prelude-ls "~1.1.2" + +uglify-js@^2.6, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unorm@^1.3.3: + version "1.4.1" + resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.4.1.tgz#364200d5f13646ca8bcd44490271335614792300" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urlgrey@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/urlgrey/-/urlgrey-0.4.4.tgz#892fe95960805e85519f1cd4389f2cb4cbb7652f" + +utf8@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + +uuid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +web3-provider-engine@^13.6.4: + version "13.6.5" + resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-13.6.5.tgz#ef1c1d09f8bca329030c256e93ff6663ffd6fed4" + dependencies: + async "^2.5.0" + clone "^2.0.0" + eth-block-tracker "^2.2.2" + eth-sig-util "^1.3.0" + ethereumjs-block "^1.2.2" + ethereumjs-tx "^1.2.0" + ethereumjs-util "^5.1.1" + ethereumjs-vm "^2.0.2" + fetch-ponyfill "^4.0.0" + json-rpc-error "^2.0.0" + json-stable-stringify "^1.0.1" + promise-to-callback "^1.0.0" + readable-stream "^2.2.9" + request "^2.67.0" + semaphore "^1.0.3" + solc "^0.4.2" + tape "^4.4.0" + xhr "^2.2.0" + xtend "^4.0.1" + +web3-provider-engine@^8.4.0: + version "8.6.1" + resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz#4d86e19e30caaf97df351511ec0f60136e5b30eb" + dependencies: + async "^2.1.2" + clone "^2.0.0" + ethereumjs-block "^1.2.2" + ethereumjs-tx "^1.2.0" + ethereumjs-util "^5.0.1" + ethereumjs-vm "^2.0.2" + isomorphic-fetch "^2.2.0" + request "^2.67.0" + semaphore "^1.0.3" + solc "^0.4.2" + tape "^4.4.0" + web3 "^0.16.0" + xhr "^2.2.0" + xtend "^4.0.1" + +web3@^0.16.0: + version "0.16.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.16.0.tgz#a4554175cd462943035b1f1d39432f741c6b6019" + dependencies: + bignumber.js "git+https://github.com/debris/bignumber.js#master" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xmlhttprequest "*" + +web3@^0.18.2, web3@^0.18.4: + version "0.18.4" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d" + dependencies: + bignumber.js "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xhr2 "*" + xmlhttprequest "*" + +web3@^0.20.5: + version "0.20.5" + resolved "https://registry.yarnpkg.com/web3/-/web3-0.20.5.tgz#c5048d35f7bf4e2c4c280ce51fbbbc951290b165" + dependencies: + bignumber.js "git+https://github.com/frozeman/bignumber.js-nolookahead.git" + crypto-js "^3.1.4" + utf8 "^2.1.1" + xhr2 "*" + xmlhttprequest "*" + +webpack-sources@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack@^3.0.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +whatwg-fetch@>=0.10.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.1.1, which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +window-size@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@^1.0.0, wordwrap@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +xhr2@*: + version "0.1.4" + resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" + +xhr@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.4.1.tgz#ba982cced205ae5eec387169ac9dc77ca4853d38" + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xmlhttprequest@*, xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + +xtend@4.0.1, xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" + dependencies: + camelcase "^3.0.0" + lodash.assign "^4.0.6" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@8.0.2, yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@^4.6.0, yargs@^4.7.1: + version "4.8.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" + dependencies: + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + lodash.assign "^4.0.3" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.1" + which-module "^1.0.0" + window-size "^0.2.0" + y18n "^3.2.1" + yargs-parser "^2.4.1" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0"