# Name: smd_horizon v0.11 # Type: Public plugin # Next/previous article without restrictions # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern CMS - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjExOiJzbWRfaG9yaXpvbiI7czo2OiJhdXRob3IiO3M6MTE6 IlN0ZWYgRGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nv bi5jb20vIjtzOjc6InZlcnNpb24iO3M6NDoiMC4xMSI7czoxMToiZGVzY3JpcHRpb24iO3M6 NDI6Ik5leHQvcHJldmlvdXMgYXJ0aWNsZSB3aXRob3V0IHJlc3RyaWN0aW9ucyI7czo0OiJj b2RlIjtzOjEzOTI4OiIvLyBQdWJsaWMgaW50ZXJmYWNlczogY29udmVuaWVuY2UgZnVuY3Rp b25zCmZ1bmN0aW9uIHNtZF9wcmV2KCRhdHRzLCAkdGhpbmcpIHsKCSRhdHRzWydkaXInXSA9 ICdwcmV2JzsKCXJldHVybiBzbWRfbmVhcmVzdCgkYXR0cywgJHRoaW5nKTsKfQpmdW5jdGlv biBzbWRfbmV4dCgkYXR0cywgJHRoaW5nKSB7CgkkYXR0c1snZGlyJ10gPSAnbmV4dCc7Cgly ZXR1cm4gc21kX25lYXJlc3QoJGF0dHMsICR0aGluZyk7Cn0KZnVuY3Rpb24gc21kX2xpbmtf dG9fcHJldigkYXR0cywgJHRoaW5nKSB7CgkkYXR0c1snZGlyJ10gPSAncHJldic7CglyZXR1 cm4gc21kX2xpbmtfdG8oJGF0dHMsICR0aGluZyk7Cn0KZnVuY3Rpb24gc21kX2xpbmtfdG9f bmV4dCgkYXR0cywgJHRoaW5nKSB7CgkkYXR0c1snZGlyJ10gPSAnbmV4dCc7CglyZXR1cm4g c21kX2xpbmtfdG8oJGF0dHMsICR0aGluZyk7Cn0KZnVuY3Rpb24gc21kX2lmX3N0YXJ0KCRh dHRzLCAkdGhpbmcpIHsKCSRhdHRzWydkaXInXSA9ICdwcmV2JzsKCXJldHVybiBzbWRfaWZf aG9yaXpvbigkYXR0cywgJHRoaW5nKTsKfQpmdW5jdGlvbiBzbWRfaWZfZW5kKCRhdHRzLCAk dGhpbmcpIHsKCSRhdHRzWydkaXInXSA9ICduZXh0JzsKCXJldHVybiBzbWRfaWZfaG9yaXpv bigkYXR0cywgJHRoaW5nKTsKfQoKLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKgov LyBQcml2YXRlIGZ1bmN0aW9uOiBub3QgZm9yIHB1YmxpYyBjb25zdW1wdGlvbgovLyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqCmZ1bmN0aW9uIHNtZF9pZl9ob3Jpem9uKCRhdHRz LCAkdGhpbmcpIHsKCWdsb2JhbCAkcHJldGV4dCwgJHRoaXNhcnRpY2xlLCAkdGhpc2NhdGVn b3J5LCAkc21kX2xhc3QsICRzbWRfZmlyc3QsICRzbWRfaW5fbmVhcmVzdDsKCglleHRyYWN0 KGxBdHRzKGFycmF5KAoJCSd0eXBlJyA9PiAnbGlzdCcsCgkJJ2xvZ2ljJyA9PiAnb3InLAoJ CSdkaXInID0+ICduZXh0JywKCQknZGVidWcnID0+IDAsCgkpLCAkYXR0cykpOwoKCSRpdG91 dCA9IGFycmF5KCk7IC8vIEZvciBkZWJ1ZyBvbmx5CgkkdHlwZSA9IGRvX2xpc3QoJHR5cGUp OwoJJG91dCA9IGFycmF5KCk7Cglmb3JlYWNoICgkdHlwZSBhcyAkaXRlbSkgewoJCWlmICgk ZGVidWcpIHsKCQkJJGl0b3V0W10gPSAkaXRlbTsKCQl9CgkJc3dpdGNoICgkaXRlbSkgewoJ CQljYXNlICdsaXN0JzoKCQkJCWlmICgkc21kX2luX25lYXJlc3QpIHsKCQkJCQlpZiAoJGRp ciA9PSAnbmV4dCcpIHsKCQkJCQkJJG91dFtdID0gKGVtcHR5KCRzbWRfbGFzdCkpID8gdHJ1 ZSA6IGZhbHNlOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRvdXRbXSA9IChlbXB0eSgkc21kX2Zp cnN0KSkgPyB0cnVlIDogZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQkJYnJlYWs7CgkJCWNhc2Ug J2NhdGVnb3J5JzoKCQkJCWlmICgkc21kX2luX25lYXJlc3QpIHsKCQkJCQlpZiAoJGRpciA9 PSAnbmV4dCcpIHsKCQkJCQkJJG91dFtdID0gKCFlbXB0eSgkc21kX2xhc3QpICYmICgkc21k X2xhc3RbJ2NhdGVnb3J5MSddICE9ICR0aGlzYXJ0aWNsZVsnY2F0ZWdvcnkxJ10gfHwgJHNt ZF9sYXN0WydjYXRlZ29yeTInXSAhPSAkdGhpc2FydGljbGVbJ2NhdGVnb3J5MiddKSkgPyB0 cnVlIDogZmFsc2U7CgkJCQkJfSBlbHNlIHsKCQkJCQkJJG91dFtdID0gKCFlbXB0eSgkc21k X2ZpcnN0KSAmJiAoJHNtZF9maXJzdFsnY2F0ZWdvcnkxJ10gIT0gJHRoaXNhcnRpY2xlWydj YXRlZ29yeTEnXSB8fCAkc21kX2ZpcnN0WydjYXRlZ29yeTInXSAhPSAkdGhpc2FydGljbGVb J2NhdGVnb3J5MiddKSkgPyB0cnVlIDogZmFsc2U7CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJ CQlpZiAoJGRpciA9PSAnbmV4dCcpIHsKCQkJCQkJJG91dFtdID0gKCFlbXB0eSgkdGhpc2Nh dGVnb3J5Wydpc19sYXN0J10pKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9IGVsc2UgewoJCQkJ CQkkb3V0W10gPSAoIWVtcHR5KCR0aGlzY2F0ZWdvcnlbJ2lzX2ZpcnN0J10pKSA/IHRydWUg OiBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJCQlicmVhazsKCQkJY2FzZSAnYXV0aG9yJzoKCQkJ CWlmICgkc21kX2luX25lYXJlc3QpIHsKCQkJCQlpZiAoJGRpciA9PSAnbmV4dCcpIHsKCQkJ CQkJJG91dFtdID0gKCFlbXB0eSgkc21kX2xhc3QpICYmICRzbWRfbGFzdFsnYXV0aG9yJ10g IT0gJHRoaXNhcnRpY2xlWydhdXRob3JpZCddKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9IGVs c2UgewoJCQkJCQkkb3V0W10gPSAoIWVtcHR5KCRzbWRfZmlyc3QpICYmICRzbWRfZmlyc3Rb J2F1dGhvciddICE9ICR0aGlzYXJ0aWNsZVsnYXV0aG9yaWQnXSkgPyB0cnVlIDogZmFsc2U7 CgkJCQkJfQoJCQkJfSBlbHNlIHsKCQkJCQkvLyBOb3QgcG9zc2libGUgc2luY2UgYXV0aG9y IGxpc3RzIGFyZSBub3QgcGVybWl0dGVkIGluIFRYUAoJCQkJfQoJCQkJYnJlYWs7CgkJCWNh c2UgJ2NhdDEnOgoJCQljYXNlICdjYXRlZ29yeTEnOgoJCQkJaWYgKCRzbWRfaW5fbmVhcmVz dCkgewoJCQkJCWlmICgkZGlyID09ICduZXh0JykgewoJCQkJCQkkb3V0W10gPSAoIWVtcHR5 KCRzbWRfbGFzdCkgJiYgJHNtZF9sYXN0WydjYXRlZ29yeTEnXSAhPSAkdGhpc2FydGljbGVb J2NhdGVnb3J5MSddKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9IGVsc2UgewoJCQkJCQkkb3V0 W10gPSAoIWVtcHR5KCRzbWRfZmlyc3QpICYmICRzbWRfZmlyc3RbJ2NhdGVnb3J5MSddICE9 ICR0aGlzYXJ0aWNsZVsnY2F0ZWdvcnkxJ10pID8gdHJ1ZSA6IGZhbHNlOwoJCQkJCX0KCQkJ CX0gZWxzZSB7CgkJCQkJaWYgKCRkaXIgPT0gJ25leHQnKSB7CgkJCQkJCSRvdXRbXSA9ICgh ZW1wdHkoJHRoaXNjYXRlZ29yeVsnaXNfbGFzdCddKSkgPyB0cnVlIDogZmFsc2U7CgkJCQkJ fSBlbHNlIHsKCQkJCQkJJG91dFtdID0gKCFlbXB0eSgkdGhpc2NhdGVnb3J5Wydpc19maXJz dCddKSkgPyB0cnVlIDogZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQkJYnJlYWs7CgkJCWNhc2Ug J2NhdDInOgoJCQljYXNlICdjYXRlZ29yeTInOgoJCQkJaWYgKCRzbWRfaW5fbmVhcmVzdCkg ewoJCQkJCWlmICgkZGlyID09ICduZXh0JykgewoJCQkJCQkkb3V0W10gPSAoIWVtcHR5KCRz bWRfbGFzdCkgJiYgJHNtZF9sYXN0WydjYXRlZ29yeTInXSAhPSAkdGhpc2FydGljbGVbJ2Nh dGVnb3J5MiddKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9IGVsc2UgewoJCQkJCQkkb3V0W10g PSAoIWVtcHR5KCRzbWRfZmlyc3QpICYmICRzbWRfZmlyc3RbJ2NhdGVnb3J5MiddICE9ICR0 aGlzYXJ0aWNsZVsnY2F0ZWdvcnkyJ10pID8gdHJ1ZSA6IGZhbHNlOwoJCQkJCX0KCQkJCX0g ZWxzZSB7CgkJCQkJaWYgKCRkaXIgPT0gJ25leHQnKSB7CgkJCQkJCSRvdXRbXSA9ICghZW1w dHkoJHRoaXNjYXRlZ29yeVsnaXNfbGFzdCddKSkgPyB0cnVlIDogZmFsc2U7CgkJCQkJfSBl bHNlIHsKCQkJCQkJJG91dFtdID0gKCFlbXB0eSgkdGhpc2NhdGVnb3J5Wydpc19maXJzdCdd KSkgPyB0cnVlIDogZmFsc2U7CgkJCQkJfQoJCQkJfQoJCQkJYnJlYWs7CgkJCWNhc2UgJ3Nl Y3Rpb24nOgoJCQlkZWZhdWx0OgoJCQkJaWYgKCRzbWRfaW5fbmVhcmVzdCkgewoJCQkJCWlm ICgkZGlyID09ICduZXh0JykgewoJCQkJCQkkb3V0W10gPSAoIWVtcHR5KCRzbWRfbGFzdCkg JiYgJHNtZF9sYXN0WydzZWN0aW9uJ10gIT0gJHRoaXNhcnRpY2xlWydzZWN0aW9uJ10pID8g dHJ1ZSA6IGZhbHNlOwoJCQkJCX0gZWxzZSB7CgkJCQkJCSRvdXRbXSA9ICghZW1wdHkoJHNt ZF9maXJzdCkgJiYgJHNtZF9maXJzdFsnc2VjdGlvbiddICE9ICR0aGlzYXJ0aWNsZVsnc2Vj dGlvbiddKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9CgkJCQl9IGVsc2UgewoJCQkJCWlmICgk ZGlyID09ICduZXh0JykgewoJCQkJCQkkb3V0W10gPSBlbXB0eSgkcHJldGV4dFsnbmV4dF9p ZCddKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9IGVsc2UgewoJCQkJCQkkb3V0W10gPSBlbXB0 eSgkcHJldGV4dFsncHJldl9pZCddKSA/IHRydWUgOiBmYWxzZTsKCQkJCQl9CgkJCQl9CgkJ CQlicmVhazsKCQl9Cgl9CglpZiAoJGRlYnVnKSB7CgkJZWNobyAnKysgVEVTVCBSRVNVTFRT ICsrJzsKCQlkbXAoJGl0b3V0KTsKCQlkbXAoJG91dCk7Cgl9CgkkcmVzID0gKCRvdXQpID8g dHJ1ZSA6IGZhbHNlOwoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAiYW5kIiAmJiBpbl9h cnJheShmYWxzZSwgJG91dCkpIHsKCQkkcmVzID0gZmFsc2U7Cgl9CglpZiAoc3RydG9sb3dl cigkbG9naWMpID09ICJvciIgJiYgIWluX2FycmF5KHRydWUsICRvdXQpKSB7CgkJJHJlcyA9 IGZhbHNlOwoJfQoJaWYgKCRkZWJ1ZykgewoJCWVjaG8gJysrIEZJTkFMIFJFU1VMVCArKyc7 CgkJZG1wKCRyZXMpOwoJfQoJcmV0dXJuIHBhcnNlKEV2YWxFbHNlKCR0aGluZywgJHJlcykp Owp9CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vIFByaXZhdGUgZnVuY3Rp b246IG5vdCBmb3IgcHVibGljIGNvbnN1bXB0aW9uCi8vICoqKioqKioqKioqKioqKioqKioq KioqKioqKioKZnVuY3Rpb24gc21kX25lYXJlc3QoJGF0dHMsICR0aGluZykgewoJZ2xvYmFs ICRwcmV0ZXh0LCAkdGhpc2FydGljbGUsICR0aGlzY2F0ZWdvcnksICRwcmVmcywgJG5leHRf aWQsICRwcmV2X2lkLCAkbmV4dF90aXRsZSwgJHByZXZfdGl0bGUsICRzbWRfbGFzdCwgJHNt ZF9maXJzdCwgJHNtZF9pbl9uZWFyZXN0OwoKCWV4dHJhY3QobEF0dHMoYXJyYXkoCgkJJ3Nl Y3Rpb24nID0+ICRwcmV0ZXh0WydzJ10sCgkJJ2NhdGVnb3J5JyA9PiAkcHJldGV4dFsnYydd LAoJCSdhdXRob3InID0+ICRwcmV0ZXh0WydhdXRob3InXSwKCQkncmVhbG5hbWUnID0+ICcn LAoJCSdzdGF0dXMnID0+ICc0JywKCQkndGltZScgPT4gJ2FueScsIC8vIGFueSwgZnV0dXJl LCBwYXN0CgkJJ2RhdGFzb3J0JyA9PiAnc2VjdGlvbiwgY2F0ZWdvcnkxLCBjYXRlZ29yeTIs IGF1dGhvcicsCgkJJ3RpbWVzb3J0JyA9PiAncG9zdGVkJywKCQknZm9ybScgPT4gJycsCgkJ J2RpcicgPT4gJ25leHQnLCAvLyBTZXQgYnkgd3JhcHBlciB0YWdzCgkJJ2RlYnVnJyA9PiAw LAoJKSwgJGF0dHMpKTsKCglleHRyYWN0KCRwcmVmcyk7Cgkkc21kX2luX25lYXJlc3QgPSB0 cnVlOwoKCSR0aGluZyA9IChlbXB0eSgkZm9ybSkpID8gJHRoaW5nIDogZmV0Y2hfZm9ybSgk Zm9ybSk7CgkkZXhwaXJlZCA9ICgkcHVibGlzaF9leHBpcmVkX2FydGljbGVzKSA/ICcnIDog JyBBTkQgKG5vdygpIDw9IEV4cGlyZXMgb3IgRXhwaXJlcyA9ICcuTlVMTERBVEVUSU1FLicp JzsKCSRzYWZlX25hbWUgPSBzYWZlX3BmeCgndGV4dHBhdHRlcm4nKTsKCgkvLyBGaWx0ZXJz CgkkY2F0U1FMID0gJHNlY1NRTCA9ICRhdXRoU1FMID0gJyc7CglpZigkY2F0ZWdvcnkpIHsK CQkkY2F0U1FMID0gZG9RdW90ZShqb2luKCInLCciLCBkb1NsYXNoKGRvX2xpc3QoJGNhdGVn b3J5KSkpKTsKCQkkY2F0U1FMID0gJyBBTkQgKCBDYXRlZ29yeTEgSU4gKCcuJGNhdFNRTC4n KSBPUiBDYXRlZ29yeTIgSU4gKCcuJGNhdFNRTC4nKSApICc7Cgl9CglpZigkc2VjdGlvbikg ewoJCSRzZWNTUUwgPSAnIEFORCBTZWN0aW9uIElOICgnLmRvUXVvdGUoam9pbigiJywnIiwg ZG9TbGFzaChkb19saXN0KCRzZWN0aW9uKSkpKS4nKSAnOwoJfQoJaWYoJHJlYWxuYW1lKSB7 CgkJJGF1dGhvciA9IGpvaW4oJywnLCBzYWZlX2NvbHVtbignbmFtZScsICd0eHBfdXNlcnMn LCAnUmVhbE5hbWUgSU4gKCcuIGRvUXVvdGUoam9pbigiJywnIiwgZG9TbGFzaChkb0FycmF5 KGRvX2xpc3QoJHJlYWxuYW1lKSwgJ3VybGRlY29kZScpKSkpIC4nKScgKSk7Cgl9CglpZigk YXV0aG9yKSB7CgkJJGF1dGhTUUwgPSAnIEFORCBBdXRob3JJRCBJTiAoJy5kb1F1b3RlKGpv aW4oIicsJyIsIGRvU2xhc2goZG9fbGlzdCgkYXV0aG9yKSkpKS4nKSAnOwoJfQoJJHN0YXR1 cyA9IGRvX2xpc3QoJHN0YXR1cyk7Cgkkc3RhdGkgPSBhcnJheSgpOwoJZm9yZWFjaCAoJHN0 YXR1cyBhcyAkc3RhdCkgewoJCWlmIChlbXB0eSgkc3RhdCkpIHsKCQkJY29udGludWU7CgkJ fSBlbHNlIGlmIChpc19udW1lcmljKCRzdGF0KSkgewoJCQkkc3RhdGlbXSA9ICRzdGF0OwoJ CX0gZWxzZSB7CgkJCSRzdGF0aVtdID0gZ2V0U3RhdHVzTnVtKCRzdGF0KTsKCQl9Cgl9Cgkk c3RhdFNRTCA9ICdTdGF0dXMgSU4gKCcuam9pbignLCcsICRzdGF0aSkuJyknOwoJJHRpbWVT UUwgPSAnJzsKCXN3aXRjaCgkdGltZSkgewoJCWNhc2UgImFueSIgOiBicmVhazsKCQljYXNl ICJmdXR1cmUiIDogJHRpbWVTUUwgPSAiIEFORCBQb3N0ZWQgPiBub3coKSI7IGJyZWFrOwoJ CWRlZmF1bHQgOiAkdGltZVNRTCA9ICIgQU5EIFBvc3RlZCA8IG5vdygpIjsgYnJlYWs7IC8v IFRoZSBwYXN0Cgl9CgoJLy8gU29ydAoJJHNvcmRlciA9ICgoJGRpcj09J25leHQnKSA/ICcg REVTQycgOiAnIEFTQycpOyAvLyBOZWdhdGl2ZSBsb2dpYyB0byBhdm9pZCBsb29rYWhlYWQ6 IHRoZSAibGFzdCIgcm93IHNlZW4gaXMgYWx3YXlzIHRoZSBvbmUgcmVxdWlyZWQKCSRvcmRl cmJ5ID0gYXJyYXkoKTsKCWlmICgkZGF0YXNvcnQpIHsKCQkkZGF0YXNvcnQgPSBkb19saXN0 KCRkYXRhc29ydCk7CgkJZm9yZWFjaCAoJGRhdGFzb3J0IGFzICRpdGVtKSB7CgkJCXN3aXRj aCgkaXRlbSkgewoJCQkJY2FzZSAnc2VjdGlvbic6CgkJCQkJaWYgKCRzZWN0aW9uKSB7CgkJ CQkJCSRvcmRlcmJ5W10gPSAnU2VjdGlvbicuJHNvcmRlcjsKCQkJCQl9CgkJCQkJYnJlYWs7 CgkJCQljYXNlICdjYXRlZ29yeSc6CgkJCQkJaWYgKCRjYXRlZ29yeSkgewoJCQkJCQkkb3Jk ZXJieVtdID0gJ0NhdGVnb3J5MScuJHNvcmRlcjsKCQkJCQkJJG9yZGVyYnlbXSA9ICdDYXRl Z29yeTInLiRzb3JkZXI7CgkJCQkJfQoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnY2F0ZWdvcnkx JzoKCQkJCQlpZiAoJGNhdGVnb3J5KSB7CgkJCQkJCSRvcmRlcmJ5W10gPSAnQ2F0ZWdvcnkx Jy4kc29yZGVyOwoJCQkJCX0KCQkJCQlicmVhazsKCQkJCWNhc2UgJ2NhdGVnb3J5Mic6CgkJ CQkJaWYgKCRjYXRlZ29yeSkgewoJCQkJCQkkb3JkZXJieVtdID0gJ0NhdGVnb3J5MicuJHNv cmRlcjsKCQkJCQl9CgkJCQkJYnJlYWs7CgkJCQljYXNlICdhdXRob3InOgoJCQkJCWlmICgk YXV0aG9yKSB7CgkJCQkJCSRvcmRlcmJ5W10gPSAnQXV0aG9ySUQnLiRzb3JkZXI7CgkJCQkJ fQoJCQkJCWJyZWFrOwoJCQkJZGVmYXVsdDoKCQkJCQkkb3JkZXJieVtdID0gJGl0ZW0uJHNv cmRlcjsKCQkJfQoJCX0KCX0KCWlmICgkdGltZXNvcnQpIHsKCQkkdGltZXNvcnQgPSBkb19s aXN0KCR0aW1lc29ydCk7CgkJZm9yZWFjaCAoJHRpbWVzb3J0IGFzICRpdGVtKSB7CgkJCXN3 aXRjaChzdHJ0b2xvd2VyKCRpdGVtKSkgewoJCQkJY2FzZSAnbGFzdG1vZCc6CgkJCQkJJG9y ZGVyYnlbXSA9ICdMYXN0TW9kJy4kc29yZGVyOwoJCQkJCWJyZWFrOwoJCQkJY2FzZSAnZXhw aXJlcyc6CgkJCQkJJG9yZGVyYnlbXSA9ICdFeHBpcmVzJy4kc29yZGVyOwoJCQkJCWJyZWFr OwoJCQkJY2FzZSAncG9zdGVkJzoKCQkJCWRlZmF1bHQ6CgkJCQkJJG9yZGVyYnlbXSA9ICdQ b3N0ZWQnLiRzb3JkZXI7CgkJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9CgoJJG9yZGVyYnkgPSAn IE9SREVSIEJZICcgLiBqb2luKCcsJywgJG9yZGVyYnkpOwoKCS8vIERvIGl0Cglhc3NlcnRf YXJ0aWNsZSgpOwoJJHJzID0gc2FmZV9yb3dzKCcqLCB1bml4X3RpbWVzdGFtcChQb3N0ZWQp IGFzIHVQb3N0ZWQsIHVuaXhfdGltZXN0YW1wKEV4cGlyZXMpIGFzIHVFeHBpcmVzLCB1bml4 X3RpbWVzdGFtcChMYXN0TW9kKSBhcyB1TGFzdE1vZCcsCgkndGV4dHBhdHRlcm4nLAoJJHN0 YXRTUUwuCgkJKCgkY2F0ZWdvcnkpID8gJGNhdFNRTCA6ICcnKS4KCQkoKCRzZWN0aW9uKSA/ ICRzZWNTUUwgOiAnJykuCgkJKCgkYXV0aG9yKSA/ICRhdXRoU1FMIDogJycpLgoJCSR0aW1l U1FMLgoJCSRleHBpcmVkLgoJCSRvcmRlcmJ5LAoJJGRlYnVnKTsKCWlmICgkZGVidWcgPiAx ICYmICRycykgewoJCWVjaG8gJysrIFJFQ09SRCBTRVQgKysnOwoJCWRtcCgkcnMpOwoJfQoJ Ly8gRmluZCB0aGUgY3VycmVudCBhcnRpY2xlIGluIHRoZSByZWNvcmQgc2V0LCB0aGVuIG1v dmUgdG8gZmluZCBuZXh0L3ByZXYKCSRsYXN0ID0gJGN1cnIgPSAkY3RyID0gMTsKCglmb3Jl YWNoICgkcnMgYXMgJHJvdykgewoJCWlmICgkcm93WydJRCddID09ICR0aGlzYXJ0aWNsZVsn dGhpc2lkJ10pIHsKCQkJJGN1cnIgPSAkbGFzdDsKCQkJYnJlYWs7CgkJfQoJCSRsYXN0ID0g JHJvdzsgLy8gU3RvcmUgY3VycmVudAoJCSRjdHIrKzsKCX0KCglpZiAoJGN1cnIgIT09IDEp IHsKCQlpZiAoJGRpcj09J25leHQnKSB7CgkJCSRzbWRfbGFzdFsncG9zaXRpb24nXSA9ICRj dHI7CgkJCSRzbWRfbGFzdFsnc2VjdGlvbiddID0gJHRoaXNhcnRpY2xlWydzZWN0aW9uJ107 CgkJCSRzbWRfbGFzdFsncHNlYyddID0gJHByZXRleHRbJ3MnXTsKCQkJJHNtZF9sYXN0Wydw Y2F0J10gPSAkcHJldGV4dFsnYyddOwoJCQkkc21kX2xhc3RbJ2NhdGVnb3J5MSddID0gJHRo aXNhcnRpY2xlWydjYXRlZ29yeTEnXTsKCQkJJHNtZF9sYXN0WydjYXRlZ29yeTInXSA9ICR0 aGlzYXJ0aWNsZVsnY2F0ZWdvcnkyJ107CgkJCSRzbWRfbGFzdFsnYXV0aG9yJ10gPSAkdGhp c2FydGljbGVbJ2F1dGhvcmlkJ107CgkJfSBlbHNlIHsKCQkJJHNtZF9maXJzdFsncG9zaXRp b24nXSA9ICRjdHI7CgkJCSRzbWRfZmlyc3RbJ3BzZWMnXSA9ICRwcmV0ZXh0WydzJ107CgkJ CSRzbWRfZmlyc3RbJ3BjYXQnXSA9ICRwcmV0ZXh0WydjJ107CgkJCSRzbWRfZmlyc3RbJ3Nl Y3Rpb24nXSA9ICR0aGlzYXJ0aWNsZVsnc2VjdGlvbiddOwoJCQkkc21kX2ZpcnN0WydjYXRl Z29yeTEnXSA9ICR0aGlzYXJ0aWNsZVsnY2F0ZWdvcnkxJ107CgkJCSRzbWRfZmlyc3RbJ2Nh dGVnb3J5MiddID0gJHRoaXNhcnRpY2xlWydjYXRlZ29yeTInXTsKCQkJJHNtZF9maXJzdFsn YXV0aG9yJ10gPSAkdGhpc2FydGljbGVbJ2F1dGhvcmlkJ107CgkJfQoJfSBlbHNlIHsKCQlp ZiAoJGRpcj09J25leHQnKSB7CgkJCSRzbWRfbGFzdCA9IGFycmF5KCk7CgkJfSBlbHNlIHsK CQkJJHNtZF9maXJzdCA9IGFycmF5KCk7CgkJfQoJfQoKCWlmICgkZGVidWcpIHsKCQlpZiAo JGRpcj09J25leHQnKSB7CgkJCWVjaG8gJysrIE1PU1QgUkVDRU5UIChORVhUKSArKyc7CgkJ CWRtcCgkc21kX2xhc3QpOwoJCX0gZWxzZSB7CgkJCWVjaG8gJysrIE1PU1QgUkVDRU5UIChQ UkVWKSArKyc7CgkJCWRtcCgkc21kX2ZpcnN0KTsKCQl9Cgl9CgoJLy8gUG9wdWxhdGUgZ2xv YmFscyBpZiB0aGUgbmV4dC9wcmV2IGFydGljbGUgZXhpc3RzCgkkb3V0ID0gJyc7Cgkkc2F2 ZWQgPSBhcnJheSgpOwoJaWYgKCRjdXJyID09PSAxKSB7CgkJJG91dCA9IHBhcnNlKCR0aGlu Zyk7Cgl9IGVsc2UgewoJCS8vIEtlZXAgYSBub3RlIG9mIHdoZXJlIHdlIHdlcmUKCQlhcnRp Y2xlX3B1c2goKTsKCQkkc2F2ZWRbJ3ByZXZfaWQnXSA9ICRwcmV2X2lkOwoJCSRzYXZlZFsn bmV4dF9pZCddID0gJG5leHRfaWQ7CgkJJHNhdmVkWydwcmV2X3RpdGxlJ10gPSAkcHJldl90 aXRsZTsKCQkkc2F2ZWRbJ25leHRfdGl0bGUnXSA9ICRuZXh0X3RpdGxlOwoKCQkvLyBQcmV0 ZW5kIHdlJ3JlIGluIHRoZSBuZXcgYXJ0aWNsZSwgYW5kIGZha2UgdGhlIGdsb2JhbCB2YXJz CgkJcG9wdWxhdGVBcnRpY2xlRGF0YSgkY3Vycik7CgkJJHByZXZfaWQgPSAoJGRpcj09J3By ZXYnKSA/ICRjdXJyWydJRCddIDogJyc7CgkJJG5leHRfaWQgPSAoJGRpcj09J25leHQnKSA/ ICRjdXJyWydJRCddIDogJyc7CgkJJHByZXZfdGl0bGUgPSAoJGRpcj09J3ByZXYnKSA/ICRj dXJyWydUaXRsZSddIDogJyc7CgkJJG5leHRfdGl0bGUgPSAoJGRpcj09J25leHQnKSA/ICRj dXJyWydUaXRsZSddIDogJyc7CgkJJHVybCA9IHBlcm1saW5rdXJsX2lkKCRjdXJyWydJRCdd KTsKCQkkdGhpbmcgPSAoZW1wdHkoJHRoaW5nKSkgPyAnPGEgcmVsPSInLiRkaXIuJyIgaHJl Zj0iJy4kdXJsLiciIHRpdGxlPSInLiRjdXJyWydUaXRsZSddLiciPicuJGN1cnJbJ1RpdGxl J10uJzwvYT4nIDogJHRoaW5nOwoJCSRvdXQgPSBwYXJzZSgkdGhpbmcpOwoKCQkvLyBSZXN0 b3JlIGV2ZXJ5dGhpbmcKCQkkcHJldl9pZCA9ICRzYXZlZFsncHJldl9pZCddOwoJCSRuZXh0 X2lkID0gJHNhdmVkWyduZXh0X2lkJ107CgkJJHByZXZfdGl0bGUgPSAkc2F2ZWRbJ3ByZXZf dGl0bGUnXTsKCQkkbmV4dF90aXRsZSA9ICRzYXZlZFsnbmV4dF90aXRsZSddOwoJCWFydGlj bGVfcG9wKCk7Cgl9Cgkkc21kX2luX25lYXJlc3QgPSBmYWxzZTsKCXJldHVybiAkb3V0Owp9 CgovLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi8vIFByaXZhdGUgZnVuY3Rpb246 IG5vdCBmb3IgcHVibGljIGNvbnN1bXB0aW9uCi8vICoqKioqKioqKioqKioqKioqKioqKioq KioqKioKZnVuY3Rpb24gc21kX2xpbmtfdG8oJGF0dHMsICR0aGluZyA9IE5VTEwpIHsKCWds b2JhbCAkbmV4dF9pZCwgJHByZXZfaWQsICRuZXh0X3RpdGxlLCAkcHJldl90aXRsZSwgJHNt ZF9sYXN0LCAkc21kX2ZpcnN0LCAkc21kX2luX25lYXJlc3Q7CgoJZXh0cmFjdChsQXR0cyhh cnJheSgKCQknc2hvd2Fsd2F5cycgPT4gMCwKCQknbGlua3BhcnRzJyA9PiAncmVsLCB0aXRs ZScsCgkJJ3dyYXB0YWcnID0+ICcnLAoJCSdjbGFzcycgPT4gJycsCgkJJ3VybHZhcnMnID0+ ICcnLAoJCSd1cmxmb3JtYXQnID0+ICcnLAoJCSdkaXInID0+ICduZXh0JywgLy8gU2V0IGJ5 IHdyYXBwZXIgdGFncwoJCSdkZWJ1ZycgPT4gJzAnLAoJKSwgJGF0dHMpKTsKCgkvLyBNYWlu dGFpbiBhbnkgVVJMIHZhcmlhYmxlcwoJJGFkZEFyZ3MgPSBhcnJheSgpOwoJaWYoJHVybHZh cnMpIHsKCQkkb3B0ZW5jb2RlID0gJG9wdGZvcmNlID0gJG9wdHByaSA9IGZhbHNlOwoJCWlm IChzdHJwb3MoJHVybHZhcnMsICdTTURfQUxMJykgPT09IDApIHsKCQkJLy8gRGV0ZXJtaW5l IGlmIG9wdGlvbnMgYXJlIHRvIGJlIGFwcGxpZWQgZ2xvYmFsbHkKCQkJJHVybG9wdHMgPSBk b19saXN0KCR1cmx2YXJzLCAnOicpOwoJCQkkb3B0ZW5jb2RlID0gKGluX2FycmF5KCdFU0NB UEUnLCAkdXJsb3B0cykpID8gdHJ1ZSA6IGZhbHNlOwoJCQkkb3B0Zm9yY2UgPSAoaW5fYXJy YXkoJ0ZPUkNFJywgJHVybG9wdHMpKSA/IHRydWUgOiBmYWxzZTsKCQkJJG9wdHByaSA9IChp bl9hcnJheSgnVEFHX1BSSU9SSVRZJywgJHVybG9wdHMpKSA/IHRydWUgOiBmYWxzZTsKCQkJ Ly8gUE9TVCBvdmVycmlkZXMgR0VUIGlmIGJvdGggZXhpc3QKCQkJJHVybHZhcnMgPSBhcnJh eV9tZXJnZShhcnJheV9rZXlzKCRfR0VUKSwgYXJyYXlfa2V5cygkX1BPU1QpKTsKCQl9IGVs c2UgewoJCQkkdXJsdmFycyA9IGRvX2xpc3QoJHVybHZhcnMpOwoJCX0KCgkJZm9yZWFjaCAo JHVybHZhcnMgYXMgJHVybHZhcikgewoJCQkkdXJsb3B0cyA9IGRvX2xpc3QoJHVybHZhciwg JzonKTsKCQkJJGVuY29kZSA9ICgkb3B0ZW5jb2RlIHx8IGluX2FycmF5KCdFU0NBUEUnLCAk dXJsb3B0cykpID8gdHJ1ZSA6IGZhbHNlOwoJCQkkZm9yY2UgPSAoJG9wdGZvcmNlIHx8IGlu X2FycmF5KCdGT1JDRScsICR1cmxvcHRzKSkgPyB0cnVlIDogZmFsc2U7CgkJCSRwcmkgPSAo JG9wdHByaSB8fCBpbl9hcnJheSgnVEFHX1BSSU9SSVRZJywgJHVybG9wdHMpKSA/IHRydWUg OiBmYWxzZTsKCQkJJHVybHBhcnRzID0gZG9fbGlzdCgkdXJsb3B0c1swXSwgJz0nKTsKCQkJ JHZhciA9ICR1cmxwYXJ0c1swXTsKCQkJJHZhbCA9IGdwcygkdXJscGFydHNbMF0pOwoJCQlp ZiAoJHByaSkgewoJCQkJJHZhbCA9IChpc3NldCgkdXJscGFydHNbMV0pKSA/ICR1cmxwYXJ0 c1sxXSA6IGdwcygkdXJscGFydHNbMF0pOwoJCQl9IGVsc2UgewoJCQkJaWYgKCR2YWw9PScn ICYmIGlzc2V0KCR1cmxwYXJ0c1sxXSkpIHsKCQkJCQkkdmFsID0gJHVybHBhcnRzWzFdOwoJ CQkJfQoJCQl9CgkJCSR2YWwgPSAoJGVuY29kZSkgPyBodG1sZW50aXRpZXMoJHZhbCkgOiAk dmFsOwoJCQlpZiAoJHZhbCAhPT0gJycgfHwgJGZvcmNlKSB7CgkJCQkkYWRkQXJnc1skdmFy XSA9ICR2YWw7CgkJCX0KCQl9Cgl9CgoJaWYgKCRkZWJ1ZyAmJiAkYWRkQXJncykgewoJCWVj aG8gJysrIFVSTCBWQVJTICsrJzsKCQlkbXAoJGFkZEFyZ3MpOwogICB9CgoJaWYgKCR1cmxm b3JtYXQgPT0gJycpIHsKCQkkdXJsZm9ybWF0ID0gJz8nOwoJCWZvcmVhY2ggKCRhZGRBcmdz IGFzICRhZGRhcmcgPT4gJGFkZHZhbCkgewoJCQkkdXJsZm9ybWF0IC49ICd7Jy4kYWRkYXJn LidfdmFyfT17Jy4kYWRkYXJnLidfdmFsfSc7CgkJfQoJfQoKCS8vIEdlbmVyYXRlIHRoZSBh ZGRpdGlvbmFsIFVSTCBwYXJhbXMgYXMgZGVmaW5lZCBpbiB1cmxmb3JtYXQKCWZvcmVhY2gg KCRhZGRBcmdzIGFzICRhZGRhcmcgPT4gJGFkZHZhbCkgewoJCSRhcmd2YXIgPSAkYWRkYXJn LidfdmFyJzsKCQkkYXJndmFsID0gJGFkZGFyZy4nX3ZhbCc7CgkJJHVybGZvcm1hdCA9IHN0 cl9yZXBsYWNlKCd7Jy4kYXJndmFyLid9JywgJGFkZGFyZywgJHVybGZvcm1hdCk7CgkJJHVy bGZvcm1hdCA9IHN0cl9yZXBsYWNlKCd7Jy4kYXJndmFsLid9JywgJGFkZHZhbCwgJHVybGZv cm1hdCk7Cgl9CgoJLy8gV29yayBvdXQgd2hpY2ggcGFydHMgb2YgdGhlIGxpbmsgdG8gaW5j bHVkZQoJJGxpbmtwYXJ0cyA9IGRvX2xpc3QoJGxpbmtwYXJ0cyk7Cgkkc2hvd19yZWwgPSBp bl9hcnJheSgncmVsJywgJGxpbmtwYXJ0cykgPyB0cnVlIDogZmFsc2U7Cgkkc2hvd190dGwg PSBpbl9hcnJheSgndGl0bGUnLCAkbGlua3BhcnRzKSA/IHRydWUgOiBmYWxzZTsKCglpZiAo JGRpcj09J25leHQnICYmICgoJHNtZF9pbl9uZWFyZXN0KSA/ICRzbWRfbGFzdCA6IDEpKSB7 CgkJaWYgKCRuZXh0X2lkKSB7CgkJCSR1cmwgPSBwZXJtbGlua3VybF9pZCgkbmV4dF9pZCkg LiAoKCRhZGRBcmdzKSA/ICR1cmxmb3JtYXQgOiAnJyk7CgkJCWlmICgkdGhpbmcpIHsKCQkJ CSR0aGluZyA9IHBhcnNlKCR0aGluZyk7CgkJCQkkbmV4dF90aXRsZSA9IGVzY2FwZV90aXRs ZSgkbmV4dF90aXRsZSk7CgoJCQkJcmV0dXJuIGRvV3JhcChhcnJheSgnPGEnIC4gKCRzaG93 X3JlbCA/ICcgcmVsPSJuZXh0IicgOiAnJykgLiAnIGhyZWY9IicuJHVybC4nIicuICgoJGNs YXNzICYmICEkd3JhcHRhZykgPyAnIGNsYXNzPSInLiRjbGFzcy4nIicgOiAnJykuCgkJCQkJ KCRuZXh0X3RpdGxlICE9ICR0aGluZyA/ICgoJHNob3dfdHRsKSA/ICcgdGl0bGU9IicuJG5l eHRfdGl0bGUuJyInIDogJycpIDogJycpLgoJCQkJCSc+Jy4kdGhpbmcuJzwvYT4nKSwgJHdy YXB0YWcsICcnLCAkY2xhc3MpOwoJCQl9CgkJCXJldHVybiAkdXJsOwoJCX0gZWxzZSB7CgkJ CXJldHVybiAoJHNob3dhbHdheXMpID8gcGFyc2UoJHRoaW5nKSA6ICcnOwoJCX0KCX0KCWlm ICgkZGlyPT0ncHJldicgJiYgKCgkc21kX2luX25lYXJlc3QpID8gJHNtZF9maXJzdCA6IDEp KSB7CgkJaWYgKCRwcmV2X2lkKSB7CgkJCSR1cmwgPSBwZXJtbGlua3VybF9pZCgkcHJldl9p ZCkgLiAoKCRhZGRBcmdzKSA/ICR1cmxmb3JtYXQgOiAnJyk7CgkJCWlmICgkdGhpbmcpIHsK CQkJCSR0aGluZyA9IHBhcnNlKCR0aGluZyk7CgkJCQkkcHJldl90aXRsZSA9IGVzY2FwZV90 aXRsZSgkcHJldl90aXRsZSk7CgoJCQkJcmV0dXJuIGRvV3JhcChhcnJheSgnPGEnIC4gKCRz aG93X3JlbCA/ICcgcmVsPSJwcmV2IicgOiAnJykgLiAnIGhyZWY9IicuJHVybC4nIicuICgo JGNsYXNzICYmICEkd3JhcHRhZykgPyAnIGNsYXNzPSInLiRjbGFzcy4nIicgOiAnJykuCgkJ CQkJKCRwcmV2X3RpdGxlICE9ICR0aGluZyA/ICgoJHNob3dfdHRsKSA/ICcgdGl0bGU9Iicu JHByZXZfdGl0bGUuJyInIDogJycpIDogJycpLgoJCQkJCSc+Jy4kdGhpbmcuJzwvYT4nKSwg JHdyYXB0YWcsICcnLCAkY2xhc3MpOwoJCQl9CgkJCXJldHVybiAkdXJsOwoJCX0gZWxzZSB7 CgkJCXJldHVybiAoJHNob3dhbHdheXMpID8gcGFyc2UoJHRoaW5nKSA6ICcnOwoJCX0KCX0K CXJldHVybjsKfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo1 OiJmbGFncyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6MjYzNzU6IjxoMSBpZD0idG9wIj5zbWRf aG9yaXpvbjwvaDE+Cgo8cD5UaGUgZXhpc3RpbmcgdGFncyA8Y29kZT4mbHQ7dHhwOm5leHRf dGl0bGUgLyZndDs8L2NvZGU+LCA8Y29kZT4mbHQ7dHhwOmxpbmtfdG9fbmV4dCAvJmd0Ozwv Y29kZT4gYW5kIHRoZWlyIDxjb2RlPnByZXY8L2NvZGU+IGNvdW50ZXJwYXJ0cyBjZWFzZSB0 byBmdW5jdGlvbiB3aGVuIHRoZXkgcmVhY2ggdGhlIGZpcnN0L2xhc3QgcG9zdGVkIGFydGlj bGUgaW4gYSBzZWN0aW9uLiBJZiB5b3UgaGF2ZSBldmVyIHdhbnRlZCB0byBuYXZpZ2F0ZSBv ZmYgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGdyaWQsIHRoaXMgcGx1Z2lu IGNhbiBoZWxwLjwvcD4KCjxoMiBpZD0iZmVhdHVyZXMiPkZlYXR1cmVzPC9oMj4KCgk8dWw+ CgkJPGxpPkFiaWxpdHkgdG8gbGluayB0byBhcnRpY2xlcyB0aGF0IGFyZSB0byBiZSBwdWJs aXNoZWQgaW4gZnV0dXJlOyA8Y29kZT4mbHQ7dHhwOm5leHQvcHJldl90aXRsZSAvJmd0Ozwv Y29kZT4gYW5kIDxjb2RlPiZsdDt0eHA6bGlua190b19uZXh0L3ByZXYmZ3Q7PC9jb2RlPiB3 b3JrIGJleW9uZCB0aGUgZXhpc3RpbmcgUG9zdGVkIHJhbmdlPC9saT4KCQk8bGk+RGV0ZWN0 aW9uIG9mIHdoZW4geW91IGFyZSBhYm91dCB0byAmIzgyMjA7ZmFsbCBvZmYgdGhlIGVuZCYj ODIyMTsgb2YgYSBzZWN0aW9uIG9yIGNhdGVnb3J5LCBpbiBlaXRoZXIgZGlyZWN0aW9uPC9s aT4KCQk8bGk+RW50aXJlIGFkamFjZW50IGFydGljbGUgY29udGVudHMgYXZhaWxhYmxlIGlu IHRoZSBjdXJyZW50IGFydGljbGUgZm9yIHlvdXIgKG1pcyl1c2Ugc28geW91IGNhbiB0ZWFz ZSBwZW9wbGUgd2l0aCB3aGF0JiM4MjE3O3MgY29taW5nIG5leHQgb3IgdXNlIGFueSBhcnRp Y2xlIGNvbnRlbnQgYXMgYSBsaW5rPC9saT4KCQk8bGk+TmF2aWdhdGUgc2VhbWxlc3NseSBi ZXR3ZWVuIG1hbnkgc2VjdGlvbnMsIGNhdGVnb3JpZXMgb3IgYXV0aG9yczwvbGk+Cgk8L3Vs PgoKPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvaDI+ Cgo8cCBjbGFzcz0icmVxdWlyZWQiPlJlcXVpcmVzIFRleHRwYXR0ZXJuIDQuMC43KzwvcD4K CjxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3Rl eHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzEwNzkvc21kX2hvcml6b24iPnRleHRwYXR0ZXJuLm9y ZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3 YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVu YWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRw YXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTMwNDY0Ij5mb3J1bSB0aHJlYWQ8L2E+IGZv ciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBv ZiB0aGUgcGx1Z2luLjwvcD4KCjxwPlRvIHVuaW5zdGFsbCwgc2ltcGx5IGRlbGV0ZSBmcm9t IHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhZ2UuPC9wPgoKPGgyIGlkPSJucCI+VGFnczog PGNvZGU+Jmx0O3R4cDpzbWRfbmV4dCZndDs8L2NvZGU+IC8gPGNvZGU+Jmx0O3R4cDpzbWRf cHJldiZndDs8L2NvZGU+PC9oMj4KCjxwPldyYXAgZWl0aGVyIDxjb2RlPiZsdDt0eHA6c21k X25leHQmZ3Q7PC9jb2RlPiBvciA8Y29kZT4mbHQ7dHhwOnNtZF9wcmV2Jmd0OzwvY29kZT4g YXJvdW5kIGV4aXN0aW5nIDxjb2RlPiZsdDt0eHA6bGlua190b19uZXh0L3ByZXYgLyZndDs8 L2NvZGU+IGFuZCA8Y29kZT4mbHQ7dHhwOm5leHQvcHJldl90aXRsZSAvJmd0OzwvY29kZT4g dGFncyB0byBiZSBhYmxlIHRvIG5hdmlnYXRlIG11bHRpcGxlIHNlY3Rpb25zIG9yIGZ1dHVy ZSBhcnRpY2xlcy48L3A+Cgo8aDMgY2xhc3M9ImF0dHMiIGlkPSJucGF0dHMiPkF0dHJpYnV0 ZXM8L2gzPgoKCTx1bD4KCQk8bGk+PHN0cm9uZz5zZWN0aW9uPC9zdHJvbmc+OiBuYXZpZ2F0 ZSBhbW9uZyBhcnRpY2xlcyBpbiB0aGlzIGxpc3Qgb2Ygc2VjdGlvbnMuIERlZmF1bHQ6IGN1 cnJlbnQgc2VjdGlvbjwvbGk+CgkJPGxpPjxzdHJvbmc+Y2F0ZWdvcnk8L3N0cm9uZz46IG5h dmlnYXRlIGFtb25nIGFydGljbGVzIGhhdmluZyB0aGlzIGxpc3Qgb2YgY2F0ZWdvcmllcy4g RGVmYXVsdDogY3VycmVudCBjYXRlZ29yeTwvbGk+CgkJPGxpPjxzdHJvbmc+YXV0aG9yPC9z dHJvbmc+OiBuYXZpZ2F0ZSBhbW9uZyBhcnRpY2xlcyBieSB0aGlzIGxpc3Qgb2YgYXV0aG9y IElEcy4gRGVmYXVsdDogY3VycmVudCBhdXRob3I8L2xpPgoJCTxsaT48c3Ryb25nPnJlYWxu YW1lPC9zdHJvbmc+OiBuYXZpZ2F0ZSBhbW9uZyBhcnRpY2xlcyBieSB0aGlzIGxpc3Qgb2Yg YXV0aG9yIFJlYWwgTmFtZXMuIERlZmF1bHQ6IHVuc2V0LiBOb3RlIHRoaXMgYWRkcyBvbmUg ZGF0YWJhc2UgcXVlcnkgdG8gdGhlIHBhZ2Ugc28gaWYgeW91IGNhbiBwb3NzaWJseSB1c2Ug PGNvZGU+YXV0aG9yPC9jb2RlPiBpbnN0ZWFkLCBkbyBzbzwvbGk+CgkJPGxpPjxzdHJvbmc+ c3RhdHVzPC9zdHJvbmc+OiB0YWtlIGFydGljbGVzIGluIHRoaXMgbGlzdCBvZiBzdGF0dXMg aW50byBjb25zaWRlcmF0aW9uLiBVc2UgZWl0aGVyIHRoZSBuYW1lICg8Y29kZT5saXZlPC9j b2RlPiwgPGNvZGU+aGlkZGVuPC9jb2RlPiwgZXRjKSBvciB0aGVpciBlcXVpdmFsZW50IG51 bWVyaWMgdmFsdWVzLiBEZWZhdWx0OiA8Y29kZT5saXZlPC9jb2RlPi4gTm90ZTogeW91IHN0 aWxsIGNhbm5vdCBhY3R1YWxseSA8ZW0+dmlldzwvZW0+IChpLmUuIG5hdmlnYXRlIHRvKSBh cnRpY2xlcyB0aGF0IGFyZSBub3QgTGl2ZSBvciBTdGlja3kgYnV0IHlvdSBjYW4gc2VlIHRo ZWlyIGNvbnRlbnRzIGZyb20gdGhlIGN1cnJlbnQgYXJ0aWNsZSAoaS5lLiBwcmV2aWV3IHRo ZW06IHNlZSA8YSBocmVmPSIjZWczIj5leGFtcGxlIDM8L2E+KTwvbGk+CgkJPGxpPjxzdHJv bmc+dGltZTwvc3Ryb25nPjogY2hvb3NlIHdoaWNoIHRpbWVmcmFtZSB5b3VyIGFydGljbGVz IHNob3VsZCBiZSBpbi4gRWl0aGVyIDxjb2RlPmFueTwvY29kZT4sIDxjb2RlPmZ1dHVyZTwv Y29kZT4sIG9yIDxjb2RlPnBhc3Q8L2NvZGU+LiBEZWZhdWx0OiA8Y29kZT5hbnk8L2NvZGU+ PC9saT4KCQk8bGk+PHN0cm9uZz5kYXRhc29ydDwvc3Ryb25nPjogb3JkZXIgdGhlIGFydGlj bGVzIGJ5IHRoZXNlIGRhdGEgaXRlbXM8c3VwIGNsYXNzPSJmb290bm90ZSIgaWQ9ImZucmV2 MjE0NTA5MzY5NTUxNDcyNWY1MmRmMiI+PGEgaHJlZj0iI2ZuMjE0NTA5MzY5NTUxNDcyNWY1 MmRmMiI+MTwvYT48L3N1cD4uIFlvdSBzaG91bGQgbm90IG5vcm1hbGx5IG5lZWQgdGhpcyBh cyBpdCBhdXRvbWF0aWNhbGx5IHNvcnRzIGJhc2VkIG9uIHlvdXIgc2VjdGlvbiwgY2F0ZWdv cnkgYW5kIGF1dGhvciBmaWx0ZXJzLiBEZWZhdWx0OiA8Y29kZT5zZWN0aW9uLCBjYXRlZ29y eTEsIGNhdGVnb3J5MiwgYXV0aG9yPC9jb2RlPi4gTm90ZSB0aGF0IHVubGlrZSByZWd1bGFy IHNvcnQgb3B0aW9ucyB0aGlzIGRvZXMgPGVtPm5vdDwvZW0+IHRha2UgPGNvZGU+YXNjPC9j b2RlPiBvciA8Y29kZT5kZXNjPC9jb2RlPjogdGhlIHNvcnQgb3JkZXIgaXMgZGV0ZXJtaW5l ZCBieSB3aGV0aGVyIHlvdSBhcmUgdXNpbmcgc21kX3ByZXYgb3Igc21kX25leHQ8L2xpPgoJ CTxsaT48c3Ryb25nPnRpbWVzb3J0PC9zdHJvbmc+OiBvcmRlciBhcnRpY2xlcyBieSB0aGVz ZSB0aW1lIG9wdGlvbnM8c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMjE0NTA5 MzY5NTUxNDcyNWY1MmRmMiI+MTwvYT48L3N1cD4uIENhbiBiZSBhbnkgb2YgPGNvZGU+cG9z dGVkPC9jb2RlPiwgPGNvZGU+bGFzdG1vZDwvY29kZT4gb3IgPGNvZGU+ZXhwaXJlczwvY29k ZT4uIERlZmF1bHQ6IDxjb2RlPnBvc3RlZDwvY29kZT48L2xpPgoJCTxsaT48c3Ryb25nPmZv cm08L3N0cm9uZz46IGlmIHlvdSBwcmVmZXIgdG8gdXNlIGEgZm9ybSBpbnN0ZWFkIG9mIHRo ZSBjb250YWluZXIgdG8gaG9sZCB5b3VyIG1hcmt1cCBhbmQgdGFncywgc3BlY2lmeSBpdCBo ZXJlLiBEZWZhdWx0OiB1bnNldC48L2xpPgoJPC91bD4KCjxwIGNsYXNzPSJmb290bm90ZSIg aWQ9ImZuMjE0NTA5MzY5NTUxNDcyNWY1MmRmMiI+PHN1cD4xPC9zdXA+IFRoZSByZWFzb24g dGhlcmUgYXJlIHR3byB0eXBlcyBvZiBzb3J0IG9wdGlvbnMgaXMgYmVjYXVzZSB0aGUgJiM4 MjE2O2RhdGFzb3J0JiM4MjE3OyBpcyBhcHBsaWVkIGZpcnN0LiBUaHVzLCBpbiB0aGUgY2Fz ZSBvZiBsaW5raW5nIGFtb25nIG11bHRpcGxlIHNlY3Rpb25zLCBhcnRpY2xlcyBhcmUgYWx3 YXlzIG9yZGVyZWQgYnkgZGF0ZSA8ZW0+d2l0aGluPC9lbT4gYSBzZWN0aW9uLiBJZiB0aGlz IHdlcmUgbm90IHRoZSBjYXNlLCB5b3VyIGFydGljbGVzIG1pZ2h0IGJlIG11ZGRsZWQgdXAg YW5kIGl0IHdvdWxkIGJlIHZlcnkgZGlmZmljdWx0IHRvIGtub3cgd2hlbiB5b3UgaGF2ZSBy ZWFjaGVkIHRoZSAmIzgyMTY7ZW5kJiM4MjE3OyBvZiBhIHNlY3Rpb24gb3IgY2F0ZWdvcnku PC9wPgoKPGgyIGlkPSJsaW5rdG8iPlRhZ3M6IDxjb2RlPiZsdDt0eHA6c21kX2xpbmtfdG9f bmV4dCZndDs8L2NvZGU+IC8gPGNvZGU+Jmx0O3R4cDpzbWRfbGlua190b19wcmV2Jmd0Ozwv Y29kZT48L2gyPgoKPHA+QSBkcm9wLWluIHJlcGxhY2VtZW50IGZvciB0aGUgYnVpbHQtaW4g bmF2aWdhdGlvbiB0YWdzLCB3aXRoIGEgZmV3IGFkZGl0aW9uYWwgYXR0cmlidXRlczo8L3A+ CgoJPHVsPgoJCTxsaT48c3Ryb25nPndyYXB0YWc8L3N0cm9uZz46IHRoZSAoWClIVE1MIHRh Zywgd2l0aG91dCBpdHMgYnJhY2tldHMsIHRvIHdyYXAgcm91bmQgdGhlIGxpbmssIGUuZy4g PGNvZGU+d3JhcHRhZz0mcXVvdDtkaXYmcXVvdDs8L2NvZGU+LiBJZiB1c2VkIGFzIGEgU2lu Z2xlIHRhZywgdGhpcyBhdHRyaWJ1dGUgaXMgaWdub3JlZC4gRGVmYXVsdDogdW5zZXQ8L2xp PgoJCTxsaT48c3Ryb25nPmNsYXNzPC9zdHJvbmc+OiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PkNTUzwvc3Bhbj4gY2xhc3MgbmFtZSB0byBhcHBseSB0byB0aGUgd3JhcHRhZy4gSWYgbm8g d3JhcHRhZyBpcyBnaXZlbiwgdGhlIGNsYXNzIGlzIGFwcGxpZWQgZGlyZWN0bHkgdG8gdGhl IGxpbmsgaXRzZWxmLiBJZiB1c2VkIGFzIGEgU2luZ2xlIHRhZywgdGhpcyBhdHRyaWJ1dGUg aXMgaWdub3JlZC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3Ryb25nPmxpbmtwYXJ0 czwvc3Ryb25nPjogd2hpY2ggcGFydHMgb2YgdGhlIGFuY2hvciB0byBpbmNsdWRlLiBDaG9v c2UgZnJvbSA8Y29kZT5yZWw8L2NvZGU+IG9yIDxjb2RlPnRpdGxlPC9jb2RlPi4gU2V0IDxj b2RlPmxpbmtwYXJ0cz0mIzM5OyYjMzk7PC9jb2RlPiB0byByZW1vdmUgYm90aCByZWwgYW5k IHRpdGxlIGZyb20gdGhlIGFuY2hvci4gRGVmYXVsdDogPGNvZGU+cmVsLCB0aXRsZTwvY29k ZT4gKGJvdGggcGFydHMgdmlzaWJsZSk8L2xpPgoJCTxsaT48c3Ryb25nPnVybHZhcnM8L3N0 cm9uZz46IGEgbGlzdCBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJs ZSBuYW1lcyB0byBhZGQgdG8gdGhlIGdlbmVyYXRlZCBsaW5rLiBEZWZhdWx0OiB1bnNldDwv bGk+CgkJPGxpPjxzdHJvbmc+dXJsZm9ybWF0PC9zdHJvbmc+OiBob3cgeW91IHdvdWxkIGxp a2UgeW91ciA8Y29kZT51cmx2YXJzPC9jb2RlPiBhZGRlZCB0byB0aGUgYWRkcmVzcyBiYXIu IFVzZWZ1bCBpZiB5b3UgaGF2ZSBjdXN0b20gcmV3cml0ZSBydWxlcyBpbiBwbGFjZS4gRm9y IGV4YW1wbGUgPGNvZGU+dXJsdmFycz0mcXVvdDtjb3VudHJ5LCB0ZXJyaXRvcnkmcXVvdDsg dXJsZm9ybWF0PSZxdW90Oy97Y291bnRyeV92YXJ9L3tjb3VudHJ5X3ZhbH0ve3RlcnJpdG9y eV92YXJ9PXt0ZXJyaXRvcnlfdmFsfSZxdW90OzwvY29kZT4gbWlnaHQgd3JpdGUgYSA8c3Bh biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaWtlIHRoaXM6IDxjb2RlPnNpdGUuY29tL3Nl Y3Rpb24vYXJ0aWNsZS9jb3VudHJ5L3VrL3RlcnJpdG9yeT1taWRsYW5kczwvY29kZT4uIEVh Y2ggdXJsdmFyIHlvdSBzcGVjaWZ5IGhhcyB0d28gY29tcG9uZW50czogMSkgaXRzIG5hbWUg Zm9sbG93ZWQgYnkgPGNvZGU+X3ZhcjwvY29kZT4gdG8gaW5kaWNhdGUgd2hlcmUgeW91IHdh bnQgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHBhcmFtZXRlciBuYW1lLCBh bmQgMikgaXRzIG5hbWUgZm9sbG93ZWQgYnkgPGNvZGU+X3ZhbDwvY29kZT4gdG8gaW5kaWNh dGUgd2hlcmUgeW91IHdhbnQgdGhlIHBhcmFtZXRlciYjODIxNztzIHZhbHVlLjwvbGk+Cgk8 L3VsPgoKPHA+VGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlcyBt YXkgYmUgZGVyaXZlZCBmcm9tIHRoZSBjdXJyZW50IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IGxpbmUgb3IgbWF5IGJlIHNldCBsaWtlIHRoaXM6PC9wPgoKPHByZT48Y29kZT4m bHQ7dHhwOnNtZF9saW5rX3RvX25leHQgdXJsdmFycz0mcXVvdDtjLCBpZCwgbXl2YXI9MTIm cXVvdDsmZ3Q7CiAgJmx0O3R4cDp0aXRsZSAvJmd0OwombHQ7L3R4cDpsaW5rX3RvX25leHQm Z3Q7CjwvY29kZT48L3ByZT4KCjxwPlRodXMsIDxjb2RlPmM8L2NvZGU+IGFuZCA8Y29kZT5p ZDwvY29kZT4gd2lsbCBiZSByZWFkIGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IGFuZCBwYXNzZWQgZm9yd2FyZCwgd2hlcmVhcyA8Y29kZT5teXZhcjwvY29kZT4g d2lsbCBiZSBhZGRlZCB0byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYW5k IGluaXRpYWxpemVkIHdpdGggYSB2YWx1ZSBvZiA8Y29kZT4xMjwvY29kZT4gaWYgaXQgZG9l cyBub3QgYWxyZWFkeSBleGlzdC4gSWYgZWl0aGVyIDxjb2RlPmM8L2NvZGU+IG9yIDxjb2Rl PmlkPC9jb2RlPiBhcmUgbWlzc2luZyB0aGV5IHdpbGwgbm90IGJlIHBhc3NlZCBpbiB0aGUg bGluay4gSWYgPGNvZGU+bXl2YXI8L2NvZGU+IGNoYW5nZXMgdGhlIDxzcGFuIGNsYXNzPSJj YXBzIj5VUkw8L3NwYW4+JiM4MjE3O3MgdmFsdWUgd2lsbCBwZXJzaXN0LCBob3dldmVyIGlm IGl0IGlzIHJlbW92ZWQgZnJvbSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4g aXQgd2lsbCBiZSByZWluc3RhdGVkIHdoZW4geW91IG5hdmlnYXRlIHRvIGFub3RoZXIgYXJ0 aWNsZSwgYW5kIGl0IHdpbGwgYmUgcmVzZXQgdG8gPGNvZGU+MTI8L2NvZGU+LjwvcD4KCjxw Pk5vdGVzOjwvcD4KCgk8dWw+CgkJPGxpPnRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9z cGFuPiB2YXJpYWJsZXMgYW5kIHZhbHVlcyBhcmUgcmVhZCBmcm9tIGJvdGggPHNwYW4gY2xh c3M9ImNhcHMiPkdFVDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5QT1NUPC9zcGFu PiBzdWJtaXNzaW9uczsgPHNwYW4gY2xhc3M9ImNhcHMiPlBPU1Q8L3NwYW4+IG92ZXJyaWRl cyA8c3BhbiBjbGFzcz0iY2FwcyI+R0VUPC9zcGFuPiBpZiB0aGUgbmFtZXMgY2xhc2g8L2xp PgoJCTxsaT55b3UgY2FuIHVzZSB0aGUgc2hvcnRoYW5kIDxjb2RlPlNNRF9BTEw8L2NvZGU+ IHRvIHJlYWQgYWxsIGN1cnJlbnQgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFy aWFibGVzPC9saT4KCQk8bGk+eW91IG1heSBhZGQgPGNvZGU+OkVTQ0FQRTwvY29kZT4gdG8g YW55IHZhcmlhYmxlIG5hbWUgKGluY2x1ZGluZyA8c3BhbiBjbGFzcz0iY2FwcyI+U01EPC9z cGFuPl9BTEwpIHRvIGhhdmUgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGVudGl0 aWVzIGVzY2FwZWQ8L2xpPgoJCTxsaT55b3UgbWF5IGFkZCA8Y29kZT46Rk9SQ0U8L2NvZGU+ IHRvIGFueSB2YXJpYWJsZSBuYW1lIChpbmNsdWRpbmcgPHNwYW4gY2xhc3M9ImNhcHMiPlNN RDwvc3Bhbj5fQUxMKSB0byBpbmNsdWRlIHRoZSB2YXJpYWJsZSBpbiB0aGUgbGluayBldmVu IGlmIGl0IGlzIGVtcHR5PC9saT4KCQk8bGk+eW91IG1heSBhZGQgPGNvZGU+OlRBR19QUklP UklUWTwvY29kZT4gdG8gYW55IHZhcmlhYmxlIG5hbWUgKGluY2x1ZGluZyA8c3BhbiBjbGFz cz0iY2FwcyI+U01EPC9zcGFuPl9BTEwpIHNvIGFueSB2YWx1ZXMgeW91IG1heSBoYXZlIGdp dmVuIGluIHRoZSB0YWcgYXJlIHVzZWQgcmVnYXJkbGVzcyBpZiB0aGUgc2FtZSB2YXJpYWJs ZSBuYW1lIGV4aXN0cyBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4uIFdp dGhvdXQgdGhpcyBvcHRpb24sICYjODIxNjs8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu PiBwcmlvcml0eSYjODIxNzsgaXMgYXNzdW1lZCwgc28gaWYgYSB2YXJpYWJsZSBvZiB0aGUg c2FtZSBuYW1lIGV4aXN0cyBhbmQgaXMgdXNlZCwgeW91ciBnaXZlbiB2YWx1ZSB3aWxsIGJl IGlnbm9yZWQuIDxzcGFuIGNsYXNzPSJjYXBzIj5UQUc8L3NwYW4+X1BSSU9SSVRZIGlzIHVz ZWZ1bCBmb3IgbWFraW5nIHN1cmUgYSB2YXJpYWJsZSBleGlzdHMsIGlzIGluaXRpYWxpemVk IHRvIGEga25vd24gdmFsdWUgYW5kIHJlbWFpbnMgYXQgdGhhdCB2YWx1ZSwgZXZlbiBpZiB0 aGUgdmFyaWFibGUgaXMgYWx0ZXJlZCBieSB0aGUgdmlzaXRvciBvciByZW1vdmVkIGZyb20g dGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+PC9saT4KCQk8bGk+dGhlIGFib3Zl IHRocmVlIG1vZGlmaWVycyBjYW4gYmUgdXNlZCBpbiBjb21iaW5hdGlvbiBpZiB5b3Ugd2lz aDwvbGk+Cgk8L3VsPgoKPGgyIGlkPSJpZmVuZCI+VGFnOiA8Y29kZT4mbHQ7dHhwOnNtZF9p Zl9lbmQmZ3Q7PC9jb2RlPjwvaDI+Cgo8cD5Bbnl0aGluZyBpbnNpZGUgdGhpcyBjb25kaXRp b25hbCB0YWcgd2lsbCBvbmx5IGJlIGRpc3BsYXllZCBpZiB0aGUgZW5kIG9mIGN1cnJlbnQg cG9zdGFibGUgYXJ0aWNsZXMgaGFzIGJlZW4gcmVhY2hlZC4gVGhlIHRhZyBjYW4gbG9vayBm b3IgdGhlICYjODIxNjtlbmQmIzgyMTc7IG9mIGEgdmFyaWV0eSBvZiB0aGluZ3MgZ292ZXJu ZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZTo8L3A+CgoJPHVsPgoJCTxs aT48c3Ryb25nPnR5cGU8L3N0cm9uZz46IGNhbiBiZSBhbnkgb2YgPGNvZGU+bGlzdDwvY29k ZT4sIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiwgPGNvZGU+Y2F0ZWdvcnkxPC9jb2RlPiwgPGNv ZGU+Y2F0ZWdvcnkyPC9jb2RlPiwgPGNvZGU+YXV0aG9yPC9jb2RlPiBvciA8Y29kZT5zZWN0 aW9uPC9jb2RlPi4gRGVmYXVsdDogPGNvZGU+bGlzdDwvY29kZT48L2xpPgoJCTxsaT48c3Ry b25nPmxvZ2ljPC9zdHJvbmc+OiBjYW4gYmUgPGNvZGU+b3I8L2NvZGU+IHdoaWNoIG1lYW5z IHRoYXQgaWYgPGVtPmFueTwvZW0+IG9mIHRoZSBpdGVtcyByZWFjaCB0aGVpciBlbmQgdGhl IGNvbnRhaW5lciB3aWxsIGJlIHRyaWdnZXJlZDsgb3IgaXQgY291bGQgYmUgPGNvZGU+YW5k PC9jb2RlPiB3aGljaCBtZWFucyB0aGF0IDxlbT5hbGw8L2VtPiBvZiB0aGUgaXRlbXMgaGF2 ZSB0byBlbmQgc2ltdWx0YW5lb3VzbHkgYmVmb3JlIHRoZSBjb250YWluZXIgd2lsbCBmaXJl PC9saT4KCTwvdWw+Cgo8cD5Vc2UgdGhpcyB0byB0YWtlIGFjdGlvbiBhbmQgZGlzcGxheSBz b21ldGhpbmcgZGlmZmVyZW50IGlmIHlvdSB3aXNoIHRvIGRpZmZlcmVudGlhdGUgYmV0d2Vl biAmIzgyMTY7ZnV0dXJlJiM4MjE3OyBhbmQgJiM4MjE2O2N1cnJlbnQmIzgyMTc7IGFydGlj bGVzIG9yIGlmIHlvdSBoYXZlIHJlYWNoZWQgdGhlIGVuZCBvZiBhIGxpc3Qgb2Ygc2VjdGlv bnMuPC9wPgoKPGgyIGlkPSJpZnN0YXJ0Ij5UYWc6IDxjb2RlPiZsdDt0eHA6c21kX2lmX3N0 YXJ0Jmd0OzwvY29kZT48L2gyPgoKPHA+V2hhdGV2ZXIgaXMgaW5zaWRlIHRoaXMgY29uZGl0 aW9uYWwgdGFnIHdpbGwgb25seSBiZSBkaXNwbGF5ZWQgaWYgdGhlIGJlZ2lubmluZyBvZiBj dXJyZW50IHBvc3RhYmxlIGFydGljbGVzIGhhcyBiZWVuIHJlYWNoZWQuIFRoZSB0YWcgY2Fu IGxvb2sgZm9yIHRoZSAmIzgyMTY7c3RhcnQmIzgyMTc7IG9mIGEgdmFyaWV0eSBvZiB0aGlu Z3MgZ292ZXJuZWQgYnkgdGhlIDxjb2RlPnR5cGU8L2NvZGU+IGF0dHJpYnV0ZTo8L3A+CgoJ PHVsPgoJCTxsaT48c3Ryb25nPnR5cGU8L3N0cm9uZz46IGNhbiBiZSBhbnkgb2YgPGNvZGU+ bGlzdDwvY29kZT4sIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiwgPGNvZGU+Y2F0ZWdvcnkxPC9j b2RlPiwgPGNvZGU+Y2F0ZWdvcnkyPC9jb2RlPiwgPGNvZGU+YXV0aG9yPC9jb2RlPiBvciA8 Y29kZT5zZWN0aW9uPC9jb2RlPi4gRGVmYXVsdDogPGNvZGU+bGlzdDwvY29kZT48L2xpPgoJ CTxsaT48c3Ryb25nPmxvZ2ljPC9zdHJvbmc+OiBjYW4gYmUgPGNvZGU+b3I8L2NvZGU+IHdo aWNoIG1lYW5zIHRoYXQgaWYgPGVtPmFueTwvZW0+IG9mIHRoZSBpdGVtcyBoYXZlIHJlYWNo ZWQgdGhlIGJlZ2lubmluZywgdGhlIGNvbnRhaW5lciB3aWxsIHRyaWdnZXI7IG9yIGl0IGNv dWxkIGJlIDxjb2RlPmFuZDwvY29kZT4gd2hpY2ggbWVhbnMgdGhhdCA8ZW0+YWxsPC9lbT4g b2YgdGhlIGl0ZW1zIGhhdmUgdG8gYmUgYXQgdGhlaXIgcmVzcGVjdGl2ZSBzdGFydCBwb2lu dHMgc2ltdWx0YW5lb3VzbHkgYmVmb3JlIHRoZSBjb250YWluZXIgd2lsbCBmaXJlPC9saT4K CTwvdWw+Cgo8cD5UaGlzIGNvdWxkIGJlIHVzZWQgdG8gb2ZmZXIgJiM4MjIwO3dyYXBhcm91 bmQmIzgyMjE7IG5hdmlnYXRpb24gc28gaWYgeW91IGNsaWNrICYjODIyMDtwcmV2aW91cyYj ODIyMTsgd2hlbiB5b3UgYXJlIGF0IHRoZSBmaXJzdCBhcnRpY2xlIHlvdSBjYW4gcGVyaGFw cyB0YWtlIHZpc2l0b3JzIHRvIHRoZSBsYXN0IGFydGljbGUsIG9yIG1heWJlIHRvIHRoZSBt b3N0IHJlY2VudCBhcnRpY2xlIGluIGFub3RoZXIgc2VjdGlvbi48L3A+Cgo8aDIgaWQ9ImV4 YW1wbGVzIj5FeGFtcGxlczwvaDI+Cgo8cCBjbGFzcz0icmVxdWlyZWQiPkltcG9ydGFudDog YWtpbiB0byB0aGUgYnVpbHQtaW4gdGFncywgc21kX2hvcml6b24gaXMgbGltaXRlZCB0byB1 c2UgaW4gYW4gaW5kaXZpZHVhbCBhcnRpY2xlIGNvbnRleHQgYW5kIHdpbGwgZWl0aGVyIHRo cm93IGEgd2FybmluZyBvciBwcm9kdWNlIHdlaXJkIHJlc3VsdHMgaWYgdXNlZCBpbiBhbiBh cnRpY2xlIGxpc3QuPC9wPgoKPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTogPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4gdmFyIHBlcnNpc3RlbmNlIGFuZCB3cmFwcGluZzwvaDM+Cgo8 cD5DYW4gYmUgdXNlZCBhcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIDxjb2RlPiZsdDt0 eHA6bGlua190b18uLi4uJmd0OzwvY29kZT4gYnV0IHdpdGggdGhlIGV4dHJhIGFiaWxpdHkg dG8gYXBwbHkgd3JhcHRhZyBhbmQgY2xhc3MuIEFsc28sIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VVJMPC9zcGFuPiB2YXJpYWJsZSA8Y29kZT51bmFtZTwvY29kZT4gaXMgcGFzc2VkIGFs b25nIGZyb20gYXJ0aWNsZSB0byBhcnRpY2xlLCBpZiBpdCBpcyB1c2VkIGluIHRoZSA8c3Bh biBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPi48L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6aWZf aW5kaXZpZHVhbF9hcnRpY2xlJmd0OwogICZsdDt0eHA6c21kX2xpbmtfdG9fcHJldiB3cmFw dGFnPSZxdW90O2RpdiZxdW90OwogICAgIGNsYXNzPSZxdW90O25hdl9wcmV2JnF1b3Q7IHVy bHZhcnM9JnF1b3Q7dW5hbWUmcXVvdDsmZ3Q7JmFtcDsjMTcxOwogICAgICZsdDt0eHA6cHJl dl90aXRsZS8mZ3Q7Jmx0Oy90eHA6c21kX2xpbmtfdG9fcHJldiZndDsKICAmbHQ7dHhwOnNt ZF9saW5rX3RvX25leHQgd3JhcHRhZz0mcXVvdDtkaXYmcXVvdDsKICAgICBjbGFzcz0mcXVv dDtuYXZfbmV4dCZxdW90OwogICAgIHVybHZhcnM9JnF1b3Q7dW5hbWUmcXVvdDsmZ3Q7Jmx0 O3R4cDpuZXh0X3RpdGxlLyZndDsKICAgICAmYW1wOyMxODc7Jmx0Oy90eHA6c21kX2xpbmtf dG9fbmV4dCZndDsKJmx0Oy90eHA6aWZfaW5kaXZpZHVhbF9hcnRpY2xlJmd0Owo8L2NvZGU+ PC9wcmU+Cgo8aDMgaWQ9ImVnMiI+RXhhbXBsZSAyOiBOYXZpZ2F0aW5nIHRvIGZ1dHVyZSBh cnRpY2xlczwvaDM+Cgo8cD5FbmhhbmNlIHRoZSBzdGFuZGFyZCBsaW5rX3RvX25leHQvcHJl diB0YWdzIGJ5IHdyYXBwaW5nIHNtZF9uZXh0L3NtZF9wcmV2IGFyb3VuZCB0aGVtLiBXaXRo IGl0cyBkZWZhdWx0IHNldHRpbmcgPGNvZGU+dGltZT0mcXVvdDthbnkmcXVvdDs8L2NvZGU+ LCB5b3UgY2FuIGFsbG93IHZpc2l0b3JzIHRvIG5hdmlnYXRlIHRvIGZ1dHVyZSBhcnRpY2xl cyBlaXRoZXIgdXNpbmcgdGhlIHN0YW5kYXJkIGxpbmtfdG9fbmV4dC9wcmV2IHRhZ3MgKGFz IHVzZWQgaW4gdGhpcyBleGFtcGxlKSBvciB2aWEgdGhlIHNtZF9saW5rX3RvX25leHQvcHJl diB0YWdzLjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDppZl9pbmRpdmlkdWFsX2FydGljbGUm Z3Q7CiAgICZsdDt0eHA6c21kX3ByZXYmZ3Q7CiAgICAgICZsdDt0eHA6bGlua190b19wcmV2 Jmd0OwogICAgICAgICAmYW1wOyMxNzE7ICZsdDt0eHA6cHJldl90aXRsZS8mZ3Q7CiAgICAg ICZsdDsvdHhwOmxpbmtfdG9fcHJldiZndDsKICAgJmx0Oy90eHA6c21kX3ByZXYmZ3Q7CiAg ICZsdDt0eHA6c21kX25leHQmZ3Q7CiAgICAgICZsdDt0eHA6bGlua190b19uZXh0Jmd0Owog ICAgICAgICAmbHQ7dHhwOm5leHRfdGl0bGUvJmd0OyAmYW1wOyMxODc7CiAgICAgICZsdDsv dHhwOmxpbmtfdG9fbmV4dCZndDsKICAgJmx0Oy90eHA6c21kX25leHQmZ3Q7CiZsdDsvdHhw OmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKPC9jb2RlPjwvcHJlPgoKPGgzIGlkPSJlZzMi PkV4YW1wbGUgMzogU25lYWsgcGVlayBvZiB1bnB1Ymxpc2hlZCBhcnRpY2xlczwvaDM+Cgo8 cD5JZiBuYXZpZ2F0aW5nIGRpcmVjdGx5IHRvIGZ1dHVyZSBhcnRpY2xlcyBpcyBub3QgeW91 ciBpZGVhIG9mIGZ1biwgaG93IGFib3V0IG9mZmVyaW5nIGEgc25lYWsgcHJldmlldyBvZiB0 aGUgbmV4dCBjaGFwdGVyIG9mIHlvdXIgYm9vayB0aGF0IHlvdSBhcmUgc2VyaWFsaXNpbmc/ PC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKICAg Jmx0O3R4cDp0aXRsZSAvJmd0OwogICAmbHQ7dHhwOmJvZHkgLyZndDsKICAgJmx0O3R4cDpz bWRfaWZfZW5kIHR5cGU9JnF1b3Q7c2VjdGlvbiZxdW90OyZndDsKICAgICAgJmx0O3R4cDpz bWRfbmV4dCZndDsKICAgICAgICAgJmx0O2gzJmd0O0NvbWluZyB1cCBuZXh0IHdlZWsuLi4m bHQ7L2gzJmd0OwogICAgICAgICAmbHQ7dHhwOmV4Y2VycHQgLyZndDsKICAgICAgJmx0Oy90 eHA6c21kX25leHQmZ3Q7CiAgICAgICZsdDt0eHA6bGlua190b19wcmV2Jmd0OwogICAgICAg ICAmbHQ7dHhwOnByZXZfdGl0bGUvJmd0OwogICAgICAmbHQ7L3R4cDpsaW5rX3RvX3ByZXYm Z3Q7CiAgICZsdDt0eHA6ZWxzZSAvJmd0OwogICAgICAmbHQ7dHhwOmxpbmtfdG9fcHJldiZn dDsKICAgICAgICAgJmx0O3R4cDpwcmV2X3RpdGxlLyZndDsKICAgICAgJmx0Oy90eHA6bGlu a190b19wcmV2Jmd0OwogICAgICAmbHQ7dHhwOmxpbmtfdG9fbmV4dCZndDsKICAgICAgICAg Jmx0O3R4cDpuZXh0X3RpdGxlLyZndDsKICAgICAgJmx0Oy90eHA6bGlua190b19uZXh0Jmd0 OwogICAmbHQ7L3R4cDpzbWRfaWZfZW5kJmd0OwombHQ7L3R4cDppZl9pbmRpdmlkdWFsX2Fy dGljbGUmZ3Q7CjwvY29kZT48L3ByZT4KCjxwPkltYWdpbmUgeW91IGhhdmUgZWFjaCBjaGFw dGVyIGFzIGFuIGFydGljbGUgYW5kIGhhdmUgcHVibGlzaGVkLCBzYXksIHRoZSBmaXJzdCAz IGNoYXB0ZXJzLiBZb3UgaGF2ZSB3cml0dGVuIHRoZSA0dGggY2hhcHRlciBidXQgaGF2ZSBz ZXQgaXRzIHBvc3RlZCBkYXRlIHRvIG5leHQgd2Vlay4gWW91ciB2aXNpdG9ycyBjYW4gcmVh ZCBhbmQgbmF2aWdhdGUgdGhyb3VnaCBjaGFwdGVycyAxLCAyLCBhbmQgMywgYXMgdGhleSBu b3JtYWxseSB3b3VsZCB3aXRoIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBh cnRpY2xlcy4gV2hlbiB0aGV5IHJlYWNoIENoYXB0ZXIgMywgdGhleSBhcmUgc2hvd24gdGhl IGV4Y2VycHQgZnJvbSB0aGUgdW5wdWJsaXNoZWQgYXJ0aWNsZSB0byB3aGV0IHRoZWlyIGFw cGV0aXRlcy48L3A+Cgo8cD5PbmUgc2lkZS1lZmZlY3Qgb2YgPHNwYW4gY2xhc3M9ImNhcHMi PlRYUDwvc3Bhbj4mIzgyMTc7cyBjb250ZW50IGhhbmRsaW5nIGlzIHRoYXQgZnV0dXJlIGFy dGljbGVzIGNhbiBzdGlsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIGJyb3dzZXIgaWYgYSB2aXNp dG9yIGd1ZXNzZXMgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+LiBGb3Igc2Vy aWFsaXNlZCBhcnRpY2xlIHRpdGxlcyBzdWNoIGFzIDxlbT5jaGFwdGVyLTE8L2VtPiwgPGVt PmNoYXB0ZXItMjwvZW0+LCBhbmQgc28gb24sIGl0IGlzIG5vdCBhIGdyZWF0IGxlYXAgb2Yg ZmFpdGggZm9yIHNvbWVvbmUgdG8gZ2FpbiBhY2Nlc3MgdG8geW91ciBmdXR1cmUgYXJ0aWNs ZXMuPC9wPgoKPHA+V2l0aCBzbWRfaG9yaXpvbiB5b3UgY2FuIGNpcmN1bXZlbnQgdGhpcy4g U2V0IHlvdXIgQ2hhcHRlciA0LCBmdXR1cmUgYXJ0aWNsZSB0byB0aGUgJiM4MjE2O2hpZGRl biYjODIxNzsgc3RhdHVzIGFuZCBhZGQgPGNvZGU+c3RhdHVzPSZxdW90O2xpdmUsIGhpZGRl biZxdW90OzwvY29kZT4gdG8geW91ciA8Y29kZT4mbHQ7dHhwOnNtZF9uZXh0Jmd0OzwvY29k ZT4gdGFnLiBZb3UgY2FuIHN0aWxsIG9mZmVyICYjODIxNjtwcmV2aWV3cyYjODIxNzsgb2Yg dGhlIGNvbnRlbnQuPC9wPgoKPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDogTWFrZSBuZXh0L3By ZXYgbGlua3MgdXNpbmcgaW1hZ2VzPC9oMz4KCjxwPkFydGljbGUgY29udGVudCBjYW4gYmUg YW55dGhpbmcgZnJvbSB0aGUgYXJ0aWNsZTsgbm90IGp1c3QgaXRzIGV4Y2VycHQuIEZvciBl eGFtcGxlLCBjYXRlZ29yeSBhbmQgY3VzdG9tIGZpZWxkIGNvbnRlbnRzIGFyZSBhbGwgYXZh aWxhYmxlLiBTYXkgeW91IHB1Ymxpc2hlZCBhbiBvbmxpbmUgY29taWM7IHlvdSBjYW4gZXZl biBwcmV2aWV3IHRoZSBhcnRpY2xlIGltYWdlIGlmIHlvdSB3aXNoLjwvcD4KCjxwPldpdGgg dGhpcyBleGFtcGxlLCBhcnRpY2xlIGltYWdlcyBhcmUgdXNlZCBhcyBsaW5rcyB0byB0aGUg bmV4dC9wcmV2aW91cyBhcnRpY2xlLiBJdCBhbHNvIG1haW50YWlucyB0aGUgPHNwYW4gY2xh c3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGVzIDxjb2RlPm08L2NvZGU+IGFuZCA8Y29k ZT55PC9jb2RlPiBzbyB0aGF0IGEgbmVhcmJ5IGNhbGVuZGFyIG9uIHRoZSBzYW1lIHBhZ2Ug cmVtYWlucyBzaG93aW5nIHRoZSBtb250aCBhbmQgeWVhciB0aGUgdmlzaXRvciBoYXMgY2hv c2VuOjwvcD4KCjxwcmU+PGNvZGU+Jmx0O3R4cDppZl9pbmRpdmlkdWFsX2FydGljbGUmZ3Q7 CiAgJmx0O3R4cDpzbWRfcHJldiB0aW1lPSZxdW90O3Bhc3QmcXVvdDsmZ3Q7CiAgICAmbHQ7 dHhwOnNtZF9saW5rX3RvX3ByZXYgdXJsdmFycz0mcXVvdDttLHkmcXVvdDsmZ3Q7CiAgICAg ICZsdDt0eHA6YXJ0aWNsZV9pbWFnZSB0aHVtYm5haWw9JnF1b3Q7MSZxdW90OyAvJmd0Owog ICAgJmx0Oy90eHA6c21kX2xpbmtfdG9fcHJldiZndDsKICAmbHQ7L3R4cDpzbWRfcHJldiZn dDsKICAmbHQ7dHhwOnNtZF9uZXh0IHRpbWU9JnF1b3Q7cGFzdCZxdW90OyZndDsKICAgICZs dDt0eHA6c21kX2xpbmtfdG9fbmV4dCB1cmx2YXJzPSZxdW90O20seSZxdW90OyZndDsKICAg ICAgJmx0O3R4cDphcnRpY2xlX2ltYWdlIHRodW1ibmFpbD0mcXVvdDsxJnF1b3Q7IC8mZ3Q7 CiAgICAmbHQ7L3R4cDpzbWRfbGlua190b19uZXh0Jmd0OwogICZsdDsvdHhwOnNtZF9uZXh0 Jmd0OwombHQ7L3R4cDppZl9pbmRpdmlkdWFsX2FydGljbGUmZ3Q7CjwvY29kZT48L3ByZT4K CjxwPklmIHlvdSB3YW50ZWQgdG8gdXNlIHRoZSB0aXRsZSBhcyBhIGZhbGxiYWNrIGluIGNh c2UgYW4gYXJ0aWNsZSBpbWFnZSB3YXNuJiM4MjE3O3QgYXNzaWduZWQsIHlvdSBjYW4gdXNl IDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQuMi4wJiM4MjE3O3MgPGNvZGU+Jmx0 O3R4cDppZl9hcnRpY2xlX2ltYWdlIC8mZ3Q7PC9jb2RlPiB0YWc6PC9wPgoKPHByZT48Y29k ZT4mbHQ7dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKICAmbHQ7dHhwOnNtZF9wcmV2 IHRpbWU9JnF1b3Q7cGFzdCZxdW90OyZndDsKICAgICZsdDt0eHA6c21kX2xpbmtfdG9fcHJl diB1cmx2YXJzPSZxdW90O20seSZxdW90OyZndDsKICAgICAgJmx0O3R4cDppZl9hcnRpY2xl X2ltYWdlJmd0OwogICAgICAgICAmbHQ7dHhwOmFydGljbGVfaW1hZ2UgdGh1bWJuYWlsPSZx dW90OzEmcXVvdDsgLyZndDsKICAgICAgJmx0O3R4cDplbHNlIC8mZ3Q7CiAgICAgICAgICZs dDt0eHA6dGl0bGUgLyZndDsKICAgICAgJmx0Oy90eHA6aWZfYXJ0aWNsZV9pbWFnZSZndDsK ICAgICZsdDsvdHhwOnNtZF9saW5rX3RvX3ByZXYmZ3Q7CiAgJmx0Oy90eHA6c21kX3ByZXYm Z3Q7CiAgJmx0O3R4cDpzbWRfbmV4dCB0aW1lPSZxdW90O3Bhc3QmcXVvdDsmZ3Q7CiAgICAm bHQ7dHhwOnNtZF9saW5rX3RvX25leHQgdXJsdmFycz0mcXVvdDttLHkmcXVvdDsmZ3Q7CiAg ICAgICZsdDt0eHA6aWZfYXJ0aWNsZV9pbWFnZSZndDsKICAgICAgICAgJmx0O3R4cDphcnRp Y2xlX2ltYWdlIHRodW1ibmFpbD0mcXVvdDsxJnF1b3Q7IC8mZ3Q7CiAgICAgICZsdDt0eHA6 ZWxzZSAvJmd0OwogICAgICAgICAmbHQ7dHhwOnRpdGxlIC8mZ3Q7CiAgICAgICZsdDsvdHhw OmlmX2FydGljbGVfaW1hZ2UmZ3Q7CiAgICAmbHQ7L3R4cDpzbWRfbGlua190b19uZXh0Jmd0 OwogICZsdDsvdHhwOnNtZF9uZXh0Jmd0OwombHQ7L3R4cDppZl9pbmRpdmlkdWFsX2FydGlj bGUmZ3Q7CjwvY29kZT48L3ByZT4KCjxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU6IE11bHRpcGxl IHNlY3Rpb24gbmF2aWdhdGlvbjwvaDM+Cgo8cD5OYXZpZ2F0ZSBvdmVyIG1vcmUgdGhhbiBv bmUgc2VjdGlvbiBhbmQgdGFrZSBhY3Rpb24gd2hlbiB5b3UgcmVhY2ggZWl0aGVyIGVuZCBv ZiB0aGUgbGlzdC48L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6aWZfaW5kaXZpZHVhbF9hcnRp Y2xlJmd0OwogICAmbHQ7dHhwOnNtZF9wcmV2IHNlY3Rpb249JnF1b3Q7YXJ0aWNsZXMsIGFi b3V0JnF1b3Q7Jmd0OwogICAgICAmbHQ7dHhwOnNtZF9pZl9zdGFydCB0eXBlPSZxdW90O2xp c3QmcXVvdDsmZ3Q7CiAgICAgIFRoZSBhcnRpY2xlcyBiZWdpbiBoZXJlCiAgICAgICZsdDsv dHhwOnNtZF9pZl9zdGFydCZndDsKICAgICAgJmx0O3R4cDpsaW5rX3RvX3ByZXYmZ3Q7CiAg ICAgICAgICZsdDt0eHA6cHJldl90aXRsZS8mZ3Q7CiAgICAgICZsdDsvdHhwOmxpbmtfdG9f cHJldiZndDsKICAgJmx0Oy90eHA6c21kX3ByZXYmZ3Q7CiAgICZsdDt0eHA6c21kX25leHQg c2VjdGlvbj0mcXVvdDthcnRpY2xlcywgYWJvdXQmcXVvdDsmZ3Q7CiAgICAgICZsdDt0eHA6 c21kX2lmX2VuZCB0eXBlPSZxdW90O2xpc3QmcXVvdDsmZ3Q7CiAgICAgIFRoZSBlbmQgb2Yg dGhlIHJvYWQKICAgICAgJmx0Oy90eHA6c21kX2lmX2VuZCZndDsKICAgICAgJmx0O3R4cDps aW5rX3RvX25leHQmZ3Q7CiAgICAgICAgICZsdDt0eHA6bmV4dF90aXRsZS8mZ3Q7CiAgICAg ICZsdDsvdHhwOmxpbmtfdG9fbmV4dCZndDsKICAgJmx0Oy90eHA6c21kX25leHQmZ3Q7CiZs dDsvdHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKPC9jb2RlPjwvcHJlPgoKPHA+Tm90 ZXM6PC9wPgoKCTx1bD4KCQk8bGk+dGhpcyBpcyBhY2hpZXZlZCBieSBzaW1wbHkgd3JhcHBp bmcgdGhlIHN0YW5kYXJkIGxpbmtfdG9fbmV4dC9wcmV2IHRhZ3Mgd2l0aCBzbWRfbmV4dCBh bmQgc21kX3ByZXYuIE5vIG90aGVyIHRyaWNrZXJ5IGludm9sdmVkPC9saT4KCQk8bGk+aWYg eW91IGFyZSB1c2luZyBzbWRfbmV4dC9wcmV2IHRvIGl0ZXJhdGUgb3ZlciBhIGxpc3Qgb2Yg Y2F0ZWdvcmllcyBvciBhdXRob3JzLCB5b3UgY2FuIGRldGVjdCB0aGUgZW5kIG9mIHRob3Nl IGxpc3RzIGFzIHdlbGwgdXNpbmcgdGhlIHNhbWUgPGNvZGU+dHlwZT0mcXVvdDtsaXN0JnF1 b3Q7PC9jb2RlPiBzeW50YXguIElmIHlvdSBhcmUgaXRlcmF0aW5nIG92ZXIgbW9yZSB0aGFu IG9uZSBpdGVtIGF0IG9uY2UgdGhlIHBsdWdpbiBoYXMgbm8gd2F5IG9mIGtub3dpbmcgd2hp Y2ggb2YgdGhlICYjODIxNjtsYXN0JiM4MjE3OyBpdGVtcyBpdCBoYXMgcmVhY2hlZCAoc2Vj dGlvbiwgY2F0ZWdvcnksIGF1dGhvciYjODIzMDspIHNvIGl0JiM4MjE3O2xsIGJlIHRoZSB2 ZXJ5IGxhc3Qgb25lIHRoYXQgdHJpZ2dlcnMgaXQ8L2xpPgoJPC91bD4KCjxoMyBpZD0iZWc2 Ij5FeGFtcGxlIDY6IEF0IHRoZSBlbmQgb2YgZWFjaCBzZWN0aW9uLCBkbyYjODIzMDs8L2gz PgoKPHA+QW4gZXh0ZW5zaW9uIG9mIDxhIGhyZWY9IiNlZzUiPmV4YW1wbGUgNTwvYT4sIHRo aXMgb25lIGRldGVjdHMgd2hlbiB5b3UgcmVhY2ggdGhlIGVuZCBvZiBvbmUgb2YgdGhlIHNl Y3Rpb25zIGluIHlvdXIgbGlzdCBhbmQgZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgbWVzc2Fn ZSB0byBndWlkZSB5b3Ugb253YXJkcy48L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6aWZfaW5k aXZpZHVhbF9hcnRpY2xlJmd0OwogICAmbHQ7dHhwOnNtZF9wcmV2IHNlY3Rpb249JnF1b3Q7 YXJ0aWNsZXMsIGFib3V0JnF1b3Q7Jmd0OwogICAgICAmbHQ7dHhwOnNtZF9pZl9zdGFydCB0 eXBlPSZxdW90O3NlY3Rpb24mcXVvdDsmZ3Q7CiAgICAgICAgICZsdDt0eHA6bGlua190b19w cmV2Jmd0OwogICAgICAgICAgICBTdGVwIGJhY2sgaW50byAmbHQ7dHhwOnNlY3Rpb24gLyZn dDsKICAgICAgICAgJmx0Oy90eHA6bGlua190b19wcmV2Jmd0OwogICAgICAmbHQ7dHhwOmVs c2UgLyZndDsKICAgICAgICAgJmx0O3R4cDpsaW5rX3RvX3ByZXYmZ3Q7CiAgICAgICAgICAg ICZsdDt0eHA6cHJldl90aXRsZS8mZ3Q7CiAgICAgICAgICZsdDsvdHhwOmxpbmtfdG9fcHJl diZndDsKICAgICAgJmx0Oy90eHA6c21kX2lmX3N0YXJ0Jmd0OwogICAmbHQ7L3R4cDpzbWRf cHJldiZndDsKICAgJmx0O3R4cDpzbWRfbmV4dCBzZWN0aW9uPSZxdW90O2FydGljbGVzLCBh Ym91dCZxdW90OyZndDsKICAgICAgJmx0O3R4cDpzbWRfaWZfZW5kIHR5cGU9JnF1b3Q7c2Vj dGlvbiZxdW90OyZndDsKICAgICAgICAgJmx0O3R4cDpsaW5rX3RvX25leHQmZ3Q7CiAgICAg ICAgICAgIE1vdmUgb253YXJkcyB0byAmbHQ7dHhwOnNlY3Rpb24gLyZndDsKICAgICAgICAg Jmx0Oy90eHA6bGlua190b19uZXh0Jmd0OwogICAgICAmbHQ7dHhwOmVsc2UgLyZndDsKICAg ICAgICAgJmx0O3R4cDpsaW5rX3RvX25leHQmZ3Q7CiAgICAgICAgICAgICZsdDt0eHA6bmV4 dF90aXRsZS8mZ3Q7CiAgICAgICAgICZsdDsvdHhwOmxpbmtfdG9fbmV4dCZndDsKICAgICAg Jmx0Oy90eHA6c21kX2lmX2VuZCZndDsKICAgJmx0Oy90eHA6c21kX25leHQmZ3Q7CiZsdDsv dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKPC9jb2RlPjwvcHJlPgoKPGgzIGlkPSJl ZzciPkV4YW1wbGUgNzogTmVzdGluZyBzbWRfaWZfc3RhcnQvZW5kPC9oMz4KCjxwPkEgZnVy dGhlciBleHRlbnNpb24gb2YgPGEgaHJlZj0iI2VnNiI+ZXhhbXBsZSA2PC9hPjo8L3A+Cgo8 cHJlPjxjb2RlPiZsdDt0eHA6aWZfaW5kaXZpZHVhbF9hcnRpY2xlJmd0OwogICAmbHQ7dHhw OnNtZF9wcmV2IHNlY3Rpb249JnF1b3Q7YXJ0aWNsZXMsIGFib3V0LCBwcm9kdWN0cyZxdW90 OyZndDsKICAgICAgJmx0O3R4cDpzbWRfaWZfc3RhcnQgdHlwZT0mcXVvdDtsaXN0JnF1b3Q7 Jmd0OwogICAgICBUaGUgYXJ0aWNsZXMgYmVnaW4gaGVyZQogICAgICAmbHQ7dHhwOmVsc2Ug LyZndDsKICAgICAgICAgJmx0O3R4cDpzbWRfaWZfc3RhcnQgdHlwZT0mcXVvdDtzZWN0aW9u JnF1b3Q7Jmd0OwogICAgICAgICAgICAocHJldmlvdXMgc2VjdGlvbikKICAgICAgICAgJmx0 Oy90eHA6c21kX2lmX3N0YXJ0Jmd0OwogICAgICAmbHQ7L3R4cDpzbWRfaWZfc3RhcnQmZ3Q7 CiAgICAgICZsdDt0eHA6bGlua190b19wcmV2Jmd0OwogICAgICAgICAmbHQ7dHhwOnByZXZf dGl0bGUvJmd0OwogICAgICAmbHQ7L3R4cDpsaW5rX3RvX3ByZXYmZ3Q7CiAgICZsdDsvdHhw OnNtZF9wcmV2Jmd0OwogICAmbHQ7dHhwOnNtZF9uZXh0IHNlY3Rpb249JnF1b3Q7YXJ0aWNs ZXMsIGFib3V0LCBwcm9kdWN0cyZxdW90OyZndDsKICAgICAgJmx0O3R4cDpsaW5rX3RvX25l eHQmZ3Q7CiAgICAgICAgICZsdDt0eHA6bmV4dF90aXRsZS8mZ3Q7CiAgICAgICZsdDsvdHhw OmxpbmtfdG9fbmV4dCZndDsKICAgICAgJmx0O3R4cDpzbWRfaWZfZW5kIHR5cGU9JnF1b3Q7 bGlzdCZxdW90OyZndDsKICAgICAgVGhlIGVuZCBvZiB0aGUgcm9hZAogICAgICAmbHQ7dHhw OmVsc2UgLyZndDsKICAgICAgICAgJmx0O3R4cDpzbWRfaWZfZW5kIHR5cGU9JnF1b3Q7c2Vj dGlvbiZxdW90OyZndDsKICAgICAgICAgICAgIChuZXh0IHNlY3Rpb24pCiAgICAgICAgICZs dDsvdHhwOnNtZF9pZl9lbmQmZ3Q7CiAgICAgICZsdDsvdHhwOnNtZF9pZl9lbmQmZ3Q7CiAg ICZsdDsvdHhwOnNtZF9uZXh0Jmd0OwombHQ7L3R4cDppZl9pbmRpdmlkdWFsX2FydGljbGUm Z3Q7CjwvY29kZT48L3ByZT4KCjxwPk5vdGljZSB0aGF0OjwvcD4KCgk8dWw+CgkJPGxpPmRl dGVjdGlvbiBvZiB0aGUgc3RhcnQvZW5kIG9mIHRoZSBsaXN0IG9mIHNlY3Rpb25zIG9jY3Vy cyA8ZW0+Zmlyc3Q8L2VtPjwvbGk+CgkJPGxpPmlmIHRoYXQgZmFpbHMsIHdlIGNoZWNrIGlm IHdlIGFyZSBhdCB0aGUgZW5kIG9mIGEgY29udmVudGlvbmFsIHNlY3Rpb24uIElmIHdlIGRp ZCBub3QgZG8gdGhpcyBuZXN0ZWQgaW5zaWRlIHRoZSAmIzgyMTY7ZWxzZSYjODIxNzssIHRo ZSAmIzgyMTY7ZW5kIG9mIHNlY3Rpb24mIzgyMTc7IHRyaWdnZXIgd291bGQgYmUgdHJ1ZSBh dCB0aGUgZXh0cmVtaXRpZXMgb2YgdGhlIHNlY3Rpb24gbGlzdCBhcyB3ZWxsPC9saT4KCQk8 bGk+dGhlcmUgaXMgbm8gY29uZGl0aW9uYWwgc3Vycm91bmRpbmcgdGhlIGxpbmtfdG9fbmV4 dC9wcmV2IGJlY2F1c2UgdGhleSB3aWxsIGF1dG9tYXRpY2FsbHkgcmV0dXJuIG5vdGhpbmcg d2hlbiB0aGUgZW5kIG9mIHRoZSBsaXN0IGlzIHJlYWNoZWQ8L2xpPgoJPC91bD4KCjxoMyBp ZD0iZWc4Ij5FeGFtcGxlIDg6IEF0IGVuZCBvZiBlYWNoIGNhdGVnb3J5MSwgZG8mIzgyMzA7 PC9oMz4KCjxwPklmIHlvdSBvcmRlciB5b3VyIGFydGljbGVzIGJ5IGNhdGVnb3J5MSB5b3Ug Y2FuIGlkZW50aWZ5IHdoZW4gdGhlIG5leHQgKG9yIHByZXZpb3VzKSBjYXRlZ29yeSBpcyBh Ym91dCB0byBiZSByZWFjaGVkLiBUaGlzIGV4YW1wbGUganVzdCBzaG93cyBhIG1lc3NhZ2Ug d2hlbiBhIGRpZmZlcmVudCBjYXRlZ29yeTEgaXMgZGV0ZWN0ZWQ6PC9wPgoKPHByZT48Y29k ZT4mbHQ7dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKICAgJmx0O3R4cDpzbWRfcHJl diZndDsKICAgICAgJmx0O3R4cDpsaW5rX3RvX3ByZXYmZ3Q7CiAgICAgICAgICZhbXA7IzE3 MTsgJmx0O3R4cDpwcmV2X3RpdGxlLyZndDsKICAgICAgJmx0Oy90eHA6bGlua190b19wcmV2 Jmd0OwogICAmbHQ7L3R4cDpzbWRfcHJldiZndDsKICAgJmx0O3R4cDpzbWRfbmV4dCZndDsK ICAgICAgJmx0O3R4cDpsaW5rX3RvX25leHQmZ3Q7CiAgICAgICAgICZsdDt0eHA6bmV4dF90 aXRsZS8mZ3Q7ICZhbXA7IzE4NzsKICAgICAgJmx0Oy90eHA6bGlua190b19uZXh0Jmd0Owog ICAgICAmbHQ7dHhwOnNtZF9pZl9lbmQgdHlwZT0mcXVvdDtjYXRlZ29yeTEmcXVvdDsmZ3Q7 CiAgICAgICAgIE5leHQgY2F0OiAmbHQ7dHhwOmNhdGVnb3J5MSBsaW5rPSZxdW90OzEmcXVv dDsgLyZndDsKICAgICAgJmx0Oy90eHA6c21kX2lmX2VuZCZndDsKICAgJmx0Oy90eHA6c21k X25leHQmZ3Q7CiZsdDsvdHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKPC9jb2RlPjwv cHJlPgoKPHA+Tm90ZXM6PC9wPgoKCTx1bD4KCQk8bGk+VXNlIDxjb2RlPnR5cGU9JnF1b3Q7 Y2F0ZWdvcnkxLCBjYXRlZ29yeTImcXVvdDs8L2NvZGU+IChvciA8Y29kZT50eXBlPSZxdW90 O2NhdGVnb3J5JnF1b3Q7PC9jb2RlPikgdG8gdGFrZSBhY3Rpb24gaWYgPGVtPmVpdGhlcjwv ZW0+IGNhdGVnb3J5IGNoYW5nZXMgaW4gdGhlIG5leHQgYXJ0aWNsZTwvbGk+CgkJPGxpPlVz ZSA8Y29kZT50eXBlPSZxdW90O2NhdGVnb3J5MSwgY2F0ZWdvcnkyJnF1b3Q7IGxvZ2ljPSZx dW90O2FuZCZxdW90OzwvY29kZT4gdG8gdGFrZSBhY3Rpb24gaWYgPGVtPmJvdGg8L2VtPiBj YXRlZ29yaWVzIGNoYW5nZSBpbiB0aGUgbmV4dCBhcnRpY2xlPC9saT4KCQk8bGk+WW91IGNh biB1c2UgdGhlIHNob3J0aGFuZCA8Y29kZT5jYXQxPC9jb2RlPiBhbmQgPGNvZGU+Y2F0Mjwv Y29kZT4gaWYgeW91IGRvbiYjODIxNzt0IGxpa2Ugc3BlbGxpbmcgb3V0IDxjb2RlPmNhdGVn b3J5MTwvY29kZT4gYW5kIDxjb2RlPmNhdGVnb3J5MjwvY29kZT4gZXZlcnkgdGltZSA6LSk8 L2xpPgoJPC91bD4KCjxoMyBpZD0iZWc5Ij5FeGFtcGxlIDk6IExvb3Agb3ZlciBhbiBhdXRo b3ImIzgyMTc7cyBhcnRpY2xlczwvaDM+Cgo8cD5ObyBtYXR0ZXIgaWYgYW4gYXV0aG9yIGhh cyB3cml0dGVuIHN0dWZmIGluIG11bHRpcGxlIHNlY3Rpb25zLCB5b3UgY2FuIGl0ZXJhdGUg b3ZlciB0aGVtIGFsbCB1c2luZyBzbWRfbGlua190b19uZXh0L3ByZXYuPC9wPgoKPHByZT48 Y29kZT4mbHQ7dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsKICAgJmx0O3R4cDpzbWRf cHJldiBhdXRob3I9JnF1b3Q7Qmxva2UmcXVvdDsgc2VjdGlvbj0mcXVvdDthcnRpY2xlcyxh Ym91dCZxdW90OyZndDsKICAgICAgJmx0O3R4cDpzbWRfbGlua190b19wcmV2Jmd0OwogICAg ICAgICAmbHQ7dHhwOnRpdGxlIC8mZ3Q7CiAgICAgICZsdDsvdHhwOnNtZF9saW5rX3RvX3By ZXYmZ3Q7CiAgICZsdDsvdHhwOnNtZF9wcmV2Jmd0OwogICAmbHQ7dHhwOnNtZF9uZXh0IGF1 dGhvcj0mcXVvdDtCbG9rZSZxdW90OyBzZWN0aW9uPSZxdW90O2FydGljbGVzLGFib3V0JnF1 b3Q7Jmd0OwogICAgICAmbHQ7dHhwOnNtZF9saW5rX3RvX25leHQmZ3Q7CiAgICAgICAgICZs dDt0eHA6dGl0bGUgLyZndDsKICAgICAgJmx0Oy90eHA6c21kX2xpbmtfdG9fbmV4dCZndDsK ICAgJmx0Oy90eHA6c21kX25leHQmZ3Q7CiZsdDsvdHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNs ZSZndDsKPC9jb2RlPjwvcHJlPgoKPHA+SW5zdGVhZCBvZiBoYXJkLWNvZGluZyB0aGUgYXV0 aG9yIG5hbWUsIGlmIHlvdSB3aXNoIHRvIHVzZSB0aGUgY3VycmVudCBhdXRob3IsIHJlcGxh Y2UgPGNvZGU+YXV0aG9yPSZxdW90O0Jsb2tlJnF1b3Q7PC9jb2RlPiB3aXRoIDxjb2RlPnJl YWxuYW1lPSYjMzk7Jmx0O3R4cDphdXRob3IgLyZndDsmIzM5OzwvY29kZT4uIFZlcnkgdXNl ZnVsIGluIG1hZ2F6aW5lLXN0eWxlIHNpdGVzIGZvciBzaG93aW5nICYjODIxNjtuZXh0IGFy dGljbGUgYnkgdGhpcyBhdXRob3ImIzgyMTc7IGxpbmtzLjwvcD4KCjxwPk5vdGUgdGhhdCB0 aGlzIGV4YW1wbGUgZG9lcyA8ZW0+bm90PC9lbT4gd29yayB3aXRoIDxzcGFuIGNsYXNzPSJj YXBzIj5UWFA8L3NwYW4+JiM4MjE3O3MgYnVpbHQtaW4gbGlua190b19uZXh0L3ByZXYgdGFn cyBiZWNhdXNlIHRoZXkgc3RpbGwgJiM4MjE2O3NlZSYjODIxNzsgb3RoZXIgYXJ0aWNsZXMg aW4gdGhlIHNhbWUgc2VjdGlvbiwgaXJyZXNwZWN0aXZlIG9mIGF1dGhvciAoYW5kIGluIGZh Y3QgY2F0ZWdvcnksIHNvIHRoZSBzYW1lIHJlc3RyaWN0aW9uIGFwcGxpZXMgdGhlcmUpLjwv cD4KCjxoMyBpZD0iZWcxMCI+RXhhbXBsZSAxMDogTG9vcCBvdmVyIG1hbnkgYXV0aG9yJiM4 MjE3O3MgYXJ0aWNsZXM8L2gzPgoKPHA+QW5kIGFjcm9zcyBtdWx0aXBsZSBzZWN0aW9ucyB0 b286PC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOmlmX2luZGl2aWR1YWxfYXJ0aWNsZSZndDsK ICAgJmx0O3AmZ3Q7Q3VycmVudCBhcnRpY2xlIGJ5OiAmbHQ7dHhwOmF1dGhvciAvJmd0OyZs dDsvcCZndDsKICAgJmx0O3R4cDpzbWRfcHJldiBhdXRob3I9JnF1b3Q7U3RlZiwgSm9obiZx dW90OwogICAgIHNlY3Rpb249JnF1b3Q7YXJ0aWNsZXMscHJvZHVjdHMmcXVvdDsKICAgICBk YXRhc29ydD0mcXVvdDthdXRob3IsIHNlY3Rpb24mcXVvdDsmZ3Q7CiAgICAgICZsdDt0eHA6 c21kX2xpbmtfdG9fcHJldiZndDsKICAgICAgICAgJmx0O3R4cDp0aXRsZSAvJmd0OyAoYnkg Jmx0O3R4cDphdXRob3IgLyZndDspCiAgICAgICZsdDsvdHhwOnNtZF9saW5rX3RvX3ByZXYm Z3Q7CiAgICZsdDsvdHhwOnNtZF9wcmV2Jmd0OwogICAmbHQ7dHhwOnNtZF9uZXh0IGF1dGhv cj0mcXVvdDtTdGVmLCBKb2huJnF1b3Q7CiAgICAgc2VjdGlvbj0mcXVvdDthcnRpY2xlcywg cHJvZHVjdHMmcXVvdDsKICAgICBkYXRhc29ydD0mcXVvdDthdXRob3IsIHNlY3Rpb24mcXVv dDsmZ3Q7CiAgICAgICZsdDt0eHA6c21kX2xpbmtfdG9fbmV4dCZndDsKICAgICAgICAgJmx0 O3R4cDp0aXRsZSAvJmd0OyAoYnkgJmx0O3R4cDphdXRob3IgLyZndDspCiAgICAgICZsdDsv dHhwOnNtZF9saW5rX3RvX25leHQmZ3Q7CiAgICZsdDsvdHhwOnNtZF9uZXh0Jmd0OwombHQ7 L3R4cDppZl9pbmRpdmlkdWFsX2FydGljbGUmZ3Q7CjwvY29kZT48L3ByZT4KCjxwPk5vdGlj ZSB0aGF0OjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPmRhdGFzb3J0PC9jb2RlPiBpcyB1c2Vk IHRvIG9yZGVyIGJ5IGF1dGhvciBmaXJzdCwgdGhlbiBzZWN0aW9uPC9saT4KCQk8bGk+aXRl cmF0aW5nIG92ZXIgYXV0aG9yIGxpc3RzIDxlbT5tdXN0PC9lbT4gYmUgZG9uZSBpbnNpZGUg c21kX25leHQvcHJldiB0YWdzPC9saT4KCTwvdWw+Cgo8aDMgaWQ9ImVnMTEiPkV4YW1wbGUg MTE6IERldGVjdCB3aGVuIGFuIGF1dGhvciBjaGFuZ2Ugb2NjdXJzPC9oMz4KCjxwPkFuIGV4 dGVuc2lvbiBvZiA8YSBocmVmPSIjZWcxMCI+ZXhhbXBsZSAxMDwvYT4gdGhhdCBzaG93cyBh IG5vdGlmaWNhdGlvbiBldmVyeSB0aW1lIHlvdSBhcmUgYWJvdXQgdG8gJiM4MjIwO3N0ZXAg b2ZmJiM4MjIxOyBhbiBhdXRob3ImIzgyMTc7cyBhcnRpY2xlIGxpc3QgaW50byB0aGUgbmV4 dCBvciBwcmV2aW91cyBhdXRob3I6PC9wPgoKPHByZT48Y29kZT4mbHQ7dHhwOmlmX2luZGl2 aWR1YWxfYXJ0aWNsZSZndDsKICAgJmx0O3AmZ3Q7Q3VycmVudCBhcnRpY2xlIGJ5OiAmbHQ7 dHhwOmF1dGhvciAvJmd0OyZsdDsvcCZndDsKICAgJmx0O3R4cDpzbWRfcHJldiBhdXRob3I9 JnF1b3Q7U3RlZiwgRGFsZSwgSmFrb2ImcXVvdDsKICAgICBzZWN0aW9uPSZxdW90O2FydGlj bGVzLCBwcm9kdWN0cyZxdW90OwogICAgIGRhdGFzb3J0PSZxdW90O2F1dGhvciwgc2VjdGlv biZxdW90OyZndDsKICAgICAgJmx0O3R4cDpzbWRfbGlua190b19wcmV2Jmd0OwogICAgICAg ICAmbHQ7dHhwOnRpdGxlIC8mZ3Q7IChieSAmbHQ7dHhwOmF1dGhvciAvJmd0OykKICAgICAg Jmx0Oy90eHA6c21kX2xpbmtfdG9fcHJldiZndDsKICAgICAgJmx0O3R4cDpzbWRfaWZfc3Rh cnQgdHlwZT0mcXVvdDthdXRob3ImcXVvdDsmZ3Q7CiAgICAgIChQcmV2aW91cyBhdXRob3Ip CiAgICAgICZsdDsvdHhwOnNtZF9pZl9zdGFydCZndDsKICAgJmx0Oy90eHA6c21kX3ByZXYm Z3Q7CiAgICZsdDt0eHA6c21kX25leHQgYXV0aG9yPSZxdW90O1N0ZWYsIERhbGUsIEpha29i JnF1b3Q7CiAgICAgc2VjdGlvbj0mcXVvdDthcnRpY2xlcywgcHJvZHVjdHMmcXVvdDsKICAg ICBkYXRhc29ydD0mcXVvdDthdXRob3IsIHNlY3Rpb24mcXVvdDsmZ3Q7CiAgICAgICZsdDt0 eHA6c21kX2xpbmtfdG9fbmV4dCZndDsKICAgICAgICAgJmx0O3R4cDp0aXRsZSAvJmd0OyAo YnkgJmx0O3R4cDphdXRob3IgLyZndDspCiAgICAgICZsdDsvdHhwOnNtZF9saW5rX3RvX25l eHQmZ3Q7CiAgICAgICZsdDt0eHA6c21kX2lmX2VuZCB0eXBlPSZxdW90O2F1dGhvciZxdW90 OyZndDsKICAgICAgKE5leHQgYXV0aG9yKQogICAgICAmbHQ7L3R4cDpzbWRfaWZfZW5kJmd0 OwogICAmbHQ7L3R4cDpzbWRfbmV4dCZndDsKJmx0Oy90eHA6aWZfaW5kaXZpZHVhbF9hcnRp Y2xlJmd0Owo8L2NvZGU+PC9wcmU+Cgo8aDIgaWQ9ImF1dGhvciI+QXV0aG9yIC8gY3JlZGl0 czwvaDI+Cgo8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29udGFjdCI+U3Rl ZiBEYXdzb248L2E+LjwvcD4KCjxoMiBjbGFzcz0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gy PgoKCTx1bD4KCQk8bGk+MDIgRGVjIDA5IHwgMC4xMSB8IEFkZGVkIDxjb2RlPnVybGZvcm1h dDwvY29kZT4gYW5kIDxjb2RlPmxpbmtwYXJ0czwvY29kZT4gKGJvdGggdGhhbmtzIHNwZWVr ZSk8L2xpPgoJCTxsaT4xOSBBcHIgMDkgfCAwLjEwIHwgSW5pdGlhbCByZWxlYXNlPC9saT4K CTwvdWw+IjtzOjM6Im1kNSI7czozMjoiZDNhMTZlMjZiZTllZWYzZjNlNGYxNDAxZDFiNzEx ZjkiO30=