LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICogQ29weXJpZ2h0IChjKSAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAogKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAogKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAqgKgogKiBDb250cmlidXRvcnM6CiAqICAgIElCTSBDb3Jwb3JhdGlvbiAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KcGFja2FnZSBvcmcuZWNsaXBzZS53c3Quc2VydmVyLnVpLmludGVybmFsOwoKaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7Ci8qKgogKiBUcmFuc2xhdGVkIG1lc3NhZ2VzLgogKi8KcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JBZGREZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yVmVyc2lvbkxldmVsOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgbG9hZGluZ1Rhc2s7CglwdWJsaWMgc3RhdGljIFN0cmluZyBjcmVhdGVTZXJ2ZXJQcm9qZWN0RGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlZmF1bHRTZXJ2ZXJQcm9qZWN0TmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHRlcm1pbmF0ZVNlcnZlckRpYWxvZ01lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Nb25pdG9yUG9ydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlclJlc291cmNlRGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlclJlc291cmNlRGlhbG9nTWVzc2FnZU1hbnk7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkZWxldGVTZXJ2ZXJSZXNvdXJjZURpYWxvZ0xvb3NlQ29uZmlndXJhdGlvbnM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkZWxldGVTZXJ2ZXJSZXNvdXJjZURpYWxvZ0xvb3NlQ29uZmlndXJhdGlvbnNNYW55OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JDb3VsZE5vdENyZWF0ZVNlcnZlclByb2plY3RTdGF0dXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dTdG9wcGluZ1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNhdmluZ1Rhc2s7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JTYXZlRXJyb3JEaWFsb2c7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JTYXZlRXJyb3JNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUmVhZE9ubHlGaWxlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yRWRpdG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yVW5kb0Rpc2FibGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yVW5kb0VuYWJsZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWRvRGlzYWJsZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWRvRW5hYmxlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlc291cmNlRGVsZXRlVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZURlbGV0ZVNlcnZlck1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZURlbGV0ZVNhdmU7CglwdWJsaWMgc3RhdGljIFN0cmluZyByZXNvdXJjZURpcnR5RGlhbG9nTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelNlbGVjdENsaWVudFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6U2VsZWN0Q2xpZW50RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyByZXNvdXJjZURpcnR5RGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyByZXNvdXJjZURpcnR5RGlhbG9nQ29udGludWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdSdW50aW1lV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJMYXVuY2hTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJMYXVuY2hIb3N0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyTGF1bmNoUnVudGltZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yTm9TZXJ2ZXJTZWxlY3RlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yU2VydmVyQWxyZWFkeVJ1bm5pbmc7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvckludmFsaWRTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJMYXVuY2hDb25maWd1cmF0aW9uVGFiOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6U2VsZWN0Q2xpZW50TWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlbGV0ZVNlcnZlclJlc291cmNlRGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvckNvdWxkTm90Q3JlYXRlU2VydmVyUHJvamVjdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yRGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JWYWxpZGF0ZUVkaXRGYWlsdXJlTWVzc2FnZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZQcm9qZWN0RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmUHJvamVjdE5vdE1vZHVsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZQcm9qZWN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3REZWZhdWx0U2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3ROb3RDb25maWd1cmVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb2plY3ROb1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yQ291bGROb3RTYXZlUHJlZmVyZW5jZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZlcmVuY2VSdW50aW1lc0Rlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWRkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJlbW92ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlYXJjaDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ1J1bnRpbWVTZWFyY2hNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nUnVudGltZVNlYXJjaFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nUnVudGltZVNlYXJjaFByb2dyZXNzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgaW5mb05vUnVudGltZXNGb3VuZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekVkaXRSdW50aW1lV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmZXJlbmNlUnVudGltZXNUYWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ1J1bnRpbWVJblVzZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRlZmF1bHREaWFsb2dUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZlcmVuY2VSdW50aW1lc1RpdGxlTG9uZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUYXJnZXRDb21ibzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHJ1bnRpbWVUYXJnZXROb25lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcnVudGltZVRhcmdldE5ld1J1bnRpbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVGFyZ2V0Q2hpbGRyZW47CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVGFyZ2V0UnVudGltZVByZWZlcmVuY2VzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9QdWJsaXNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9QdWJsaXNoTG9jYWw7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmQXV0b1B1Ymxpc2hTZWNvbmRzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9QdWJsaXNoUmVtb3RlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZkF1dG9SZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlByb21wdElycmV2ZXJzaWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZTaG93T25BY3Rpdml0eTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZDcmVhdGVJbldvcmtzcGFjZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZTYXZlRWRpdG9yc0dyb3VwOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZlNhdmVFZGl0b3JzTmV2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmU2F2ZUVkaXRvcnNQcm9tcHQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmU2F2ZUVkaXRvcnNBdXRvc2F2ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkVmVyeVNsb3c7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkU2xvdzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHByZWZNYWNoaW5lU3BlZWRBdmVyYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZk1hY2hpbmVTcGVlZEZhc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBwcmVmTWFjaGluZVNwZWVkVmVyeUZhc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25OZXc7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25OZXdTZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWJ1Z1Rvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWJ1ZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0YXJ0VG9vbFRpcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUHJvZmlsZVRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25Qcm9maWxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUmVzdGFydFRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25SZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUHVibGlzaFRvb2xUaXA7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25QdWJsaXNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uRGVsZXRlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdGVybWluYXRlU2VydmVyRGlhbG9nVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25EZWJ1Z09uU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUHJvZmlsZU9uU2VydmVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uUnVuT25TZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dBZGRSZW1vdmVNb2R1bGVzTm9uZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblNldE5ld1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yTm9Nb2R1bGVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9kZVdhcm5pbmdEZWJ1ZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vZGVXYXJuaW5nUHJvZmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yTm9TZXJ2ZXI7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlcnJvck5vQ2xpZW50OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9kZVdhcm5pbmdSZXN0YXJ0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9kZVdhcm5pbmdDb250aW51ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGhvc3RuYW1lVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBob3N0bmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZVRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpNb2R1bGVNZXNzYWdlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TW9kdWxlQXZhaWxhYmxlTGlzdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZURlcGxveWVkTGlzdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZUFkZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZVJlbW92ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZUFkZEFsbDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZVJlbW92ZUFsbDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelRhc2tUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelRhc2tEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelRhc2tOb25lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6RXJyb3JJbnZhbGlkRm9sZGVyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6RXJyb3JDbG9zZWRQcm9qZWN0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgY3JlYXRlU2VydmVyUHJvamVjdERpYWxvZ1RpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlclNlbGVjdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlck1hbnVhbDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelNlbGVjdFNlcnZlclByZWZlcnJlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1NlcnZlckV4aXN0aW5nOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6SW1wb3J0Q29uZmlndXJhdGlvblRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6SW1wb3J0Q29uZmlndXJhdGlvbkRlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyUnVudGltZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekVycm9yU2VydmVyQ3JlYXRpb25FcnJvcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelJ1bk9uU2VydmVyVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpEZWJ1Z09uU2VydmVyVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpQcm9maWxlT25TZXJ2ZXJUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1J1bnRpbWVUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek5ld1J1bnRpbWVEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHBlcmZvcm1pbmdUYXNrczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekltcG9ydENvbmZpZ3VyYXRpb25XaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpek1vZHVsZVdpemFyZFRpdGxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgd2l6TmV3U2VydmVyV2l6YXJkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpTZWxlY3RDbGllbnRXaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpelRhc2tXaXphcmRUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdCeTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHdpekRlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbHVtblN0YXR1czsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb2x1bW5UeXBlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlhbG9nTW9uaXRvckNvbHVtblBvcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29sdW1uTW9uaXRvclBvcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29sdW1uQ29udGVudFR5cGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzdGFydDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHN0b3A7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yTW9uaXRvclBvcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29udGVudFR5cGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBkaWFsb2dNb25pdG9yQ29udGVudFR5cGVBbGw7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzdGFydGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc3RvcHBlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb250ZW50VHlwZVdlYjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGRpYWxvZ01vbml0b3JDb250ZW50VHlwZVdlYlNlcnZpY2VzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgY29sdW1uTmFtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGNvbHVtblR5cGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBydW50aW1lVHlwZUNvbXBUcmVlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgcnVudGltZVR5cGVDb21wRGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBuYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmVuZG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmVyc2lvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIG1vZHVsZVN1cHBvcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB3aXpOZXdTZXJ2ZXJTZWxlY3RFeGlzdGluZzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGhvc3Q7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlbGVtZW50VW5rbm93bk5hbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJUeXBlQ29tcERlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1NlcnZlcnM7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3Tm9Nb2R1bGVzOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uTW9uaXRvclByb3BlcnRpZXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhY3Rpb25PcGVuOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1NlcnZlcjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXM7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luYzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvblN0b3BUb29sVGlwOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uU3RvcDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk1vZGlmeU1vZHVsZXNUb29sVGlwOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uTW9kaWZ5TW9kdWxlczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGFjdGlvbk1vbml0b3I7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY09rYXk7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1Jlc3RhcnQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1B1Ymxpc2g7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1Jlc3RhcnRQdWJsaXNoOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNQdWJsaXNoaW5nOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNPa2F5MjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTeW5jUmVzdGFydDI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1B1Ymxpc2gyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N5bmNSZXN0YXJ0UHVibGlzaDI7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3luY1B1Ymxpc2hpbmcyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yU2VydmVyRWRpdG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yUHJvbXB0SXJyZXZlcnNpYmxlOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZXJyb3JFZGl0b3JDYW50U2F2ZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlYWRPbmx5OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgZWRpdG9yV3JpdGFibGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZU1vZGlmaWVkVGl0bGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZWFkT25seU1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JTZXJ2ZXJNb2RpZmllZE1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBlZGl0b3JSZXNvdXJjZVdhcm5UaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVkaXRvclJlc291cmNlV2Fybk1lc3NhZ2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1BhZ2VUaXRsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3U2VjdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlck5hbWU7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlckhvc3RuYW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdSdW50aW1lOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdSdW50aW1lRWRpdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3U2VydmVyQ29uZmlndXJhdGlvblBhdGg7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1B1Ymxpc2hpbmc7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld0F1dG9QdWJsaXNoRGVmYXVsdDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3QXV0b1B1Ymxpc2hPdmVycmlkZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3QXV0b1B1Ymxpc2hEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3QXV0b1B1Ymxpc2hDb21tYW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdTZXJ2ZXJIb3N0bmFtZURlc2NyaXB0aW9uOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgc2VydmVyRWRpdG9yT3ZlcnZpZXdTZXJ2ZXJIb3N0bmFtZUNvbW1hbmQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1NlcnZlck5hbWVEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3U2VydmVyTmFtZUNvbW1hbmQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyBzZXJ2ZXJFZGl0b3JPdmVydmlld1J1bnRpbWVEZXNjcmlwdGlvbjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHNlcnZlckVkaXRvck92ZXJ2aWV3UnVudGltZUNvbW1hbmQ7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRpbmc0OwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0ZWQyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0b3BwaW5nNDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdG9wcGVkMjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGluZzE7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRpbmcyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0YXJ0aW5nMzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdG9wcGluZzE7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RvcHBpbmcyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgdmlld1N0YXR1c1N0b3BwaW5nMzsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdGFydGVkRGVidWc7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRlZFByb2ZpbGU7CglwdWJsaWMgc3RhdGljIFN0cmluZyB2aWV3U3RhdHVzU3RhcnRlZDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIHZpZXdTdGF0dXNTdG9wcGVkOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uU3RvcFRvb2xUaXAyOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYWN0aW9uU3RvcDI7CgkKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGVycm9yU3RhcnRpbmdNb25pdG9yOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmU2VsZWN0RmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZkVuYWJsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlZvbHVtZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlNvdW5kczsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlNvdW5kOwoJcHVibGljIHN0YXRpYyBTdHJpbmcgYXVkaW9QcmVmRmlsZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvUHJlZlBsYXk7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhdWRpb1ByZWZCcm93c2U7CglwdWJsaWMgc3RhdGljIFN0cmluZyBhdWRpb1ByZWZSZXNldDsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvVW5rbm93bjsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvTm9uZTsKCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGF1ZGlvRGVmYXVsdDsKCQoJcHVibGljIHN0YXRpYyBTdHJpbmcgcHJlZmVyZW5jZUludGVybmV0RGVzY3JpcHRpb247CglwdWJsaWMgc3RhdGljIFN0cmluZyBpbnRlcm5hbFdlYkJyb3dzZXJOYW1lOwoKCXN0YXRpYyB7CgkJTkxTLmluaXRpYWxpemVNZXNzYWdlcyhTZXJ2ZXJVSVBsdWdpbi5QTFVHSU5fSUQgKyAiLmludGVybmFsLk1lc3NhZ2VzIiwgTWVzc2FnZXMuY2xhc3MpOwoJfQp9