60806040526611c37937e08000600955600a80556001600b556101f4600c55610fa0600d556001600e60006101000a81548160ff0219169083151502179055503480156200004c57600080fd5b5060405162003dd438038062003dd483398181016040528101906200007291906200048c565b6040518060400160405280600a81526020017f57696e6b526162626974000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f57520000000000000000000000000000000000000000000000000000000000008152508160029080519060200190620000f69291906200023f565b5080600390805190602001906200010f9291906200023f565b50620001206200016860201b60201c565b6000819055505050620001486200013c6200017160201b60201c565b6200017960201b60201c565b80600f9080519060200190620001609291906200023f565b505062000542565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200024d906200050c565b90600052602060002090601f016020900481019282620002715760008555620002bd565b82601f106200028c57805160ff1916838001178555620002bd565b82800160010185558215620002bd579182015b82811115620002bc5782518255916020019190600101906200029f565b5b509050620002cc9190620002d0565b5090565b5b80821115620002eb576000816000905550600101620002d1565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b62000358826200030d565b810181811067ffffffffffffffff821117156200037a57620003796200031e565b5b80604052505050565b60006200038f620002ef565b90506200039d82826200034d565b919050565b600067ffffffffffffffff821115620003c057620003bf6200031e565b5b620003cb826200030d565b9050602081019050919050565b60005b83811015620003f8578082015181840152602081019050620003db565b8381111562000408576000848401525b50505050565b6000620004256200041f84620003a2565b62000383565b90508281526020810184848401111562000444576200044362000308565b5b62000451848285620003d8565b509392505050565b600082601f83011262000471576200047062000303565b5b8151620004838482602086016200040e565b91505092915050565b600060208284031215620004a557620004a4620002f9565b5b600082015167ffffffffffffffff811115620004c657620004c5620002fe565b5b620004d48482850162000459565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200052557607f821691505b602082108114156200053c576200053b620004dd565b5b50919050565b61388280620005526000396000f3fe6080604052600436106101d85760003560e01c806370a0823111610102578063a22cb46511610095578063c002d23d11610064578063c002d23d14610651578063c87b56dd1461067c578063e985e9c5146106b9578063f2fde38b146106f6576101d8565b8063a22cb465146105a9578063a6eb27e2146105d2578063a9722cf3146105fd578063b88d4fde14610628576101d8565b806391b7f5ed116100d157806391b7f5ed1461051057806392910eec1461053957806395d89b4114610562578063a0712d681461058d576101d8565b806370a0823114610466578063715018a6146104a35780638da5cb5b146104ba5780638ecad721146104e5576101d8565b80632fbba1151161017a57806355f804b31161014957806355f804b3146103be5780636352211e146103e75780636c0360eb146104245780636e8f6aba1461044f576101d8565b80632fbba1151461032a57806332cb6b0c146103535780633ccfd60b1461037e57806342842e0e14610395576101d8565b8063081812fc116101b6578063081812fc14610270578063095ea7b3146102ad57806318160ddd146102d657806323b872dd14610301576101d8565b806301ffc9a7146101dd57806302ddb65b1461021a57806306fdde0314610245575b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff919061296e565b61071f565b60405161021191906129b6565b60405180910390f35b34801561022657600080fd5b5061022f610801565b60405161023c91906129ea565b60405180910390f35b34801561025157600080fd5b5061025a610807565b6040516102679190612a9e565b60405180910390f35b34801561027c57600080fd5b5061029760048036038101906102929190612aec565b610899565b6040516102a49190612b5a565b60405180910390f35b3480156102b957600080fd5b506102d460048036038101906102cf9190612ba1565b610915565b005b3480156102e257600080fd5b506102eb610a1a565b6040516102f891906129ea565b60405180910390f35b34801561030d57600080fd5b5061032860048036038101906103239190612be1565b610a31565b005b34801561033657600080fd5b50610351600480360381019061034c9190612aec565b610a41565b005b34801561035f57600080fd5b50610368610ad1565b60405161037591906129ea565b60405180910390f35b34801561038a57600080fd5b50610393610ad7565b005b3480156103a157600080fd5b506103bc60048036038101906103b79190612be1565b610c02565b005b3480156103ca57600080fd5b506103e560048036038101906103e09190612d69565b610c22565b005b3480156103f357600080fd5b5061040e60048036038101906104099190612aec565b610cb8565b60405161041b9190612b5a565b60405180910390f35b34801561043057600080fd5b50610439610cce565b6040516104469190612a9e565b60405180910390f35b34801561045b57600080fd5b50610464610d5c565b005b34801561047257600080fd5b5061048d60048036038101906104889190612db2565b610e04565b60405161049a91906129ea565b60405180910390f35b3480156104af57600080fd5b506104b8610ed4565b005b3480156104c657600080fd5b506104cf610f5c565b6040516104dc9190612b5a565b60405180910390f35b3480156104f157600080fd5b506104fa610f86565b60405161050791906129ea565b60405180910390f35b34801561051c57600080fd5b5061053760048036038101906105329190612aec565b610f8c565b005b34801561054557600080fd5b50610560600480360381019061055b9190612aec565b611012565b005b34801561056e57600080fd5b50610577611098565b6040516105849190612a9e565b60405180910390f35b6105a760048036038101906105a29190612aec565b61112a565b005b3480156105b557600080fd5b506105d060048036038101906105cb9190612e0b565b6113b3565b005b3480156105de57600080fd5b506105e761152b565b6040516105f491906129ea565b60405180910390f35b34801561060957600080fd5b50610612611531565b60405161061f91906129b6565b60405180910390f35b34801561063457600080fd5b5061064f600480360381019061064a9190612eec565b611544565b005b34801561065d57600080fd5b506106666115bc565b60405161067391906129ea565b60405180910390f35b34801561068857600080fd5b506106a3600480360381019061069e9190612aec565b6115c2565b6040516106b09190612a9e565b60405180910390f35b3480156106c557600080fd5b506106e060048036038101906106db9190612f6f565b61163e565b6040516106ed91906129b6565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190612db2565b6116d2565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107ea57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107fa57506107f9826117ca565b5b9050919050565b600c5481565b60606002805461081690612fde565b80601f016020809104026020016040519081016040528092919081815260200182805461084290612fde565b801561088f5780601f106108645761010080835404028352916020019161088f565b820191906000526020600020905b81548152906001019060200180831161087257829003601f168201915b5050505050905090565b60006108a482611834565b6108da576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061092082610cb8565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610988576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109a7611882565b73ffffffffffffffffffffffffffffffffffffffff1614610a0a576109d3816109ce611882565b61163e565b610a09576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b610a1583838361188a565b505050565b6000610a2461193c565b6001546000540303905090565b610a3c838383611945565b505050565b610a49611882565b73ffffffffffffffffffffffffffffffffffffffff16610a67610f5c565b73ffffffffffffffffffffffffffffffffffffffff1614610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab49061305c565b60405180910390fd5b610ace610ac8611882565b82611dfb565b50565b600d5481565b610adf611882565b73ffffffffffffffffffffffffffffffffffffffff16610afd610f5c565b73ffffffffffffffffffffffffffffffffffffffff1614610b53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4a9061305c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051610b79906130ad565b60006040518083038185875af1925050503d8060008114610bb6576040519150601f19603f3d011682016040523d82523d6000602084013e610bbb565b606091505b5050905080610bff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf69061310e565b60405180910390fd5b50565b610c1d83838360405180602001604052806000815250611544565b505050565b610c2a611882565b73ffffffffffffffffffffffffffffffffffffffff16610c48610f5c565b73ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c959061305c565b60405180910390fd5b80600f9080519060200190610cb492919061281c565b5050565b6000610cc382611e19565b600001519050919050565b600f8054610cdb90612fde565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0790612fde565b8015610d545780601f10610d2957610100808354040283529160200191610d54565b820191906000526020600020905b815481529060010190602001808311610d3757829003601f168201915b505050505081565b610d64611882565b73ffffffffffffffffffffffffffffffffffffffff16610d82610f5c565b73ffffffffffffffffffffffffffffffffffffffff1614610dd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcf9061305c565b60405180910390fd5b600e60009054906101000a900460ff1615600e60006101000a81548160ff021916908315150217905550565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e6c576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900467ffffffffffffffff1667ffffffffffffffff169050919050565b610edc611882565b73ffffffffffffffffffffffffffffffffffffffff16610efa610f5c565b73ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f479061305c565b60405180910390fd5b610f5a60006120a4565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b610f94611882565b73ffffffffffffffffffffffffffffffffffffffff16610fb2610f5c565b73ffffffffffffffffffffffffffffffffffffffff1614611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff9061305c565b60405180910390fd5b8060098190555050565b61101a611882565b73ffffffffffffffffffffffffffffffffffffffff16611038610f5c565b73ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110859061305c565b60405180910390fd5b80600c8190555050565b6060600380546110a790612fde565b80601f01602080910402602001604051908101604052809291908181526020018280546110d390612fde565b80156111205780601f106110f557610100808354040283529160200191611120565b820191906000526020600020905b81548152906001019060200180831161110357829003601f168201915b5050505050905090565b6000600954905060006001600c54611142919061315d565b8361114b610a1a565b611155919061315d565b1080156111ae5750600b5483601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111ab919061315d565b11155b806111eb57506111bc610f5c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b905080156111f857600091505b818361120491906131b3565b341015611246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123d90613259565b60405180910390fd5b6001600d54611255919061315d565b8361125e610a1a565b611268919061315d565b106112a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129f906132c5565b60405180910390fd5b600e60009054906101000a900460ff166112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90613331565b60405180910390fd5b6001600a54611306919061315d565b8310611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e9061339d565b60405180910390fd5b80156113a45782601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461139c919061315d565b925050819055505b6113ae3384611dfb565b505050565b6113bb611882565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611420576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806007600061142d611882565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166114da611882565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161151f91906129b6565b60405180910390a35050565b600b5481565b600e60009054906101000a900460ff1681565b61154f848484611945565b61156e8373ffffffffffffffffffffffffffffffffffffffff1661216a565b156115b65761157f8484848461218d565b6115b5576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60095481565b60606115cd82611834565b61160c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116039061342f565b60405180910390fd5b600f611617836122ed565b60405160200161162892919061356b565b6040516020818303038152906040529050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6116da611882565b73ffffffffffffffffffffffffffffffffffffffff166116f8610f5c565b73ffffffffffffffffffffffffffffffffffffffff161461174e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117459061305c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156117be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b59061360c565b60405180910390fd5b6117c7816120a4565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008161183f61193c565b1115801561184e575060005482105b801561187b575060046000838152602001908152602001600020600001601c9054906101000a900460ff16155b9050919050565b600033905090565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b60006001905090565b600061195082611e19565b90508373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146119bb576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166119dc611882565b73ffffffffffffffffffffffffffffffffffffffff161480611a0b5750611a0a85611a05611882565b61163e565b5b80611a505750611a19611882565b73ffffffffffffffffffffffffffffffffffffffff16611a3884610899565b73ffffffffffffffffffffffffffffffffffffffff16145b905080611a89576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611af0576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611afd858585600161244e565b611b096000848761188a565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160392506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600460008581526020019081526020016000209050848160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550428160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060006001850190506000600460008381526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d89576000548214611d8857878160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084602001518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b5b505050828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611df48585856001612454565b5050505050565b611e1582826040518060200160405280600081525061245a565b5050565b611e216128a2565b600082905080611e2f61193c565b1161206d5760005481101561206c576000600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050806040015161206a57600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614611f4e57809250505061209f565b5b60011561206957818060019003925050600460008381526020019081526020016000206040518060600160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815260200160008201601c9054906101000a900460ff1615151515815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161461206457809250505061209f565b611f4f565b5b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026121b3611882565b8786866040518563ffffffff1660e01b81526004016121d59493929190613681565b602060405180830381600087803b1580156121ef57600080fd5b505af192505050801561222057506040513d601f19601f8201168201806040525081019061221d91906136e2565b60015b61229a573d8060008114612250576040519150601f19603f3d011682016040523d82523d6000602084013e612255565b606091505b50600081511415612292576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000821415612335576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612449565b600082905060005b600082146123675780806123509061370f565b915050600a826123609190613787565b915061233d565b60008167ffffffffffffffff81111561238357612382612c3e565b5b6040519080825280601f01601f1916602001820160405280156123b55781602001600182028036833780820191505090505b5090505b60008514612442576001826123ce91906137b8565b9150600a856123dd91906137ec565b60306123e9919061315d565b60f81b8183815181106123ff576123fe61381d565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561243b9190613787565b94506123b9565b8093505050505b919050565b50505050565b50505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156124c7576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000831415612502576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61250f600085838661244e565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555082600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160088282829054906101000a900467ffffffffffffffff160192506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550836004600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004600083815260200190815260200160002060000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000819050600084820190506126d08673ffffffffffffffffffffffffffffffffffffffff1661216a565b15612795575b818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612745600087848060010195508761218d565b61277b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8082106126d657826000541461279057600080fd5b612800565b5b818060010192508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808210612796575b8160008190555050506128166000858386612454565b50505050565b82805461282890612fde565b90600052602060002090601f01602090048101928261284a5760008555612891565b82601f1061286357805160ff1916838001178555612891565b82800160010185558215612891579182015b82811115612890578251825591602001919060010190612875565b5b50905061289e91906128e5565b5090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b5b808211156128fe5760008160009055506001016128e6565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61294b81612916565b811461295657600080fd5b50565b60008135905061296881612942565b92915050565b6000602082840312156129845761298361290c565b5b600061299284828501612959565b91505092915050565b60008115159050919050565b6129b08161299b565b82525050565b60006020820190506129cb60008301846129a7565b92915050565b6000819050919050565b6129e4816129d1565b82525050565b60006020820190506129ff60008301846129db565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a3f578082015181840152602081019050612a24565b83811115612a4e576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a7082612a05565b612a7a8185612a10565b9350612a8a818560208601612a21565b612a9381612a54565b840191505092915050565b60006020820190508181036000830152612ab88184612a65565b905092915050565b612ac9816129d1565b8114612ad457600080fd5b50565b600081359050612ae681612ac0565b92915050565b600060208284031215612b0257612b0161290c565b5b6000612b1084828501612ad7565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b4482612b19565b9050919050565b612b5481612b39565b82525050565b6000602082019050612b6f6000830184612b4b565b92915050565b612b7e81612b39565b8114612b8957600080fd5b50565b600081359050612b9b81612b75565b92915050565b60008060408385031215612bb857612bb761290c565b5b6000612bc685828601612b8c565b9250506020612bd785828601612ad7565b9150509250929050565b600080600060608486031215612bfa57612bf961290c565b5b6000612c0886828701612b8c565b9350506020612c1986828701612b8c565b9250506040612c2a86828701612ad7565b9150509250925092565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612c7682612a54565b810181811067ffffffffffffffff82111715612c9557612c94612c3e565b5b80604052505050565b6000612ca8612902565b9050612cb48282612c6d565b919050565b600067ffffffffffffffff821115612cd457612cd3612c3e565b5b612cdd82612a54565b9050602081019050919050565b82818337600083830152505050565b6000612d0c612d0784612cb9565b612c9e565b905082815260208101848484011115612d2857612d27612c39565b5b612d33848285612cea565b509392505050565b600082601f830112612d5057612d4f612c34565b5b8135612d60848260208601612cf9565b91505092915050565b600060208284031215612d7f57612d7e61290c565b5b600082013567ffffffffffffffff811115612d9d57612d9c612911565b5b612da984828501612d3b565b91505092915050565b600060208284031215612dc857612dc761290c565b5b6000612dd684828501612b8c565b91505092915050565b612de88161299b565b8114612df357600080fd5b50565b600081359050612e0581612ddf565b92915050565b60008060408385031215612e2257612e2161290c565b5b6000612e3085828601612b8c565b9250506020612e4185828601612df6565b9150509250929050565b600067ffffffffffffffff821115612e6657612e65612c3e565b5b612e6f82612a54565b9050602081019050919050565b6000612e8f612e8a84612e4b565b612c9e565b905082815260208101848484011115612eab57612eaa612c39565b5b612eb6848285612cea565b509392505050565b600082601f830112612ed357612ed2612c34565b5b8135612ee3848260208601612e7c565b91505092915050565b60008060008060808587031215612f0657612f0561290c565b5b6000612f1487828801612b8c565b9450506020612f2587828801612b8c565b9350506040612f3687828801612ad7565b925050606085013567ffffffffffffffff811115612f5757612f56612911565b5b612f6387828801612ebe565b91505092959194509250565b60008060408385031215612f8657612f8561290c565b5b6000612f9485828601612b8c565b9250506020612fa585828601612b8c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ff657607f821691505b6020821081141561300a57613009612faf565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613046602083612a10565b915061305182613010565b602082019050919050565b6000602082019050818103600083015261307581613039565b9050919050565b600081905092915050565b50565b600061309760008361307c565b91506130a282613087565b600082019050919050565b60006130b88261308a565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b60006130f8601083612a10565b9150613103826130c2565b602082019050919050565b60006020820190508181036000830152613127816130eb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613168826129d1565b9150613173836129d1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131a8576131a761312e565b5b828201905092915050565b60006131be826129d1565b91506131c9836129d1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132025761320161312e565b5b828202905092915050565b7f506c656173652073656e642074686520657861637420616d6f756e742e000000600082015250565b6000613243601d83612a10565b915061324e8261320d565b602082019050919050565b6000602082019050818103600083015261327281613236565b9050919050565b7f536f6c64206f7574210000000000000000000000000000000000000000000000600082015250565b60006132af600983612a10565b91506132ba82613279565b602082019050919050565b600060208201905081810360008301526132de816132a2565b9050919050565b7f4d696e74696e67206973206e6f74206c697665207965742e0000000000000000600082015250565b600061331b601883612a10565b9150613326826132e5565b602082019050919050565b6000602082019050818103600083015261334a8161330e565b9050919050565b7f4d61782070657220545820726561636865642e00000000000000000000000000600082015250565b6000613387601383612a10565b915061339282613351565b602082019050919050565b600060208201905081810360008301526133b68161337a565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613419602f83612a10565b9150613424826133bd565b604082019050919050565b600060208201905081810360008301526134488161340c565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461347c81612fde565b613486818661344f565b945060018216600081146134a157600181146134b2576134e5565b60ff198316865281860193506134e5565b6134bb8561345a565b60005b838110156134dd578154818901526001820191506020810190506134be565b838801955050505b50505092915050565b60006134f982612a05565b613503818561344f565b9350613513818560208601612a21565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b600061355560058361344f565b91506135608261351f565b600582019050919050565b6000613577828561346f565b915061358382846134ee565b915061358e82613548565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006135f6602683612a10565b91506136018261359a565b604082019050919050565b60006020820190508181036000830152613625816135e9565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006136538261362c565b61365d8185613637565b935061366d818560208601612a21565b61367681612a54565b840191505092915050565b60006080820190506136966000830187612b4b565b6136a36020830186612b4b565b6136b060408301856129db565b81810360608301526136c28184613648565b905095945050505050565b6000815190506136dc81612942565b92915050565b6000602082840312156136f8576136f761290c565b5b6000613706848285016136cd565b91505092915050565b600061371a826129d1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561374d5761374c61312e565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613792826129d1565b915061379d836129d1565b9250826137ad576137ac613758565b5b828204905092915050565b60006137c3826129d1565b91506137ce836129d1565b9250828210156137e1576137e061312e565b5b828203905092915050565b60006137f7826129d1565b9150613802836129d1565b92508261381257613811613758565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220a324f52c2b923b612b6a3be843923936a879ab8c4bbada3222ddd02984f9bc7264736f6c6343000809003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d53746a61704b4e42476a57696163566e4b79545741424a3342346147776f326957414542637170414853484d2f00000000000000000000