60a06040526040518060400160405280600981526020017f53656d704149322e300000000000000000000000000000000000000000000000815250600290805190602001906200005192919062000b45565b506040518060400160405280600681526020017f534149322e300000000000000000000000000000000000000000000000000000815250600390805190602001906200009f92919062000b45565b506009600460006101000a81548160ff021916908360ff160217905550733b372c546fc709d91a1d6b567619ce87410ac755600460016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073de8aa3d025aacab572ab6f19cc401f619baef5fd600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff168152506001600c556000600d556000600e556001600f55600260105560016011556001601255600260135560016014556001601555600460165560046017556958f03ee118a13e8000006018556901c75d6ae6e4814000006019556901c75d6ae6e481400000601a556516bcc41e9000601b556001601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055503480156200026957600080fd5b5060006200027c62000ab160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200037a57600080fd5b505afa1580156200038f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b5919062000c5f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041857600080fd5b505afa1580156200042d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000453919062000c5f565b6040518363ffffffff1660e01b81526004016200047292919062000ca2565b602060405180830381600087803b1580156200048d57600080fd5b505af1158015620004a2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c8919062000c5f565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601854600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200060462000ab960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006e6600e54620006d2600d54600e5462000ae260201b62001fe41790919060201c565b62000ae260201b62001fe41790919060201c565b6015819055506200072560115462000711601054600f5462000ae260201b62001fe41790919060201c565b62000ae260201b62001fe41790919060201c565b601681905550620007646014546200075060135460125462000ae260201b62001fe41790919060201c565b62000ae260201b62001fe41790919060201c565b6017819055506001600960006200078062000ab960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000620008b962000ab960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060185460066000620009f362000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a4162000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60185460405162000aa2919062000cea565b60405180910390a35062000e7b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080828462000af3919062000d36565b90508381101562000b3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b329062000df4565b60405180910390fd5b8091505092915050565b82805462000b539062000e45565b90600052602060002090601f01602090048101928262000b77576000855562000bc3565b82601f1062000b9257805160ff191683800117855562000bc3565b8280016001018555821562000bc3579182015b8281111562000bc257825182559160200191906001019062000ba5565b5b50905062000bd2919062000bd6565b5090565b5b8082111562000bf157600081600090555060010162000bd7565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c278262000bfa565b9050919050565b62000c398162000c1a565b811462000c4557600080fd5b50565b60008151905062000c598162000c2e565b92915050565b60006020828403121562000c785762000c7762000bf5565b5b600062000c888482850162000c48565b91505092915050565b62000c9c8162000c1a565b82525050565b600060408201905062000cb9600083018562000c91565b62000cc8602083018462000c91565b9392505050565b6000819050919050565b62000ce48162000ccf565b82525050565b600060208201905062000d01600083018462000cd9565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d438262000ccf565b915062000d508362000ccf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d885762000d8762000d07565b5b828201905092915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000ddc601b8362000d93565b915062000de98262000da4565b602082019050919050565b6000602082019050818103600083015262000e0f8162000dcd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e5e57607f821691505b6020821081141562000e755762000e7462000e16565b5b50919050565b6080516142ab62000e9e60003960008181610cbd0152610ce901526142ab6000f3fe60806040526004361061024a5760003560e01c8063807c2d9c11610139578063c49b9a80116100b6578063e207a92b1161007a578063e207a92b146108f1578063ef422a181461091a578063f0cd1dac14610943578063f2fde38b1461096e578063f84ba65d14610997578063f872858a146109c057610251565b8063c49b9a80146107f8578063c816841b14610821578063c867d60b1461084c578063da00097d14610889578063dd62ed3e146108b457610251565b806395d89b41116100fd57806395d89b4114610701578063a457c2d71461072c578063a5d69d1f14610769578063a9059cbb14610792578063c2d4640e146107cf57610251565b8063807c2d9c1461062c57806382eefb43146106575780638b42507f146106825780638da5cb5b146106bf578063914eb66a146106ea57610251565b806339509351116101c75780635342acb41161018b5780635342acb41461051f5780635881f3ef1461055c5780636416edce1461059957806370a08231146105c45780637d1db4a51461060157610251565b806339509351146104265780633b97084a146104635780633eaaf86b1461048c5780633ecad271146104b75780634a74bb02146104f457610251565b806323b872dd1161020e57806323b872dd1461033d5780632598cdb21461037a57806327c8f835146103a55780632b112e49146103d0578063313ce567146103fb57610251565b806306fdde0314610256578063095ea7b3146102815780631694505e146102be57806318160ddd146102e95780632198cf6c1461031457610251565b3661025157005b600080fd5b34801561026257600080fd5b5061026b6109eb565b604051610278919061341e565b60405180910390f35b34801561028d57600080fd5b506102a860048036038101906102a391906134d9565b610a7d565b6040516102b59190613534565b60405180910390f35b3480156102ca57600080fd5b506102d3610a9b565b6040516102e091906135ae565b60405180910390f35b3480156102f557600080fd5b506102fe610ac1565b60405161030b91906135d8565b60405180910390f35b34801561032057600080fd5b5061033b6004803603810190610336919061361f565b610acb565b005b34801561034957600080fd5b50610364600480360381019061035f919061365f565b610bbb565b6040516103719190613534565b60405180910390f35b34801561038657600080fd5b5061038f610c95565b60405161039c91906136d3565b60405180910390f35b3480156103b157600080fd5b506103ba610cbb565b6040516103c791906136fd565b60405180910390f35b3480156103dc57600080fd5b506103e5610cdf565b6040516103f291906135d8565b60405180910390f35b34801561040757600080fd5b50610410610d23565b60405161041d9190613734565b60405180910390f35b34801561043257600080fd5b5061044d600480360381019061044891906134d9565b610d3a565b60405161045a9190613534565b60405180910390f35b34801561046f57600080fd5b5061048a6004803603810190610485919061374f565b610ded565b005b34801561049857600080fd5b506104a1610e8c565b6040516104ae91906135d8565b60405180910390f35b3480156104c357600080fd5b506104de60048036038101906104d9919061377c565b610e92565b6040516104eb9190613534565b60405180910390f35b34801561050057600080fd5b50610509610eb2565b6040516105169190613534565b60405180910390f35b34801561052b57600080fd5b506105466004803603810190610541919061377c565b610ec5565b6040516105539190613534565b60405180910390f35b34801561056857600080fd5b50610583600480360381019061057e919061377c565b610ee5565b60405161059091906136fd565b60405180910390f35b3480156105a557600080fd5b506105ae611443565b6040516105bb91906136d3565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e6919061377c565b611469565b6040516105f891906135d8565b60405180910390f35b34801561060d57600080fd5b506106166114b2565b60405161062391906135d8565b60405180910390f35b34801561063857600080fd5b506106416114b8565b60405161064e91906135d8565b60405180910390f35b34801561066357600080fd5b5061066c6114be565b60405161067991906135d8565b60405180910390f35b34801561068e57600080fd5b506106a960048036038101906106a4919061377c565b6114c4565b6040516106b69190613534565b60405180910390f35b3480156106cb57600080fd5b506106d46114e4565b6040516106e191906136fd565b60405180910390f35b3480156106f657600080fd5b506106ff61150d565b005b34801561070d57600080fd5b50610716611660565b604051610723919061341e565b60405180910390f35b34801561073857600080fd5b50610753600480360381019061074e91906134d9565b6116f2565b6040516107609190613534565b60405180910390f35b34801561077557600080fd5b50610790600480360381019061078b91906137a9565b6117bf565b005b34801561079e57600080fd5b506107b960048036038101906107b491906134d9565b611871565b6040516107c69190613534565b60405180910390f35b3480156107db57600080fd5b506107f660048036038101906107f191906137d6565b611890565b005b34801561080457600080fd5b5061081f600480360381019061081a91906137a9565b611970565b005b34801561082d57600080fd5b50610836611a59565b60405161084391906136fd565b60405180910390f35b34801561085857600080fd5b50610873600480360381019061086e919061377c565b611a7f565b6040516108809190613534565b60405180910390f35b34801561089557600080fd5b5061089e611a9f565b6040516108ab9190613534565b60405180910390f35b3480156108c057600080fd5b506108db60048036038101906108d69190613829565b611ab2565b6040516108e891906135d8565b60405180910390f35b3480156108fd57600080fd5b506109186004803603810190610913919061377c565b611b39565b005b34801561092657600080fd5b50610941600480360381019061093c919061361f565b611c29565b005b34801561094f57600080fd5b50610958611d19565b60405161096591906135d8565b60405180910390f35b34801561097a57600080fd5b506109956004803603810190610990919061377c565b611d1f565b005b3480156109a357600080fd5b506109be60048036038101906109b9919061361f565b611ee1565b005b3480156109cc57600080fd5b506109d5611fd1565b6040516109e29190613534565b60405180910390f35b6060600280546109fa90613898565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690613898565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050905090565b6000610a91610a8a612042565b848461204a565b6001905092915050565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601854905090565b610ad3612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5790613916565b60405180910390fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000610bc8848484612215565b50610c8a84610bd5612042565b610c858560405180606001604052806028815260200161422960289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c3b612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b61204a565b600190509392505050565b600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610d1e610d0d7f0000000000000000000000000000000000000000000000000000000000000000611469565b60185461285e90919063ffffffff16565b905090565b6000600460009054906101000a900460ff16905090565b6000610de3610d47612042565b84610dde8560076000610d58612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b61204a565b6001905092915050565b610df5612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613916565b60405180910390fd5b80601b8190555050565b60185481565b600b6020528060005260406000206000915054906101000a900460ff1681565b601d60159054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b6000610eef612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7390613916565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc757600080fd5b505afa158015610fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fff919061394b565b73ffffffffffffffffffffffffffffffffffffffff1663e6a43905308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561106157600080fd5b505afa158015611075573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611099919061394b565b6040518363ffffffff1660e01b81526004016110b6929190613978565b60206040518083038186803b1580156110ce57600080fd5b505afa1580156110e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611106919061394b565b9150600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112c7578073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561118357600080fd5b505afa158015611197573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bb919061394b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561121d57600080fd5b505afa158015611231573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611255919061394b565b6040518363ffffffff1660e01b8152600401611272929190613978565b602060405180830381600087803b15801561128c57600080fd5b505af11580156112a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c4919061394b565b91505b81601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b6000601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60195481565b601a5481565b60165481565b600a6020528060005260406000206000915054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611515612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159990613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60606003805461166f90613898565b80601f016020809104026020016040519081016040528092919081815260200182805461169b90613898565b80156116e85780601f106116bd576101008083540402835291602001916116e8565b820191906000526020600020905b8154815290600101906020018083116116cb57829003601f168201915b5050505050905090565b60006117b56116ff612042565b846117b0856040518060600160405280602581526020016142516025913960076000611729612042565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b61204a565b6001905092915050565b6117c7612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184b90613916565b60405180910390fd5b80601d60166101000a81548160ff02191690831515021790555050565b600061188561187e612042565b8484612215565b506001905092915050565b611898612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c90613916565b60405180910390fd5b826012819055508160138190555080601481905550611965601454611957601354601254611fe490919063ffffffff16565b611fe490919063ffffffff16565b601781905550505050565b611978612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119fc90613916565b60405180910390fd5b80601d60156101000a81548160ff0219169083151502179055507f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc15981604051611a4e9190613534565b60405180910390a150565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b601d60169054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b41612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc590613916565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611c31612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb590613916565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60155481565b611d27612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dab90613916565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1b90613a13565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611ee9612042565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613916565b60405180910390fd5b80600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601d60179054906101000a900460ff1681565b6000808284611ff39190613a62565b905083811015612038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202f90613b04565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b190613b96565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561212a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212190613c28565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161220891906135d8565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227d90613cba565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ed90613d4c565b60405180910390fd5b601d60149054906101000a900460ff161561231d576123168484846128a8565b90506127f3565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123c15750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561240c5760195482111561240b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240290613dde565b60405180910390fd5b5b600061241730611469565b90506000601b54821015905080801561243d5750601d60149054906101000a900460ff16155b80156124935750600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156124ab5750601d60159054906101000a900460ff165b156124d557601d60169054906101000a900460ff16156124cb57601b5491505b6124d482612a7b565b5b61255e846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806126445750600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61265857612653878787612c6c565b61265a565b845b9050601d60179054906101000a900460ff1680156126c25750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156126f157601a546126e5826126d789611469565b611fe490919063ffffffff16565b11156126f057600080fd5b5b61274381600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127e391906135d8565b60405180910390a3600193505050505b9392505050565b6000838311158290612842576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612839919061341e565b60405180910390fd5b50600083856128519190613dfe565b9050809150509392505050565b60006128a083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506127fa565b905092915050565b6000612933826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127fa9092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129c882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612a6891906135d8565b60405180910390a3600190509392505050565b6001601d60146101000a81548160ff0219169083151502179055506000612ad46002612ac6601754612ab860125487612e9390919063ffffffff16565b612f0e90919063ffffffff16565b612f0e90919063ffffffff16565b90506000612aeb828461285e90919063ffffffff16565b9050612af681612f58565b60004790506000612b27612b166002601254612f0e90919063ffffffff16565b60175461285e90919063ffffffff16565b90506000612b656002612b5784612b4960125488612e9390919063ffffffff16565b612f0e90919063ffffffff16565b612f0e90919063ffffffff16565b90506000612b9083612b8260145487612e9390919063ffffffff16565b612f0e90919063ffffffff16565b90506000612bb982612bab858861285e90919063ffffffff16565b61285e90919063ffffffff16565b90506000811115612bf157612bf0600460019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826131e3565b5b6000821115612c2757612c26600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836131e3565b5b600083118015612c375750600087115b15612c4757612c46878461322e565b5b505050505050506000601d60146101000a81548160ff02191690831515021790555050565b60008060009050600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612cf457612ced6064612cdf60155486612e9390919063ffffffff16565b612f0e90919063ffffffff16565b9050612d72565b600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612d7157612d6e6064612d6060165486612e9390919063ffffffff16565b612f0e90919063ffffffff16565b90505b5b6000811115612e7657612dcd81600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe490919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612e6d91906135d8565b60405180910390a35b612e89818461285e90919063ffffffff16565b9150509392505050565b600080831415612ea65760009050612f08565b60008284612eb49190613e32565b9050828482612ec39190613ebb565b14612f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612efa90613f5e565b60405180910390fd5b809150505b92915050565b6000612f5083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613322565b905092915050565b6000600267ffffffffffffffff811115612f7557612f74613f7e565b5b604051908082528060200260200182016040528015612fa35781602001602082028036833780820191505090505b5090503081600081518110612fbb57612fba613fad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561305d57600080fd5b505afa158015613071573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613095919061394b565b816001815181106130a9576130a8613fad565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061311030601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204a565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016131749594939291906140d5565b600060405180830381600087803b15801561318e57600080fd5b505af11580156131a2573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516131d792919061412f565b60405180910390a15050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015613229573d6000803e3d6000fd5b505050565b61325b30601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461204a565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000806132a76114e4565b426040518863ffffffff1660e01b81526004016132c99695949392919061415f565b6060604051808303818588803b1580156132e257600080fd5b505af11580156132f6573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061331b91906141d5565b5050505050565b60008083118290613369576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613360919061341e565b60405180910390fd5b50600083856133789190613ebb565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133bf5780820151818401526020810190506133a4565b838111156133ce576000848401525b50505050565b6000601f19601f8301169050919050565b60006133f082613385565b6133fa8185613390565b935061340a8185602086016133a1565b613413816133d4565b840191505092915050565b6000602082019050818103600083015261343881846133e5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061347082613445565b9050919050565b61348081613465565b811461348b57600080fd5b50565b60008135905061349d81613477565b92915050565b6000819050919050565b6134b6816134a3565b81146134c157600080fd5b50565b6000813590506134d3816134ad565b92915050565b600080604083850312156134f0576134ef613440565b5b60006134fe8582860161348e565b925050602061350f858286016134c4565b9150509250929050565b60008115159050919050565b61352e81613519565b82525050565b60006020820190506135496000830184613525565b92915050565b6000819050919050565b600061357461356f61356a84613445565b61354f565b613445565b9050919050565b600061358682613559565b9050919050565b60006135988261357b565b9050919050565b6135a88161358d565b82525050565b60006020820190506135c3600083018461359f565b92915050565b6135d2816134a3565b82525050565b60006020820190506135ed60008301846135c9565b92915050565b6135fc81613519565b811461360757600080fd5b50565b600081359050613619816135f3565b92915050565b6000806040838503121561363657613635613440565b5b60006136448582860161348e565b92505060206136558582860161360a565b9150509250929050565b60008060006060848603121561367857613677613440565b5b60006136868682870161348e565b93505060206136978682870161348e565b92505060406136a8868287016134c4565b9150509250925092565b60006136bd82613445565b9050919050565b6136cd816136b2565b82525050565b60006020820190506136e860008301846136c4565b92915050565b6136f781613465565b82525050565b600060208201905061371260008301846136ee565b92915050565b600060ff82169050919050565b61372e81613718565b82525050565b60006020820190506137496000830184613725565b92915050565b60006020828403121561376557613764613440565b5b6000613773848285016134c4565b91505092915050565b60006020828403121561379257613791613440565b5b60006137a08482850161348e565b91505092915050565b6000602082840312156137bf576137be613440565b5b60006137cd8482850161360a565b91505092915050565b6000806000606084860312156137ef576137ee613440565b5b60006137fd868287016134c4565b935050602061380e868287016134c4565b925050604061381f868287016134c4565b9150509250925092565b600080604083850312156138405761383f613440565b5b600061384e8582860161348e565b925050602061385f8582860161348e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806138b057607f821691505b602082108114156138c4576138c3613869565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613900602083613390565b915061390b826138ca565b602082019050919050565b6000602082019050818103600083015261392f816138f3565b9050919050565b60008151905061394581613477565b92915050565b60006020828403121561396157613960613440565b5b600061396f84828501613936565b91505092915050565b600060408201905061398d60008301856136ee565b61399a60208301846136ee565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139fd602683613390565b9150613a08826139a1565b604082019050919050565b60006020820190508181036000830152613a2c816139f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a6d826134a3565b9150613a78836134a3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613aad57613aac613a33565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613aee601b83613390565b9150613af982613ab8565b602082019050919050565b60006020820190508181036000830152613b1d81613ae1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b80602483613390565b9150613b8b82613b24565b604082019050919050565b60006020820190508181036000830152613baf81613b73565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c12602283613390565b9150613c1d82613bb6565b604082019050919050565b60006020820190508181036000830152613c4181613c05565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ca4602583613390565b9150613caf82613c48565b604082019050919050565b60006020820190508181036000830152613cd381613c97565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613d36602383613390565b9150613d4182613cda565b604082019050919050565b60006020820190508181036000830152613d6581613d29565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613dc8602883613390565b9150613dd382613d6c565b604082019050919050565b60006020820190508181036000830152613df781613dbb565b9050919050565b6000613e09826134a3565b9150613e14836134a3565b925082821015613e2757613e26613a33565b5b828203905092915050565b6000613e3d826134a3565b9150613e48836134a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e8157613e80613a33565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613ec6826134a3565b9150613ed1836134a3565b925082613ee157613ee0613e8c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f48602183613390565b9150613f5382613eec565b604082019050919050565b60006020820190508181036000830152613f7781613f3b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000614001613ffc613ff784613fdc565b61354f565b6134a3565b9050919050565b61401181613fe6565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61404c81613465565b82525050565b600061405e8383614043565b60208301905092915050565b6000602082019050919050565b600061408282614017565b61408c8185614022565b935061409783614033565b8060005b838110156140c85781516140af8882614052565b97506140ba8361406a565b92505060018101905061409b565b5085935050505092915050565b600060a0820190506140ea60008301886135c9565b6140f76020830187614008565b81810360408301526141098186614077565b905061411860608301856136ee565b61412560808301846135c9565b9695505050505050565b600060408201905061414460008301856135c9565b81810360208301526141568184614077565b90509392505050565b600060c08201905061417460008301896136ee565b61418160208301886135c9565b61418e6040830187614008565b61419b6060830186614008565b6141a860808301856136ee565b6141b560a08301846135c9565b979650505050505050565b6000815190506141cf816134ad565b92915050565b6000806000606084860312156141ee576141ed613440565b5b60006141fc868287016141c0565b935050602061420d868287016141c0565b925050604061421e868287016141c0565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212200338eb33efe51c4f229000c80d89f9fea9193315cbc20f766a15bd1b2d42b99864736f6c63430008090033