diff --git a/controls/permission/Permission.sol b/controls/permission/Permission.sol index 2f618a432..cc8633a3c 100644 --- a/controls/permission/Permission.sol +++ b/controls/permission/Permission.sol @@ -128,7 +128,12 @@ contract Permissions { function getNodeDetails(string memory enodeId) public view returns (string memory _enodeId, string memory _ipAddrPort, string memory _discPort, string memory _raftPort, NodeStatus _nodeStatus) { uint nodeIndex = getNodeIndex(enodeId); - return (nodeList[nodeIndex].enodeId, nodeList[nodeIndex].ipAddrPort, nodeList[nodeIndex].discPort, nodeList[nodeIndex].raftPort, nodeList[nodeIndex].status); + if (nodeIdToIndex[keccak256(abi.encodePacked(enodeId))] != 0){ + return (nodeList[nodeIndex].enodeId, nodeList[nodeIndex].ipAddrPort, nodeList[nodeIndex].discPort, nodeList[nodeIndex].raftPort, nodeList[nodeIndex].status); + } + else { + return (enodeId, "", "", "", NodeStatus.NotInList); + } } // Get node details given index function getNodeDetailsFromIndex(uint nodeIndex) public view returns (string memory _enodeId, string memory _ipAddrPort, string memory _discPort, string memory _raftPort, NodeStatus _nodeStatus) diff --git a/controls/permission/abi/Permissions.bin-runtime b/controls/permission/abi/Permissions.bin-runtime index 93b0d3122..24c469b48 100644 --- a/controls/permission/abi/Permissions.bin-runtime +++ b/controls/permission/abi/Permissions.bin-runtime @@ -1 +1 @@ -608060405234801561001057600080fd5b50600436106101e1576000357c01000000000000000000000000000000000000000000000000000000009004806349f2545b11610116578063b81c806a116100b4578063d07bff0c1161008e578063d07bff0c14610d3a578063d12d44dc14610d76578063e51008e114610d7e578063f4ab9adf14610dee576101e1565b8063b81c806a14610b9d578063c6962b9914610ba5578063c7ab7ccf14610bd4576101e1565b806384865b66116100f057806384865b6614610b2c57806386c1ff6814610b3457806397c07a9b14610b5a578063a7771ee314610b77576101e1565b806349f2545b146109b65780634cbfa82e146109be57806360514a5a146109c6576101e1565b8063397eeccb1161018357806344478e791161015d57806344478e791461085e57806347b8fe571461086657806347dd4953146108d6578063487363f914610946576101e1565b8063397eeccb146104bf5780633f0e0e4714610589578063420c26de146107ee576101e1565b806314a945e5116101bf57806314a945e51461038457806321c67088146103f65780632a0b261714610466578063309e36ef146104b7576101e1565b8063069953a7146101e65780630fdc21501461029e57806311174a2914610363575b600080fd5b61028c600480360360208110156101fc57600080fd5b81019060208101813564010000000081111561021757600080fd5b82018360208201111561022957600080fd5b8035906020019184600183028401116401000000008311171561024b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e14945050505050565b60408051918252519081900360200190f35b61034f600480360360408110156102b457600080fd5b8101906020810181356401000000008111156102cf57600080fd5b8201836020820111156102e157600080fd5b8035906020019184600183028401116401000000008311171561030357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a03169150610e389050565b604080519115158252519081900360200190f35b61036b610e73565b6040805192835260208301919091528051918290030190f35b6103f46004803603602081101561039a57600080fd5b8101906020810181356401000000008111156103b557600080fd5b8201836020820111156103c757600080fd5b803590602001918460018302840111640100000000831117156103e957600080fd5b509092509050610e7d565b005b6103f46004803603602081101561040c57600080fd5b81019060208101813564010000000081111561042757600080fd5b82018360208201111561043957600080fd5b8035906020019184600183028401116401000000008311171561045b57600080fd5b509092509050611358565b6104836004803603602081101561047c57600080fd5b50356115b5565b604051600160a060020a0383168152602081018260038111156104a257fe5b60ff1681526020019250505060405180910390f35b61028c61160d565b610565600480360360208110156104d557600080fd5b8101906020810181356401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611614945050505050565b6040518082600781111561057557fe5b60ff16815260200191505060405180910390f35b61062f6004803603602081101561059f57600080fd5b8101906020810181356401000000008111156105ba57600080fd5b8201836020820111156105cc57600080fd5b803590602001918460018302840111640100000000831117156105ee57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611725945050505050565b604051808060200180602001806020018060200186600781111561064f57fe5b60ff16815260200185810385528a818151815260200191508051906020019080838360005b8381101561068c578181015183820152602001610674565b50505050905090810190601f1680156106b95780820380516001836020036101000a031916815260200191505b5085810384528951815289516020918201918b019080838360005b838110156106ec5781810151838201526020016106d4565b50505050905090810190601f1680156107195780820380516001836020036101000a031916815260200191505b5085810383528851815288516020918201918a019080838360005b8381101561074c578181015183820152602001610734565b50505050905090810190601f1680156107795780820380516001836020036101000a031916815260200191505b50858103825287518152875160209182019189019080838360005b838110156107ac578181015183820152602001610794565b50505050905090810190601f1680156107d95780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6103f46004803603602081101561080457600080fd5b81019060208101813564010000000081111561081f57600080fd5b82018360208201111561083157600080fd5b8035906020019184600183028401116401000000008311171561085357600080fd5b509092509050611a2c565b61034f611c89565b6103f46004803603602081101561087c57600080fd5b81019060208101813564010000000081111561089757600080fd5b8201836020820111156108a957600080fd5b803590602001918460018302840111640100000000831117156108cb57600080fd5b509092509050611ce7565b6103f4600480360360208110156108ec57600080fd5b81019060208101813564010000000081111561090757600080fd5b82018360208201111561091957600080fd5b8035906020019184600183028401116401000000008311171561093b57600080fd5b509092509050611f9c565b6103f46004803603602081101561095c57600080fd5b81019060208101813564010000000081111561097757600080fd5b82018360208201111561098957600080fd5b803590602001918460018302840111640100000000831117156109ab57600080fd5b5090925090506122df565b6103f461256c565b61034f61276d565b6103f4600480360360808110156109dc57600080fd5b8101906020810181356401000000008111156109f757600080fd5b820183602082011115610a0957600080fd5b80359060200191846001830284011164010000000083111715610a2b57600080fd5b919390929091602081019035640100000000811115610a4957600080fd5b820183602082011115610a5b57600080fd5b80359060200191846001830284011164010000000083111715610a7d57600080fd5b919390929091602081019035640100000000811115610a9b57600080fd5b820183602082011115610aad57600080fd5b80359060200191846001830284011164010000000083111715610acf57600080fd5b919390929091602081019035640100000000811115610aed57600080fd5b820183602082011115610aff57600080fd5b80359060200191846001830284011164010000000083111715610b2157600080fd5b509092509050612776565b61028c612c53565b6103f460048036036020811015610b4a57600080fd5b5035600160a060020a0316612c59565b61062f60048036036020811015610b7057600080fd5b5035612cd2565b61034f60048036036020811015610b8d57600080fd5b5035600160a060020a0316612fcc565b61028c61303d565b6103f460048036036040811015610bbb57600080fd5b508035600160a060020a0316906020013560ff16613043565b6103f460048036036080811015610bea57600080fd5b810190602081018135640100000000811115610c0557600080fd5b820183602082011115610c1757600080fd5b80359060200191846001830284011164010000000083111715610c3957600080fd5b919390929091602081019035640100000000811115610c5757600080fd5b820183602082011115610c6957600080fd5b80359060200191846001830284011164010000000083111715610c8b57600080fd5b919390929091602081019035640100000000811115610ca957600080fd5b820183602082011115610cbb57600080fd5b80359060200191846001830284011164010000000083111715610cdd57600080fd5b919390929091602081019035640100000000811115610cfb57600080fd5b820183602082011115610d0d57600080fd5b80359060200191846001830284011164010000000083111715610d2f57600080fd5b5090925090506131cd565b610d5760048036036020811015610d5057600080fd5b50356138d1565b604051600160a060020a0383168152602081018260018111156104a257fe5b61028c613909565b6103f460048036036020811015610d9457600080fd5b810190602081018135640100000000811115610daf57600080fd5b820183602082011115610dc157600080fd5b80359060200191846001830284011164010000000083111715610de357600080fd5b50909250905061390f565b6103f460048036036020811015610e0457600080fd5b5035600160a060020a0316613aaf565b600080610e2083613c2d565b6000908152600d60205260409020549150505b919050565b600080610e4484613c2d565b6000908152600c60209081526040808320600160a060020a038716845290915290205460ff1691505092915050565b600954600a549091565b600080610e8933613cba565b3360009081526008602052604090205490915015801590610ed8575060006007805483908110610eb557fe5b60009182526020909120015460a060020a900460ff166001811115610ed657fe5b145b15610ee257600191505b811515610f27576040805160e560020a62461bcd0281526020600482015260146024820152600080516020613f84833981519152604482015290519081900360640190fd5b6005610f6885858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115610f7357fe5b14610fb25760405160e560020a62461bcd02815260040180806020018281038252602b815260200180613fd1602b913960400191505060405180910390fd5b6000610ff385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600c6020908152604080832033845290915290205490915060ff1615611056576040805160e560020a62461bcd0281526020600482015260186024820152600080516020613ffc833981519152604482015290519081900360640190fd5b61105f81613cd9565b61106881613d11565b1561135157600260018281548110151561107e57fe5b60009182526020909120600460059092020101805460ff191660018360078111156110a557fe5b02179055507fd277bd13c43f8ddd20884d02df780044b5faaa1d9e2d4db2d0416fdfcb65d6bf6001828154811015156110da57fe5b90600052602060002090600502016000016001838154811015156110fa57fe5b906000526020600020906005020160010160018481548110151561111a57fe5b906000526020600020906005020160020160018581548110151561113a57fe5b906000526020600020906005020160030160405180806020018060200180602001806020018581038552898181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156111e05780601f106111b5576101008083540402835291602001916111e0565b820191906000526020600020905b8154815290600101906020018083116111c357829003601f168201915b50508581038452885460026000196101006001841615020190911604808252602090910190899080156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b50508581038352875460026000196101006001841615020190911604808252602090910190889080156112c85780601f1061129d576101008083540402835291602001916112c8565b820191906000526020600020905b8154815290600101906020018083116112ab57829003601f168201915b505085810382528654600260001961010060018416150201909116048082526020909101908790801561133c5780601f106113115761010080835404028352916020019161133c565b820191906000526020600020905b81548152906001019060200180831161131f57829003601f168201915b50509850505050505050505060405180910390a15b5050505050565b60008061136433613cba565b33600090815260086020526040902054909150158015906113b357506000600780548390811061139057fe5b60009182526020909120015460a060020a900460ff1660018111156113b157fe5b145b156113bd57600191505b811515611402576040805160e560020a62461bcd0281526020600482015260146024820152600080516020613f84833981519152604482015290519081900360640190fd5b600161144385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561144e57fe5b1461148d5760405160e560020a62461bcd028152600401808060200182810382526029815260200180613ec06029913960400191505060405180910390fd5b60006114ce85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600c6020908152604080832033845290915290205490915060ff1615611531576040805160e560020a62461bcd0281526020600482015260186024820152600080516020613ffc833981519152604482015290519081900360640190fd5b61153a81613cd9565b61154381613d11565b1561135157600260018281548110151561155957fe5b60009182526020909120600460059092020101805460ff1916600183600781111561158057fe5b02179055507fc6d86deaa3b3cf7c374cfd405aae9f08571fce2bf6ccfe8f98a399cda8960a986001828154811015156110da57fe5b6000806004838154811015156115c757fe5b60009182526020909120015460048054600160a060020a0390921691859081106115ed57fe5b600091825260209091200154909460a060020a90910460ff169350915050565b6004545b90565b60008160026000826040516020018082805190602001908083835b6020831061164e5780518252601f19909201916020918201910161162f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001208152602001908152602001600020546000141515156116f2576040805160e560020a62461bcd02815260206004820152601860248201527f456e6f6465206973206e6f7420696e20746865206c6973740000000000000000604482015290519081900360640190fd5b60016116fd84613c2d565b8154811061170757fe5b600091825260209091206005909102016004015460ff169392505050565b60608060608060008061173787613c2d565b905060018181548110151561174857fe5b906000526020600020906005020160000160018281548110151561176857fe5b906000526020600020906005020160010160018381548110151561178857fe5b90600052602060002090600502016002016001848154811015156117a857fe5b90600052602060002090600502016003016001858154811015156117c857fe5b600091825260209182902060046005909202010154855460408051601f6002600019600186161561010002019094169390930492830185900485028101850190915281815260ff909216928791908301828280156118675780601f1061183c57610100808354040283529160200191611867565b820191906000526020600020905b81548152906001019060200180831161184a57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a50899450925084019050828280156118f55780601f106118ca576101008083540402835291602001916118f5565b820191906000526020600020905b8154815290600101906020018083116118d857829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959950889450925084019050828280156119835780601f1061195857610100808354040283529160200191611983565b820191906000526020600020905b81548152906001019060200180831161196657829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015611a115780601f106119e657610100808354040283529160200191611a11565b820191906000526020600020905b8154815290600101906020018083116119f457829003601f168201915b50505050509150955095509550955095505091939590929450565b600080611a3833613cba565b3360009081526008602052604090205490915015801590611a87575060006007805483908110611a6457fe5b60009182526020909120015460a060020a900460ff166001811115611a8557fe5b145b15611a9157600191505b811515611ad6576040805160e560020a62461bcd0281526020600482015260146024820152600080516020613f84833981519152604482015290519081900360640190fd5b6003611b1785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115611b2257fe5b14611b615760405160e560020a62461bcd02815260040180806020018281038252602d815260200180613fa4602d913960400191505060405180910390fd5b6000611ba285858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600c6020908152604080832033845290915290205490915060ff1615611c05576040805160e560020a62461bcd0281526020600482015260186024820152600080516020613ffc833981519152604482015290519081900360640190fd5b611c0e81613cd9565b611c1781613d11565b15611351576004600182815481101515611c2d57fe5b60009182526020909120600460059092020101805460ff19166001836007811115611c5457fe5b02179055507fd5fa0ecdea15b332dd0a270c65234bc4aee212edf2ed62eb2fd182ef55ca98a16001828154811015156110da57fe5b600e5460009060ff1615611cd15760405160e560020a62461bcd028152600401808060200182810382526027815260200180613ee96027913960400191505060405180910390fd5b50600e805460ff19166001179081905560ff1690565b81818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060405185516002955091935085925060209081019182918401908083835b60208310611d565780518252601f199092019160209182019101611d37565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054600014151515611dfa576040805160e560020a62461bcd02815260206004820152601860248201527f456e6f6465206973206e6f7420696e20746865206c6973740000000000000000604482015290519081900360640190fd5b611e02613d3c565b15611f97576002611e4884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115611e5357fe5b14611e925760405160e560020a62461bcd028152600401808060200182810382526022815260200180613f3d6022913960400191505060405180910390fd5b6000611ed384848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600b60205260409020805460ff191660021790556001805491925060039183908110611f0057fe5b60009182526020909120600460059092020101805460ff19166001836007811115611f2757fe5b0217905550611f3581613d59565b7f2b5689b33f48f1dcbda2084e130a9bee7b3bf14dc767ea74cbdf3e5fffb118e4848460405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505b505050565b600080611fa833613cba565b3360009081526008602052604090205490915015801590611ff7575060006007805483908110611fd457fe5b60009182526020909120015460a060020a900460ff166001811115611ff557fe5b145b1561200157600191505b811515612046576040805160e560020a62461bcd0281526020600482015260146024820152600080516020613f84833981519152604482015290519081900360640190fd5b600161208785858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561209257fe5b14806120e7575060056120da85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b60078111156120e557fe5b145b8061213b5750600361212e85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561213957fe5b145b8061218f5750600661218285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561218d57fe5b145b15156121e5576040805160e560020a62461bcd02815260206004820152601e60248201527f4e6f646520737461747573206d75737420626520696e2070656e64696e670000604482015290519081900360640190fd5b600061222685858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600b60205260409020546001805492935060ff909116918390811061224c57fe5b60009182526020909120600460059092020101805460ff1916600183600781111561227357fe5b02179055507f94e103729ee0a5bdbfe00e23d13d932dca50dd85b3ad4d85d1299a81583dda93858560405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050505050565b6000806122eb33613cba565b336000908152600860205260409020549091501580159061233a57506000600780548390811061231757fe5b60009182526020909120015460a060020a900460ff16600181111561233857fe5b145b1561234457600191505b811515612389576040805160e560020a62461bcd0281526020600482015260146024820152600080516020613f84833981519152604482015290519081900360640190fd5b60066123ca85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b60078111156123d557fe5b146124145760405160e560020a62461bcd02815260040180806020018281038252602d815260200180613f10602d913960400191505060405180910390fd5b600061245585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600c6020908152604080832033845290915290205490915060ff16156124b8576040805160e560020a62461bcd0281526020600482015260186024820152600080516020613ffc833981519152604482015290519081900360640190fd5b6000818152600c602090815260408083203384528252808320805460ff19166001908117909155848452600d909252909120805490910190556124fa81613d11565b1561135157600760018281548110151561251057fe5b60009182526020909120600460059092020101805460ff1916600183600781111561253757fe5b02179055507fe1b239bf9d5854aeca74dfeac25d6ce470230bdb5f0eec48713c4375becfe97e6001828154811015156110da57fe5b600e5460ff16156125c7576040805160e560020a62461bcd02815260206004820181905260248201527f6e6574776f726b206163636f756e747320616c726561647920626f6f74207570604482015290519081900360640190fd5b60005b60005481101561276a576005600080838154811015156125e657fe5b6000918252602080832090910154600160a060020a031683528201929092526040019020541515612762576006805460010190819055600080546005919081908590811061263057fe5b6000918252602080832090910154600160a060020a031683528201929092526040908101822092909255815180830190925280546004929182918590811061267457fe5b60009182526020918290200154600160a060020a031682520160039052815460018101808455600093845260209384902083519201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390931692909217808355938301519093829060a060020a60ff02191660a060020a8360038111156126f757fe5b02179055505050507f5c7c83802ef5601aed89f3f4e4ab42298ecf8ac3fe099adad5712fc65ba9676d60008281548110151561272f57fe5b6000918252602091829020015460408051600160a060020a03909216825260039282019290925281519081900390910190a15b6001016125ca565b50565b600e5460ff1690565b61277e613d3c565b15612c495760006127c489898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b9050600260008a8a6040516020018083838082843780830192505050925050506040516020818303038152906040528051906020012081526020019081526020016000205460001415156129cd5760018080548390811061282157fe5b600091825260209091206004600590920201015460ff16600781111561284357fe5b148061287e57506005600180548390811061285a57fe5b600091825260209091206004600590920201015460ff16600781111561287c57fe5b145b806128b857506003600180548390811061289457fe5b600091825260209091206004600590920201015460ff1660078111156128b657fe5b145b806128f25750600660018054839081106128ce57fe5b600091825260209091206004600590920201015460ff1660078111156128f057fe5b145b151561294a57600180548290811061290657fe5b6000918252602080832060046005909302019190910154838352600b9091526040909120805460ff9092169160ff1916600183600781111561294457fe5b02179055505b600660018281548110151561295b57fe5b60009182526020909120600460059092020101805460ff1916600183600781111561298257fe5b02179055506129c689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b9050612bde565b60038054600101908190556040516002906000908c908c9060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600160a0604051908101604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250604080516020601f880181900481028201810190925286815291810191908790879081908401838280828437600092018290525093855250506006602093840152508354600181018086559482529082902083518051600590930290910192612b4d92849290910190613e27565b506020828101518051612b669260018501920190613e27565b5060408201518051612b82916002840191602090910190613e27565b5060608201518051612b9e916003840191602090910190613e27565b50608082015160048201805460ff19166001836007811115612bbc57fe5b02179055505050600091825250600b60205260409020805460ff191690556003545b612be781613d59565b7fb249ebebf429f1c79f3c9663998b3e22d45f242de6527c4a95e41d4d28115d74898960405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505b5050505050505050565b60095490565b6000612c6482613cba565b600160a060020a03831660009081526008602052604090205490915015612cce576001600782815481101515612c9657fe5b6000918252602090912001805460a060020a60ff02191660a060020a836001811115612cbe57fe5b0217905550600a80546000190190555b5050565b6060806060806000600186815481101515612ce957fe5b9060005260206000209060050201600001600187815481101515612d0957fe5b9060005260206000209060050201600101600188815481101515612d2957fe5b9060005260206000209060050201600201600189815481101515612d4957fe5b906000526020600020906005020160030160018a815481101515612d6957fe5b600091825260209182902060046005909202010154855460408051601f6002600019600186161561010002019094169390930492830185900485028101850190915281815260ff90921692879190830182828015612e085780601f10612ddd57610100808354040283529160200191612e08565b820191906000526020600020905b815481529060010190602001808311612deb57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015612e965780601f10612e6b57610100808354040283529160200191612e96565b820191906000526020600020905b815481529060010190602001808311612e7957829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295995088945092508401905082828015612f245780601f10612ef957610100808354040283529160200191612f24565b820191906000526020600020905b815481529060010190602001808311612f0757829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015612fb25780601f10612f8757610100808354040283529160200191612fb2565b820191906000526020600020905b815481529060010190602001808311612f9557829003601f168201915b505050505091509450945094509450945091939590929450565b600160a060020a03811660009081526008602052604081205415801590613028575060006007612ffb84613cba565b8154811061300557fe5b60009182526020909120015460a060020a900460ff16600181111561302657fe5b145b1561303557506001610e33565b506000919050565b60035490565b600061304e83613e08565b600160a060020a038416600090815260056020526040902054909150156130b1578160048281548110151561307f57fe5b6000918252602090912001805460a060020a60ff02191660a060020a8360038111156130a757fe5b0217905550613169565b6006805460010190819055600160a060020a03841660008181526005602090815260409182902093909355805180820190915290815260049181018460038111156130f857fe5b9052815460018101808455600093845260209384902083519201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390931692909217808355938301519093829060a060020a60ff02191660a060020a83600381111561316057fe5b02179055505050505b7f5c7c83802ef5601aed89f3f4e4ab42298ecf8ac3fe099adad5712fc65ba9676d83836040518083600160a060020a0316600160a060020a031681526020018260038111156131b457fe5b60ff1681526020019250505060405180910390a1505050565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060405185516002955091935085925060209081019182918401908083835b6020831061323c5780518252601f19909201916020918201910161321d565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054600014806132a75750600061329a82611614565b60078111156132a557fe5b145b15156132fd576040805160e560020a62461bcd02815260206004820152601460248201527f456e6f646520697320696e20746865206c697374000000000000000000000000604482015290519081900360640190fd5b600e5460ff1615156135055760038054600101908190556040516002906000908c908c9060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600160a0604051908101604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250604080516020601f88018190048102820181019092528681529181019190879087908190840183828082843760009201829052509385525050600260209384015250835460018101808655948252908290208351805160059093029091019261348992849290910190613e27565b5060208281015180516134a29260018501920190613e27565b50604082015180516134be916002840191602090910190613e27565b50606082015180516134da916003840191602090910190613e27565b50608082015160048201805460ff191660018360078111156134f857fe5b02179055505050506138c6565b61350d613d3c565b156138c657600260008a8a604051602001808383808284378083019250505092505050604051602081830303815290604052805190602001208152602001908152602001600020546000141515613649576001806135a08b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b815481106135aa57fe5b60009182526020909120600460059092020101805460ff191660018360078111156135d157fe5b02179055506000600b600061361b8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b81526020810191909152604001600020805460ff1916600183600781111561363f57fe5b021790555061385a565b60038054600101908190556040516002906000908c908c9060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600160a0604051908101604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250604080516020601f8801819004810282018101909252868152918101919087908790819084018382808284376000920182905250938552505060016020938401819052855490810180875595835291839020845180516005909402909101936137c993859350910190613e27565b5060208281015180516137e29260018501920190613e27565b50604082015180516137fe916002840191602090910190613e27565b506060820151805161381a916003840191602090910190613e27565b50608082015160048201805460ff1916600183600781111561383857fe5b0217905550506003546000908152600b60205260409020805460ff1916905550505b613865600354613d59565b7faddedf3fcf588a85e0b0c3210c30da3f5597ae35221859f7e19427397a2ba80a898960405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15b505050505050505050565b6000806007838154811015156138e357fe5b60009182526020909120015460078054600160a060020a0390921691859081106115ed57fe5b600a5490565b613917613d3c565b15612cce57600461395d83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561396857fe5b146139a75760405160e560020a62461bcd028152600401808060200182810382526025815260200180613f5f6025913960400191505060405180910390fd5b60006139e883838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2d92505050565b6000818152600b60205260409020805460ff191660041790556001805491925060059183908110613a1557fe5b60009182526020909120600460059092020101805460ff19166001836007811115613a3c57fe5b0217905550613a4a81613d59565b7f7b961104d9e9db7d30803aff3fa117bc41799d2faa2d2e339cf1a1f3513b0eef838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505050565b6000613aba82613cba565b600160a060020a03831660009081526008602052604090205490915015613b5f5760016007805483908110613aeb57fe5b60009182526020909120015460a060020a900460ff166001811115613b0c57fe5b1415613b5a576000600782815481101515613b2357fe5b6000918252602090912001805460a060020a60ff02191660a060020a836001811115613b4b57fe5b0217905550600a805460010190555b612cce565b60098054600190810191829055600160a060020a038481166000818152600860209081526040808320969096558551808701909652918552908401818152600780548086018083559190935285517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909301805473ffffffffffffffffffffffffffffffffffffffff191693909416929092178084559051919493839160a060020a60ff0219169060a060020a908490811115613c1857fe5b021790555050600a8054600101905550505050565b6000600160026000846040516020018082805190602001908083835b60208310613c685780518252601f199092019160209182019101613c49565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054039050919050565b600160a060020a03166000908152600860205260409020546000190190565b6000908152600d6020908152604080832080546001908101909155600c8352818420338552909252909120805460ff19169091179055565b600a546000828152600d60205260408120549091829160029091041015613d36575060015b92915050565b6000600a5460001415613d5157506000611611565b506001611611565b6000818152600d602052604081208190555b600754811015612cce5760006007805483908110613d8557fe5b60009182526020909120015460a060020a900460ff166001811115613da657fe5b1415613e00576000828152600c602052604081206007805483919085908110613dcb57fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790555b600101613d6b565b600160a060020a03166000908152600560205260409020546000190190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613e6857805160ff1916838001178555613e95565b82800160010185558215613e95579182015b82811115613e95578251825591602001919060010190613e7a565b50613ea1929150613ea5565b5090565b61161191905b80821115613ea15760008155600101613eab56fe4e6f6465206e65656420746f20626520696e2050656e64696e67417070726f76616c20737461747573496e76616c69642063616c6c3a204e6574776f726b20626f6f7420757020636f6d706c657465644e6f6465206e65656420746f20626520696e2050656e64696e67426c61636b6c697374696e67207374617475734e6f6465206e65656420746f20626520696e20417070726f766564207374617475734e6f6465206e65656420746f20626520696e204465616374697661746564207374617475734163636f756e742063616e206e6f7420766f74650000000000000000000000004e6f6465206e65656420746f20626520696e2050656e64696e67446561637469766174696f6e207374617475734e6f6465206e65656420746f20626520696e2050656e64696e6741637469766174696f6e207374617475734e6f64652063616e206e6f7420646f75626c6520766f74650000000000000000a165627a7a72305820d814eac5646e9ca2ddce56fd027aa3195e2250ea647d55127a5ac7be51020deb0029 \ No newline at end of file +608060405234801561001057600080fd5b50600436106101e1576000357c01000000000000000000000000000000000000000000000000000000009004806349f2545b11610116578063b81c806a116100b4578063d07bff0c1161008e578063d07bff0c14610d3a578063d12d44dc14610d76578063e51008e114610d7e578063f4ab9adf14610dee576101e1565b8063b81c806a14610b9d578063c6962b9914610ba5578063c7ab7ccf14610bd4576101e1565b806384865b66116100f057806384865b6614610b2c57806386c1ff6814610b3457806397c07a9b14610b5a578063a7771ee314610b77576101e1565b806349f2545b146109b65780634cbfa82e146109be57806360514a5a146109c6576101e1565b8063397eeccb1161018357806344478e791161015d57806344478e791461085e57806347b8fe571461086657806347dd4953146108d6578063487363f914610946576101e1565b8063397eeccb146104bf5780633f0e0e4714610589578063420c26de146107ee576101e1565b806314a945e5116101bf57806314a945e51461038457806321c67088146103f65780632a0b261714610466578063309e36ef146104b7576101e1565b8063069953a7146101e65780630fdc21501461029e57806311174a2914610363575b600080fd5b61028c600480360360208110156101fc57600080fd5b81019060208101813564010000000081111561021757600080fd5b82018360208201111561022957600080fd5b8035906020019184600183028401116401000000008311171561024b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e14945050505050565b60408051918252519081900360200190f35b61034f600480360360408110156102b457600080fd5b8101906020810181356401000000008111156102cf57600080fd5b8201836020820111156102e157600080fd5b8035906020019184600183028401116401000000008311171561030357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a03169150610e389050565b604080519115158252519081900360200190f35b61036b610e73565b6040805192835260208301919091528051918290030190f35b6103f46004803603602081101561039a57600080fd5b8101906020810181356401000000008111156103b557600080fd5b8201836020820111156103c757600080fd5b803590602001918460018302840111640100000000831117156103e957600080fd5b509092509050610e7d565b005b6103f46004803603602081101561040c57600080fd5b81019060208101813564010000000081111561042757600080fd5b82018360208201111561043957600080fd5b8035906020019184600183028401116401000000008311171561045b57600080fd5b509092509050611358565b6104836004803603602081101561047c57600080fd5b50356115b5565b604051600160a060020a0383168152602081018260038111156104a257fe5b60ff1681526020019250505060405180910390f35b61028c61160d565b610565600480360360208110156104d557600080fd5b8101906020810181356401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611614945050505050565b6040518082600781111561057557fe5b60ff16815260200191505060405180910390f35b61062f6004803603602081101561059f57600080fd5b8101906020810181356401000000008111156105ba57600080fd5b8201836020820111156105cc57600080fd5b803590602001918460018302840111640100000000831117156105ee57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611725945050505050565b604051808060200180602001806020018060200186600781111561064f57fe5b60ff16815260200185810385528a818151815260200191508051906020019080838360005b8381101561068c578181015183820152602001610674565b50505050905090810190601f1680156106b95780820380516001836020036101000a031916815260200191505b5085810384528951815289516020918201918b019080838360005b838110156106ec5781810151838201526020016106d4565b50505050905090810190601f1680156107195780820380516001836020036101000a031916815260200191505b5085810383528851815288516020918201918a019080838360005b8381101561074c578181015183820152602001610734565b50505050905090810190601f1680156107795780820380516001836020036101000a031916815260200191505b50858103825287518152875160209182019189019080838360005b838110156107ac578181015183820152602001610794565b50505050905090810190601f1680156107d95780820380516001836020036101000a031916815260200191505b50995050505050505050505060405180910390f35b6103f46004803603602081101561080457600080fd5b81019060208101813564010000000081111561081f57600080fd5b82018360208201111561083157600080fd5b8035906020019184600183028401116401000000008311171561085357600080fd5b509092509050611aee565b61034f611d4b565b6103f46004803603602081101561087c57600080fd5b81019060208101813564010000000081111561089757600080fd5b8201836020820111156108a957600080fd5b803590602001918460018302840111640100000000831117156108cb57600080fd5b509092509050611da9565b6103f4600480360360208110156108ec57600080fd5b81019060208101813564010000000081111561090757600080fd5b82018360208201111561091957600080fd5b8035906020019184600183028401116401000000008311171561093b57600080fd5b50909250905061205e565b6103f46004803603602081101561095c57600080fd5b81019060208101813564010000000081111561097757600080fd5b82018360208201111561098957600080fd5b803590602001918460018302840111640100000000831117156109ab57600080fd5b5090925090506123a1565b6103f461262e565b61034f61282f565b6103f4600480360360808110156109dc57600080fd5b8101906020810181356401000000008111156109f757600080fd5b820183602082011115610a0957600080fd5b80359060200191846001830284011164010000000083111715610a2b57600080fd5b919390929091602081019035640100000000811115610a4957600080fd5b820183602082011115610a5b57600080fd5b80359060200191846001830284011164010000000083111715610a7d57600080fd5b919390929091602081019035640100000000811115610a9b57600080fd5b820183602082011115610aad57600080fd5b80359060200191846001830284011164010000000083111715610acf57600080fd5b919390929091602081019035640100000000811115610aed57600080fd5b820183602082011115610aff57600080fd5b80359060200191846001830284011164010000000083111715610b2157600080fd5b509092509050612838565b61028c612d15565b6103f460048036036020811015610b4a57600080fd5b5035600160a060020a0316612d1b565b61062f60048036036020811015610b7057600080fd5b5035612d94565b61034f60048036036020811015610b8d57600080fd5b5035600160a060020a031661308e565b61028c6130ff565b6103f460048036036040811015610bbb57600080fd5b508035600160a060020a0316906020013560ff16613105565b6103f460048036036080811015610bea57600080fd5b810190602081018135640100000000811115610c0557600080fd5b820183602082011115610c1757600080fd5b80359060200191846001830284011164010000000083111715610c3957600080fd5b919390929091602081019035640100000000811115610c5757600080fd5b820183602082011115610c6957600080fd5b80359060200191846001830284011164010000000083111715610c8b57600080fd5b919390929091602081019035640100000000811115610ca957600080fd5b820183602082011115610cbb57600080fd5b80359060200191846001830284011164010000000083111715610cdd57600080fd5b919390929091602081019035640100000000811115610cfb57600080fd5b820183602082011115610d0d57600080fd5b80359060200191846001830284011164010000000083111715610d2f57600080fd5b50909250905061328f565b610d5760048036036020811015610d5057600080fd5b5035613993565b604051600160a060020a0383168152602081018260018111156104a257fe5b61028c6139cb565b6103f460048036036020811015610d9457600080fd5b810190602081018135640100000000811115610daf57600080fd5b820183602082011115610dc157600080fd5b80359060200191846001830284011164010000000083111715610de357600080fd5b5090925090506139d1565b6103f460048036036020811015610e0457600080fd5b5035600160a060020a0316613b71565b600080610e2083613cef565b6000908152600d60205260409020549150505b919050565b600080610e4484613cef565b6000908152600c60209081526040808320600160a060020a038716845290915290205460ff1691505092915050565b600954600a549091565b600080610e8933613d7c565b3360009081526008602052604090205490915015801590610ed8575060006007805483908110610eb557fe5b60009182526020909120015460a060020a900460ff166001811115610ed657fe5b145b15610ee257600191505b811515610f27576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614046833981519152604482015290519081900360640190fd5b6005610f6885858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115610f7357fe5b14610fb25760405160e560020a62461bcd02815260040180806020018281038252602b815260200180614093602b913960400191505060405180910390fd5b6000610ff385858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600c6020908152604080832033845290915290205490915060ff1615611056576040805160e560020a62461bcd02815260206004820152601860248201526000805160206140be833981519152604482015290519081900360640190fd5b61105f81613d9b565b61106881613dd3565b1561135157600260018281548110151561107e57fe5b60009182526020909120600460059092020101805460ff191660018360078111156110a557fe5b02179055507fd277bd13c43f8ddd20884d02df780044b5faaa1d9e2d4db2d0416fdfcb65d6bf6001828154811015156110da57fe5b90600052602060002090600502016000016001838154811015156110fa57fe5b906000526020600020906005020160010160018481548110151561111a57fe5b906000526020600020906005020160020160018581548110151561113a57fe5b906000526020600020906005020160030160405180806020018060200180602001806020018581038552898181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156111e05780601f106111b5576101008083540402835291602001916111e0565b820191906000526020600020905b8154815290600101906020018083116111c357829003601f168201915b50508581038452885460026000196101006001841615020190911604808252602090910190899080156112545780601f1061122957610100808354040283529160200191611254565b820191906000526020600020905b81548152906001019060200180831161123757829003601f168201915b50508581038352875460026000196101006001841615020190911604808252602090910190889080156112c85780601f1061129d576101008083540402835291602001916112c8565b820191906000526020600020905b8154815290600101906020018083116112ab57829003601f168201915b505085810382528654600260001961010060018416150201909116048082526020909101908790801561133c5780601f106113115761010080835404028352916020019161133c565b820191906000526020600020905b81548152906001019060200180831161131f57829003601f168201915b50509850505050505050505060405180910390a15b5050505050565b60008061136433613d7c565b33600090815260086020526040902054909150158015906113b357506000600780548390811061139057fe5b60009182526020909120015460a060020a900460ff1660018111156113b157fe5b145b156113bd57600191505b811515611402576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614046833981519152604482015290519081900360640190fd5b600161144385858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561144e57fe5b1461148d5760405160e560020a62461bcd028152600401808060200182810382526029815260200180613f826029913960400191505060405180910390fd5b60006114ce85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600c6020908152604080832033845290915290205490915060ff1615611531576040805160e560020a62461bcd02815260206004820152601860248201526000805160206140be833981519152604482015290519081900360640190fd5b61153a81613d9b565b61154381613dd3565b1561135157600260018281548110151561155957fe5b60009182526020909120600460059092020101805460ff1916600183600781111561158057fe5b02179055507fc6d86deaa3b3cf7c374cfd405aae9f08571fce2bf6ccfe8f98a399cda8960a986001828154811015156110da57fe5b6000806004838154811015156115c757fe5b60009182526020909120015460048054600160a060020a0390921691859081106115ed57fe5b600091825260209091200154909460a060020a90910460ff169350915050565b6004545b90565b60008160026000826040516020018082805190602001908083835b6020831061164e5780518252601f19909201916020918201910161162f565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001208152602001908152602001600020546000141515156116f2576040805160e560020a62461bcd02815260206004820152601860248201527f456e6f6465206973206e6f7420696e20746865206c6973740000000000000000604482015290519081900360640190fd5b60016116fd84613cef565b8154811061170757fe5b600091825260209091206005909102016004015460ff169392505050565b60608060608060008061173787613cef565b905060026000886040516020018082805190602001908083835b602083106117705780518252601f199092019160209182019101611751565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051602081830303815290604052805190602001208152602001908152602001600020546000141515611ab15760018054829081106117d157fe5b90600052602060002090600502016000016001828154811015156117f157fe5b906000526020600020906005020160010160018381548110151561181157fe5b906000526020600020906005020160020160018481548110151561183157fe5b906000526020600020906005020160030160018581548110151561185157fe5b600091825260209182902060046005909202010154855460408051601f6002600019600186161561010002019094169390930492830185900485028101850190915281815260ff909216928791908301828280156118f05780601f106118c5576101008083540402835291602001916118f0565b820191906000526020600020905b8154815290600101906020018083116118d357829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a508994509250840190508282801561197e5780601f106119535761010080835404028352916020019161197e565b820191906000526020600020905b81548152906001019060200180831161196157829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295995088945092508401905082828015611a0c5780601f106119e157610100808354040283529160200191611a0c565b820191906000526020600020905b8154815290600101906020018083116119ef57829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295985087945092508401905082828015611a9a5780601f10611a6f57610100808354040283529160200191611a9a565b820191906000526020600020905b815481529060010190602001808311611a7d57829003601f168201915b505050505091509550955095509550955050611ae5565b5050604080516020818101835260008083528351808301855281815284519283019094528082528897509195509193509091505b91939590929450565b600080611afa33613d7c565b3360009081526008602052604090205490915015801590611b49575060006007805483908110611b2657fe5b60009182526020909120015460a060020a900460ff166001811115611b4757fe5b145b15611b5357600191505b811515611b98576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614046833981519152604482015290519081900360640190fd5b6003611bd985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115611be457fe5b14611c235760405160e560020a62461bcd02815260040180806020018281038252602d815260200180614066602d913960400191505060405180910390fd5b6000611c6485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600c6020908152604080832033845290915290205490915060ff1615611cc7576040805160e560020a62461bcd02815260206004820152601860248201526000805160206140be833981519152604482015290519081900360640190fd5b611cd081613d9b565b611cd981613dd3565b15611351576004600182815481101515611cef57fe5b60009182526020909120600460059092020101805460ff19166001836007811115611d1657fe5b02179055507fd5fa0ecdea15b332dd0a270c65234bc4aee212edf2ed62eb2fd182ef55ca98a16001828154811015156110da57fe5b600e5460009060ff1615611d935760405160e560020a62461bcd028152600401808060200182810382526027815260200180613fab6027913960400191505060405180910390fd5b50600e805460ff19166001179081905560ff1690565b81818080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060405185516002955091935085925060209081019182918401908083835b60208310611e185780518252601f199092019160209182019101611df9565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054600014151515611ebc576040805160e560020a62461bcd02815260206004820152601860248201527f456e6f6465206973206e6f7420696e20746865206c6973740000000000000000604482015290519081900360640190fd5b611ec4613dfe565b15612059576002611f0a84848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115611f1557fe5b14611f545760405160e560020a62461bcd028152600401808060200182810382526022815260200180613fff6022913960400191505060405180910390fd5b6000611f9584848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600b60205260409020805460ff191660021790556001805491925060039183908110611fc257fe5b60009182526020909120600460059092020101805460ff19166001836007811115611fe957fe5b0217905550611ff781613e1b565b7f2b5689b33f48f1dcbda2084e130a9bee7b3bf14dc767ea74cbdf3e5fffb118e4848460405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505b505050565b60008061206a33613d7c565b33600090815260086020526040902054909150158015906120b957506000600780548390811061209657fe5b60009182526020909120015460a060020a900460ff1660018111156120b757fe5b145b156120c357600191505b811515612108576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614046833981519152604482015290519081900360640190fd5b600161214985858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561215457fe5b14806121a95750600561219c85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b60078111156121a757fe5b145b806121fd575060036121f085858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b60078111156121fb57fe5b145b806122515750600661224485858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561224f57fe5b145b15156122a7576040805160e560020a62461bcd02815260206004820152601e60248201527f4e6f646520737461747573206d75737420626520696e2070656e64696e670000604482015290519081900360640190fd5b60006122e885858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600b60205260409020546001805492935060ff909116918390811061230e57fe5b60009182526020909120600460059092020101805460ff1916600183600781111561233557fe5b02179055507f94e103729ee0a5bdbfe00e23d13d932dca50dd85b3ad4d85d1299a81583dda93858560405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15050505050565b6000806123ad33613d7c565b33600090815260086020526040902054909150158015906123fc5750600060078054839081106123d957fe5b60009182526020909120015460a060020a900460ff1660018111156123fa57fe5b145b1561240657600191505b81151561244b576040805160e560020a62461bcd0281526020600482015260146024820152600080516020614046833981519152604482015290519081900360640190fd5b600661248c85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b600781111561249757fe5b146124d65760405160e560020a62461bcd02815260040180806020018281038252602d815260200180613fd2602d913960400191505060405180910390fd5b600061251785858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600c6020908152604080832033845290915290205490915060ff161561257a576040805160e560020a62461bcd02815260206004820152601860248201526000805160206140be833981519152604482015290519081900360640190fd5b6000818152600c602090815260408083203384528252808320805460ff19166001908117909155848452600d909252909120805490910190556125bc81613dd3565b156113515760076001828154811015156125d257fe5b60009182526020909120600460059092020101805460ff191660018360078111156125f957fe5b02179055507fe1b239bf9d5854aeca74dfeac25d6ce470230bdb5f0eec48713c4375becfe97e6001828154811015156110da57fe5b600e5460ff1615612689576040805160e560020a62461bcd02815260206004820181905260248201527f6e6574776f726b206163636f756e747320616c726561647920626f6f74207570604482015290519081900360640190fd5b60005b60005481101561282c576005600080838154811015156126a857fe5b6000918252602080832090910154600160a060020a03168352820192909252604001902054151561282457600680546001019081905560008054600591908190859081106126f257fe5b6000918252602080832090910154600160a060020a031683528201929092526040908101822092909255815180830190925280546004929182918590811061273657fe5b60009182526020918290200154600160a060020a031682520160039052815460018101808455600093845260209384902083519201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390931692909217808355938301519093829060a060020a60ff02191660a060020a8360038111156127b957fe5b02179055505050507f5c7c83802ef5601aed89f3f4e4ab42298ecf8ac3fe099adad5712fc65ba9676d6000828154811015156127f157fe5b6000918252602091829020015460408051600160a060020a03909216825260039282019290925281519081900390910190a15b60010161268c565b50565b600e5460ff1690565b612840613dfe565b15612d0b57600061288689898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b9050600260008a8a604051602001808383808284378083019250505092505050604051602081830303815290604052805190602001208152602001908152602001600020546000141515612a8f576001808054839081106128e357fe5b600091825260209091206004600590920201015460ff16600781111561290557fe5b148061294057506005600180548390811061291c57fe5b600091825260209091206004600590920201015460ff16600781111561293e57fe5b145b8061297a57506003600180548390811061295657fe5b600091825260209091206004600590920201015460ff16600781111561297857fe5b145b806129b457506006600180548390811061299057fe5b600091825260209091206004600590920201015460ff1660078111156129b257fe5b145b1515612a0c5760018054829081106129c857fe5b6000918252602080832060046005909302019190910154838352600b9091526040909120805460ff9092169160ff19166001836007811115612a0657fe5b02179055505b6006600182815481101515612a1d57fe5b60009182526020909120600460059092020101805460ff19166001836007811115612a4457fe5b0217905550612a8889898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b9050612ca0565b60038054600101908190556040516002906000908c908c9060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600160a0604051908101604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250604080516020601f880181900481028201810190925286815291810191908790879081908401838280828437600092018290525093855250506006602093840152508354600181018086559482529082902083518051600590930290910192612c0f92849290910190613ee9565b506020828101518051612c289260018501920190613ee9565b5060408201518051612c44916002840191602090910190613ee9565b5060608201518051612c60916003840191602090910190613ee9565b50608082015160048201805460ff19166001836007811115612c7e57fe5b02179055505050600091825250600b60205260409020805460ff191690556003545b612ca981613e1b565b7fb249ebebf429f1c79f3c9663998b3e22d45f242de6527c4a95e41d4d28115d74898960405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505b5050505050505050565b60095490565b6000612d2682613d7c565b600160a060020a03831660009081526008602052604090205490915015612d90576001600782815481101515612d5857fe5b6000918252602090912001805460a060020a60ff02191660a060020a836001811115612d8057fe5b0217905550600a80546000190190555b5050565b6060806060806000600186815481101515612dab57fe5b9060005260206000209060050201600001600187815481101515612dcb57fe5b9060005260206000209060050201600101600188815481101515612deb57fe5b9060005260206000209060050201600201600189815481101515612e0b57fe5b906000526020600020906005020160030160018a815481101515612e2b57fe5b600091825260209182902060046005909202010154855460408051601f6002600019600186161561010002019094169390930492830185900485028101850190915281815260ff90921692879190830182828015612eca5780601f10612e9f57610100808354040283529160200191612eca565b820191906000526020600020905b815481529060010190602001808311612ead57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015612f585780601f10612f2d57610100808354040283529160200191612f58565b820191906000526020600020905b815481529060010190602001808311612f3b57829003601f168201915b5050865460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815295995088945092508401905082828015612fe65780601f10612fbb57610100808354040283529160200191612fe6565b820191906000526020600020905b815481529060010190602001808311612fc957829003601f168201915b5050855460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959850879450925084019050828280156130745780601f1061304957610100808354040283529160200191613074565b820191906000526020600020905b81548152906001019060200180831161305757829003601f168201915b505050505091509450945094509450945091939590929450565b600160a060020a038116600090815260086020526040812054158015906130ea5750600060076130bd84613d7c565b815481106130c757fe5b60009182526020909120015460a060020a900460ff1660018111156130e857fe5b145b156130f757506001610e33565b506000919050565b60035490565b600061311083613eca565b600160a060020a03841660009081526005602052604090205490915015613173578160048281548110151561314157fe5b6000918252602090912001805460a060020a60ff02191660a060020a83600381111561316957fe5b021790555061322b565b6006805460010190819055600160a060020a03841660008181526005602090815260409182902093909355805180820190915290815260049181018460038111156131ba57fe5b9052815460018101808455600093845260209384902083519201805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390931692909217808355938301519093829060a060020a60ff02191660a060020a83600381111561322257fe5b02179055505050505b7f5c7c83802ef5601aed89f3f4e4ab42298ecf8ac3fe099adad5712fc65ba9676d83836040518083600160a060020a0316600160a060020a0316815260200182600381111561327657fe5b60ff1681526020019250505060405180910390a1505050565b87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060405185516002955091935085925060209081019182918401908083835b602083106132fe5780518252601f1990920191602091820191016132df565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054600014806133695750600061335c82611614565b600781111561336757fe5b145b15156133bf576040805160e560020a62461bcd02815260206004820152601460248201527f456e6f646520697320696e20746865206c697374000000000000000000000000604482015290519081900360640190fd5b600e5460ff1615156135c75760038054600101908190556040516002906000908c908c9060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600160a0604051908101604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250604080516020601f88018190048102820181019092528681529181019190879087908190840183828082843760009201829052509385525050600260209384015250835460018101808655948252908290208351805160059093029091019261354b92849290910190613ee9565b5060208281015180516135649260018501920190613ee9565b5060408201518051613580916002840191602090910190613ee9565b506060820151805161359c916003840191602090910190613ee9565b50608082015160048201805460ff191660018360078111156135ba57fe5b0217905550505050613988565b6135cf613dfe565b1561398857600260008a8a60405160200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002054600014151561370b576001806136628b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b8154811061366c57fe5b60009182526020909120600460059092020101805460ff1916600183600781111561369357fe5b02179055506000600b60006136dd8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b81526020810191909152604001600020805460ff1916600183600781111561370157fe5b021790555061391c565b60038054600101908190556040516002906000908c908c9060200180838380828437808301925050509250505060405160208183030381529060405280519060200120815260200190815260200160002081905550600160a0604051908101604052808b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250604080516020601f8c018190048102820181019092528a815291810191908b908b9081908401838280828437600092019190915250505090825250604080516020601f8a0181900481028201810190925288815291810191908990899081908401838280828437600092019190915250505090825250604080516020601f88018190048102820181019092528681529181019190879087908190840183828082843760009201829052509385525050600160209384018190528554908101808755958352918390208451805160059094029091019361388b93859350910190613ee9565b5060208281015180516138a49260018501920190613ee9565b50604082015180516138c0916002840191602090910190613ee9565b50606082015180516138dc916003840191602090910190613ee9565b50608082015160048201805460ff191660018360078111156138fa57fe5b0217905550506003546000908152600b60205260409020805460ff1916905550505b613927600354613e1b565b7faddedf3fcf588a85e0b0c3210c30da3f5597ae35221859f7e19427397a2ba80a898960405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a15b505050505050505050565b6000806007838154811015156139a557fe5b60009182526020909120015460078054600160a060020a0390921691859081106115ed57fe5b600a5490565b6139d9613dfe565b15612d90576004613a1f83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061161492505050565b6007811115613a2a57fe5b14613a695760405160e560020a62461bcd0281526004018080602001828103825260258152602001806140216025913960400191505060405180910390fd5b6000613aaa83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613cef92505050565b6000818152600b60205260409020805460ff191660041790556001805491925060059183908110613ad757fe5b60009182526020909120600460059092020101805460ff19166001836007811115613afe57fe5b0217905550613b0c81613e1b565b7f7b961104d9e9db7d30803aff3fa117bc41799d2faa2d2e339cf1a1f3513b0eef838360405180806020018281038252848482818152602001925080828437600083820152604051601f909101601f19169092018290039550909350505050a1505050565b6000613b7c82613d7c565b600160a060020a03831660009081526008602052604090205490915015613c215760016007805483908110613bad57fe5b60009182526020909120015460a060020a900460ff166001811115613bce57fe5b1415613c1c576000600782815481101515613be557fe5b6000918252602090912001805460a060020a60ff02191660a060020a836001811115613c0d57fe5b0217905550600a805460010190555b612d90565b60098054600190810191829055600160a060020a038481166000818152600860209081526040808320969096558551808701909652918552908401818152600780548086018083559190935285517fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688909301805473ffffffffffffffffffffffffffffffffffffffff191693909416929092178084559051919493839160a060020a60ff0219169060a060020a908490811115613cda57fe5b021790555050600a8054600101905550505050565b6000600160026000846040516020018082805190602001908083835b60208310613d2a5780518252601f199092019160209182019101613d0b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405160208183030381529060405280519060200120815260200190815260200160002054039050919050565b600160a060020a03166000908152600860205260409020546000190190565b6000908152600d6020908152604080832080546001908101909155600c8352818420338552909252909120805460ff19169091179055565b600a546000828152600d60205260408120549091829160029091041015613df8575060015b92915050565b6000600a5460001415613e1357506000611611565b506001611611565b6000818152600d602052604081208190555b600754811015612d905760006007805483908110613e4757fe5b60009182526020909120015460a060020a900460ff166001811115613e6857fe5b1415613ec2576000828152600c602052604081206007805483919085908110613e8d57fe5b600091825260208083209190910154600160a060020a031683528201929092526040019020805460ff19169115159190911790555b600101613e2d565b600160a060020a03166000908152600560205260409020546000190190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613f2a57805160ff1916838001178555613f57565b82800160010185558215613f57579182015b82811115613f57578251825591602001919060010190613f3c565b50613f63929150613f67565b5090565b61161191905b80821115613f635760008155600101613f6d56fe4e6f6465206e65656420746f20626520696e2050656e64696e67417070726f76616c20737461747573496e76616c69642063616c6c3a204e6574776f726b20626f6f7420757020636f6d706c657465644e6f6465206e65656420746f20626520696e2050656e64696e67426c61636b6c697374696e67207374617475734e6f6465206e65656420746f20626520696e20417070726f766564207374617475734e6f6465206e65656420746f20626520696e204465616374697661746564207374617475734163636f756e742063616e206e6f7420766f74650000000000000000000000004e6f6465206e65656420746f20626520696e2050656e64696e67446561637469766174696f6e207374617475734e6f6465206e65656420746f20626520696e2050656e64696e6741637469766174696f6e207374617475734e6f64652063616e206e6f7420646f75626c6520766f74650000000000000000a165627a7a72305820134addaba6bdc88a5bacff22a165b78e0d44bc787d68b088fd447ae72d04c0190029 \ No newline at end of file diff --git a/controls/permission/permission.go b/controls/permission/permission.go index 9edf070f5..5c3c5f56f 100644 --- a/controls/permission/permission.go +++ b/controls/permission/permission.go @@ -475,11 +475,15 @@ func (p *PermissionCtrl) populateInitPermission() error { return err } + // update network status to boot completed err = p.updateNetworkStatus(permissionsSession) if err != nil { return err } + + // set the default access to ReadOnly + types.SetDefaultAccess() } return nil } diff --git a/core/quorum/api.go b/core/quorum/api.go index c81e213cd..0622be1af 100644 --- a/core/quorum/api.go +++ b/core/quorum/api.go @@ -478,18 +478,36 @@ func checkNodeDetails(ps *pbind.PermissionsSession, nodeId string, action PermAc enodeID, discPort, raftPort, ipAddrPort, err := getNodeDetailsFromEnode(nodeId) cnode, err := ps.GetNodeDetails(enodeID) - if err == nil { - if !(strings.Compare(ipAddrPort, cnode.IpAddrPort) == 0 && strings.Compare(discPort, cnode.DiscPort) == 0 && strings.Compare(raftPort, cnode.RaftPort) == 0) { - return errors.New("Details Mismtach"), ErrNodeDetailsMismatch - } - nodeStatus := decodeNodeStatus(cnode.NodeStatus) // if node status is Blacklisted no activities are allowed on the same. if nodeStatus == "Blacklisted" { return errors.New("Cannot propose blacklisted node"), ErrBlacklistedNode } + if nodeStatus == "NotInNetwork" && (action == ProposeNodeDeactivation || action == ProposeNodeActivation){ + return errors.New("operation cannot be performed"), ErrOpNotAllowed + } + + newNode := false; + if nodeStatus == "NotInNetwork" && len(cnode.IpAddrPort) == 0{ + newNode = true + } + detailsMatch := false; + if strings.Compare(ipAddrPort, cnode.IpAddrPort) == 0 && strings.Compare(discPort, cnode.DiscPort) == 0 && strings.Compare(raftPort, cnode.RaftPort) == 0 { + detailsMatch = true + } + // if the node is not in network and is being proposed for blacklisting or as a new node + // allow the operation. For anyother operation, the node will be in the network and all details + // should match + if action == ProposeNode || action == ProposeNodeBlacklisting { + if !newNode && !detailsMatch { + return errors.New("Details Mismtach"), ErrNodeDetailsMismatch + } + } else if !detailsMatch { + return errors.New("Details Mismtach"), ErrNodeDetailsMismatch + } + // if propose action, check if node status allows the operation if ((action == ProposeNode && nodeStatus != "NotInNetwork") || (action == ProposeNodeDeactivation && nodeStatus != "Approved") || @@ -518,9 +536,8 @@ func checkNodeDetails(ps *pbind.PermissionsSession, nodeId string, action PermAc return errors.New("Node already proposed"), ErrNodeProposed } + } - - } return nil, ExecSuccess } @@ -666,7 +683,7 @@ func (s *QuorumControlsAPI) executePermAction(action PermAction, args txArgs) Ex tx, err = ps.BlacklistNode(enodeID) case SetAccountAccess: - if (args.accessType > 4){ + if (args.accessType > 3){ return ErrInvalidAccountAccess } if !checkAccountAccess(args.txa.From, args.acctId, args.accessType) { diff --git a/core/types/permissions_cache.go b/core/types/permissions_cache.go index e28dde967..fa06929dc 100644 --- a/core/types/permissions_cache.go +++ b/core/types/permissions_cache.go @@ -49,12 +49,12 @@ func GetAcctAccess(acctId common.Address) AccessType { return vo.AcctAccess } } - // return DefaultAccess - if AcctMap.Len() == 0 { - return FullAccess - } else { - return ReadOnly - } + return DefaultAccess + // if AcctMap.Len() == 0 { + // return FullAccess + // } else { + // return ReadOnly + // } } func AddOrgKey(orgId string, key string) {