LyoKKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lIG9yIG1vcmUKKiBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlIGRpc3RyaWJ1dGVkIHdpdGgKKiB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuCiogVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUgdG8gWW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAKKiAodGhlICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aAoqIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CioKKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCioKKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCiovCgpubHNtZXNzYWdlcyA9IHsKJ0NyZWF0ZSAvIFVwZGF0ZSBhbiBJbWFnZSc6JycsCidZb3UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIGNyZWF0ZSBvciB1cGRhdGUgYW55IGltYWdlcy4nOicnLAonKE5ldyBQcm9maWxlKSc6JycsCidUaGUgc3RhcnQgZGF5IGFuZCB0aW1lIG11c3QgYmUgaW4gdGhlIGZ1dHVyZS4nOicnLAonVGhlIGVuZCB0aW1lIG11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcyBpbiB0aGUgZnV0dXJlLic6JycsCidUaGUgZW5kIHRpbWUgbXVzdCBiZSBhZnRlciB0aGUgc3RhcnQgdGltZS4nOicnLAonVGhlIGVuZCB0aW1lIGlzIHRvbyBjbG9zZSB0byB0aGUgc3RhcnQgdGltZS4nOicnLAonVGhlIHN1Ym1pdHRlZCBzdGFydCB0aW1lIGlzIGluIHRoZSBwYXN0Lic6J0VsIHRpZW1wbyBkZSBpbmljaW8gZW52aWFkbyBlc3ThIGVuIGVsIHBhc2Fkby4nLAonVGltZXMgY2Fubm90IGJlIHN1Z2dlc3RlZCBmb3IgY2x1c3RlciByZXNlcnZhdGlvbnMnOiAnTm8gc2UgcHVlZGVuIHN1Z2VyaXIgaG9yYXJpb3MgcGFyYSBsYSByZXNlcnZhY2nzbiBkZSBjbHVzdGVycycsCidDYW5jZWwnOiAnQ2FuY2VsYXInLAonT2theSc6ICdDb3JyZWN0bycsCidDcmVhdGUgUmVzZXJ2YXRpb24nOidDcmVhciBSZXNlcnZhY2nzbicsCidNb2RpZnkgUmVzZXJ2YXRpb24nOiAnTW9kaWZpY2FyIFJlc2VydmFjafNuJywKJ0NyZWF0ZSBJbWFnaW5nIFJlc2VydmF0aW9uJzoiIiwKJ0RlcGxveSBTZXJ2ZXInOiIiLAonUGxlYXNlIHNlbGVjdCBhIHZhbGlkIGVudmlyb25tZW50Lic6ICdQb3IgZmF2b3Igc2VsZWNjaW9uZSB1biBhbWJpZW50ZSB2YWxpZG8nLAonVmlldyBBdmFpbGFibGUgVGltZXMnOiAndmVyIGhvcmFyaW9zIGRpc3BvbmlibGVzJywKJ2hvdXInOiAnaG9yYScsCid3ZWVrcyc6JycsCidkYXlzJzogJ2TtYXMnLAonaG91cnMnOiAnaG9yYXMnLAonVGhlcmUgYXJlIG11bHRpcGxlIHZlcnNpb25zIG9mIHRoaXMgZW52aXJvbm1lbnQgYXZhaWxhYmxlLic6IkV4aXN0ZW4gdmFyaWFzIHZlcnNpb25lcyBkZSBlc3RlIGFtYmllbnRlIGRpc3BvbmlibGVzLiIsCidQbGVhc2Ugc2VsZWN0IHRoZSB2ZXJzaW9uIHlvdSB3b3VsZCBsaWtlIHRvIGNoZWNrIG91dDonOiJQb3IgZmF2b3Igc2VsZWNjaW9uZSBsYSB2ZXJzafNuIHF1ZSBkZXNlYSB1c2FyOiIsCidTZWxlY3QgSW1hZ2UgUmV2aXNpb25zJzonJywKJ1JldmlzaW9uJzonJywKJ1VzZXInOidVc3VhcmlvJywKJ0NyZWF0ZWQnOidDcmVhZGEnLAonUHJvZHVjdGlvbic6JycsCidXb3JraW5nLi4uJzonJywKJ0xvYWRpbmcuLi4nOiAnQ2FyZ2FuZG8nLAonVGhlIGVuZCB0aW1lIG11c3QgYmUgbGF0ZXIgdGhhbiB0aGUgc3RhcnQgdGltZS4nOiAnTGEgaG9yYSBmaW5hbCBkZWJlIGRlIHNlciBt4XMgdGFyZGUgcXVlIGxhIGhvcmEgaW5pY2lhbCcsCidUaGUgcmVzZXJ2YXRpb24geW91IHNlbGVjdGVkPGJyPnRvIGVkaXQgaGFzIGV4cGlyZWQuPGJyPjxicj4nOiAnTGEgcmVzZXJ2YWNp824gcXVlIHVzdGVkIHNlbGVjY2lvbm88YnI+cGFyYSBlZGl0YXIgaGEgZXhwaXJhZG8uPGJyPjxicj4nLAonVGhlIHJlc2VydmF0aW9uIHlvdSBzZWxlY3RlZDxicj50byByZWJvb3QgaGFzIGV4cGlyZWQuPGJyPjxicj4nOiAnTGEgcmVzZXJ2YWNp824gcXVlIHVzdGVkIHNlbGVjY2lvbm88YnI+IHF1ZSByZWluaWNpYXJhIGhhIGV4cGlyYWRvLjxicj48YnI+JywKJ1RoZSByZXNlcnZhdGlvbiB5b3Ugc2VsZWN0ZWQ8YnI+dG8gcmVpbnN0YWxsIGhhcyBleHBpcmVkLjxicj48YnI+JzogJ0xhIHJlc2VydmFjafNuIHF1ZSB1c3RlZCBzZWxlY2Npb25vPGJyPiBwYXJhIHJlaW5zdGFsYXIgaGEgZXhwaXJhZG8uPGJyPjxicj4nLAonQW4gaW52YWxpZCB2ZXJzaW9uIHdhcyBzdWJtaXR0ZWQuJzogJ1VuYSB2ZXJzafNuIGluduFsaWRhIGhhIHNpZG8gZW52aWFkYS4nLAonKE5vIGRlc2NyaXB0aW9uKSc6JycsCidZb3UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIGFwcGx5IHRoaXMgc2VydmVyIHByb2ZpbGUuJzonJywKJ0RlbGV0ZSc6J0JvcnJhcicsCidVbmRlbGV0ZSc6JycsCidFZGl0JzonRWRpdGFyJywKJ1lvdSBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIHN1Ym1pdHRlZCByZXNvdXJjZSBvciBncm91cCc6JycsCidSZXNvdXJjZSBJbiBVc2UnOicnLAonUHJvYmxlbSBlbmNvdW50ZXJlZCB3aGlsZSBhdHRlbXB0aW5nIHRvIGRlbGV0ZSByZXNvdXJjZS4gUGxlYXNlIGNvbnRhY3QgYSBzeXN0ZW0gYWRtaW5pc3RyYXRvci4nOicnLAonVW5tYXRjaGVkIG9yIGVtcHR5IGJyYWNrZXRzICggWyBhbmQgXSApIGluIHN1YmplY3QnOicnLAonVW5tYXRjaGVkIG9yIGVtcHR5IGJyYWNrZXRzICggWyBhbmQgXSApIGluIG1lc3NhZ2UnOicnLAonVW5tYXRjaGVkIG9yIGVtcHR5IGJyYWNrZXRzICggWyBhbmQgXSApIGluIHNob3J0IG1lc3NhZ2UnOicnLAonZmFsc2UnOicnLAondHJ1ZSc6JycsCidTYXZlIENoYW5nZXMnOicnLAonQWNjZXNzIGRlbmllZCB0byBlZGl0IHRoaXMgaXRlbSc6JycsCidJbnZhbGlkIG5ldHdvcmsgc3BlZWQgc3BlY2lmaWVkJzonJywKJ01heCBDb25jdXJyZW50IFVzYWdlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyNTUnOicnLAonSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQgZm9yIFwnQXZhaWxhYmxlIGZvciBjaGVja291dFwnJzonJywKJ0ludmFsaWQgdmFsdWUgc3BlY2lmaWVkIGZvciBcJ0NoZWNrIGZvciBsb2dnZWQgaW4gdXNlclwnJzonJywKJ0ludmFsaWQgdmFsdWUgc3BlY2lmaWVkIGZvciBcJ1VzZXJzIGhhdmUgYWRtaW5pc3RyYXRpdmUgYWNjZXNzXCcnOicnLAonSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQgZm9yIFwnU2V0IGNvbXB1dGVyIGhvc3RuYW1lXCcnOicnLAonSW52YWxpZCB2YWx1ZSBzcGVjaWZpZWQgZm9yIFwnVXNlIHN5c3ByZXBcJyc6JycsCidJbnZhbGlkIENvbm5lY3QgTWV0aG9kcyBzcGVjaWZpZWQnOicnLAonQWRkIFN1YmltYWdlJzonJywKJyhOb25lKSc6J05pbmd1bm8nLAonUmVtb3ZlIFNlbGVjdGVkIFN1YmltYWdlKHMpJzonJywKJ0FkZCBNZXRob2QnOicnLAonVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCBvbmUgaXRlbSBpbiBDdXJyZW50IE1ldGhvZHMnOicnLAonUmVtb3ZlIFNlbGVjdGVkIE1ldGhvZHMnOicnLAonWW91IGNhbm5vdCBkZWxldGUgdGhlIHByb2R1Y3Rpb24gcmV2aXNpb24uJzonJywKJ0NyZWF0ZSBJbWFnZSc6J0NyZWFyIEFtYmllbnRlJywKJ1lvdSBtdXN0IGJlIHRoZSBvd25lciBvZiB0aGUgaW1hZ2UgdG8gdXBkYXRlIGl0Lic6JycsCidSZW1vdmUnOiAnQm9ycmFyJywKJ1RoZSBzZWxlY3RlZCBCbG9jayBSZXF1ZXN0IG5vIGxvbmdlciBleGlzdHMuJzonJywKJ1RoZXNlIHRpbWVzIG92ZXJsYXAgd2l0aCBhbiBleGlzdGluZyB0aW1lIHNsb3QnOiAnRXN0ZSBob3JhcmlvIHNlIGVtcGFsbWEgY29uIHVuYSByZXNlcnZhY2nzbiBleGlzdGVudGUnLAonVGhlIGRhdGUgbXVzdCBiZSB0b2RheSBvciBsYXRlcic6ICdMYSBmZWNoYSBkZWJlIGRlIHNlciBob3kgbyBwb3N0ZXJpb3InLAonVGhlIGRhdGUgYW5kIHRpbWVzIG92ZXJsYXAgd2l0aCBhbiBleGlzdGluZyB0aW1lIHNsb3QnOiAnTGEgZmVjaGEgeSBob3JhIHNlIHRyYXNsYXBhIGNvbiB1bmEgcmVzZXJ2YWNp824gZXhpc3RlbnRlJywKJ1BsZWFzZSBmaXggaW52YWxpZCB2YWx1ZXMgYmVmb3JlIHN1Ym1pdHRpbmcuJzogJ1BvciBmYXZvciBjb3JyaWphIGxvcyB2YWxvcmVzIGluduFsaWRvcyBhbnRlcyBkZSBlbnZpYXInLAonUGxlYXNlIGZpbGwgaW4gRmlyc3QgRGF0ZSBvZiBVc2FnZSc6ICdQb3IgZmF2b3IgaW5kaXF1ZSBsYSBwcmltZXIgZmVjaGEgZGUgdXNvJywKJ1BsZWFzZSBmaWxsIGluIExhc3QgRGF0ZSBvZiBVc2FnZSc6ICdQb3IgZmF2b3IgaW5kaXF1ZSBsYSD6bHRpbWEgZmVjaGEgZGUgdXNvJywKJ1RoZSBGaXJzdCBEYXRlIG9mIFVzYWdlIG11c3QgYmUgdG9kYXkgb3IgbGF0ZXInOiAnTGEgZmVjaGEgZGUgaW5pY2lvIGRlYmUgZGUgc2VyIGhveSBvIHBvc3RlcmlvcicsCidUaGUgTGFzdCBEYXRlIG9mIFVzYWdlIG11c3QgYmUgdGhlIHNhbWUgb3IgbGF0ZXIgdGhhbiB0aGUgRmlyc3QgRGF0ZSBvZiBVc2FnZSc6ICdMYSD6bHRpbWEgZmVjaGEgZGViZSBkZSBzZXIgaWd1YWwgbyBwb3N0ZXJpb3IgYSBsYSBmZWNoYSBpbmljaWFsJywKJ1RoZSBMYXN0IERhdGUgb2YgVXNhZ2UgbXVzdCBiZSB0b2RheSBvciBsYXRlcic6ICdMYSD6bHRpbWEgZmVjaGEgZGViZSBkZSBzZXIgaG95IG8gcG9zdGVyaW9yJywKJ1N1bmRheSc6ICdEb21pbmdvJywKJ01vbmRheSc6ICdMdW5lcycsCidUdWVzZGF5JzogJ01hcnRlcycsCidXZWRuZXNkYXknOiAnTWnpcmNvbGVzJywKJ1RodXJzZGF5JzogJ0p1ZXZlcycsCidGcmlkYXknOiAnVmllcm5lcycsCidTYXR1cmRheSc6ICdT4WJhZG8nLAonQXQgbGVhc3Qgb25lIGRheSBtdXN0IGJlIGNoZWNrZWQgd2hlbiB1c2luZyAiUmVwZWF0aW5nIFdlZWtseSInOiAnUG9yIGxvIG1lbm9zIGRlYmUgZGUgc2VsZWNjaW9uYXIgdW4gZO1hIGN1YW5kbyB1c2EgIlJlcGV0aXIgc2VtYW5hbG1lbnRlIicsCidBdCBsZWFzdCBvbmUgc3RhcnQvZW5kIGNvbWJpbmF0aW9uIG11c3QgYmUgZW50ZXJlZCB3aGVuIHVzaW5nICJSZXBlYXRpbmcgV2Vla2x5Iic6ICdQb3IgbG8gbWVub3MgZGViZSBkZSBzZWxlY2Npb25hciB1bmEgY29tYmluYWNp824gZGUgaW5pY2lvL2ZpbiBjdWFuZG8gdXNhICJSZXBldGlyIHNlbWFuYWxtZW50ZSInLAonV2hlbiBzdWJtaXR0aW5nICIoZ3JvdXAgbm90IGxpc3RlZCkiIGFzIHRoZSB1c2VyIGdyb3VwLCBpbmZvcm1hdGlvbiBtdXN0IGJlIGluY2x1ZGVkIGluIHRoZSBjb21tZW50cyBhYm91dCB3aGF0IGdyb3VwIG5lZWRzIHRvIGJlIGNyZWF0ZWQuJzogJ0N1YW5kbyBzZWxlY2Npb25lICIoZ3J1cG8gbm8gbGlzdGFkbykiIGNvbW8gZWwgZ3J1cG8gZGUgdXN1YXJpb3MsIGRlYmUgZGUgaW5jbHVpciBlbiBsb3MgY29tZW50YXJpb3MgcXVlIGdydXBvIG5lY2VzaXRhIHF1ZSBzZWEgZ2VuZXJhZG8nLAonTmFtZTonOiAnTm9tYnJlOicsCidPd25lcjonOiAnRHVl8W8nLAonc3BlY2lmaWVkIGluIGNvbW1lbnRzJzogJ2VzcGVjaWZpY2FkbyBlbiBjb21lbnRhcmlvcycsCidXZWVrbHknOiAnU2VtYW5hbG1lbnRlJywKJ0ZpcnN0IERhdGU6JzogJ1ByaW1lciBmZWNoYTonLAonTGFzdCBEYXRlOic6ICdVbHRpbWEgZmVjaGE6JywKJ1JlcGVhdGluZyBvbiB0aGVzZSBkYXlzOic6ICdSZXBldGlyIGVuIGVzdG9zIGTtYXM6JywKJ0R1cmluZyB0aGVzZSB0aW1lczonOiAnRW4gZXN0b3MgaG9yYXJpb3M6JywKJ0F0IGxlYXN0IG9uZSBzdGFydC9lbmQgY29tYmluYXRpb24gbXVzdCBiZSBlbnRlcmVkIHdoZW4gdXNpbmcgIlJlcGVhdGluZyBNb250aGx5Iic6ICdQb3IgbG8gbWVub3MgZGViZSBkZSBleGlzdGlyIHVuYSBjb21iaW5hY2nzbiBkZSBpbmNpby9maW4gY3VhbmRvIHVzYSAiUmVwZXRpciBtZW5zdWFsbWVudGUiJywKJ01vbnRobHknOiAnTWVuc3VhbG1lbnRlJywKJ1JlcGVhdCBvbjonOiAnUmVwZXRpciBlbDonLAonb2YgZWFjaCBtb250aCc6ICdkZSBjYWRhIG1lczonLAonQXQgbGVhc3Qgb25lIGRhdGUvc3RhcnQvZW5kIGNvbWJpbmF0aW9uIG11c3QgYmUgZW50ZXJlZCB3aGVuIHVzaW5nICJMaXN0IG9mIERhdGVzL1RpbWVzIic6ICdQb3IgbG8gbWVub3MgZGViZSBkZSBleGlzdGlyIHVuYSBmZWNoYSBkZSBpbmljaW8vZmluIGN1YW5kbyB1c2EgIkZlY2hhcyB5IGhvcmFzIGVzcGVj7WZpY2FzIicsCidMaXN0IG9mIERhdGVzL1RpbWVzJzogJ0xpc3RhIGRlIGZlY2hhcy9ob3JhcmlvcycsCidVc2VyIFN1Ym1pdHRlZCBDb21tZW50czsnOiAnQ29tZW50YXJpb3MgZW52aWFkb3MgcG9yIGVsIHVzdWFyaW87JywKJ1NraXAnOiAnU2FsdGFyJywKJ1VzZSc6ICdVc2UnLAonVG90YWwgb25saW5lOic6ICdUb3RhbCBlbiBs7W5lYScsCidtYXRjaCc6J2NvaW5jaWRlbicsCidubyBtYXRjaCc6J25vIGNvaW5jaWRlbicsCidFcnJvciBlbmNvdW50ZXJlZDonOidFcnJvciBlbmNvbnRyYWRvOicsCidQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJzonUG9yIGZhdm9yIGludGVudGUgZGUgbnVldm8gbeFzIHRhcmRlJywKJ1ZhbHVlcyB1cGRhdGVkJzonJywKJ1N1Ym1pdCBDaGFuZ2VzJzonJywKJ0FkZCc6JycsCidJbnZhbGlkIGl0ZW0gc2VsZWN0ZWQgZm9yIG5ldyB2YWx1ZSc6JycsCidJbnZhbGlkIHZhbHVlIHN1Ym1pdHRlZCc6JycsCidJbnZhbGlkIGl0ZW0gc3VibWl0dGVkIGZvciBkZWxldGlvbic6JycsCidZb3UgZG8gbm90IGhhdmUgYWNjZXNzIHRvIG1vZGlmeSB0aGUgc3VibWl0dGVkIHNldHRpbmdzLic6JycsCidJbnZhbGlkIHZhbHVlIHN1Ym1pdHRlZCBmb3IgJzonJywKJ05GUyBNb3VudHMnOicnLAonTkZTIE1vdW50cyBhcmUgTkZTIGV4cG9ydHMgdGhhdCBhcmUgdG8gYmUgbW91bnRlZCB3aXRoaW4gZWFjaCByZXNlcnZhdGlvbiBkZXBsb3llZCBieSBhIGdpdmVuIG1hbmFnZW1lbnQgbm9kZS48YnI+VmFsdWVzIG11c3QgYmUgbGlrZSc6JycsCidJbnZhbGlkIHZhbHVlIC0gbXVzdCBiZSBpbiB0aGUgZm9ybSc6JycsCidNZXNzYWdlcyc6JycsCidUaGlzIHNlY3Rpb24gYWxsb3dzIGZvciBjb25maWd1cmF0aW9uIG9mIG1lc3NhZ2VzIHRoYXQgYXJlIHNlbnQgdG8gdXNlcnMgYW5kIGFkbWluaXN0cmF0b3JzIGFib3V0IHRoaW5ncyBzdWNoIGFzIHJlc2VydmF0aW9ucyBhbmQgaW1hZ2UgbWFuYWdlbWVudC4gRXZlcnkgbWVzc2FnZSBoYXMgYSBkZWZhdWx0LiBBZGRpdGlvbmFsbHksIHNlcGFyYXRlIG1lc3NhZ2VzIGNhbiBiZSBjb25maWd1cmVkIGZvciBlYWNoIGFmZmlsaWF0aW9uLiBNb3N0IG9mIHRoZSBtZXNzYWdlcyB3aWxsIGhhdmUgcGFydHMgdGhhdCBhcmUgaW4gc3F1YXJlIGJyYWNrZXRzLiBUaGVzZSBwYXJ0cyB3aWxsIGhhdmUgZGF0YSBzdWJzdGl0dXRlZCBmb3IgdGhlbSBiZWZvcmUgdGhlIG1lc3NhZ2UgaXMgc2VudC4gQSBsaXN0IG9mIHdoYXQgY2FuIGJlIHVzZWQgaW4gc3F1ZWFyZSBicmFja2V0cyBjYW4gYmUgZm91bmQgYXQgdGhlIDxhIGhyZWY9XCIlc1wiPkFwYWNoZSBWQ0wgd2ViIHNpdGU8L2E+LiBTb21lIG1lc3NhZ2VzIGFsc28gaGF2ZSBhIHNob3J0IGZvcm0gdGhhdCBtYXkgYmUgc2VudCBzdWNoIGFzIGluIHRoZSBmb3JtIG9mIGEgcG9wdXAgd2l0aGluIGEgcmVzZXJ2YXRpb24gd2hlbiB0aGUgcmVzZXJ2YXRpb24gaXMgYWJvdXQgdG8gZW5kLic6JycsCidTYXZlIE1lc3NhZ2UnOicnLAonRGVsZXRlIE1lc3NhZ2UgYW5kIFVzZSBEZWZhdWx0JzonJywKJ1RoZSBmb2xsb3dpbmcgbWVzc2FnZXMgaGF2ZSBpbnZhbGlkIGl0ZW1zIGluY2x1ZGVkIGZvciBzdWJzdGl0dXRpb24uIFBsZWFzZSBjb3JyZWN0IHRoZSBtZXNzYWdlIGNvbnRlbnRzIGFuZCBzYXZlIHRoZW0gYWdhaW4gZm9yIHRoZSBiYWNrZW5kIHRvIHZhbGlkYXRlLic6JycsCidNZXNzYWdlIHR5cGUgJXMgZm9yIGFmZmlsaWF0aW9uICVzIHN1Y2Nlc3NmdWxseSBkZWxldGVkJzonJywKJ0ludmFsaWQgaXRlbSBzdWJtaXR0ZWQgdG8gc2F2ZSc6JycsCidNZXNzYWdlIHN1Y2Nlc3NmdWxseSBzYXZlZCc6JycsCidObyBjaGFuZ2VzIHRvIHN1Ym1pdHRlZCBtZXNzYWdlLiBOb3RoaW5nIHNhdmVkLic6JycsCid1bnNldCc6JycsCicxIGhvdXInOicnLAonRGVmYXVsdCBmb3IgVXNlcic6JycsCidJbnZhbGlkIE1heCBSZXNlcnZhdGlvbiBEdXJhdGlvbiBzZWxlY3RlZCc6JycsCidtaW51dGVzJzonJywKJ1Bhc3N3b3JkcyBkbyBub3QgbWF0Y2gnOicnCn0K