60806040523480156200001157600080fd5b50604051620044103803806200441083398181016040528101906200003791906200037a565b6040518060400160405280601e81526020017f4761726261676520556e69766572736974792053747564656e742049447300008152506040518060400160405280600681526020017f47552049445300000000000000000000000000000000000000000000000000008152508160009080519060200190620000bb92919062000241565b508060019080519060200190620000d492919062000241565b505050620000f7620000eb6200017360201b60201c565b6200017b60201b60201c565b82600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600990805190602001906200015092919062000241565b5080600a90805190602001906200016992919062000241565b50505050620005c0565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200024f90620004cb565b90600052602060002090601f016020900481019282620002735760008555620002bf565b82601f106200028e57805160ff1916838001178555620002bf565b82800160010185558215620002bf579182015b82811115620002be578251825591602001919060010190620002a1565b5b509050620002ce9190620002d2565b5090565b5b80821115620002ed576000816000905550600101620002d3565b5090565b60006200030862000302846200042b565b62000402565b9050828152602081018484840111156200032157600080fd5b6200032e84828562000495565b509392505050565b6000815190506200034781620005a6565b92915050565b600082601f8301126200035f57600080fd5b815162000371848260208601620002f1565b91505092915050565b6000806000606084860312156200039057600080fd5b6000620003a08682870162000336565b935050602084015167ffffffffffffffff811115620003be57600080fd5b620003cc868287016200034d565b925050604084015167ffffffffffffffff811115620003ea57600080fd5b620003f8868287016200034d565b9150509250925092565b60006200040e62000421565b90506200041c828262000501565b919050565b6000604051905090565b600067ffffffffffffffff82111562000449576200044862000566565b5b620004548262000595565b9050602081019050919050565b60006200046e8262000475565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60005b83811015620004b557808201518184015260208101905062000498565b83811115620004c5576000848401525b50505050565b60006002820490506001821680620004e457607f821691505b60208210811415620004fb57620004fa62000537565b5b50919050565b6200050c8262000595565b810181811067ffffffffffffffff821117156200052e576200052d62000566565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b620005b18162000461565b8114620005bd57600080fd5b50565b613e4080620005d06000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80636352211e116100f9578063a22cb46511610097578063c87b56dd11610071578063c87b56dd1461047c578063d547cfb7146104ac578063e985e9c5146104ca578063f2fde38b146104fa576101a9565b8063a22cb46514610428578063b88d4fde14610444578063ba772d8b14610460576101a9565b8063715018a6116100d3578063715018a6146103c65780637ba0e2e7146103d05780638da5cb5b146103ec57806395d89b411461040a576101a9565b80636352211e1461034a5780636c19e7831461037a57806370a0823114610396576101a9565b806320c5429b1161016657806342842e0e1161014057806342842e0e146102d65780635503a0e8146102f257806355f804b314610310578063561892361461032c576101a9565b806320c5429b14610280578063238ac9331461029c57806323b872dd146102ba576101a9565b806301ffc9a7146101ae57806306fdde03146101de578063081812fc146101fc578063095ea7b31461022c578063162094c41461024857806316ba10e014610264575b600080fd5b6101c860048036038101906101c39190612c92565b610516565b6040516101d591906132b6565b60405180910390f35b6101e66105f8565b6040516101f39190613316565b60405180910390f35b61021660048036038101906102119190612d6e565b61068a565b604051610223919061324f565b60405180910390f35b61024660048036038101906102419190612be1565b6106c7565b005b610262600480360381019061025d9190612d97565b610702565b005b61027e60048036038101906102799190612d29565b61075d565b005b61029a60048036038101906102959190612d6e565b61077b565b005b6102a46107e1565b6040516102b1919061324f565b60405180910390f35b6102d460048036038101906102cf9190612adb565b610807565b005b6102f060048036038101906102eb9190612adb565b610867565b005b6102fa610887565b6040516103079190613316565b60405180910390f35b61032a60048036038101906103259190612d29565b610915565b005b610334610933565b6040516103419190613538565b60405180910390f35b610364600480360381019061035f9190612d6e565b61093d565b604051610371919061324f565b60405180910390f35b610394600480360381019061038f9190612a76565b6109ef565b005b6103b060048036038101906103ab9190612a76565b610a3b565b6040516103bd9190613538565b60405180910390f35b6103ce610af3565b005b6103ea60048036038101906103e59190612ce4565b610b07565b005b6103f4610cc6565b604051610401919061324f565b60405180910390f35b610412610cf0565b60405161041f9190613316565b60405180910390f35b610442600480360381019061043d9190612ba5565b610d82565b005b61045e60048036038101906104599190612b2a565b610dbd565b005b61047a60048036038101906104759190612c1d565b610e1f565b005b61049660048036038101906104919190612d6e565b610fa8565b6040516104a39190613316565b60405180910390f35b6104b46110e0565b6040516104c19190613316565b60405180910390f35b6104e460048036038101906104df9190612a9f565b61116e565b6040516104f191906132b6565b60405180910390f35b610514600480360381019061050f9190612a76565b611202565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105e157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806105f157506105f082611286565b5b9050919050565b606060008054610607906137e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610633906137e0565b80156106805780601f1061065557610100808354040283529160200191610680565b820191906000526020600020905b81548152906001019060200180831161066357829003601f168201915b5050505050905090565b60006040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106be906134f8565b60405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f9906134f8565b60405180910390fd5b61070a6112f0565b6107588383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061136e565b505050565b6107656112f0565b8181600a9190610776929190612754565b505050565b6107836112f0565b600061078e8261093d565b9050610799826113d9565b818173ffffffffffffffffffffffffffffffffffffffff167fec9ab91322523c899ede7830ec9bfc992b5981cdcc27b91162fb23de5791117b60405160405180910390a35050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108186108126114f6565b826114fe565b610857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084e90613518565b60405180910390fd5b610862838383611593565b505050565b61088283838360405180602001604052806000815250610dbd565b505050565b600a8054610894906137e0565b80601f01602080910402602001604051908101604052809291908181526020018280546108c0906137e0565b801561090d5780601f106108e25761010080835404028352916020019161090d565b820191906000526020600020905b8154815290600101906020018083116108f057829003601f168201915b505050505081565b61091d6112f0565b81816009919061092e929190612754565b505050565b6000600754905090565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109dd906134d8565b60405180910390fd5b80915050919050565b6109f76112f0565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390613438565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610afb6112f0565b610b0560006117fa565b565b6000610b1233610a3b565b14610b49576040517f9efd332200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610bd083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610bc233604051602001610ba791906131dd565b604051602081830303815290604052805190602001206118c0565b6118f090919063ffffffff16565b9050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c59576040517fd9681a8600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60076000815480929190600101919050555060006007549050610c7c3382611917565b803373ffffffffffffffffffffffffffffffffffffffff167fe9274a84b19e9428826de6bae8c48329354f8f0e73f771b97cae2d9dccd45a2760405160405180910390a350505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610cff906137e0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b906137e0565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b5050505050905090565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db4906134f8565b60405180910390fd5b610dce610dc86114f6565b836114fe565b610e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0490613518565b60405180910390fd5b610e1984848484611af1565b50505050565b610e276112f0565b60008484905090506064811115610e6a576040517fb875062200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828290508114610ea6576040517ff6db1efb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610fa0576000868683818110610eec577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002013590506000858584818110610f30577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9050602002810190610f429190613553565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509050610f91828261136e565b82806001019350505050610ea9565b505050505050565b6060610fb382611b4d565b610fe9576040517fbbaf995000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600b60008481526020019081526020016000208054611009906137e0565b80601f0160208091040260200160405190810160405280929190818152602001828054611035906137e0565b80156110825780601f1061105757610100808354040283529160200191611082565b820191906000526020600020905b81548152906001019060200180831161106557829003601f168201915b505050505090506000611093611bb9565b90506000825111156110a95781925050506110db565b806110b385611c4b565b600a6040516020016110c7939291906131f8565b604051602081830303815290604052925050505b919050565b600980546110ed906137e0565b80601f0160208091040260200160405190810160405280929190818152602001828054611119906137e0565b80156111665780601f1061113b57610100808354040283529160200191611166565b820191906000526020600020905b81548152906001019060200180831161114957829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61120a6112f0565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561127a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127190613398565b60405180910390fd5b611283816117fa565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6112f86114f6565b73ffffffffffffffffffffffffffffffffffffffff16611316610cc6565b73ffffffffffffffffffffffffffffffffffffffff161461136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390613498565b60405180910390fd5b565b61137782611b4d565b6113ad576040517f774c545b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b600084815260200190815260200160002090805190602001906113d49291906127da565b505050565b60006113e48261093d565b90506113f281600084611df8565b6113fd600083611ea3565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461144d91906136df565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46114f281600084611f5c565b5050565b600033905090565b60008061150a8361093d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061154c575061154b818561116e565b5b8061158a57508373ffffffffffffffffffffffffffffffffffffffff166115728461068a565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115b38261093d565b73ffffffffffffffffffffffffffffffffffffffff1614611609576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611600906133b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611679576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611670906133f8565b60405180910390fd5b611684838383611df8565b61168f600082611ea3565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116df91906136df565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117369190613658565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117f5838383611f5c565b505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000816040516020016118d39190613229565b604051602081830303815290604052805190602001209050919050565b60008060006118ff858561205a565b9150915061190c816120dd565b819250505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611987576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197e90613478565b60405180910390fd5b61199081611b4d565b156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c7906133d8565b60405180910390fd5b6119dc60008383611df8565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a2c9190613658565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611aed60008383611f5c565b5050565b611afc848484611593565b611b088484848461242e565b611b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3e90613378565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b606060098054611bc8906137e0565b80601f0160208091040260200160405190810160405280929190818152602001828054611bf4906137e0565b8015611c415780601f10611c1657610100808354040283529160200191611c41565b820191906000526020600020905b815481529060010190602001808311611c2457829003601f168201915b5050505050905090565b60606000821415611c93576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611df3565b600082905060005b60008214611cc5578080611cae90613843565b915050600a82611cbe91906136ae565b9150611c9b565b60008167ffffffffffffffff811115611d07577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015611d395781602001600182028036833780820191505090505b5090505b60008514611dec57600182611d5291906136df565b9150600a85611d6191906138ba565b6030611d6d9190613658565b60f81b818381518110611da9577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611de591906136ae565b9450611d3d565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611e5f5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611e9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e95906134b8565b60405180910390fd5b505050565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611f168361093d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fda57808273ffffffffffffffffffffffffffffffffffffffff167fe9274a84b19e9428826de6bae8c48329354f8f0e73f771b97cae2d9dccd45a2760405160405180910390a3612055565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561205457808273ffffffffffffffffffffffffffffffffffffffff167fec9ab91322523c899ede7830ec9bfc992b5981cdcc27b91162fb23de5791117b60405160405180910390a35b5b505050565b60008060418351141561209c5760008060006020860151925060408601519150606086015160001a9050612090878285856125c5565b945094505050506120d6565b6040835114156120cd5760008060208501519150604085015190506120c28683836126d2565b9350935050506120d6565b60006002915091505b9250929050565b60006004811115612117577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612150577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561215b5761242b565b60016004811115612195577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156121ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561220f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220690613338565b60405180910390fd5b60026004811115612249577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612282577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156122c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ba90613358565b60405180910390fd5b600360048111156122fd577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612336577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236e90613418565b60405180910390fd5b6004808111156123b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156123e9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561242a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242190613458565b60405180910390fd5b5b50565b600061244f8473ffffffffffffffffffffffffffffffffffffffff16612731565b156125b8578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026124786114f6565b8786866040518563ffffffff1660e01b815260040161249a949392919061326a565b602060405180830381600087803b1580156124b457600080fd5b505af19250505080156124e557506040513d601f19601f820116820180604052508101906124e29190612cbb565b60015b612568573d8060008114612515576040519150601f19603f3d011682016040523d82523d6000602084013e61251a565b606091505b50600081511415612560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255790613378565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506125bd565b600190505b949350505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c11156126005760006003915091506126c9565b601b8560ff16141580156126185750601c8560ff1614155b1561262a5760006004915091506126c9565b60006001878787876040516000815260200160405260405161264f94939291906132d1565b6020604051602081039080840390855afa158015612671573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156126c0576000600192509250506126c9565b80600092509250505b94509492505050565b60008060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b841690506000601b60ff8660001c901c6127159190613658565b9050612723878288856125c5565b935093505050935093915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612760906137e0565b90600052602060002090601f01602090048101928261278257600085556127c9565b82601f1061279b57803560ff19168380011785556127c9565b828001600101855582156127c9579182015b828111156127c85782358255916020019190600101906127ad565b5b5090506127d69190612860565b5090565b8280546127e6906137e0565b90600052602060002090601f016020900481019282612808576000855561284f565b82601f1061282157805160ff191683800117855561284f565b8280016001018555821561284f579182015b8281111561284e578251825591602001919060010190612833565b5b50905061285c9190612860565b5090565b5b80821115612879576000816000905550600101612861565b5090565b600061289061288b846135cf565b6135aa565b9050828152602081018484840111156128a857600080fd5b6128b384828561379e565b509392505050565b6000813590506128ca81613dae565b92915050565b60008083601f8401126128e257600080fd5b8235905067ffffffffffffffff8111156128fb57600080fd5b60208301915083602082028301111561291357600080fd5b9250929050565b60008083601f84011261292c57600080fd5b8235905067ffffffffffffffff81111561294557600080fd5b60208301915083602082028301111561295d57600080fd5b9250929050565b60008135905061297381613dc5565b92915050565b60008135905061298881613ddc565b92915050565b60008151905061299d81613ddc565b92915050565b60008083601f8401126129b557600080fd5b8235905067ffffffffffffffff8111156129ce57600080fd5b6020830191508360018202830111156129e657600080fd5b9250929050565b600082601f8301126129fe57600080fd5b8135612a0e84826020860161287d565b91505092915050565b60008083601f840112612a2957600080fd5b8235905067ffffffffffffffff811115612a4257600080fd5b602083019150836001820283011115612a5a57600080fd5b9250929050565b600081359050612a7081613df3565b92915050565b600060208284031215612a8857600080fd5b6000612a96848285016128bb565b91505092915050565b60008060408385031215612ab257600080fd5b6000612ac0858286016128bb565b9250506020612ad1858286016128bb565b9150509250929050565b600080600060608486031215612af057600080fd5b6000612afe868287016128bb565b9350506020612b0f868287016128bb565b9250506040612b2086828701612a61565b9150509250925092565b60008060008060808587031215612b4057600080fd5b6000612b4e878288016128bb565b9450506020612b5f878288016128bb565b9350506040612b7087828801612a61565b925050606085013567ffffffffffffffff811115612b8d57600080fd5b612b99878288016129ed565b91505092959194509250565b60008060408385031215612bb857600080fd5b6000612bc6858286016128bb565b9250506020612bd785828601612964565b9150509250929050565b60008060408385031215612bf457600080fd5b6000612c02858286016128bb565b9250506020612c1385828601612a61565b9150509250929050565b60008060008060408587031215612c3357600080fd5b600085013567ffffffffffffffff811115612c4d57600080fd5b612c598782880161291a565b9450945050602085013567ffffffffffffffff811115612c7857600080fd5b612c84878288016128d0565b925092505092959194509250565b600060208284031215612ca457600080fd5b6000612cb284828501612979565b91505092915050565b600060208284031215612ccd57600080fd5b6000612cdb8482850161298e565b91505092915050565b60008060208385031215612cf757600080fd5b600083013567ffffffffffffffff811115612d1157600080fd5b612d1d858286016129a3565b92509250509250929050565b60008060208385031215612d3c57600080fd5b600083013567ffffffffffffffff811115612d5657600080fd5b612d6285828601612a17565b92509250509250929050565b600060208284031215612d8057600080fd5b6000612d8e84828501612a61565b91505092915050565b600080600060408486031215612dac57600080fd5b6000612dba86828701612a61565b935050602084013567ffffffffffffffff811115612dd757600080fd5b612de386828701612a17565b92509250509250925092565b612df881613713565b82525050565b612e0f612e0a82613713565b61388c565b82525050565b612e1e81613725565b82525050565b612e2d81613731565b82525050565b612e44612e3f82613731565b61389e565b82525050565b6000612e5582613615565b612e5f818561362b565b9350612e6f8185602086016137ad565b612e78816139a7565b840191505092915050565b6000612e8e82613620565b612e98818561363c565b9350612ea88185602086016137ad565b612eb1816139a7565b840191505092915050565b6000612ec782613620565b612ed1818561364d565b9350612ee18185602086016137ad565b80840191505092915050565b60008154612efa816137e0565b612f04818661364d565b94506001821660008114612f1f5760018114612f3057612f63565b60ff19831686528186019350612f63565b612f3985613600565b60005b83811015612f5b57815481890152600182019150602081019050612f3c565b838801955050505b50505092915050565b6000612f7960188361363c565b9150612f84826139c5565b602082019050919050565b6000612f9c601f8361363c565b9150612fa7826139ee565b602082019050919050565b6000612fbf601c8361364d565b9150612fca82613a17565b601c82019050919050565b6000612fe260328361363c565b9150612fed82613a40565b604082019050919050565b600061300560268361363c565b915061301082613a8f565b604082019050919050565b600061302860258361363c565b915061303382613ade565b604082019050919050565b600061304b601c8361363c565b915061305682613b2d565b602082019050919050565b600061306e60248361363c565b915061307982613b56565b604082019050919050565b600061309160228361363c565b915061309c82613ba5565b604082019050919050565b60006130b460298361363c565b91506130bf82613bf4565b604082019050919050565b60006130d760228361363c565b91506130e282613c43565b604082019050919050565b60006130fa60208361363c565b915061310582613c92565b602082019050919050565b600061311d60208361363c565b915061312882613cbb565b602082019050919050565b600061314060148361363c565b915061314b82613ce4565b602082019050919050565b600061316360188361363c565b915061316e82613d0d565b602082019050919050565b600061318660148361363c565b915061319182613d36565b602082019050919050565b60006131a9602e8361363c565b91506131b482613d5f565b604082019050919050565b6131c881613787565b82525050565b6131d781613791565b82525050565b60006131e98284612dfe565b60148201915081905092915050565b60006132048286612ebc565b91506132108285612ebc565b915061321c8284612eed565b9150819050949350505050565b600061323482612fb2565b91506132408284612e33565b60208201915081905092915050565b60006020820190506132646000830184612def565b92915050565b600060808201905061327f6000830187612def565b61328c6020830186612def565b61329960408301856131bf565b81810360608301526132ab8184612e4a565b905095945050505050565b60006020820190506132cb6000830184612e15565b92915050565b60006080820190506132e66000830187612e24565b6132f360208301866131ce565b6133006040830185612e24565b61330d6060830184612e24565b95945050505050565b600060208201905081810360008301526133308184612e83565b905092915050565b6000602082019050818103600083015261335181612f6c565b9050919050565b6000602082019050818103600083015261337181612f8f565b9050919050565b6000602082019050818103600083015261339181612fd5565b9050919050565b600060208201905081810360008301526133b181612ff8565b9050919050565b600060208201905081810360008301526133d18161301b565b9050919050565b600060208201905081810360008301526133f18161303e565b9050919050565b6000602082019050818103600083015261341181613061565b9050919050565b6000602082019050818103600083015261343181613084565b9050919050565b60006020820190508181036000830152613451816130a7565b9050919050565b60006020820190508181036000830152613471816130ca565b9050919050565b60006020820190508181036000830152613491816130ed565b9050919050565b600060208201905081810360008301526134b181613110565b9050919050565b600060208201905081810360008301526134d181613133565b9050919050565b600060208201905081810360008301526134f181613156565b9050919050565b6000602082019050818103600083015261351181613179565b9050919050565b600060208201905081810360008301526135318161319c565b9050919050565b600060208201905061354d60008301846131bf565b92915050565b6000808335600160200384360303811261356c57600080fd5b80840192508235915067ffffffffffffffff82111561358a57600080fd5b6020830192506001820236038313156135a257600080fd5b509250929050565b60006135b46135c5565b90506135c08282613812565b919050565b6000604051905090565b600067ffffffffffffffff8211156135ea576135e9613978565b5b6135f3826139a7565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061366382613787565b915061366e83613787565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136a3576136a26138eb565b5b828201905092915050565b60006136b982613787565b91506136c483613787565b9250826136d4576136d361391a565b5b828204905092915050565b60006136ea82613787565b91506136f583613787565b925082821015613708576137076138eb565b5b828203905092915050565b600061371e82613767565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b838110156137cb5780820151818401526020810190506137b0565b838111156137da576000848401525b50505050565b600060028204905060018216806137f857607f821691505b6020821081141561380c5761380b613949565b5b50919050565b61381b826139a7565b810181811067ffffffffffffffff8211171561383a57613839613978565b5b80604052505050565b600061384e82613787565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613881576138806138eb565b5b600182019050919050565b6000613897826138a8565b9050919050565b6000819050919050565b60006138b3826139b8565b9050919050565b60006138c582613787565b91506138d083613787565b9250826138e0576138df61391a565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e736665725f4e6f745f416c6c6f776564000000000000000000000000600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f417070726f76616c5f6e6f745f616c6c6f776564000000000000000000000000600082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b613db781613713565b8114613dc257600080fd5b50565b613dce81613725565b8114613dd957600080fd5b50565b613de58161373b565b8114613df057600080fd5b50565b613dfc81613787565b8114613e0757600080fd5b5056fea2646970667358221220ec9e64dbfaac7e4ce7eb8f7d92eca41385edb8d15823d63147ffc444f313e49b64736f6c63430008040033000000000000000000000000bd2244c26c624e998d2ecec353f6cc7d942e938a000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000043697066733a2f2f626166796265696261656964346235716766706b787535686332676574347369626c6565717479683232773571737a616f7a66376276706d6178342f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052e6a736f6e000000000000000000000000000000000000000000000000000000