LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAqgKgogKiBDb250cmlidXRvcnM6CiAqICAgIElCTSBDb3Jwb3JhdGlvbiAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KcGFja2FnZSBvcmcuZWNsaXBzZS53c3Quc2VydmVyLnVpLmludGVybmFsOwoKaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7Ci8qKgogKiBUcmFuc2xhdGVkIG1lc3NhZ2VzLgogKi8KcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JBZGREZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yVmVyc2lvbkxldmVsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgbG9hZGluZ1Rhc2s7CglwdWJsaWMgc3RhdGljIFN0cmluZyBjcmVhdGVTZXJ2ZXJQcm9qZWN0RGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlZmF1bHRTZXJ2ZXJQcm9qZWN0TmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHRlcm1pbmF0ZVNlcnZlckRpYWxvZ01lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb25pdG9yUG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlckRpYWxvZ1RpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGVsZXRlU2VydmVyRGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlckRpYWxvZ01lc3NhZ2VNYW55OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGVsZXRlU2VydmVyRGlhbG9nTG9vc2VDb25maWd1cmF0aW9uczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlckRpYWxvZ1J1bm5pbmdTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkZWxldGVTZXJ2ZXJEaWFsb2dSdW5uaW5nU2VydmVyU3RvcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlclRhc2s7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvckNvdWxkTm90Q3JlYXRlU2VydmVyUHJvamVjdFN0YXR1czsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ1N0b3BwaW5nU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2F2aW5nVGFzazsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclNhdmVFcnJvckRpYWxvZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclNhdmVFcnJvck1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWFkT25seUZpbGVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JFZGl0b3I7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JVbmRvRGlzYWJsZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JVbmRvRW5hYmxlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlZG9EaXNhYmxlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlZG9FbmFibGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVzb3VyY2VEZWxldGVUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlc291cmNlRGVsZXRlU2VydmVyTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlc291cmNlRGVsZXRlU2F2ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlc291cmNlRGlydHlEaWFsb2dNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6U2VsZWN0Q2xpZW50VGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpTZWxlY3RDbGllbnREZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlc291cmNlRGlydHlEaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlc291cmNlRGlydHlEaWFsb2dDb250aW51ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1J1bnRpbWVXaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckxhdW5jaERlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyTGF1bmNoU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyTGF1bmNoSG9zdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckxhdW5jaFJ1bnRpbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvck5vU2VydmVyU2VsZWN0ZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvclNlcnZlckFscmVhZHlSdW5uaW5nOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JJbnZhbGlkU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyTGF1bmNoQ29uZmlndXJhdGlvblRhYjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelNlbGVjdENsaWVudE1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvckNvdWxkTm90Q3JlYXRlU2VydmVyUHJvamVjdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yRGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JWYWxpZGF0ZUVkaXRGYWlsdXJlTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZQcm9qZWN0RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmUHJvamVjdE5vdE1vZHVsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZQcm9qZWN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3REZWZhdWx0U2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3ROb3RDb25maWd1cmVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3ROb1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yQ291bGROb3RTYXZlUHJlZmVyZW5jZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZlcmVuY2VSdW50aW1lc0Rlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWRkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlbW92ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlYXJjaDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ1J1bnRpbWVTZWFyY2hNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nUnVudGltZVNlYXJjaFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nUnVudGltZVNlYXJjaFByb2dyZXNzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgaW5mb05vUnVudGltZXNGb3VuZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekVkaXRSdW50aW1lV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmZXJlbmNlUnVudGltZXNUYWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ1J1bnRpbWVJblVzZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlZmF1bHREaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZlcmVuY2VSdW50aW1lc1RpdGxlTG9uZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUYXJnZXRDb21ibzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUYXJnZXROb25lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcnVudGltZVRhcmdldE5ld1J1bnRpbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVGFyZ2V0Q2hpbGRyZW47CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVGFyZ2V0UnVudGltZVByZWZlcmVuY2VzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9QdWJsaXNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9QdWJsaXNoTG9jYWw7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2hMb2NhbFRpbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2hSZW1vdGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2hSZW1vdGVUaW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9SZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb21wdElycmV2ZXJzaWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZTaG93T25BY3Rpdml0eTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZTYXZlRWRpdG9yc0dyb3VwOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlNhdmVFZGl0b3JzTmV2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmU2F2ZUVkaXRvcnNQcm9tcHQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmU2F2ZUVkaXRvcnNBdXRvc2F2ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkVmVyeVNsb3c7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkU2xvdzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWRBdmVyYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZk1hY2hpbmVTcGVlZEZhc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkVmVyeUZhc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25OZXc7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25OZXdTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWJ1Z1Rvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWJ1ZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0YXJ0VG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUHJvZmlsZVRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Qcm9maWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUmVzdGFydFRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25SZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUHVibGlzaFRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25QdWJsaXNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uRGVsZXRlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdGVybWluYXRlU2VydmVyRGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWJ1Z09uU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUHJvZmlsZU9uU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUnVuT25TZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25SZXN0YXJ0TW9kdWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uVXBkYXRlU3RhdHVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uTW92ZVNlcnZlclRvTWV0YWRhdGE7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb3ZlU2VydmVyVG9Xb3Jrc3BhY2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBqb2JVcGRhdGVTdGF0dXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dBZGRSZW1vdmVNb2R1bGVzTm9uZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblNldE5ld1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yTm9Nb2R1bGVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9kZVdhcm5pbmdEZWJ1ZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vZGVXYXJuaW5nUHJvZmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yTm9TZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvck5vQ2xpZW50OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9kZVdhcm5pbmdSZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9kZVdhcm5pbmdDb250aW51ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGhvc3RuYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZU1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVBdmFpbGFibGVMaXN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlRGVwbG95ZWRMaXN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlQWRkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlUmVtb3ZlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlQWRkQWxsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlUmVtb3ZlQWxsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6VGFza1RpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6VGFza0Rlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6VGFza05vbmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpFcnJvckludmFsaWRGb2xkZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpFcnJvckNsb3NlZFByb2plY3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBjcmVhdGVTZXJ2ZXJQcm9qZWN0RGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlckRlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyU2VsZWN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyTWFudWFsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6U2VsZWN0U2VydmVyUHJlZmVycmVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyRXhpc3Rpbmc7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJSdW50aW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6RXJyb3JTZXJ2ZXJDcmVhdGlvbkVycm9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6UnVuT25TZXJ2ZXJUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekRlYnVnT25TZXJ2ZXJUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelByb2ZpbGVPblNlcnZlclRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3UnVudGltZVRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3UnVudGltZURlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcGVyZm9ybWluZ1Rhc2tzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJXaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelNlbGVjdENsaWVudFdpemFyZFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6VGFza1dpemFyZFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld0J5OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29sdW1uU3RhdHVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbHVtblR5cGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29sdW1uUG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb2x1bW5Nb25pdG9yUG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb2x1bW5Db250ZW50VHlwZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc3RvcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JNb25pdG9yUG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb250ZW50VHlwZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb250ZW50VHlwZUFsbDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHN0YXJ0ZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzdG9wcGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbnRlbnRUeXBlV2ViOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbnRlbnRUeXBlV2ViU2VydmljZXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBjb2x1bW5OYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgY29sdW1uVHlwZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUeXBlQ29tcFRyZWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVHlwZUNvbXBEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIG5hbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2ZW5kb3I7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2ZXJzaW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgbW9kdWxlU3VwcG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlclNlbGVjdEV4aXN0aW5nOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgaG9zdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVsZW1lbnRVbmtub3duTmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlclR5cGVDb21wRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U2VydmVyczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdOb01vZHVsZXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb25pdG9yUHJvcGVydGllczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk9wZW47CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1czsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uU3RvcFRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25TdG9wOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uTW9kaWZ5TW9kdWxlc1Rvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb2RpZnlNb2R1bGVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uTW9uaXRvcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jT2theTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUmVzdGFydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUHVibGlzaDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUmVzdGFydFB1Ymxpc2g7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1B1Ymxpc2hpbmc7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY09rYXkyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNSZXN0YXJ0MjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUHVibGlzaDI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1Jlc3RhcnRQdWJsaXNoMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUHVibGlzaGluZzI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JTZXJ2ZXJFZGl0b3I7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JQcm9tcHRJcnJldmVyc2libGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZW5hbWVGaWxlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yRWRpdG9yQ2FudFNhdmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWFkT25seTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvcldyaXRhYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVzb3VyY2VNb2RpZmllZFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVhZE9ubHlNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yU2VydmVyTW9kaWZpZWRNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVzb3VyY2VXYXJuVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZVdhcm5NZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdQYWdlVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0dlbmVyYWxTZWN0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdHZW5lcmFsRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlck5hbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlckhvc3RuYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdSdW50aW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdSdW50aW1lRWRpdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3U2VydmVyQ29uZmlndXJhdGlvblBhdGg7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlckNvbmZpZ3VyYXRpb25Ccm93c2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlckNvbmZpZ3VyYXRpb25Ccm93c2VNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdBdXRvUHVibGlzaFNlY3Rpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoRGVmYXVsdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3QXV0b1B1Ymxpc2hEZWZhdWx0RWRpdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3QXV0b1B1Ymxpc2hEaXNhYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdBdXRvUHVibGlzaE92ZXJyaWRlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdBdXRvUHVibGlzaE92ZXJyaWRlSW50ZXJ2YWw7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoQ29tbWFuZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3QXV0b1B1Ymxpc2hJbnZhbGlkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdTZXJ2ZXJIb3N0bmFtZUNvbW1hbmQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlck5hbWVDb21tYW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdSdW50aW1lQ29tbWFuZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3T3BlbkxhdW5jaENvbmZpZ3VyYXRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvck1pc3NpbmdDb25maWd1cmF0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0aW5nNDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGVkMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdG9wcGluZzQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RvcHBlZDI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRpbmcxOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0aW5nMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGluZzM7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RvcHBpbmcxOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0b3BwaW5nMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdG9wcGluZzM7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRlZERlYnVnOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0ZWRQcm9maWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0ZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RvcHBlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0b3BUb29sVGlwMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0b3AyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgbGF1bmNoaW5nQ2xpZW50VGFzazsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld0luc3RhbGxhYmxlU2VydmVyVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdJbnN0YWxsYWJsZVNlcnZlckRlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgaW5zdGFsbGFibGVTZXJ2ZXJDb21wVHJlZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGluc3RhbGxhYmxlU2VydmVyQ29tcERlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgaW5zdGFsbGFibGVTZXJ2ZXJMaW5rOwoKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yU3RhcnRpbmdNb25pdG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmU2VsZWN0RmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZkVuYWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlZvbHVtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlNvdW5kczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlNvdW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmRmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlBsYXk7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhdWRpb1ByZWZCcm93c2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhdWRpb1ByZWZSZXNldDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvVW5rbm93bjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvTm9uZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvRGVmYXVsdDsKCglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmZXJlbmNlSW50ZXJuZXREZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGludGVybmFsV2ViQnJvd3Nlck5hbWU7CgoJc3RhdGljIHsKCQlOTFMuaW5pdGlhbGl6ZU1lc3NhZ2VzKFNlcnZlclVJUGx1Z2luLlBMVUdJTl9JRCArICIuaW50ZXJuYWwuTWVzc2FnZXMiLCBNZXNzYWdlcy5jbGFzcyk7Cgl9Cn0=