# Name: smd_if v0.81 # Type: Client side plugin # Generic multiple if condition tests # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6NDoiMC44MSI7czoxMToiZGVzY3JpcHRpb24iO3M6MzU6Ikdl bmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3RzIjtzOjQ6ImNvZGUiO3M6MTM2OTM6 ImZ1bmN0aW9uIHNtZF9pZigkYXR0cywkdGhpbmcpIHsNCglnbG9iYWwgJHRoaXNhcnRpY2xl LCAkcHJldGV4dCwgJHRoaXNmaWxlLCAkdGhpc2xpbmssICR0aGlzaW1hZ2UsICR2YXJpYWJs ZTsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdmaWVsZCcgPT4gJycsDQoJCSdvcGVy YXRvcicgPT4gJycsDQoJCSd2YWx1ZScgPT4gJycsDQoJCSdsb2dpYycgPT4gJ2FuZCcsDQoJ CSdjYXNlX3NlbnNpdGl2ZScgPT4gMCwNCgkJJ2ZpbHRlcicgPT4gJycsDQoJCSdyZXBsYWNl JyA9PiAnJywNCgkJJ2ZpbHRlcl90eXBlJyA9PiAnYWxsJywNCgkJJ2ZpbHRlcl9vbicgPT4g J2ZpZWxkJywNCgkJJ3BhcmFtX2RlbGltJyA9PiAnLCcsDQoJCSdtb2RfZGVsaW0nID0+ICc6 JywNCgkJJ2xpc3RfZGVsaW0nID0+ICcvJywNCgkJJ2RlYnVnJyA9PiAnMCcsDQoJKSwgJGF0 dHMpKTsNCg0KCS8vIFNwZWNpYWwgZmllbGQgbmFtZXMgdGhhdCByZWZlciB0byAkcHJldGV4 dCBvciBlbHNld2hlcmUgLSBldmVyeXRoaW5nIGVsc2UgaXMgYXNzdW1lZCB0bw0KCS8vIGV4 aXN0IGluICR0aGlzYXJ0aWNsZSBzbyBjdXN0b20gZmllbGRzIGNhbiBiZSB1c2VkDQoJJGFs bFB0eHQgPSBhcnJheSgNCgkJImlkIiA9PiAnJHByZXRleHRbImlkIl0nLA0KCQkic2VjdGlv biIgPT4gJyRwcmV0ZXh0WyJzIl0nLA0KCQkiY2F0ZWdvcnkiID0+ICckcHJldGV4dFsiYyJd JywNCgkJInF1ZXJ5IiA9PiAnJHByZXRleHRbInEiXScsDQoJCSJwZyIgPT4gJyRwcmV0ZXh0 WyJwZyJdJywNCgkJIm1vbnRoIiA9PiAnJHByZXRleHRbIm1vbnRoIl0nLA0KCQkiYXV0aG9y IiA9PiAnJHByZXRleHRbImF1dGhvciJdJywNCgkJInN0YXR1cyIgPT4gJyRwcmV0ZXh0WyJz dGF0dXMiXScsDQoJCSJwYWdlIiA9PiAnJHByZXRleHRbInBhZ2UiXScsDQoJCSJuZXh0X2lk IiA9PiAnJHByZXRleHRbIm5leHRfaWQiXScsDQoJCSJuZXh0X3RpdGxlIiA9PiAnJHByZXRl eHRbIm5leHRfdGl0bGUiXScsDQoJCSJuZXh0X3V0aXRsZSIgPT4gJyRwcmV0ZXh0WyJuZXh0 X3V0aXRsZSJdJywNCgkJInByZXZfaWQiID0+ICckcHJldGV4dFsicHJldl9pZCJdJywNCgkJ InByZXZfdGl0bGUiID0+ICckcHJldGV4dFsicHJldl90aXRsZSJdJywNCgkJInByZXZfdXRp dGxlIiA9PiAnJHByZXRleHRbInByZXZfdXRpdGxlIl0nLA0KCQkicGVybWxpbmtfbW9kZSIg PT4gJyRwcmV0ZXh0WyJwZXJtbGlua19tb2RlIl0nLA0KCSk7DQoJLy8gRWFjaCBlbnRyeSBo YXMgdGhlIG9wZXJhdGlvbiB0byBiZSBldmFsKClkIGxhdGVyIGFuZCBhIGxpc3Qgb2YgZGlz YWxsb3dlZCBmaWVsZHMNCgkkYWxsT3BzID0gYXJyYXkoDQoJCSdlcScgPT4gYXJyYXkoJ2lz c2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPT09IENBU1QgVkFMVUUnLCAnJyksDQoJCSdu b3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEICE9PSBDQVNUIFZB TFVFJywgJycpLA0KCQknZ3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJ RUxEID4gQ0FTVCBWQUxVRScsICcnKSwNCgkJJ2dlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgQ0FTVCBGSUVMRCA+PSBDQVNUIFZBTFVFJywgJycpLA0KCQknbHQnID0+IGFycmF5 KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDwgQ0FTVCBWQUxVRScsICcnKSwNCgkJ J2xlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA8PSBDQVNUIFZB TFVFJywgJycpLA0KCQknZGl2aXNpYmxlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYg Q0FTVCBGSUVMRCAlIENBU1QgVkFMVUUgPT09IDAnLCAnJyksDQoJCSdpbicgPT4gYXJyYXko J2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxELCBleHBsb2RlKCInLiRsaXN0X2Rl bGltLiciLCBWQUxVRSkpICE9PSBmYWxzZScsICcnKSwNCgkJJ25vdGluJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgaW5fYXJyYXkoRklFTEQsIGV4cGxvZGUoIicuJGxpc3RfZGVs aW0uJyIsIFZBTFVFKSkgPT09IGZhbHNlJywgJycpLA0KCQknYmVnaW5zJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgc3RycG9zKEZJRUxELCBWQUxVRSkgPT09IDAnLCAnJyksDQoJ CSdjb250YWlucycgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIHN0cnBvcyhGSUVMRCwg VkFMVUUpICE9PSBmYWxzZScsICcnKSwNCgkJJ2VuZHMnID0+IGFycmF5KCdpc3NldChWQVJO QU1FKSAmJiBzdWJzdHIoRklFTEQsIHN0cmxlbihGSUVMRCkgLSBzdHJsZW4oVkFMVUUpKSA9 PT0gVkFMVUUnLCAnJyksDQoJCSdkZWZpbmVkJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkn LCAncGFyZW50JyksDQoJCSd1bmRlZmluZWQnID0+IGFycmF5KCchaXNzZXQoVkFSTkFNRSkn LCAncGFyZW50JyksDQoJCSdpc2VtcHR5JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYg RklFTEQgPT0gIiInLCAnJyksDQoJCSdpc3VzZWQnID0+IGFycmF5KCdpc3NldChWQVJOQU1F KSAmJiBGSUVMRCAhPSAiIicsICcnKSwNCgkJJ2lzbnVtJyA9PiBhcnJheSgnaXNzZXQoVkFS TkFNRSkgJiYgY3R5cGVfZGlnaXQoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2FscGhh JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfYWxwaGEoKHN0cmluZylGSUVM RCknLCAnJyksDQoJCSdpc2FsbnVtJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5 cGVfYWxudW0oKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2xvd2VyJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfbG93ZXIoKHN0cmluZylGSUVMRCknLCAnJyksDQoJ CSdpc3VwcGVyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfdXBwZXIoKHN0 cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3B1bmN0JyA9PiBhcnJheSgnaXNzZXQoVkFSTkFN RSkgJiYgY3R5cGVfcHVuY3QoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3NwYWNlJyA9 PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfc3BhY2UoKHN0cmluZylGSUVMRCkn LCAnJyksDQoJKTsNCg0KCSRudW1lcmljT3BzID0gImd0LCBnZSwgbHQsIGxlLCBlcSwgbm90 LCBkaXZpc2libGUiOw0KCSRjYXNlT3BzID0gImlzbG93ZXIsIGlzdXBwZXIiOw0KCSRzcGFj ZU9wcyA9ICJpc251bSwgaXNhbHBoYSwgaXNhbG51bSwgaXNsb3dlciwgaXN1cHBlciwgaXNw dW5jdCwgYmVnaW5zLCBjb250YWlucywgZW5kcyI7DQoJJGZpZWxkcyA9IGRvX2xpc3QoJGZp ZWxkLCAkcGFyYW1fZGVsaW0pOw0KCSRudW1GbGRzID0gY291bnQoJGZpZWxkcyk7DQoJJG9w cyA9IGRvX2xpc3QoJG9wZXJhdG9yLCAkcGFyYW1fZGVsaW0pOw0KCSRudW1PcHMgPSBjb3Vu dCgkb3BzKTsNCgkkdmFscyA9IGRvX2xpc3QoJHZhbHVlLCAkcGFyYW1fZGVsaW0pOw0KCSRu dW1WYWxzID0gY291bnQoJHZhbHMpOw0KCSRwYXJlbnRDYXRzID0gJyc7IC8vIFBsYWNlaG9s ZGVyIGZvciB0aGUgY29uY2F0ZW5hdGVkIGxpc3Qgb2YgY2F0ZWdvcnkgbGVhZiBub2Rlcw0K CSRyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCSR0eXBlID0gKCR0aGlzZmlsZSkgPyAiZmls ZSIgOiAoKCR0aGlzbGluaykgPyAibGluayIgOiAoKCR0aGlzaW1hZ2UpID8gImltYWdlIiA6 ICJhcnRpY2xlIikpOw0KCSRvdXQgPSBhcnJheSgpOw0KCSRpdGVyYXRpb25zID0gKCRudW1G bGRzID4gJG51bU9wcykgPyAkbnVtRmxkcyA6ICRudW1PcHM7DQoJJGZpbHRlciA9ICghZW1w dHkoJGZpbHRlcikpID8gZG9fbGlzdCgkZmlsdGVyLCAkcGFyYW1fZGVsaW0pIDogYXJyYXko KTsNCgkkcmVwbGFjZSA9ICghZW1wdHkoJHJlcGxhY2UpKSA/IGRvX2xpc3QoJHJlcGxhY2Us ICRwYXJhbV9kZWxpbSkgOiBhcnJheSgpOw0KCSRudW1GaWx0ZXJzID0gY291bnQoJGZpbHRl cik7DQoJJG51bVJlcGxhY2UgPSBjb3VudCgkcmVwbGFjZSk7DQoJJGZpbHRlcl9vbiA9ICgh ZW1wdHkoJGZpbHRlcl9vbikpID8gZG9fbGlzdCgkZmlsdGVyX29uLCAkcGFyYW1fZGVsaW0p IDogYXJyYXkoKTsNCgkkZmlsdGVyX3R5cGUgPSAoIWVtcHR5KCRmaWx0ZXJfdHlwZSkpID8g ZG9fbGlzdCgkZmlsdGVyX3R5cGUsICRwYXJhbV9kZWxpbSkgOiBhcnJheSgpOw0KCWlmICgk ZGVidWcgPiAxICYmICgkZmlsdGVyIHx8ICRyZXBsYWNlKSkgew0KCQllY2hvICIrKyBGSUxU RVJTICsrIjsNCgkJZG1wKCRmaWx0ZXIpOw0KCQlkbXAoJHJlcGxhY2UpOw0KCX0NCg0KCWZv ciAoJGlkeCA9IDA7ICRpZHggPCAkaXRlcmF0aW9uczsgJGlkeCsrKSB7DQoJCSRmbGQgPSAo JGlkeCA8ICRudW1GbGRzKSA/ICRmaWVsZHNbJGlkeF0gOiAkZmllbGRzWzBdOyAvLyBBbGxv dyBzaG9ydC1jaXJjdWl0DQoJCSRmbGRQYXJ0cyA9IGV4cGxvZGUoJG1vZF9kZWxpbSwgJGZs ZCk7DQoJCSR2YWwgPSAoJGlkeCA8ICRudW1WYWxzKSA/ICR2YWxzWyRpZHhdIDogJyc7DQoJ CSR2YWxQYXJ0cyA9IGV4cGxvZGUoJG1vZF9kZWxpbSwgJHZhbCk7DQoJCSRvcCA9ICgkaWR4 IDwgJG51bU9wcyAmJiAkb3BzWyRpZHhdICE9ICcnKSA/ICRvcHNbJGlkeF0gOiAoKCRmbGRQ YXJ0c1swXT09InBhcmVudCIpID8gImNvbnRhaW5zIiA6ICJlcSIpOw0KCQkkb3BQYXJ0cyA9 IGV4cGxvZGUoJG1vZF9kZWxpbSwgJG9wKTsNCgkJJG9wID0gKGFycmF5X2tleV9leGlzdHMo JG9wUGFydHNbMF0sICRhbGxPcHMpKSA/ICRvcFBhcnRzWzBdIDogImVxIjsNCgkJJGNhc3Qg PSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAoJG9wUGFydHNbMV0gPT09ICJOVU0iKSAm JiAoaW5fbGlzdCgkb3AsICRudW1lcmljT3BzKSkpID8gJyhpbnQpJyA6ICcnOw0KCQkkbGVu Z3RoID0gKChjb3VudCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAiTEVO IikgJiYgKGluX2xpc3QoJG9wLCAkbnVtZXJpY09wcykpKSA/ICdzdHJsZW4oRklFTEQpJyA6 ICcnOw0KCQkka2lsbFNwYWNlcyA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQ YXJ0c1sxXSA9PT0gIk5PU1BBQ0UiKSAmJiAoaW5fbGlzdCgkb3AsICRzcGFjZU9wcykpKSA/ IHRydWUgOiBmYWxzZTsNCgkJJHN0cmlwRmxkID0gKChjb3VudCgkZmxkUGFydHMpID4gMSkg JiYgKGluX2FycmF5KCJOT1RBR1MiLCAkZmxkUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJ CSRzdHJpcFZhbCA9ICgoY291bnQoJHZhbFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgiTk9U QUdTIiwgJHZhbFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0KCQkkdHJpbUZsZCA9ICgoY291 bnQoJGZsZFBhcnRzKSA+IDEpICYmIChpbl9hcnJheSgiVFJJTSIsICRmbGRQYXJ0cykpKSA/ IHRydWUgOiBmYWxzZTsNCgkJJHRyaW1WYWwgPSAoKGNvdW50KCR2YWxQYXJ0cykgPiAxKSAm JiAoaW5fYXJyYXkoIlRSSU0iLCAkdmFsUGFydHMpKSkgPyB0cnVlIDogZmFsc2U7DQoJCSRj YXNlX3NlbnNpdGl2ZSA9IChpbl9saXN0KCRvcCwgJGNhc2VPcHMpKSA/IDEgOiAkY2FzZV9z ZW5zaXRpdmU7DQoJCSRwYXQgPSAoJGlkeCA8ICRudW1GaWx0ZXJzKSA/ICRmaWx0ZXJbJGlk eF0gOiAoKCRmaWx0ZXIpID8gJGZpbHRlclswXSA6ICcnKTsNCgkJJHJlcCA9ICgkaWR4IDwg JG51bVJlcGxhY2UpID8gJHJlcGxhY2VbJGlkeF0gOiAoKCRyZXBsYWNlKSA/ICRyZXBsYWNl WzBdIDogJycpOw0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICdURVNUICcuKCRpZHgrMSku bjsNCgkJCWRtcCgkZmxkUGFydHMsICRvcFBhcnRzLCAkdmFsUGFydHMpOw0KCQl9DQoJCS8v IEdldCB0aGUgb3BlcmF0b3IgcmVwbGFjZW1lbnQgY29kZQ0KCQkkZXhjbHVkZSA9IGRvX2xp c3QoJGFsbE9wc1skb3BdWzFdKTsNCgkJJG9wID0gJGFsbE9wc1skb3BdWzBdOw0KDQoJCS8v IEFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgb3BlcmF0b3IgYWxsb3dzIHRoaXMgZmllbGQuLi4N CgkJaWYgKCFpbl9hcnJheSgkZmxkUGFydHNbMF0sICRleGNsdWRlKSkgew0KCQkJLy8gTWFr ZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJsZQ0KCQkJaWYgKGlzc2V0KCR0aGlzZmlsZVsk ZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQg PSAnJHRoaXNmaWxlWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlz bGlua1skZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJ CSRmbGQgPSAnJHRoaXNsaW5rWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0 KCR0aGlzaW1hZ2VbJGZsZFBhcnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sw XTsNCgkJCQkkZmxkID0gJyR0aGlzaW1hZ2VbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBp ZiAoYXJyYXlfa2V5X2V4aXN0cygkZmxkUGFydHNbMF0sICRhbGxQdHh0KSkgew0KCQkJCSRy ZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAkYWxsUHR4dFskcmZsZF07DQoJCQl9 IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAicGFyZW50Iikgew0KCQkJCSR0cmVlRmllbGQg PSAnbmFtZSc7DQoJCQkJJGxldmVsID0gJyc7DQoJCQkJZm9yZWFjaCAoJGZsZFBhcnRzIGFz ICRwYXJ0KSB7DQoJCQkJCWlmICgkcGFydCA9PSAicGFyZW50Iikgew0KCQkJCQkJJHRoZUNh dCA9ICgkdGhpc2ZpbGUpID8gJHRoaXNmaWxlWydjYXRlZ29yeSddIDogKCgkdGhpc2xpbmsp ID8gJHRoaXNsaW5rWydjYXRlZ29yeSddIDogKCgkdGhpc2ltYWdlKSA/ICR0aGlzaW1hZ2Vb J2NhdGVnb3J5J10gOiAkcHJldGV4dFsnYyddKSk7DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9z KCRwYXJ0LCAiQ0FUIikgPT09IDApIHsNCgkJCQkJCSR0aGVDYXQgPSAkdGhpc2FydGljbGVb ImNhdGVnb3J5Ii5zdWJzdHIoJHBhcnQsIDMpXTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3Mo JHBhcnQsICJMVkwiKSA9PT0gMCkgew0KCQkJCQkJJGxldmVsID0gc3Vic3RyKCRwYXJ0LCAz KTsNCgkJCQkJfSBlbHNlIGlmIChzdHJwb3MoJHBhcnQsICJUVEwiKSA9PT0gMCkgew0KCQkJ CQkJJHRyZWVGaWVsZCA9ICd0aXRsZSc7DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9zKCRwYXJ0 LCAiS0lEUyIpID09PSAwKSB7DQoJCQkJCQkkdHJlZUZpZWxkID0gJ2NoaWxkcmVuJzsNCgkJ CQkJfQ0KCQkJCX0NCg0KCQkJCSR0cmVlID0gZ2V0VHJlZVBhdGgoZG9TbGFzaCgkdGhlQ2F0 KSwgJHR5cGUpOw0KCQkJCWlmICgkZGVidWcgJiYgJHRyZWUpIHsNCgkJCQkJZWNobyAiQ0FU RUdPUlkgVFJFRToiOw0KCQkJCQlkbXAoJHRyZWUpOw0KCQkJCX0NCgkJCQkkaXRlbXMgPSBh cnJheSgpOw0KCQkJCWZvcmVhY2ggKCR0cmVlIGFzICRsZWFmKSB7DQoJCQkJCWlmICgkbGVh ZlsnbmFtZSddID09ICJyb290IiB8fCAkbGVhZlsnbmFtZSddID09ICR0aGVDYXQpIHsNCgkJ CQkJCWNvbnRpbnVlOw0KCQkJCQl9IGVsc2UgaWYgKCRsZXZlbCA9PSAnJyB8fCAkbGV2ZWwg PT0gJGxlYWZbJ2xldmVsJ10pIHsNCgkJCQkJCSRpdGVtc1tdID0gJGxlYWZbJHRyZWVGaWVs ZF07DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHBhcmVudENhdHMgPSBpbXBsb2RlKCIgIiwgJGl0 ZW1zKTsNCgkJCQkkcmZsZCA9IHNhbml0aXplRm9yVXJsKCRwYXJlbnRDYXRzKTsNCgkJCQlp ZiAoJGRlYnVnICYmICRwYXJlbnRDYXRzKSB7DQoJCQkJCWVjaG8gIisrIFBBUkVOVCBJTkZP ICsrIjsNCgkJCQkJZG1wKCRwYXJlbnRDYXRzKTsNCgkJCQl9DQoJCQkJJGZsZCA9ICckcGFy ZW50Q2F0cyc7DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAidHhwdmFyIikgew0K CQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0 c1sxXTsNCgkJCQkJJGZsZCA9ICckdmFyaWFibGVbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJ CQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAidXJsdmFyIikgew0KCQkJCWlmIChjb3Vu dCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJ JGZsZCA9ICckX0dFVFsiJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZs ZFBhcnRzWzBdID09ICJwb3N0dmFyIikgew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4g MSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckX1BPU1Rb IicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAi c3ZydmFyIikgew0KCQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZs ZCA9ICRmbGRQYXJ0c1sxXTsNCgkJCQkJJGZsZCA9ICckX1NFUlZFUlsiJy4kcmZsZC4nIl0n Ow0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJwaHB2YXIiKSB7DQoJ CQkJaWYgKGNvdW50KCRmbGRQYXJ0cykgPiAxKSB7DQoJCQkJCSRyZmxkID0gJGZsZFBhcnRz WzFdOw0KCQkJCQkkZmxkID0gJyRHTE9CQUxTWyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJ fSBlbHNlIGlmIChpc3NldCgkdGhpc2FydGljbGVbJGZsZFBhcnRzWzBdXSkpIHsNCgkJCQkk cmZsZCA9IHN0cnRvbG93ZXIoJGZsZFBhcnRzWzBdKTsNCgkJCQkkZmxkID0gJyR0aGlzYXJ0 aWNsZVsiJy4kcmZsZC4nIl0nOw0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gIk5V TEwiKSB7DQoJCQkJJHNtZF9pZl92YXIgPSAnJzsNCgkJCQkkZmxkID0gJyRzbWRfaWZfdmFy JzsNCgkJCQkkcmZsZCA9ICJOVUxMIjsNCgkJCX0gZWxzZSB7DQoJCQkJJHNtZF9pZl92YXIg PSAkZmxkUGFydHNbMF07DQoJCQkJJGZsZCA9ICckc21kX2lmX3Zhcic7DQoJCQkJJHJmbGQg PSAiZmllbGQiLigkaWR4KjErMSk7DQoJCQl9DQoJCQkkcmxmbGQgPSAic21kX2lmX2xlbl8i LiRyZmxkOw0KCQkJJHJmbGQgPSAic21kX2lmXyIuJHJmbGQ7DQoNCgkJCS8vIFRha2UgYSBj b3B5IG9mICRmbGQgdG8gdXNlIGluIGFueSBpc3NldCgpIHJlcXVlc3RzDQoJCQkkZmxkQ2xl YW4gPSAkZmxkOw0KDQoJCQkvLyBBcHBseSB1c2VyLWRlZmluZWQgZmllbGQgZmlsdGVycw0K CQkJaWYgKCRraWxsU3BhY2VzKSB7DQoJCQkJJGZsZCA9ICdwcmVnX3JlcGxhY2UoIi9ccysv IiwiIiwnLiRmbGQuJyknOw0KCQkJfQ0KCQkJaWYgKCRzdHJpcEZsZCkgew0KCQkJCSRmbGQg PSAndHJpbShzdHJpcF90YWdzKCcuJGZsZC4nKSknOw0KCQkJfQ0KCQkJaWYgKCR0cmltRmxk KSB7DQoJCQkJJGZsZCA9ICd0cmltKCcuJGZsZC4nKSc7DQoJCQl9DQoJCQkkZG9fZmZpbHQg PSAoJHBhdCAmJiBpbl9hcnJheSgnZmllbGQnLCAkZmlsdGVyX29uKSAmJiAoaW5fYXJyYXko JGZsZFBhcnRzWzBdLCAkZmlsdGVyX3R5cGUpIHx8IGluX2FycmF5KCdhbGwnLCAkZmlsdGVy X3R5cGUpKSApID8gdHJ1ZSA6IGZhbHNlOw0KDQoJCQkvLyBGaW5kIHRoZSByZWFsIHZhbHVl IHRvIGNvbXBhcmUgYWdhaW5zdCAobWF5IGJlIGFub3RoZXIgZmllbGQpDQoJCQlpZiAoJHZh bFBhcnRzWzBdID09ICJ1cmx2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAx KSB7DQoJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkkdmFsID0gKGlzc2V0KCRf R0VUWyR2ZmxkXSkgJiYgJF9HRVRbJHZmbGRdICE9ICIiKSA/ICckX0dFVFsiJy4kdmZsZC4n Il0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0K CQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInBvc3R2YXIiKSB7DQoJCQkJaWYgKGNv dW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJ CQkkdmFsID0gKGlzc2V0KCRfUE9TVFskdmZsZF0pICYmICRfUE9TVFskdmZsZF0gIT0gIiIp ID8gJyRfUE9TVFsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdc IicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInN2 cnZhciIpIHsNCgkJCQlpZiAoY291bnQoJHZhbFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQg PSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwgPSAoaXNzZXQoJF9TRVJWRVJbJHZmbGRdKSAm JiAkX1NFUlZFUlskdmZsZF0gIT0gIiIpID8gJyRfU0VSVkVSWyInLiR2ZmxkLiciXScgOiBk b1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wiJywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVs c2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAidHhwdmFyIikgew0KCQkJCWlmIChjb3VudCgkdmFs UGFydHMpID4gMSkgew0KCQkJCQkkdmZsZCA9ICR2YWxQYXJ0c1sxXTsNCgkJCQkJJHZhbCA9 IChpc3NldCgkdmFyaWFibGVbJHZmbGRdKSAmJiAkdmFyaWFibGVbJHZmbGRdICE9ICIiKSA/ ICckdmFyaWFibGVbIicuJHZmbGQuJyJdJyA6IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAn XCInLCAkdmZsZCkpOw0KCQkJCX0NCgkJCX0gZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJw aHB2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJCSR2Zmxk ID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkkdmFsID0gKGlzc2V0KCRHTE9CQUxTWyR2ZmxkXSkg JiYgJEdMT0JBTFNbJHZmbGRdICE9ICIiKSA/ICckR0xPQkFMU1siJy4kdmZsZC4nIl0nIDog ZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBl bHNlIGlmIChzdHJwb3MoJHZhbFBhcnRzWzBdLCAiPyIpID09PSAwKSB7DQoJCQkJJHZhbFBh cnRzWzBdID0gc3Vic3RyKHN0cnRvbG93ZXIoJHZhbFBhcnRzWzBdKSwgMSk7DQoJCQkJJHZm bGQgPSAkdmFsUGFydHNbMF07DQoJCQkJaWYgKGlzc2V0KCR0aGlzZmlsZVskdmZsZF0pICYm ICR0aGlzZmlsZVskdmZsZF0gIT0gIiIpIHsNCgkJCQkJJHZhbCA9ICckdGhpc2ZpbGVbIicu JHZmbGQuJyJdJzsNCgkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1skdmZsZF0pICYm ICR0aGlzbGlua1skdmZsZF0gIT0gIiIpIHsNCgkJCQkJJHZhbCA9ICckdGhpc2xpbmtbIicu JHZmbGQuJyJdJzsNCgkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1hZ2VbJHZmbGRdKSAm JiAkdGhpc2ltYWdlWyR2ZmxkXSAhPSAiIikgew0KCQkJCQkkdmFsID0gJyR0aGlzaW1hZ2Vb IicuJHZmbGQuJyJdJzsNCgkJCQl9IGVsc2UgaWYgKGFycmF5X2tleV9leGlzdHMoJHZmbGQs ICRhbGxQdHh0KSAmJiAkYWxsUHR4dFskdmZsZF0gIT0gIiIpIHsNCgkJCQkJJHZhbCA9ICRh bGxQdHh0WyR2ZmxkXTsNCgkJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskdmZs ZF0pICYmICR0aGlzYXJ0aWNsZVskdmZsZF0gIT0gIiIpIHsNCgkJCQkJJHZhbCA9ICckdGhp c2FydGljbGVbIicuJHZmbGQuJyJdJzsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkdmFsID0gZG9R dW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBlbHNl IHsNCgkJCQkkdmZsZCA9ICJ2YWwiLigkaWR4KjErMSk7DQoJCQkJJHZhbCA9IGRvUXVvdGUo c3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmFsUGFydHNbMF0pKTsNCgkJCX0NCgkJCSR2bGZs ZCA9ICJzbWRfaWZfbGVuXyIuJHZmbGQ7DQoJCQkkdmZsZCA9ICJzbWRfaWZfIi4kdmZsZDsN Cg0KCQkJLy8gQXBwbHkgdXNlci1kZWZpbmVkIHZhbHVlIGZpbHRlcnMNCgkJCWlmICgkc3Ry aXBWYWwpIHsNCgkJCQkkdmFsID0gJ3RyaW0oc3RyaXBfdGFncygnLiR2YWwuJykpJzsNCgkJ CX0NCgkJCWlmICgkdHJpbVZhbCkgew0KCQkJCSR2YWwgPSAndHJpbSgnLiR2YWwuJyknOw0K CQkJfQ0KCQkJJGRvX3ZmaWx0ID0gKCRwYXQgJiYgaW5fYXJyYXkoJ3ZhbHVlJywgJGZpbHRl cl9vbikgJiYgKGluX2FycmF5KCR2YWxQYXJ0c1swXSwgJGZpbHRlcl90eXBlKSB8fCBpbl9h cnJheSgnYWxsJywgJGZpbHRlcl90eXBlKSkgKSA/IHRydWUgOiBmYWxzZTsNCg0KCQkJLy8g UmVwbGFjZSB0aGUgc3RyaW5nIHBhcnRzLi4uDQoJCQkkZmlsdF9mbGQgPSAoJGRvX2ZmaWx0 KSA/ICJwcmVnX3JlcGxhY2UoJyRwYXQnLCAnJHJlcCcsICRmbGQpIiA6ICRmbGQ7DQoJCQkk ZmlsdF92YWwgPSAoJGRvX3ZmaWx0KSA/ICJwcmVnX3JlcGxhY2UoJyRwYXQnLCAnJHJlcCcs ICR2YWwpIiA6ICR2YWw7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIkNBU1QiLCAkY2FzdCwg JG9wKTsNCgkJCSRjbWQgPSAoJGxlbmd0aCkgPyBzdHJfcmVwbGFjZSgiRklFTEQiLCAkbGVu Z3RoLCAkY21kKSA6ICRjbWQ7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIkZJRUxEIiwgKCgk Y2FzZV9zZW5zaXRpdmUpID8gJGZpbHRfZmxkIDogJ3N0cnRvbG93ZXIoJy4kZmlsdF9mbGQu JyknKSwgJGNtZCk7DQoJCQkkY21kID0gc3RyX3JlcGxhY2UoIlZBUk5BTUUiLCAkZmxkQ2xl YW4sICRjbWQpOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJWQUxVRSIsICgoJGNhc2Vfc2Vu c2l0aXZlKSA/ICdWQUxVRScgOiAnc3RydG9sb3dlcihWQUxVRSknKSwgJGNtZCk7DQoNCgkJ CS8vIFdvdWxkIGxvdmUgdG8gZG8gdGhpcyBpbiBvbmUgZ28sIGJ1dCBpdCBhcHBlYXJzIGl0 J3Mgbm90IHBvc3NpYmxlIHRvDQoJCQkvLyBkZWNsYXJlIGEgdmFyaWFibGUgYW5kIHVzZSBp dCB3aXRoaW4gdGhlIHNhbWUgZXZhbCgpIHN0YXRlbWVudCA6LSgNCgkJCWV2YWwgKCJcJHNt ZF9wcmVmaWx0ZXIgPSBkb1F1b3RlKCIuJGZpbHRfdmFsLiIpOyIpOw0KCQkJJGNtZCA9ICJA XCRyZXBsYWNlbWVudHNbJ3siLiRyZmxkLiJ9J10gPSAiLiRmaWx0X2ZsZC4iOyBcbkBcJHJl cGxhY2VtZW50c1sneyIuJHJsZmxkLiJ9J10gPSBzdHJsZW4oIi4kZmlsdF9mbGQuIik7IFxu QFwkcmVwbGFjZW1lbnRzWyd7Ii4kdmZsZC4ifSddID0gIi4kZmlsdF92YWwuIjsgXG5AXCRy ZXBsYWNlbWVudHNbJ3siLiR2bGZsZC4ifSddID0gc3RybGVuKCIuJGZpbHRfdmFsLiIpOyBc blwkb3V0WyIuJGlkeC4iXSA9ICgiLnN0cl9yZXBsYWNlKCJWQUxVRSIsICgoJHNtZF9wcmVm aWx0ZXI9PT0iJyciICYmIHN0cnBvcygkb3AsICJzdHJwb3MiKSAhPT0gZmFsc2UpID8gIicg JyIgOiAkc21kX3ByZWZpbHRlciksICRjbWQpLiIpID8gJ3RydWUnIDogJ2ZhbHNlJzsiOw0K CQkJaWYgKCRkZWJ1Zykgew0KCQkJCWRtcCgkY21kKTsNCgkJCX0NCgkJCS8vIC4uLiBhbmQg ZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24NCgkJCWV2YWwoJGNtZCk7DQoJCX0NCgl9DQoJaWYg KCRkZWJ1Zykgew0KCQllY2hvICJSRVNVTFQ6IjsNCgkJZG1wKCRvdXQpOw0KCQllY2hvICJS RVBMQUNFTUVOVFM6IjsNCgkJZG1wKCRyZXBsYWNlbWVudHMpOw0KCX0NCglpZiAoJGRlYnVn ID4gMikgew0KCQllY2hvICJQUkVURVhUOiI7DQoJCWRtcCgkcHJldGV4dCk7DQoJCWVjaG8g IlRISVMgQVJUSUNMRToiOw0KCQlkbXAoJHRoaXNhcnRpY2xlKTsNCgkJZWNobyAiVEhJUyBG SUxFOiI7DQoJCWRtcCgkdGhpc2ZpbGUpOw0KCQllY2hvICJUSElTIExJTks6IjsNCgkJZG1w KCR0aGlzbGluayk7DQoJCWVjaG8gIlRISVMgSU1BR0U6IjsNCgkJZG1wKCR0aGlzaW1hZ2Up Ow0KCX0NCgkvLyBDaGVjayBsb2dpYw0KCSRyZXN1bHQgPSAoJG91dCkgPyB0cnVlIDogZmFs c2U7DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAiYW5kIiAmJiBpbl9hcnJheSgiZmFs c2UiLCAkb3V0KSkgew0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJfQ0KCWlmIChzdHJ0b2xvd2Vy KCRsb2dpYykgPT0gIm9yIiAmJiAhaW5fYXJyYXkoInRydWUiLCAkb3V0KSkgew0KCQkkcmVz dWx0ID0gZmFsc2U7DQoJfQ0KDQoJcmV0dXJuIHBhcnNlKEV2YWxFbHNlKHN0cnRyKCR0aGlu ZywgJHJlcGxhY2VtZW50cyksICRyZXN1bHQpKTsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtz OjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0OiJoZWxwIjtzOjQx MjEzOiI8ZGl2IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF9pZjwvaDE+CgoJPHA+QSBnZW5l cmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3Rlci4gQ2FuIHRlc3QgYW55IGZp ZWxkIG9yIHZhcmlhYmxlIGluIHRoZSBjdXJyZW50IGFydGljbGUsIGZpbGUsIGltYWdlLCBs aW5rLCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXIsIDxjb2RlPiZsdDt0eHA6 dmFyaWFibGUgLyZndDs8L2NvZGU+IG9yIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+ IGNvbnRleHQgZm9yIGEgdmFyaWV0eSBvZiBhdHRyaWJ1dGVzIGFuZCB0YWtlIGFjdGlvbiBp ZiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gb3IgPHNwYW4gY2xhc3M9ImNhcHMi PkZBTFNFPC9zcGFuPi48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+CgkJPGxpPlN1 cHBvcnRzIG1vc3QgbWFqb3IgYXJ0aWNsZSwgZmlsZSwgaW1hZ2UgYW5kIGxpbmsgdmFyaWFi bGVzIHN1Y2ggYXMgc2VjdGlvbiwgY2F0ZWdvcnksIGN1c3RvbSBmaWVsZHMsIGlkLCBxdWVy eSBzdHJpbmcsIGF1dGhvciwgYm9keSwgZXhjZXJwdCwgeWFoZGUgeWFoZGUsIHBsdXMgdXJs IHZhcnMsIHNlcnZlciB2YXJzLCB0eHAgdmFycywgcGhwIHZhcnMsIGFuZCBzdWItY2F0ZWdv cnkvcGFyZW50IGNoZWNraW5nPC9saT4KCQk8bGk+VGVzdHMgaW5jbHVkZSBlcXVhbGl0eSwg aW5lcXVhbGl0eSwgbGVzcyB0aGFuLCBncmVhdGVyIHRoYW4sIGRpdmlzaWJsZSBieSwgZW1w dHksIHVzZWQsIGRlZmluZWQsIGJlZ2lucywgZW5kcywgY29udGFpbnMsIGlzIG51bWVyaWMg LyBhbHBoYSAvIGFscGhhbnVtZXJpYyAvIGxvd2VyY2FzZSAvIHVwcGVyY2FzZSwgYW1vbmcg b3RoZXJzPC9saT4KCQk8bGk+VGVzdHMgZm9yIG1vcmUgdGhhbiBvbmUgY29uZGl0aW9uIGF0 IG9uY2UgYW5kIGFwcGxpZXMgZWl0aGVyIDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+ IGxvZ2ljIChhbGwgdGVzdHMgbXVzdCBwYXNzKSBvciBPUiBsb2dpYyAoYW55IHRlc3QgbXVz dCBwYXNzKTwvbGk+CgkJPGxpPkFsbCB0ZXN0ZWQgZmllbGRzIGFuZCB2YWx1ZXMgYXJlIGF2 YWlsYWJsZSB0byB0aGUgY29udGFpbmVyIHNvIHlvdSBjYW4gZGlzcGxheSB0aGVtPC9saT4K CQk8bGk+Q3VzdG9tIHJlZ3VsYXItZXhwcmVzc2lvbiBmaWx0ZXJzIGFyZSBhdmFpbGFibGUg dG8gaGVscCB3ZWVkIG91dCBiYWQgZGF0YTwvbGk+CgkJPGxpPlVnbHkgYW5kIHZlcnkgZGly dHkuIFVzZXMgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4mIzgyMTc7cyA8Y29kZT5l dmFsKCk8L2NvZGU+IGNvbW1hbmQgd2hpY2ggbW9zdCBwcm9ncmFtbWVycyBjb25jdXIgc2hv dWxkIGJlIHJlbmFtZWQgPGNvZGU+ZXZpbCgpPC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxoMj5B dXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50 Rm9ybSI+U3RlZiBEYXdzb248L2E+LiBCYXNlZCBvbiBhbiBpZGVhIGJyZXdpbmcgaW4gdGhl IGJhY2sgb2YgbXkgbWluZCB3aGlsZSBoYWNraW5nIGNoc19pZl91cmx2YXIuPC9wPgoKCTxo Mj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwvaDI+CgoJPHA+RG93bmxvYWQgdGhl IHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3Bs dWdpbnMvOTMwL3NtZF9pZiI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9 Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRo ZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0m Z3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0 IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5w aHA/aWQ9MjUzNTciPmZvcnVtIHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBv cnQgb24gdGhlIHN1Y2Nlc3Mgb3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxw PlRvIHVuaW5zdGFsbCwgc2ltcGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVn aW5zIHBhZ2UuPC9wPgoKCTxoMj5Vc2FnZTwvaDI+CgoJPHA+VXNlIHRoZSB0YWcgaW4gYW55 IHBhZ2UsIGZvcm0gb3IgYXJ0aWNsZSBjb250ZXh0LiBDYW4gYWxzbyBiZSB1c2VkIGluc2lk ZSBmaWxlLCBpbWFnZSAoaW4gdGhlIGZ1dHVyZSkgb3IgbGluayBsaXN0cyB0byB0YWtlIGFj dGlvbiBkZXBlbmRpbmcgb24gYXR0cmlidXRlcyBvZiB0aGUgY3VycmVudCBpdGVtLjwvcD4K Cgk8aDMgY2xhc3M9InRhZyI+c21kX2lmPC9oMz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnki PkF0IHRoZSBwbGFjZSB5b3Ugd2lzaCB0byBjb21wYXJlIGEgZmllbGQgd2l0aCBhbm90aGVy IHZhbHVlLCBwdXQgdGhpcyB0YWcgd2l0aCB0aGUgZmlyc3QgdGhyZWUgbWFuZGF0b3J5IGF0 dHJpYnV0ZXMuIEVhY2ggdGFrZSBhIHNlcmllcyBvZiBjb21tYS1zZXBhcmF0ZWQgbGlzdHMg JiM4MjEyOyB0aG91Z2ggdGhlIDxhIGhyZWY9IiNwYXJhbWRlbGltIj5jb21tYSBpcyBvdmVy cmlkYWJsZSB3aXRoIHBhcmFtX2RlbGltPC9hPi4gSWYgdGhlIHJlc3VsdCBvZiBhbGwgdGhl IGNvbXBhcmlzb24gdGVzdHMgaXMgPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IHRo ZSBjb250YWluZWQgYmxvY2sgd2lsbCBiZSBleGVjdXRlZC4gSWYgdGhlIHJlc3VsdCBpcyA8 c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+LCBhbnkgPGNvZGU+Jmx0O3R4cDplbHNl IC8mZ3Q7PC9jb2RlPiB3aWxsIGJlIGV4ZWN1dGVkIGluc3RlYWQuIFdpdGhvdXQgYW55IDxj b2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gYmxvY2ssIG5vdGhpbmcgaXMgb3V0cHV0 IGlmIHRoZSByZXN1bHQgaXMgPHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPi48L3A+ CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0ZXMiPkF0dHJpYnV0ZXM8L2g0PgoK CTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIG1hbmQiPmZpZWxkPC9zcGFuPiA6 IHRoZSA8YSBocmVmPSIjZmllbGQiPmZpZWxkczwvYT4gdG8gdGVzdDwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSBtYW5kIj5vcGVyYXRvcjwvc3Bhbj4gOiB0aGUgPGEgaHJl Zj0iI29wZXJhdG9yIj5vcGVyYXRpb25zPC9hPiBmb3IgY29tcGFyaXNvbiB3aXRoIHRoYXQg ZmllbGQgKGUuZy4gPGNvZGU+ZXE8L2NvZGU+LCA8Y29kZT5ub3Q8L2NvZGU+LCA8Y29kZT5i ZWdpbnM8L2NvZGU+LCBldGMpLiBEZWZhdWx0IGlzIHVzdWFsbHkgPGNvZGU+ZXE8L2NvZGU+ PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIG1hbmQiPnZhbHVlPC9zcGFuPiA6 IHRoZSA8YSBocmVmPSIjdmFsdWUiPnZhbHVlczwvYT4gd2l0aCB3aGljaCB0byBjb21wYXJl IHRoZSBmaWVsZHM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxvZ2ljPC9z cGFuPiA6IGhvdyBtdWx0aXBsZSB0ZXN0cyBhcmUgam9pbmVkOiA8c3BhbiBjbGFzcz0iY2Fw cyI+QU5EPC9zcGFuPiBvciBPUi4gRGVmYXVsdCBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+QU5E PC9zcGFuPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2FzZV9zZW5zaXRp dmU8L3NwYW4+IDogMSA9IGNhc2Utc2Vuc2l0aXZlIGNvbXBhcmlzb247IDAgPSBpZ25vcmUg Y2FzZS4gRGVmYXVsdCBpcyAwPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5m aWx0ZXI8L3NwYW4+IDogbGlzdCBvZiByZWd1bGFyIGV4cHJlc3Npb25zIHdpdGggd2hpY2gg dG8gZmlsdGVyIG9uZSBvciBtb3JlIGZpZWxkcy92YWx1ZXMuIFNlZSA8YSBocmVmPSIjZmls dGVyaW5nIj5maWx0ZXJpbmc8L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5yZXBsYWNlPC9zcGFuPiA6IGxpc3Qgb2YgaXRlbXMgd2l0aCB3aGljaCB0byByZXBsYWNl IGVhY2ggb2YgdGhlIG1hdGNoaW5nIGZpbHRlcnM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPmZpbHRlcl90eXBlPC9zcGFuPiA6IGxpbWl0IHRoZSBmaWx0ZXIgdG8gY2Vy dGFpbiB0eXBlcyBvZiB0ZXN0LiBDaG9vc2UgZnJvbSA8Y29kZT5hbGw8L2NvZGU+ICh0aGUg ZGVmYXVsdCksIDxjb2RlPnVybHZhcjwvY29kZT4sIDxjb2RlPnBvc3R2YXI8L2NvZGU+LCA8 Y29kZT5zdnJ2YXI8L2NvZGU+LCA8Y29kZT50eHB2YXI8L2NvZGU+LCA8Y29kZT5waHB2YXI8 L2NvZGU+LCBvciBhbnkgZmllbGQgbmFtZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQt bmFtZSI+ZmlsdGVyX29uPC9zcGFuPiA6IGVpdGhlciBhcHBseSB0aGUgZmlsdGVyIHRvIHRo ZSA8Y29kZT5maWVsZDwvY29kZT4sIHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gb3IgYm90aC4g RGVmYXVsdDogPGNvZGU+ZmllbGQ8L2NvZGU+LiBQbGVhc2Ugc2VlIHRoZSA8YSBocmVmPSIj ZmNhdmVhdCI+ZmlsdGVyaW5nIGNhdmVhdDwvYT4gYmVsb3cgZm9yIGltcG9ydGFudCBpbmZv cm1hdGlvbiBhYm91dCB0aGlzIGF0dHJpYnV0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+cGFyYW1fZGVsaW08L3NwYW4+IDogZGVsaW1pdGVyIHVzZWQgYmV0d2VlbiBl YWNoIGZpZWxkLCBvcGVyYXRvciBvciB2YWx1ZSBpbiBhIG11bHRpLXRlc3QuIERlZmF1bHQg aXMgYSBjb21tYSAoLCk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPm1vZF9k ZWxpbTwvc3Bhbj4gOiBkZWxpbWl0ZXIgdXNlZCB3aGVuIHNwZWNpZnlpbmcgZmllbGQgb3Ig b3BlcmF0b3IgbW9kaWZpZXJzIGZvciB1cmx2YXIsIHBvc3R2YXIsIHN2cnZhciBhbmQgdHhw dmFyLiBEZWZhdWx0IGlzIGEgY29sb24gKDopPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj5saXN0X2RlbGltPC9zcGFuPiA6IGRlbGltaXRlciB1c2VkIHdoZW4gc3BlY2lm eWluZyBhIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIHZpYSB0aGUgPGNvZGU+aW48L2NvZGU+ IG9yIDxjb2RlPm5vdGluPC9jb2RlPiBvcGVyYXRvcnMuIERlZmF1bHQgaXMgYSBmb3J3YXJk LXNsYXNoICgvKTwvbGk+Cgk8L3VsPgoKCTxwPlRoZSBsaXN0cyBhcmUgcHJvY2Vzc2VkIGlu IG9yZGVyLCBpLmUuIHRoZSAxc3QgZmllbGQgdXNlcyB0aGUgMXN0IG9wZXJhdG9yIGluIHRo ZSBsaXN0IGFuZCBjb21wYXJlcyBpdCB0byB0aGUgMXN0IHZhbHVlOyB0aGUgMm5kIGZpZWxk IHVzZXMgdGhlIDJuZCBvcGVyYXRvciBpbiB0aGUgbGlzdCBhbmQgY29tcGFyZXMgaXQgdG8g dGhlIDJuZCB2YWx1ZSwgYW5kIHNvIG9uLiBWYWx1ZXMgc2hvdWxkIHVzdWFsbHkgYmUgc3Bl Y2lmaWVkIHdpdGggcGxhY2Vob2xkZXJzIHRvIG1haW50YWluIG9yZGVyOiBlLmcuIDxjb2Rl PnZhbHVlPSZxdW90OywgNCwsIHRvcCZxdW90OzwvY29kZT48L3A+CgoJPHA+Tm90ZSB0aGF0 LCBhbHRob3VnaCB0aGUgZmlyc3QgdGhyZWUgYXR0cmlidXRlcyBhcmUgY29uc2lkZXJlZCBt YW5kYXRvcnksIGlmIHlvdSBoYXBwZW4gdG8gcmVxdWlyZSB0aGUgZGVmYXVsdCBvcGVyYXRv ciBmb3IgYWxsIHlvdXIgdGVzdHMsIHlvdSBjYW4gc2FmZWx5IG9taXQgPGNvZGU+b3BlcmF0 b3I8L2NvZGU+LiBTaW1pbGFybHkgd2l0aCB2YWx1ZXM6IGlmIHlvdSBhcmUgZW50aXJlbHkg dGVzdGluZyB0aGUgZXhpc3RlbmNlIG9yIHR5cGUgb2YgdmFyaWFibGVzLCB5b3UgY2FuIG9t aXQgdGhlIDxjb2RlPnZhbHVlPC9jb2RlPiBwYXJhbWV0ZXIgaWYgeW91IHdpc2guIEFuZCBp ZiB5b3UgYXJlIHRlc3RpbmcgdGhlIHNhbWUgPGNvZGU+ZmllbGQ8L2NvZGU+IGFnYWluIGFu ZCBhZ2FpbiBmb3IgZGlmZmVyaW5nIGNvbmRpdGlvbnMsIHlvdSBjYW4gbGlzdCBpdCBqdXN0 IG9uY2UgYXMgYSBjb252ZW5pZW50IHNob3J0Y3V0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1u YW1lICIgaWQ9ImZpZWxkIj5maWVsZDwvaDQ+CgoJPHA+TGlzdCBvZiBmaWVsZCBsb2NhdGlv bnMgdG8gbG9vayBhdC4gU29tZSB1c2VmdWwgdmFsdWVzIGFyZTo8L3A+CgoJPHVsPgoJCTxs aT48Y29kZT5zZWN0aW9uPC9jb2RlPjwvbGk+CgkJPGxpPjxjb2RlPmNhdGVnb3J5PC9jb2Rl PiAob3IgPGNvZGU+Y2F0ZWdvcnkxPC9jb2RlPiwgb3IgPGNvZGU+Y2F0ZWdvcnkyPC9jb2Rl PiBpZiBvbiBhbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+YXV0aG9yaWQ8L2Nv ZGU+IG9yIDxjb2RlPmF1dGhvcjwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5pZDwvY29kZT4g KGZpbGUvbGluay9pbWFnZS9hcnRpY2xlIElEKS4gSW4gYW4gaW5kaXZpZHVhbCBhcnRpY2xl IGNvbnRleHQsIHVzZSA8Y29kZT50aGlzaWQ8L2NvZGU+IGluc3RlYWQ8L2xpPgoJCTxsaT48 Y29kZT5xdWVyeTwvY29kZT4gKHRoZSBxdWVyeSBzdHJpbmcgZnJvbSB0aGUgc2VhcmNoIGZv cm0pPC9saT4KCQk8bGk+PGNvZGU+cGc8L2NvZGU+ICh0aGUgY3VycmVudCBwYWdlIG51bWJl ciBpbiBsaXN0cyk8L2xpPgoJCTxsaT48Y29kZT5tb250aDwvY29kZT4gKGN1cnJlbnQgbW9u dGggZmllbGQgZnJvbSB0aGUgYWRkcmVzcyBiYXIpPC9saT4KCQk8bGk+PGNvZGU+c3RhdHVz PC9jb2RlPiAoZG9jdW1lbnQgc3RhdHVzOiAyMDAsIDQwNCwgNDAzLCBldGMpPC9saT4KCQk8 bGk+PGNvZGU+cGFnZTwvY29kZT4gKHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiBQYWdlIHRlbXBsYXRlIHVzZWQgYnkgdGhpcyBzZWN0aW9uKTwvbGk+CgkJPGxpPjxjb2Rl Pm5leHRfaWQ8L2NvZGU+IC8gPGNvZGU+cHJldl9pZDwvY29kZT4gKElEIG9mIG5leHQvcHJl diBkb2N1bWVudCBpZiBvbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNvZGU+bmV4dF90 aXRsZTwvY29kZT4gLyA8Y29kZT5wcmV2X3RpdGxlPC9jb2RlPihUaXRsZSBvZiBuZXh0L3By ZXYgZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPm5leHRf dXRpdGxlPC9jb2RlPiAvIDxjb2RlPnByZXZfdXRpdGxlPC9jb2RlPiAodXJsLXRpdGxlIG9m IG5leHQvcHJldiBkb2N1bWVudCBpZiBvbiBhcnRpY2xlIHBhZ2UpPC9saT4KCQk8bGk+PGNv ZGU+cGVybWxpbmtfbW9kZTwvY29kZT4gKHRha2UgYWN0aW9uIGJhc2VkIG9uIG9uZSBvZiB0 aGUgbWVzc3kvY2xlYW4gPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gc2NoZW1lcyk8 L2xpPgoJCTxsaT48Y29kZT5vdGhlciBhcnRpY2xlL2ZpbGUvbGluayBmaWVsZDwvY29kZT4g KGUuZy4gYm9keSwgZXhjZXJwdCwgYXJ0aWNsZV9pbWFnZSwga2V5d29yZHMsIGxpbmthbm1l LCBmaWxlbmFtZSwgZG93bmxvYWRzLCAmIzgyMzA7KTwvbGk+CgkJPGxpPjxjb2RlPm15X2N1 c3RvbV9maWVsZF9uYW1lPC9jb2RlPiAoYW55IGN1c3RvbSBmaWVsZHMgeW91IGhhdmUgZGVm aW5lZCk8L2xpPgoJCTxsaT48Y29kZT51cmx2YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgdmFy aWFibGUgaW4gdGhlIGFkZHJlc3MgYmFyIGFmdGVyIHRoZSA8Y29kZT4/PC9jb2RlPik8L2xp PgoJCTxsaT48Y29kZT5wb3N0dmFyOnZhcl9uYW1lPC9jb2RlPiAoYW55IHZhcmlhYmxlIHBv c3RlZCBmcm9tIGFuIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBmb3JtKTwvbGk+ CgkJPGxpPjxjb2RlPnN2cnZhcjp2YXJfbmFtZTwvY29kZT4gKGFueSBzdGFuZGFyZCBzZXJ2 ZXIgdmFyaWFibGUsIGUuZy4gPHNwYW4gY2xhc3M9ImNhcHMiPkhUVFA8L3NwYW4+X1VTRVJf QUdFTlQpPC9saT4KCQk8bGk+PGNvZGU+dHhwdmFyOm15X3ZhcjwvY29kZT4gKGFueSBUZXh0 cGF0dGVybiB2YXJpYWJsZSBzZXQgd2l0aCA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIG5hbWU9 JnF1b3Q7bXlfdmFyJnF1b3Q7IC8mZ3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48Y29kZT5waHB2 YXI6bXlfdmFyPC9jb2RlPiAoYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IHZh cmlhYmxlIDxlbT5pbiB0aGUgZ2xvYmFsIHNjb3BlPC9lbT4pPC9saT4KCQk8bGk+PGNvZGU+ cGFyZW50Om9wdGlvbmFsX21vZGlmaWVyczwvY29kZT4gKHdoZXRoZXIgdGhlIGdpdmVuIGNh dGVnb3J5IGlzIGEgZGVzY2VuZGVudCBvZiBhbm90aGVyIGNhdGVnb3J5KTwvbGk+CgkJPGxp Pjxjb2RlPk5VTEw8L2NvZGU+ICh1c2VmdWwgd2hlbiBjb21wYXJpbmcgYXJiaXRyYXJ5IHZh bHVlcyBmb3IgZW1wdGluZXNzKTwvbGk+Cgk8L3VsPgoKCTxwPklmIHlvdSBzcGVjaWZ5IGEg ZmllbGQgbmFtZSB0aGF0IGRvZXMgbm90IGV4aXN0LCB0aGUgdGV4dCB5b3UgdXNlIHdpbGwg YmUgdGFrZW4gdmVyYmF0aW0gaW4gbW9zdCBjYXNlcy48L3A+CgoJPHA+SWYgeW91IHdpc2gg dG8gY29tcGFyZSBhIGZpZWxkIHRoYXQgbWlnaHQgY29udGFpbiA8c3BhbiBjbGFzcz0iY2Fw cyI+SFRNTDwvc3Bhbj4gKGUuZyA8Y29kZT5ib2R5PC9jb2RlPiksIGFkZCB0aGUgbW9kaWZp ZXIgPGNvZGU+Ok5PVEFHUzwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgZmllbGQuIEl0IHdp bGwgaGF2ZSBpdHMgPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IGFuZCA8c3BhbiBj bGFzcz0iY2FwcyI+UEhQPC9zcGFuPiB0YWdzIHN0cmlwcGVkIGZyb20gaXQgYW5kIHdpbGwg YWxzbyBiZSB0cmltbWVkIHRvIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMu IFlvdSBtYXkgY2hvb3NlIHRvIHNvbGVseSByZW1vdmUgc3BhY2VzIGZyb20gYm90aCB0aGUg c3RhcnQgYW5kIGVuZCBvZiBhbnkgZmllbGQgYnkgYWRkaW5nIDxjb2RlPjpUUklNPC9jb2Rl PiB0byB0aGUgZW5kIG9mIHRoZSBmaWVsZC48L3A+CgoJPHA+VGhlIHNwZWNpYWwgZmllbGQg PGNvZGU+cGFyZW50PC9jb2RlPiBjaGVja3MgdGhlIHBhcmVudCBjYXRlZ29yeSBmb3IgYSBt YXRjaC4gVW5saWtlIHRoZSBvdGhlciBmaWVsZCB0eXBlcywgdGhlIGRlZmF1bHQgPGEgaHJl Zj0iI29wZXJhdG9yIj5vcGVyYXRvcjwvYT4gZm9yIHBhcmVudCBpcyAmIzgyMTY7Y29udGFp bnMmIzgyMTc7LiBUaGlzIGlzIGJlY2F1c2UgdGhlIGVudGlyZSB0cmVlIGlzIGNoZWNrZWQg Zm9yIGEgbWF0Y2gsIHN0YXJ0aW5nIGZyb20gdGhlIHRvcCBvZiB0aGUgdHJlZSBkb3duIHRv IHRoZSBjdXJyZW50IGNhdGVnb3J5LiBJbnRlcm5hbGx5LCB0aGUgcGx1Z2luIG1ha2VzIHVw IGEgJiM4MjIwO2JyZWFkY3J1bWIgdHJhaWwmIzgyMjE7IG9mIGNhdGVnb3JpZXMgaW4gdGhl IGN1cnJlbnQgYnJhbmNoLCBlYWNoIHNlcGFyYXRlZCBieSBhIHNwYWNlLCBzbyB0ZXN0aW5n IGZvciBlcXVhbGl0eSB3b3VsZCByZXF1aXJlIHB1dHRpbmcgdGhlbSBhbGwgaW4gdGhlIDxh IGhyZWY9IiN2YWx1ZSI+dmFsdWU8L2E+IHBhcmFtZXRlci48L3A+CgoJPHA+WW91IGFyZSBv ZiBjb3Vyc2UgZnJlZSB0byBjaG9vc2UgYW4gYWx0ZXJuYXRpdmUgb3BlcmF0b3I7IDxjb2Rl PmJlZ2luczwvY29kZT4gaXMgdmVyeSB1c2VmdWwgZm9yIHRlc3RpbmcgaWYgdGhlIHRvcCBs ZXZlbCBjYXRlZ29yeSBtYXRjaGVzIHRoZSBvbmUgZ2l2ZW4gaW4gdGhlIDxjb2RlPnZhbHVl PC9jb2RlPiBmaWVsZC48L3A+CgoJPHA+SWYgeW91IHVzZSA8Y29kZT5wYXJlbnQ6TFZMbjwv Y29kZT4sIHRoZSBjb21wYXJpc29uIHdpbGwgYmUgcmVzdHJpY3RlZCB0byB0aGF0ICYjODIy MDtsZXZlbCYjODIyMTsgb2Ygc3ViLWNhdGVnb3J5OyBMVkwxIGlzIHRoZSAmIzgyMjA7dG9w JiM4MjIxOyBsZXZlbCwgTFZMMiBpcyB0aGUgbmV4dCBzdWItY2F0ZWdvcnkgbGV2ZWwsIGFu ZCBzbyBvbi4gV2hlbiB1c2luZyB0aGVzZSBtb2RpZmllcnMsIHRoZSAmIzgyMTY7ZXEmIzgy MTc7IG9wZXJhdG9yIGJlY29tZXMgbW9yZSB1c2VmdWwgYmVjYXVzZSB5b3UgYXJlIGNvbXBh cmluZyBhIHNpbmdsZSBwYXJlbnQgY2F0ZWdvcnkuPC9wPgoKCTxwPklmIHlvdSB3aXNoIHRv IGNvbXBhcmUgYWdhaW5zdCB0aGUgY2F0ZWdvcnkmIzgyMTc7cyB0aXRsZSBpbnN0ZWFkIG9m IGl0cyBuYW1lLCBhZGQgdGhlIDxjb2RlPjpUVEw8L2NvZGU+IG1vZGlmaWVyLiBUbyB0ZXN0 IHRoZSBudW1iZXIgb2YgY2hpbGRyZW4gdGhlIGdpdmVuIGNhdGVnb3J5IGhhcywgc3BlY2lm eSA8Y29kZT46S0lEUzwvY29kZT4uIE5vdGUgdGhhdCA8c3BhbiBjbGFzcz0iY2FwcyI+VFRM PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPktJRFM8L3NwYW4+IGFyZSBtdXR1YWxs eSBleGNsdXNpdmUgYW5kIGlmIHRoZXkgYXJlIGJvdGggZW1wbG95ZWQsIHRoZSBsYXN0IG9u ZSB1c2VkIHRha2VzIHByaW9yaXR5LjwvcD4KCgk8cD5XaGVuIHVzaW5nIGFydGljbGVzLCB5 b3UgY2FuIGZ1cnRoZXIgbW9kaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIHBhcmVudCB1c2lu ZyB0aGUgPGNvZGU+Q0FUbjwvY29kZT4gc3ludGF4ICh3aGVyZSAmIzgyMTY7biYjODIxNzsg aXMgMSBvciAyKS4gU3BlY2lmeWluZyAmIzgyMjA7cGFyZW50JiM4MjIxOyB3aXRob3V0IDxj b2RlPkNBVG48L2NvZGU+IHdpbGwgdXNlIHRoZSBnbG9iYWwgY2F0ZWdvcnkgKDxjb2RlPj9j PTwvY29kZT4pLiBJZiB5b3UgYWRkIDxjb2RlPjpDQVRuPC9jb2RlPiBpdCB3aWxsIGluc3Rl YWQgY29tcGFyZSB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5MSBvciBjYXRlZ29yeTIg cmVzcGVjdGl2ZWx5LjwvcD4KCgk8cD5Zb3UgY2FuIHVzZSA8c3BhbiBjbGFzcz0iY2FwcyI+ Q0FUPC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMiPkxWTDwvc3Bhbj4gYW5kIDxzcGFuIGNs YXNzPSJjYXBzIj5UVEw8L3NwYW4+L0tJRFMgaW4gY29tYmluYXRpb24sIGluZGVwZW5kZW50 bHkgb3Igbm90IGF0IGFsbC4gVGhpcyBhbGxvd3MgY29tcGFyaXNvbnMgc3VjaCBhcyAmIzgy MjA7aWYgdGhlIDJuZCBzdWItY2F0ZWdvcnkgb2YgY2F0ZWdvcnkxIGVxdWFscyBibGFoYmxh aCYjODIyMTsgb3IgJiM4MjIwO2lmIGNhdGVnb3J5MiBpcyBhIGNoaWxkIG9mIGJsYWhibGFo JiM4MjIxOy4gU2VlIDxhIGhyZWY9IiNlZzQiPkV4YW1wbGUgNDwvYT4uPC9wPgoKCTxwPk9u ZSBvdGhlciBzcGVjaWFsIGZpZWxkIGlzIDxjb2RlPk5VTEw8L2NvZGU+LiBUaGlzIGlzIGV4 YWN0bHkgd2hhdCBpdCBzYXlzIGl0IGlzOiBlbXB0eS4gVGhlIHJlYXNvbiBmb3IgaXRzIGlu Y2x1c2lvbiBpcyB0aGF0IHNvbWV0aW1lcyB5b3Ugd2lzaCB0byB0ZXN0IHNvbWV0aGluZyB0 aGF0IGlzbiYjODIxNzt0IGEgdHJ1ZSB2YXJpYWJsZSAmIzgyMTI7IGUuZy4gYSByZXBsYWNl bWVudCB2YXJpYWJsZSBmcm9tIHNtZF92YXJzIG9yIHNtZF9lYWNoICYjODIxMjsgdG8gc2Vl IGlmIGl0JiM4MjE3O3MgZW1wdHkgb3Igbm90LjwvcD4KCgk8cD5JZiB5b3Ugd2VyZSB0byBw dXQgdGhpczo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7e3Jl c3VsdH0mcXVvdDsgb3BlcmF0b3I9JnF1b3Q7aXNlbXB0eSZxdW90OyZndDs8L2NvZGU+PC9w PgoKCTxwPnlvdSB3b3VsZCBub3QgZ2V0IHRoZSByZXN1bHQgeW91IGV4cGVjdCAoaXQmIzgy MTc7cyBwcmV0dHkgZXNvdGVyaWMgYnV0IGl0IHJldm9sdmVzIGFyb3VuZCB0aGUgZmFjdCB0 aGF0IDxjb2RlPiZxdW90OyZxdW90OzwvY29kZT4gKGFzIGEgdmFyaWFibGUgbmFtZSkgaXMg bm90IGVtcHR5LCBpdCYjODIxNztzIGludmFsaWQpLiBUbyBnZXQgcm91bmQgdGhpcyB5b3Ug bWF5IHVzZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVMTDwvc3Bhbj4gYXMgYSBwbGFjZWhvbGRl ciBhbmQgbW92ZSB0aGUgdGhpbmcgeW91IHdhbnQgdG8gY2hlY2sgaW50byB0aGUgPGNvZGU+ dmFsdWU8L2NvZGU+IGluc3RlYWQsIGUuZzo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRf aWYgZmllbGQ9JnF1b3Q7TlVMTCZxdW90OyBvcGVyYXRvcj0mcXVvdDtlcSZxdW90OyB2YWx1 ZT0mcXVvdDt7cmVzdWx0fSZxdW90OyZndDs8L2NvZGU+PC9wPgoKCTxwPndpbGwgdGVzdCB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPk5VTEw8L3NwYW4+IG9iamVjdCAoaS5lLiAmIzgyMTY7 ZW1wdGluZXNzJiM4MjE3OykgdG8gc2VlIGlmIGl0JiM4MjE3O3MgZXF1YWwgdG8gdGhlIDxj b2RlPntyZXN1bHR9PC9jb2RlPiByZXBsYWNlbWVudCB2YXJpYWJsZS4gWW91IGNhbiB1c2Ug c2ltaWxhciBsb2dpYyB0byB0ZXN0IGZvciBvcHRpb25hbCB2YXJpYWJsZXMgYnkgc3dhcHBp bmcgdGhlIGZpZWxkIGFuZCB2YWx1ZSwgbGlrZSB0aGlzOjwvcD4KCgk8cD48Y29kZT4mbHQ7 dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDs3JnF1b3Q7IG9wZXJhdG9yPSZxdW90O2d0JnF1b3Q7 IHZhbHVlPSZxdW90O3tyZXN1bHR9JnF1b3Q7Jmd0OzwvY29kZT48L3A+CgoJPHA+VGhhdCB3 b3VsZCBzZWUgaWYgdGhlIHJlcGxhY2VtZW50IHZhcmlhYmxlIDxjb2RlPntyZXN1bHR9PC9j b2RlPiB3YXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDcgKHRoYXQmIzgyMTc7cyBub3QgYSB0 eXBvLCB0aGUgbG9naWMgaXMgcmV2ZXJzZWQgaW4gdGhpcyBjYXNlOiBpdCBpcyBpbnRlcnBy ZXRlZCBhczogJiM4MjIwO2lzIDcgZ3JlYXRlciB0aGFuIHtyZXN1bHR9JiM4MjIxOywgd2hp Y2ggaXMgdGhlIHNhbWUgYXMgJiM4MjIwO2lzIHtyZXN1bHR9IGxlc3MgdGhhbiBvciBlcXVh bCB0byA3JiM4MjIxOyEpPC9wPgoKCTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0ib3BlcmF0 b3IiPm9wZXJhdG9yPC9oND4KCgk8cD5MaXN0IG9mIG9wZXJhdG9ycyB0byBhcHBseSwgaW4g b3JkZXIsIHRvIGVhY2ggZmllbGQuIENob29zZSBmcm9tOjwvcD4KCgk8dWw+CgkJPGxpPjxj b2RlPmVxPC9jb2RlPiBFcXVhbCAodGhlIGRlZmF1bHQgZm9yIGFsbCBleGNlcHQgJiM4MjE2 O3BhcmVudCYjODIxNzspPC9saT4KCQk8bGk+PGNvZGU+bm90PC9jb2RlPiBOb3QgZXF1YWw8 L2xpPgoJCTxsaT48Y29kZT5sdDwvY29kZT4gTGVzcyB0aGFuPC9saT4KCQk8bGk+PGNvZGU+ Z3Q8L2NvZGU+IEdyZWF0ZXIgdGhhbjwvbGk+CgkJPGxpPjxjb2RlPmxlPC9jb2RlPiBMZXNz IHRoYW4gb3IgZXF1YWwgdG88L2xpPgoJCTxsaT48Y29kZT5nZTwvY29kZT4gR3JlYXRlciB0 aGFuIG9yIGVxdWFsIHRvPC9saT4KCQk8bGk+PGNvZGU+aW48L2NvZGU+IEZpZWxkIGlzIG9u ZSBvZiBhIGxpc3Qgb2YgdmFsdWVzPC9saT4KCQk8bGk+PGNvZGU+bm90aW48L2NvZGU+IEZp ZWxkIGlzIG5vdCBvbmUgb2YgdGhlIGdpdmVuIGxpc3Qgb2YgdmFsdWVzPC9saT4KCQk8bGk+ PGNvZGU+ZGl2aXNpYmxlPC9jb2RlPiBGaWVsZCBpcyBleGFjdGx5IGRpdmlzaWJsZSBieSB0 aGUgdmFsdWU8L2xpPgoJCTxsaT48Y29kZT5iZWdpbnM8L2NvZGU+IEZpZWxkIGJlZ2lucyB3 aXRoIGEgc2VxdWVuY2Ugb2YgY2hhcmFjdGVyczwvbGk+CgkJPGxpPjxjb2RlPmNvbnRhaW5z PC9jb2RlPiBGaWVsZCBjb250YWlucyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgKGRlZmF1 bHQgZm9yICYjODIxNjtwYXJlbnQmIzgyMTc7KTwvbGk+CgkJPGxpPjxjb2RlPmVuZHM8L2Nv ZGU+IEZpZWxkIGVuZHMgd2l0aCBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxs aT48Y29kZT5pc2VtcHR5PC9jb2RlPiBGaWVsZCBpcyBlbXB0eSAoY29udGFpbnMgbm90aGlu Zyk8L2xpPgoJCTxsaT48Y29kZT5pc3VzZWQ8L2NvZGU+IEZpZWxkIGhhcyBzb21lIHZhbHVl PC9saT4KCQk8bGk+PGNvZGU+ZGVmaW5lZDwvY29kZT4gRmllbGQgaXMgc2V0ICh1c2VmdWwg d2l0aCB1cmx2YXIgdmFyaWFibGVzKTwvbGk+CgkJPGxpPjxjb2RlPnVuZGVmaW5lZDwvY29k ZT4gRmllbGQgaXMgbm90IHNldCwgb3IgbWlzc2luZyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0i Y2FwcyI+VVJMPC9zcGFuPiBsaW5lPC9saT4KCQk8bGk+PGNvZGU+aXNudW08L2NvZGU+IEZp ZWxkIGlzIGEgbnVtYmVyPC9saT4KCQk8bGk+PGNvZGU+aXNhbHBoYTwvY29kZT4gRmllbGQg Y29udGFpbnMgY2hhcmFjdGVycyBvbmx5PC9saT4KCQk8bGk+PGNvZGU+aXNhbG51bTwvY29k ZT4gRmllbGQgY29udGFpbnMgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgb25seTwvbGk+CgkJ PGxpPjxjb2RlPmlzbG93ZXI8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQg aXMgbG93ZXIgY2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlzdXBwZXI8L2NvZGU+IEV2ZXJ5IGNo YXJhY3RlciBpbiB0aGUgZmllbGQgaXMgdXBwZXIgY2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlz cHVuY3Q8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgc29tZSBwdW5j dHVhdGlvbiBtYXJrPC9saT4KCQk8bGk+PGNvZGU+aXNzcGFjZTwvY29kZT4gRXZlcnkgY2hh cmFjdGVyIGluIHRoZSBmaWVsZCBpcyBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIChvciB0YWIs IG5ld2xpbmUsIGV0Yyk8L2xpPgoJPC91bD4KCgk8cD5XaXRoIHRoZSBjb21wYXJpc29uIG9w ZXJhdG9ycyAocHJpbWFyaWx5IGd0LCBsdCwgZ2UsIGxlKSB5b3UgbWF5IGZpbmQgb2RkIGJl aGF2aW91ciB3aGVuIGNvbXBhcmluZyBudW1iZXJzLiBGb3IgZXhhbXBsZSwgPGNvZGU+dXJs dmFyOnBpYyBndCA2PC9jb2RlPiB3aWxsIHJldHVybiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJV RTwvc3Bhbj4gaWYgPGNvZGU+cGljPC9jb2RlPiBpcyBzZXQgdG8gJiM4MjIwO2ZyZWQmIzgy MjE7LiBUaGlzIGlzIGJlY2F1c2UgdGhlIHdvcmQgJiM4MjIwO2ZyZWQmIzgyMjE7IChvciBh dCBsZWFzdCB0aGUgJiM4MjIwO2NoYXJhY3RlciBmJiM4MjIxOykgaXMgZ3JlYXRlciBpbiB0 aGUgPHNwYW4gY2xhc3M9ImNhcHMiPkFTQ0lJPC9zcGFuPiB0YWJsZSB0aGFuIHRoZSAmIzgy MjA7Y2hhcmFjdGVyIDYmIzgyMjE7LjwvcD4KCgk8cD5UbyBjaXJjdW12ZW50IHRoaXMgcHJv YmxlbSwgeW91IG1heSBhcHBlbmQgPGNvZGU+Ok5VTTwvY29kZT4gdG8gdGhlIGVuZCBvZiBh bnkgb2YgdGhlc2Ugb3BlcmF0b3JzIHRvIGZvcmNlIHRoZSBwbHVnaW4gdG8gY2hlY2sgdGhh dCB0aGUgdmFsdWVzIGFyZSBpbnRlZ2Vycy48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29t cGFyZSB0aGUgbGVuZ3RoIG9mIGEgZmllbGQgb3IgdmFsdWUsIGFwcGVuZCA8Y29kZT46TEVO PC9jb2RlPiB0byBhbnkgb2YgdGhlIG51bWVyaWNhbCBjb21wYXJpc29uIG9wZXJhdG9ycy4g SXQgZG9lc24mIzgyMTc7dCBtYWtlIHNlbnNlIHRvIHVzZSBib3RoIDxjb2RlPjpOVU08L2Nv ZGU+IGFuZCA8Y29kZT46TEVOPC9jb2RlPiB0b2dldGhlciwgc28gdGhleSBhcmUgbXV0dWFs bHkgZXhjbHVzaXZlLjwvcD4KCgk8cD5UaGUgPGNvZGU+YmVnaW5zPC9jb2RlPiwgPGNvZGU+ ZW5kczwvY29kZT4gYW5kIDxjb2RlPmNvbnRhaW5zPC9jb2RlPiBvcGVyYXRvcnMsIGFsb25n IHdpdGggYW55IG9mIHRoZSA8Y29kZT5pczwvY29kZT4gb3BlcmF0b3JzIChleGNlcHQgPGNv ZGU+aXNzcGFjZTwvY29kZT4pLCBjYW4gdGFrZSBhbiBleHRyYSBwYXJhbWV0ZXIgYXMgd2Vs bC4gU2luY2UgdGhleSBjb21wYXJlIGV2ZXJ5IGNoYXJhY3RlciBhZ2FpbnN0IHRoZSBnaXZl biBiZWhhdmlvdXIsIHNwYWNlIGNoYXJhY3RlcnMgY2FuIG1lc3MgdGhpbmdzIHVwIGEgYml0 LiBGb3IgZXhhbXBsZSA8Y29kZT5maWVsZD0mcXVvdDtjdXN0b20xJnF1b3Q7IG9wZXJhdG9y PSZxdW90O2lzbG93ZXImcXVvdDs8L2NvZGU+IHdpbGwgZmFpbCBpZiBjdXN0b20xIGNvbnRh aW5zICYjODIyMDt0aGlzIGlzIGEgdGVzdCYjODIyMTsuIE9yIGNvbXBhcmluZyBzb21ldGhp bmcgdG8gPGNvZGU+Ym9keTwvY29kZT4gY2FuIGZhaWwgYmVjYXVzZSB0aGUgYm9keSBvZnRl biBzdGFydHMgd2l0aCBhIG51bWJlciBvZiBzcGFjZSBjaGFyYWN0ZXJzLiBUbyBjaXJjdW12 ZW50IHRoaXMsIGFkZCA8Y29kZT46Tk9TUEFDRTwvY29kZT4gdG8gdGhlIG9wZXJhdG9yIHdo aWNoIHdpbGwgcmVtb3ZlIGFsbCBzcGFjZXMgZnJvbSB0aGUgc3RyaW5nIGJlZm9yZSB0ZXN0 aW5nIGl0LjwvcD4KCgk8cD5Ob3RlIGFsc28gdGhhdCB3aGlsZSA8Y29kZT5kZWZpbmVkPC9j b2RlPiBhbmQgPGNvZGU+dW5kZWZpbmVkPC9jb2RlPiBkaWZmZXIgc2VtYW50aWNhbGx5IGZy b20gPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNlbXB0eTwvY29kZT4gKHJlc3Bl Y3RpdmVseSksIHRoZSB3YXkgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gYXNzaWdu cyB2YXJpYWJsZXMgbWVhbnMgdGhhdCwgZm9yIHRoZSBtb3N0IHBhcnQsIHRoZSB0ZXJtcyBh cmUgaW50ZXJjaGFuZ2VhYmxlLiBXaGVuIGRlYWxpbmcgd2l0aCB1cmx2YXJzLCBwb3N0dmFy cyBhbmQgc3ZydmFycywgdGhlIHR3byBzZXRzIG9mIG9wZXJhdG9ycyBiZWhhdmUgaW5kZXBl bmRlbnRseSwgYXMgeW91IHdvdWxkIGV4cGVjdC4gU2VlIDxhIGhyZWY9IiNlZzUiPkV4YW1w bGUgNTwvYT4gZm9yIG1vcmUuIE5laXRoZXIgPGNvZGU+ZGVmaW5lZDwvY29kZT4gbm9yIDxj b2RlPnVuZGVmaW5lZDwvY29kZT4gbWFrZSBzZW5zZSB3aXRoIDxjb2RlPnBhcmVudDwvY29k ZT4sIHNvIHRoZXkgYXJlIGZvcmJpZGRlbi48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAi IGlkPSJ2YWx1ZSI+dmFsdWU8L2g0PgoKCTxwPkxpc3Qgb2YgdmFsdWVzIHRvIGNvbXBhcmUg ZWFjaCBmaWVsZCBpbiB0dXJuIHRvLiBDYW4gYmUgc3RhdGljIHZhbHVlcy90ZXh0IG9yIHRo ZSBuYW1lIG9mIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmaWVsZCwgbGlr ZSB0aG9zZSBnaXZlbiBpbiA8YSBocmVmPSIjZmllbGQiPmZpZWxkPC9hPiAoZXhjZXB0ICYj ODIyMDtwYXJlbnQmIzgyMjE7KS48L3A+CgoJPHA+VG8gZGlzdGluZ3Vpc2ggYSA8c3BhbiBj bGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmaWVsZCBmcm9tIHN0YXRpYyB0ZXh0LCBwcmVmaXgg dGhlIGZpZWxkIG5hbWUgd2l0aCA8Y29kZT4/PC9jb2RlPi4gRm9yIGV4YW1wbGU6IDxjb2Rl PnZhbHVlPSZxdW90O3RpdGxlJnF1b3Q7PC9jb2RlPiB3aWxsIGNvbXBhcmUgeW91ciBjaG9z ZW4gZmllbGQgYWdhaW5zdCB0aGUgd29yZCAmIzgyMjA7dGl0bGUmIzgyMjE7LCB3aGVyZWFz IDxjb2RlPnZhbHVlPSZxdW90Oz90aXRsZSZxdW90OzwvY29kZT4gd2lsbCBjb21wYXJlIHlv dXIgZmllbGQgYWdhaW5zdCB0aGUgY3VycmVudCBhcnRpY2xlJiM4MjE3O3MgdGl0bGUuPC9w PgoKCTxwPklmIHlvdSB3aXNoIHRvIGNvbXBhcmUgYSB2YWx1ZSB0aGF0IG1pZ2h0IGNvbnRh aW4gPHNwYW4gY2xhc3M9ImNhcHMiPkhUTUw8L3NwYW4+IChlLmcgPGNvZGU+P2JvZHk8L2Nv ZGU+KSwgYWRkIHRoZSBtb2RpZmllciA8Y29kZT46Tk9UQUdTPC9jb2RlPiB0byB0aGUgZW5k IG9mIHRoZSB2YWx1ZS4gSXQgd2lsbCBoYXZlIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRN TDwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+IHRhZ3Mgc3RyaXBw ZWQgZnJvbSBpdCBhbmQgd2lsbCBhbHNvIGJlIHRyaW1tZWQgdG8gcmVtb3ZlIGxlYWRpbmcg YW5kIHRyYWlsaW5nIHNwYWNlcy4gWW91IG1heSBjaG9vc2UgdG8gc29sZWx5IHJlbW92ZSBz cGFjZXMgZnJvbSBib3RoIHRoZSBzdGFydCBhbmQgZW5kIG9mIGFueSB2YWx1ZSBieSBhZGRp bmcgPGNvZGU+OlRSSU08L2NvZGU+IHRvIHRoZSBlbmQgb2YgdGhlIHZhbHVlLjwvcD4KCgk8 cD5Ob3RlIHRoYXQgeW91IG1heSBmaW5kIHVzaW5nIGRvdWJsZS1xdW90ZXMgaW4gZmllbGRz IGdpdmVzIHVuZXhwZWN0ZWQgcmVzdWx0cy4gVGhleSBhcmUgYmVzdCBhdm9pZGVkLCBvciB3 b3JrZWQgYXJvdW5kIGJ5IHVzaW5nIDxjb2RlPmNvbnRhaW5zPC9jb2RlPiBpbnN0ZWFkIG9m IDxjb2RlPmVxPC9jb2RlPi48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJsb2dp YyI+bG9naWM8L2g0PgoKCTxwPkNhbiBiZSBvbmUgb2YgPGNvZGU+YW5kPC9jb2RlPiAodGhl IGRlZmF1bHQpIG9yIDxjb2RlPm9yPC9jb2RlPi4gSWYgdXNpbmcgPGNvZGU+YW5kPC9jb2Rl PiwgYWxsIGNvbmRpdGlvbnMgbXVzdCBiZSBtZXQgZm9yIGEgPHNwYW4gY2xhc3M9ImNhcHMi PlRSVUU8L3NwYW4+IHJlc3VsdC4gSWYgdXNpbmcgPGNvZGU+b3I8L2NvZGU+LCBhbnkgb2Yg dGhlIGNvbmRpdGlvbnMgdGhhdCBtYXRjaCB3aWxsIGdpdmUgYSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFJVRTwvc3Bhbj4gcmVzdWx0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9 ImNhc2VzZW5zZSI+Y2FzZV9zZW5zaXRpdmU8L2g0PgoKCTxwPkJ5IGRlZmF1bHQsIGFsbCBj b21wYXJpc29ucyBhcmUgY2FzZS1pbnNlbnNpdGl2ZSAoMCkuIElmIHlvdSB3aXNoIHRvIG1h a2UgdGhlbSBzZW5zaXRpdmUgdG8gY2FwdGlsaXNhdGlvbiwgc3BlY2lmeSA8Y29kZT5jYXNl X3NlbnNpdGl2ZT0mcXVvdDsxJnF1b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHVzaW5nIDxj b2RlPmlzbG93ZXI8L2NvZGU+IG9yIDxjb2RlPmlzdXBwZXI8L2NvZGU+IGluIGEgY29tcGFy aXNvbiwgY2FzZSBzZW5zaXRpdml0eSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3dpdGNoZWQg b24gd2hpbGUgdGhlIHRlc3QgaXMgdGFraW5nIHBsYWNlLjwvcD4KCgk8aDQgY2xhc3M9ImF0 dC1uYW1lICIgaWQ9InBhcmFtZGVsaW0iPnBhcmFtX2RlbGltPC9oND4KCgk8cD5Zb3Ugbm9y bWFsbHkgc3BlY2lmeSBjb21tYS1zZXBhcmF0ZWQgbGlzdHMgdG8gdGhlIDxjb2RlPmZpZWxk PC9jb2RlPiwgPGNvZGU+b3BlcmF0b3I8L2NvZGU+IGFuZCA8Y29kZT52YWx1ZTwvY29kZT4g cGFyYW1ldGVycy4gU29tZXRpbWVzIHRoaXMgbWlnaHQgbm90IGJlIGRlc2lyYWJsZSBpZiB5 b3UgaGF2ZSB1c2VkIHRoYXQgY2hhcmFjdGVyIGluIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGZp ZWxkLCBmb3IgZXhhbXBsZS4gVGhpcyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhl IGRlbGltaXRlciB0byBhbG1vc3QgYW55dGhpbmcgeW91IGxpa2UsIGUuZy4gc3BlY2lmeWlu ZyA8Y29kZT5wYXJhbV9kZWxpbT0mcXVvdDsvLyZxdW90OzwvY29kZT4gbWVhbnMgeW91IHdv dWxkIHNwZWNpZnkgPGVtPmFsbDwvZW0+IHlvdXIgcGFyYW1ldGVyIGxpc3RzIGxpa2UgdGhp czo8L3A+CgoJPHA+PGNvZGU+ZmllbGQ9JnF1b3Q7c2VjdGlvbiAvLyB1cmx2YXI6dHlwZSZx dW90OyBvcGVyYXRvcj0mcXVvdDtlcSAvLyBiZWdpbnMmcXVvdDsgdmFsdWU9JnF1b3Q7YW5p bWFscyAvLyB0aWdlciZxdW90OzwvY29kZT48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAi IGlkPSJtb2RkZWxpbSI+bW9kX2RlbGltPC9oND4KCgk8cD5WZXJ5IHNpbWlsYXIgdG8gPGEg aHJlZj0iI3BhcmFtZGVsaW0iPnBhcmFtX2RlbGltPC9hPiwgdGhpcyBnb3Zlcm5zIHRoZSBk ZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gYW4gb3B0aW9uIGFuZCBpdHMgbW9kaWZpZXIgKGUu Zy4gdGhlIHRoaW5nIHNlcGFyYXRpbmcgdXJsdmFyLCBwb3N0dmFyLCBzdnJ2YXIgb3IgdHhw dmFyIGZyb20gdGhlIHZhcmlhYmxlIG5hbWUsIG9yIHBhcmVudCBmcm9tIDxjb2RlPkxWTDwv Y29kZT4gYW5kIDxjb2RlPkNBVDwvY29kZT4sIGFuZCBhbHNvIHRoZSBjaGFyYWN0ZXIocykg dGhhdCBzZXBhcmF0ZSBhbiBvcGVyYXRvciBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+ TlVNPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9TUEFDRTwvc3Bhbj4gbW9kaWZp ZXJzKS4gSXQgaXMgdGhlIGNvbG9uICg6KSBieSBkZWZhdWx0LjwvcD4KCgk8aDQgY2xhc3M9 ImF0dC1uYW1lICIgaWQ9Imxpc3RkZWxpbSI+bGlzdF9kZWxpbTwvaDQ+CgoJPHA+Rm9yIHVz ZSB3aXRoIHRoZSA8Y29kZT5pbjwvY29kZT4gYW5kIDxjb2RlPm5vdGluPC9jb2RlPiBvcGVy YXRvcnMsIHRoaXMgaXMgdGhlIGRlbGltaXRlciBiZXR3ZWVuIHZhbHVlcy4gSXQgaXMgdGhl IGZvcndhcmQtc2xhc2ggKC8pIGJ5IGRlZmF1bHQuIEEgY29udHJpdmVkIGV4YW1wbGU6PC9w PgoKPHByZT48Y29kZT4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt0eHB2YXI6bGV2ZWwm cXVvdDsgb3BlcmF0b3I9JnF1b3Q7aW4mcXVvdDsKICAgICB2YWx1ZT0mcXVvdDsxLzIvMy81 LzgvMTMvMjEvMzQmcXVvdDsmZ3Q7CiAgJmx0O3AmZ3Q7UmVzdWx0IGlzIGEgRmlib25hY2Np IHZhbHVlISZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJ PHA+Tm90ZSB0aGF0IGluIGFsbCAmIzgyMTY7ZGVsaW0mIzgyMTc7IGF0dHJpYnV0ZXMsIHNv bWUgY2hhcmFjdGVyIHNlcXVlbmNlcyBtYXkgY2F1c2UgcHJvYmxlbXMgKHF1b3RlcyAmIzgy MTI7IHNpbmdsZSBvciBkb3VibGUgJiM4MjEyOyBzcHJpbmcgdG8gbWluZDsgb3RoZXJzIGxp a2UgcGFyZW50aGVzZXMgbWF5IGFsc28gY2F1c2UgdGhlIHBsdWdpbiB0byBleHBsb2RlKS48 L3A+CgoJPGgzPlJlcGxhY2VtZW50IHRhZ3M8L2gzPgoKCTxwPkV2ZXJ5IGZpZWxkIG9yIHZh bHVlIHRoYXQgeW91IHJlZmVyIHRvIGluIHlvdXIgc21kX2lmIHRhZyBiZWNvbWVzIGF2YWls YWJsZSB3aXRoaW4gdGhlIGNvbnRhaW5pbmcgYmxvY2sgc28geW91IGNhbiBkaXNwbGF5IGl0 cyBjb250ZW50cyBpZiB5b3Ugd2lzaC4gTW9zdCBvZiB0aGUgdGltZSB0aGlzIGlzIG5vdCBt dWNoIHVzZSBidXQgaXQgY2FuIGJlIHZlcnkgdXNlZnVsIHdpdGggdGhlIDxjb2RlPmluPC9j b2RlPiBvcGVyYXRvciBvciB0aGUgPGNvZGU+OkxFTjwvY29kZT4gbW9kaWZpZXIgLiBGb3Ig aW5zdGFuY2UsIGlmIHlvdSBoYXZlIGFza2VkIHNtZF9pZiB0byB0ZXN0IHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZSBuYW1lZCAmIzgyMTY7bGV2ZWwmIzgy MTc7IGFuZCB0b2xkIGl0IHRvIGNvbXBhcmUgaXQgdG8gdGhlIGN1c3RvbSBmaWVsZCBsYWJl bGxlZCAmIzgyMTY7YWxsb3dhYmxlX2xldmVscyYjODIxNzssIHR3byB0YWdzIGJlY29tZSBh dmFpbGFibGUgd2hpY2ggeW91IGNhbiB1c2Ugd2l0aGluIHRoZSBjb250YWluaW5nIGJsb2Nr OjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPntzbWRfaWZfbGV2ZWx9PC9jb2RlPiB3b3VsZCBk aXNwbGF5IHRoZSB2YWx1ZSBvZiB0aGUgJiM4MjE2O2xldmVsJiM4MjE3OyA8c3BhbiBjbGFz cz0iY2FwcyI+VVJMPC9zcGFuPiB2YXJpYWJsZTwvbGk+CgkJPGxpPjxjb2RlPntzbWRfaWZf YWxsb3dhYmxlX2xldmVsc308L2NvZGU+IHdvdWxkIGRpc3BsYXkgdGhlIGNvbnRlbnRzIG9m IHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyBjdXN0b20gZmllbGQ8L2xpPgoJPC91bD4K Cgk8cD5UaGUgcmVwbGFjZW1lbnQgdGFncyBhcmUgYWx3YXlzIHByZWZpeGVkIHdpdGggPGNv ZGU+c21kX2lmXzwvY29kZT4gc28gdGhleSBkb24mIzgyMTc7dCBjbGFzaCB3aXRoIHRoZSBv bmVzIGluIHNtZF9nYWxsZXJ5IChmb3IgZXhhbXBsZSwgd2hlbiB1c2luZyBzbWRfaWYgaW5z aWRlIGFuIHNtZF9nYWxsZXJ5IHRhZykuIElmIHlvdSBhcmUgY29tcGFyaW5nIGEgZml4ZWQt dmFsdWUgZmllbGQgKHN1Y2ggYXMgPGNvZGU+ZmllbGQ9JnF1b3Q7TlVMTCZxdW90OzwvY29k ZT4gb3IgPGNvZGU+dmFsdWU9JnF1b3Q7MTImcXVvdDs8L2NvZGU+IG9yIHNtZF9nYWxsZXJ5 JiM4MjE3O3MgPGNvZGU+dmFsdWU9JnF1b3Q7e2NhdGVnb3J5fSZxdW90OzwvY29kZT4pIHRo ZSBuYW1lIG9mIHRoZSByZXBsYWNlbWVudCB0YWdzIGFyZSA8Y29kZT57c21kX2lmX2ZpZWxk Tn08L2NvZGU+IGZvciBmaWVsZHMgYW5kIDxjb2RlPntzbWRfaWZfdmFsTn08L2NvZGU+IGZv ciB2YWx1ZXMsIHdoZXJlIE4gaXMgdGhlIHRlc3QgbnVtYmVyIHN0YXJ0aW5nIGZyb20gMS48 L3A+CgoJPHA+VGhlcmUgYXJlIGFsc28gdHdvICYjODIxNjtsZW5ndGgmIzgyMTc7IHJlcGxh Y2VtZW50IHRhZ3MuIEZvbGxvd2luZyBhIHNpbWlsYXIgY29udmVudGlvbiB0byBhYm92ZSwg dGhlc2UgYXJlIHByZWZpeGVkIHdpdGggPGNvZGU+c21kX2lmX2xlbl88L2NvZGU+LiBJZiB5 b3UgZ2V0IHN0dWNrLCB0ZW1wb3JhcmlseSBzd2l0Y2ggPGNvZGU+ZGVidWc9JnF1b3Q7MSZx dW90OzwvY29kZT4gb24gdG8gc2VlIHRoZSByZXBsYWNlbWVudHMgYXZhaWxhYmxlIGFuZCB0 aGVpciBhc3NvY2lhdGVkIG5hbWVzL3ZhbHVlcy48L3A+CgoJPHA+U2VlIDxhIGhyZWY9IiNl ZzgiPkV4YW1wbGUgODwvYT4gYW5kIDxhIGhyZWY9IiNlZzkiPjk8L2E+IGZvciBtb3JlLjwv cD4KCgk8aDIgaWQ9ImZpbHRlcmluZyI+RmlsdGVyaW5nPC9oMj4KCgk8cD5BbGwgdXNlciBp bnB1dCBpcyB0YWludGVkIGJ5IGRlZmF1bHQuPC9wPgoKCTxwPkFueSB0aW1lIHlvdSByZWx5 IG9uIHNvbWVvbmUgdG8gZW50ZXIgc29tZXRoaW5nLCBhdCBsZWFzdCBvbmUgcGVyc29uIHdp bGwgaW52YXJpYWJseSBjYXRjaCB5b3Ugb3V0OyBlaXRoZXIgYWNjaWRlbnRhbGx5IG9yIG1h bGljaW91c2x5LiBGb3IgdGhpcyByZWFzb24sIHNtZF9pZiBzdXBwb3J0cyBwb3dlcmZ1bCBm aWx0ZXJpbmcgcnVsZXMgc28geW91IGNhbiB0cmFwIGFuZCByZW1vdmUgc3VzcGVjdCBpbnB1 dC4gSXQgYWxyZWFkeSBkb2VzIHNvbWUgb2YgdGhpcyBmb3IgeW91IHdpdGggdGhlIDxzcGFu IGNsYXNzPSJjYXBzIj5OT1RBR1M8L3NwYW4+IG1vZGlmaWVyLCBidXQgZmlsdGVyaW5nIGdp dmVzIGFub3RoZXIgbGV2ZWwgb2YgY29udHJvbCBhYm92ZSB0aGF0LjwvcD4KCgk8cD5MZXQm IzgyMTc7cyBzYXkgeW91IGFyZSBhc2tpbmcgdGhlIHVzZXIgdG8gZW50ZXIgYSB2YWx1ZSBh bmQgeW91IG5lZWQgdG8gY29tcGFyZSBpdCB0byBhIHJhbmdlLiBXaGF0IGlmLCBpbnN0ZWFk IG9mIGEgbnVtYmVyLCB0aGV5IGVudGVyZWQgPGNvZGU+ZnIzZDwvY29kZT4gb3IgPGNvZGU+ O3JtIC1yZiAxKjs8L2NvZGU+LiBUaGUgcGx1Z2luIG1pZ2h0IGp1c3QgZmFsbCBvdmVyIChw cm9iYWJseSB3aXRoIGFuIGVycm9yLCB3aGljaCBpcyBub3QgdmVyeSBwbGVhc2FudCBmb3Ig dXNlcnMpLCBvciBpdCBtaWdodCBjYXVzZSBoYXJtIHRvIHRoZSBmaWxlc3lzdGVtIGlmIGEg cGVyc29uIHRyeWluZyB0byBoYWNrIHlvdXIgc2l0ZSB3YXMgc2tpbGxlZCBlbm91Z2ggKGl0 JiM4MjE3O3MgdW5saWtlbHksIGJ1dCBwb3NzaWJsZSkuPC9wPgoKCTxwPkluIGJvdGggY2Fz ZXMsIGZpbHRlcmluZyBjb21lcyB0byB0aGUgcmVzY3VlLiBZb3UgY2FuIHNwZWNpZnkgdGhh dCB5b3UgPGVtPmV4cGVjdDwvZW0+IG9ubHkgZGlnaXRzIGZyb20gMCB0byA5IGluIHlvdXIg ZmllbGRzIGFuZCBjYW4gdGVsbCB0aGUgcGx1Z2luIHRvIGNob3Agb3V0IGFueXRoaW5nIHRo YXQgaXMgbm90IG51bWVyaWMuIFNvIGluIHRoZSBmaXJzdCBjYXNlIGFib3ZlLCBhbGwgeW91 IHdvdWxkIHNlZSBpZiB0aGUgdXNlciBlbnRlcmVkICYjODIxNjtmcjNkJiM4MjE3OyB3b3Vs ZCBiZSAmIzgyMTY7MyYjODIxNzsuPC9wPgoKCTxwPkZvcnR1bmF0ZWx5ICYjODIxMjsgYW5k IHVuZm9ydHVuYXRlbHkgJiM4MjEyOyBpdCYjODIxNztzIGJ1aWx0IGFyb3VuZCA8YSBocmVm PSJodHRwOi8vd3d3LnJlZ3VsYXItZXhwcmVzc2lvbnMuaW5mby8iPnJlZ3VsYXIgZXhwcmVz c2lvbnM8L2E+IHdoaWNoIGFyZSBmaWVuZGlzaGx5IHBvd2VyZnVsIGJ1dCBjYW4gYWxzbyBi ZSBmaWVuZGlzaGx5IHRyaWNreSB0byBsZWFybiBpZiB5b3UgYXJlIG5vdCBmYW1pbGlhci4g VGhleSBhcmUgd29ydGggbGVhcm5pbmcuPC9wPgoKCTxwPkxldCYjODIxNztzIGRpdmUgaW4g YXQgdGhlIGRlZXAgZW5kIGFuZCB0ZWxsIHRoZSBwbHVnaW4gdGhhdCwgdW5kZXIgbm8gY2ly Y3Vtc3RhbmNlcywgbXVzdCB3ZSBhbGxvdyBhbnkgaW5wdXQgdGhhdCBpcyBub24tbnVtZXJp Yzo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhw OnZhcmlhYmxlIG5hbWU9JnF1b3Q7aGlnaGVzdCZxdW90OyB2YWx1ZT0mcXVvdDsxMDAmcXVv dDsgLyZndDsKJmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOmxvdyZxdW90OyBv cGVyYXRvcj0mcXVvdDtnZSwgbGUmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDsxLCB0eHB2YXI6 aGlnaGVzdCZxdW90OyBmaWx0ZXI9JnF1b3Q7L1teMC05XSsvJnF1b3Q7Jmd0OwogICAmbHQ7 cCZndDt7c21kX2lmX2xvd30gaXMgdmFsaWQgYW5kIGlzIGJldHdlZW4KICAgMSBhbmQgJmx0 O3R4cDp2YXJpYWJsZSBuYW1lPSZxdW90O2hpZ2hlc3QmcXVvdDsgLyZndDsuJmx0Oy9wJmd0 OwombHQ7dHhwOmVsc2UgLyZndDsKICAgJmx0O3AmZ3Q7U29ycnksIHZhbHVlIG5vdCB3aXRo aW4gcmFuZ2UuJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4K Cgk8cD5bIEVhZ2xlLWV5ZWQgcGVvcGxlIG1heSBub3RpY2UgdGhhdCBzb21ldGhpbmcgc2lt aWxhciBjYW4gYmUgYWNoaWV2ZWQgd2l0aCB0aGUgPGNvZGU+Ok5VTTwvY29kZT4gbW9kaWZp ZXIuIFRoZSBkaWZmZXJlbmNlIGhlcmUgaXMgdGhhdCB0aGUgcmVwbGFjZW1lbnQgdmFyaWFi bGVzIGFyZSBhbHNvIGZpbHRlcmVkLCB3aGVyZWFzIHdpdGggPGNvZGU+Ok5VTTwvY29kZT4g dGhleSBjb250YWluIHRoZSBvcmlnaW5hbCAocG9zc2libHkgaW52YWxpZCkgaW5wdXQgXTwv cD4KCgk8cD5BbHRob3VnaCBvdXQgb2YgdGhlIHNjb3BlIG9mIHRoaXMgZG9jdW1lbnRhdGlv biwgaXQmIzgyMTc7cyB3b3J0aCBqdXN0IHRha2luZyBhIG1vbWVudCB0byBzZWUgd2hhdCB0 aGUgZmlsdGVyIGlzIGRvaW5nOjwvcD4KCjxwcmU+PGNvZGU+L1teMC05XSsvCjwvY29kZT48 L3ByZT4KCgk8dWw+CgkJPGxpPlRoZSBmb3J3YXJkIHNsYXNoZXMgYXJlIHN0YXJ0IGFuZCBl bmQgZGVsaW1pdGVycyBhbmQgc2hvdWxkIGFsd2F5cyBiZSBwcmVzZW50ICh1bmxlc3MgeW91 IGtub3cgd2hhdCB5b3VyZSBkb2luZyEpPC9saT4KCQk8bGk+VGhlIHNxdWFyZSBicmFja2V0 cyA8Y29kZT5bXTwvY29kZT5kZW5vdGUgYSBjaGFyYWN0ZXIgY2xhc3MsIG9yIGdyb3VwIG9m IGNoYXJhY3RlcnMuIEluIHRoaXMgY2FzZSB0aGV5IGNvbnRhaW4gdGhlIHJhbmdlIG9mIGRp Z2l0cyAwIHRvIDk8L2xpPgoJCTxsaT5UaGUgY2lyY3VtZmxleCA8Y29kZT5ePC9jb2RlPiBu ZWdhdGVzIHRoZSBjbGFzcyAoaS5lLiBub24tZGlnaXRzKTwvbGk+CgkJPGxpPlRoZSBwbHVz IDxjb2RlPis8L2NvZGU+IG1lYW5zICYjODIxNjtvbmUgb3IgbW9yZSBvZiB0aGUgdGhpbmdz IEkmIzgyMTc7dmUganVzdCBzZWVuJiM4MjE3OzwvbGk+Cgk8L3VsPgoKCTxwPlNvIHB1dHRp bmcgaXQgYWxsIHRvZ2V0aGVyLCBpdCByZWFkcyAmIzgyMjA7RmluZCBldmVyeSBvY2N1cnJl bmNlIG9mIG9uZSBvciBtb3JlIG5vbi1kaWdpdHMmIzgyMjE7LiBUaHVzIGl0IGxvb2tzIGF0 IGV2ZXJ5IGZpZWxkIGFuZCBmaW5kcyBhbnl0aGluZyBub24tbnVtZXJpYy4gVGhlbiBpdCBy ZXBsYWNlcyB3aGF0ZXZlciBpdCBmaW5kcyB3aXRoIDxjb2RlPiYjMzk7JiMzOTs8L2NvZGU+ LCBpLmUuIG5vdGhpbmcsIG5hZGEsIHppcC4gRWZmZWN0aXZlbHksIGl0IGRlbGV0ZXMgd2hh dGV2ZXIgbm9uLWRpZ2l0cyBpdCBmaW5kcyBhbmQgbGVhdmVzIHRoZSBnb29kIHN0dWZmICh0 aGUgbnVtYmVycykgYmVoaW5kLjwvcD4KCgk8aDMgaWQ9ImZyZXBsYWNpbmciPlJlcGxhY2lu ZyBiYWQgZGF0YTwvaDM+CgoJPHA+Rm9yIGVhY2ggbWF0Y2hpbmcgZmlsdGVyIHRoZXJlJiM4 MjE3O3MgYW4gZXF1aXZhbGVudCA8Y29kZT5yZXBsYWNlPC9jb2RlPiBzdHJpbmcuIEJ5IGRl ZmF1bHQgdGhpcyBpcyBzZXQgdG8gPGNvZGU+cmVwbGFjZT0mcXVvdDsmcXVvdDs8L2NvZGU+ IHdoaWNoIG1lYW5zICYjODIyMDtyZXBsYWNlIHdoYXRldmVyIHlvdSBmaW5kIHdpdGggbm90 aGluZyYjODIyMTs7IG9yIGluIG90aGVyIHdvcmRzICYjODIyMDtkZWxldGUgZXZlcnl0aGlu ZyB0aGF0IG1hdGNoZXMgdGhlIGZpbHRlciYjODIyMTsuIFlvdSBtYXkgZWxlY3QgdG8gcmVw bGFjZSB5b3VyIGZpbHRlcmVkIGRhdGEgd2l0aCBzb21ldGhpbmcgZWxzZSwgc2F5LCA8Y29k ZT5yZXBsYWNlPSZxdW90O3R4cCZxdW90OzwvY29kZT4uIFNvIGlmIHNvbWVvbmUgZW50ZXJl ZCAmIzgyMjA7ZnIzZCYjODIyMTsgeW91IHdvdWxkIHNlZSB0aGUgcmVwbGFjZW1lbnQgdmFy aWFibGUgaGFzIGEgdmFsdWUgJiM4MjIwO3R4cDN0eHAmIzgyMjE7ICh0aGUgcmVhc29uIHlv dSBvbmx5IGdldCBvbmUgJiM4MjE2O3R4cCYjODIxNzsgYmVmb3JlIHRoZSBudW1iZXIgaXMg ZHVlIHRvIHRoZSBleHByZXNzaW9uIGJlaW5nIDxlbT5ncmVlZHk8L2VtPiBhbmQgZ29iYmxp bmcgdXAgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIGl0IGNhbiBpbiBhIGdyb3VwIGJlZm9yZSBy ZXBsYWNpbmcgdGhlbS4gU2VlIGFueSByZWdleCB0dXRvcmlhbCBmb3IgbW9yZSBvbiB0aGlz IHRvcGljKS48L3A+CgoJPHA+VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMgeW91IHdvbiYj ODIxNzt0IHdhbnQgdG8gbWVzcyB3aXRoIDxjb2RlPnJlcGxhY2U8L2NvZGU+IGFzIGl0JiM4 MjE3O2xsIGRvIHdoYXQgeW91IHdhbnQgd2l0aCB0aGUgZGVmYXVsdCAmIzgyMTY7ZGVsZXRl JiM4MjE3OyBvcGVyYXRpb24uPC9wPgoKCTxoMyBpZD0iZm9wdGlvbnMiPkZpbHRlcmluZyBv cHRpb25zPC9oMz4KCgk8cD5CeSBkZWZhdWx0LCB0aGUgcGx1Z2luIG9ubHkgbG9va3MgYXQg PGNvZGU+ZmllbGQ8L2NvZGU+IGRhdGEuIElmIHlvdSB3aXNoIHRvIGNoYW5nZSB0aGF0LCB1 c2UgdGhlIDxjb2RlPmZpbHRlcl9pbjwvY29kZT4gYXR0cmlidXRlLjwvcD4KCgk8cD5UaGUg cGx1Z2luIGFsc28gYXBwbGllcyB0aGUgZmlsdGVyIHRvIGFsbCBmaWVsZHMgKDxjb2RlPmZp bHRlcl90eXBlPSZxdW90O2FsbCZxdW90OzwvY29kZT4pLiBZb3UgbWF5IHdpc2ggdG8gb25s eSB0YXJnZXQgYSBmaWx0ZXIgYXQgdXJsIGFuZCBzZXJ2ZXIgdmFycywgaW4gd2hpY2ggY2Fz ZSB5b3Ugd291bGQgc3BlY2lmeSA8Y29kZT5maWx0ZXJfdHlwZT0mcXVvdDt1cmx2YXIsIHN2 cnZhciZxdW90OzwvY29kZT4uIE9yIG1heWJlIHlvdSB3aXNoIHRvIHZhbGlkYXRlIHRoZSBh cnRpY2xlIGltYWdlIGZpZWxkIGluIGNhc2Ugc29tZW9uZSBlbnRlcmVkIHNvbWUgcm9ndWUg ZGF0YSB0aGVyZTogPGNvZGU+ZmlsdGVyX3R5cGU9JnF1b3Q7YXJ0aWNsZV9pbWFnZSZxdW90 OzwvY29kZT4uPC9wPgoKCTxoMyBpZD0iZmNhdmVhdCI+RmlsdGVyaW5nIGNhdmVhdDwvaDM+ CgoJPHA+SWYgeW91IHNwZWNpZnkgPGNvZGU+ZmlsdGVyX29uPSZxdW90O2ZpZWxkLCB2YWx1 ZSZxdW90OzwvY29kZT4gaXQgaXMgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGUgPGVtPnNh bWUgZmlsdGVyPC9lbT4gd2lsbCBiZSBhcHBsaWVkIHRvIGVhY2ggY29ycmVzcG9uZGluZyBm aWVsZCBhbmQgdmFsdWUuIElmIHlvdXIgZmlsdGVyIGlzIHRvbyBzdHJpY3QgdGhlcmUmIzgy MTc7cyBhIGNoYW5jZSBpdCBtYXkgZmlsdGVyIGV2ZXJ5IGNoYXJhY3RlciBvdXQgb2YgYm90 aCA8Y29kZT5maWVsZDwvY29kZT4gYW5kIDxjb2RlPnZhbHVlPC9jb2RlPiwgdGh1cyBpZiB5 b3VyIHRlc3Qgd2FzIGZvciBlcXVhbGl0eSB0aGUgdGVzdCB3b3VsZCByZXR1cm4gJiM4MjE2 O3RydWUmIzgyMTc7LiBIZXJlJiM4MjE3O3MgYW4gZXhhbXBsZTo8L3A+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVv dDt1cmx2YXI6Y29tcDEmcXVvdDsgb3BlcmF0b3I9JnF1b3Q7ZXEmcXVvdDsKICAgICB2YWx1 ZT0mcXVvdDt1cmx2YXI6Y29tcDImcXVvdDsgZmlsdGVyPSZxdW90Oy9bXmEtekEtWl0rLyZx dW90OwogICAgIGZpbHRlcl9vbj0mcXVvdDtmaWVsZCwgdmFsdWUmcXVvdDsmZ3Q7CiAgIC8v IEkmIzM5O20gTk9UIG5lY2Vzc2FyaWx5IHZhbGlkCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPklmIHlvdXIgdXNlciB0eXBlZCBpbiB0aGUgPHNwYW4gY2xhc3M9 ImNhcHMiPlVSTDwvc3Bhbj4gPGNvZGU+c2l0ZS5jb20vYXJ0aWNsZT9jb21wMT0xMjM0NSZh bXA7Y29tcDI9Njc4OTA8L2NvZGU+IHRoZSBwbHVnaW4gd291bGQgZG8gdGhlIGZvbGxvd2lu Zzo8L3A+CgoJPG9sPgoJCTxsaT5GaWx0ZXIgY29tcDEgYW5kIHJlbW92ZSBhbGwgbm9uLWxl dHRlciBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+RmlsdGVyIGNvbXAyIGFuZCByZW1vdmUgYWxs IG5vbi1sZXR0ZXIgY2hhcmFjdGVyczwvbGk+CgkJPGxpPkxvb2sgYXQgY29tcDEgKHdoaWNo IGlzIG5vdyBlbXB0eSkgYW5kIGNvbXAyICh3aGljaCBpcyBhbHNvIGVtcHR5KSwgdGhlbiBj b21wYXJlIHRoZW08L2xpPgoJPC9vbD4KCgk8cD5Zb3UgY2FuIHNlZSB3aGF0JiM4MjE3O3Mg Z29pbmcgdG8gaGFwcGVuOiB0aGUgdGVzdCByZXN1bHQgaXMgZ29pbmcgdG8gYmUgJiM4MjE2 O3RydWUmIzgyMTc7IGJlY2F1c2UgJiM4MjIwO25vdGhpbmcmIzgyMjE7IGRvZXMgaW5kZWVk IGVxdWFsICYjODIyMDtub3RoaW5nJiM4MjIxOy4gU28gdGhlIGFjdCBvZiB0aGUgdXNlciBl bnRlcmluZyB0d28gbm9uc2Vuc2ljYWwsIGNvbXBsZXRlbHkgbnVtZXJpYyBzdHJpbmdzIG9m IGRhdGEgaGFzIGJyb2tlbiB5b3VyIGxvZ2ljLjwvcD4KCgk8cD5Gb3IgdGhpcyByZWFzb24s IGlmIHlvdSBhcmUgZmlsdGVyaW5nIG9uIGJvdGggZmllbGQgYW5kIHZhbHVlLCB5b3Ugc2hv dWxkIHBlcmZvcm0gPGVtPmFkZGl0aW9uYWw8L2VtPiB0ZXN0cyB0byBzZWUgaWYgZWl0aGVy IGZpZWxkIC8gdmFsdWUgaXMgc2V0IGF0IGFsbC4gVGhpcyBpcyBiZXR0ZXI6PC9wPgoKPHBy ZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmll bGQ9JnF1b3Q7dXJsdmFyOmNvbXAxLCB1cmx2YXI6Y29tcDEsIHVybHZhcjpjb21wMiZxdW90 OwogICAgIG9wZXJhdG9yPSZxdW90O2VxLCBpc3VzZWQsIGlzdXNlZCZxdW90OyB2YWx1ZT0m cXVvdDt1cmx2YXI6Y29tcDImcXVvdDsKICAgICBmaWx0ZXI9JnF1b3Q7L1teYS16QS1aXSsv JnF1b3Q7CiAgICAgZmlsdGVyX29uPSZxdW90O2ZpZWxkLCB2YWx1ZSZxdW90OyZndDsKICAg Ly8gSSYjMzk7bSBub3cgYWN0dWFsbHkgdmFsaWQKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+U28gbm93LCBpZiB5b3VyIGZpbHRlciByZW1vdmVzIGV2ZXJ5dGhp bmcgZnJvbSBib3RoIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZhcnMsIGl0IHN0 aWxsIGZhaWxzIHRoZSAmIzgyMTY7aGFzIHRoZSB1c2VyIGVudGVyZWQgYW55dGhpbmcgYXQg YWxsJiM4MjE3OyB0ZXN0cyBiZWNhdXNlIGFzIGZhciBhcyB0aGUgcGx1Z2luIGlzIGNvbmNl cm5lZCwgdGhlIHZpc2l0b3IgaGFzIHN1Ym1pdHRlZCBydWJiaXNoLjwvcD4KCgk8aDMgaWQ9 ImZmdXJ0aGVyIj5Hb2luZyBmdXJ0aGVyPC9oMz4KCgk8cD5UaGUgYWJvdmUgZXhhbXBsZXMg YWxsIHVzZSBhIHNpbmdsZSBmaWx0ZXIuIFlvdSBjYW4gc3BlY2lmeSBtb3JlIHRoYW4gb25l IGZpbHRlciBhbmQgcmVwbGFjZW1lbnQgaWYgeW91IHdpc2gsIGp1c3QgY29tbWEtZGVsaW1p dCB0aGVtICh1bmxlc3MgeW91JiM4MjE3O3ZlIG92ZXJyaWRlbiB0aGUgPGNvZGU+cGFyYW1f ZGVsaW08L2NvZGU+IG9mIGNvdXJzZSkuPC9wPgoKCTxwPldoZW4geW91IHNwZWNpZnkgbW9y ZSB0aGFuIG9uZSBmaWx0ZXIsIHRoZXkgaWdub3JlIHRoZSA8Y29kZT5maWx0ZXJfdHlwZTwv Y29kZT4gYXR0cmlidXRlIGJlY2F1c2UgdGhlIGZpbHRlcnMgYXJlIGFwcGxpZWQgaW4gb3Jk ZXI7IG9uZSBwZXIgdGVzdC4gSWYgeW91IHdpc2ggdG8gc2tpcCBhIHBhcnRpY3VsYXIgZmll bGQgYW5kIG5vdCBhcHBseSBhIGZpbHRlciwgc2ltcGx5IGxlYXZlIGFuIGVtcHR5IGNvbW1h IGFzIGEgcGxhY2Vob2xkZXIsIGUuZy4gPGNvZGU+ZmlsdGVyPSZxdW90OywgL1teYS16QS1a MC05XC1dKy8sICwgL1teMC05XSsvJnF1b3Q7PC9jb2RlPiB3b3VsZCBhcHBseSB0aGUgcmVz cGVjdGl2ZSBmaWx0ZXJzIHRvIHRoZSAybmQgYW5kIDR0aCB0ZXN0cyBvbmx5LjwvcD4KCgk8 aDI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE8L2gzPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9 JnF1b3Q7c2VjdGlvbiwgaWQmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtiZWdpbnMsIGd0 JnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7bGlvbiwgMTImcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFy dGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRo YW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+ Q2hlY2tzIGlmIHRoZSBjdXJyZW50IHNlY3Rpb24gbmFtZSBiZWdpbnMgd2l0aCB0aGUgd29y ZCAmIzgyMjA7bGlvbiYjODIyMTsgYW5kIHRoZSBhcnRpY2xlIElEIGlzIGdyZWF0ZXIgdGhh biAxMi4gRGlzcGxheXMgdGhlIGFydGljbGUgaWYgYm90aCBjb25kaXRpb25zIGFyZSBtZXQg b3IgZGlzcGxheXMgdGhlIHRleHQgJiM4MjIwO05vdCB0b2RheSwgdGhhbmtzJiM4MjIxOyBp ZiBub3QuPC9wPgoKCTxoMyBpZD0iZWcyIj5FeGFtcGxlIDI8L2gzPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7 c3VtbWFyeSwgY2F0ZWdvcnksIHVybHZhcjpwaWMmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVv dDtpc3VzZWQsIGVxLCBpc251bSZxdW90OwogICAgIHZhbHVlPSZxdW90OywgYW5pbWFsICwm cXVvdDsgJmd0OwogJmx0O3R4cDphcnRpY2xlIC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0Owog Jmx0O3AmZ3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyBpZiB0aGUgY3VzdG9tIGZpZWxkIGxhYmVs bGVkICYjODIyMDtzdW1tYXJ5JiM4MjIxOyBoYXMgc29tZSBkYXRhIGluIGl0LCBjaGVja3Mg aWYgdGhlIGdsb2JhbCBjYXRlZ29yeSBlcXVhbHMgJiM4MjIwO2FuaW1hbCYjODIyMTsgYW5k IHRlc3RzIGlmIHRoZSB1cmx2YXIgPGNvZGU+cGljPC9jb2RlPiBpcyBudW1lcmljIChlLmcu IDxjb2RlPj9waWM9NTwvY29kZT4pLjwvcD4KCgk8cD5JZiBhbGwgdGhlc2UgY29uZGl0aW9u cyBhcmUgbWV0IHRoZSBhcnRpY2xlIGlzIGRpc3BsYXllZCwgZWxzZSB0aGUgbWVzc2FnZSBp cyBzaG93bi4gTm90ZSB0aGF0IDxjb2RlPmlzdXNlZDwvY29kZT4gYW5kIDxjb2RlPmlzbnVt PC9jb2RlPiBkb24mIzgyMTc7dCB0YWtlIGFyZ3VtZW50cyBmb3IgPGNvZGU+dmFsdWU8L2Nv ZGU+IGFuZCB0aGVpciBwb3NpdGlvbnMgYXJlIGhlbGQgYnkgZW1wdHkgY29tbWFzICh0ZWNo bmljYWxseSB0aGUgbGFzdCBjb21tYSBpc24mIzgyMTc7dCBuZWVkZWQgYnV0IGl0IGhlbHBz IGtlZXAgZXZlcnl0aGluZyBuZWF0IGlmIHlvdSBhZGQgZnVydGhlciB0ZXN0cyBsYXRlciBv bikuPC9wPgoKCTxoMyBpZD0iZWczIj5FeGFtcGxlIDM8L2gzPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7YXJ0 aWNsZV9pbWFnZSwgc3ZydmFyOkhUVFBfVVNFUl9BR0VOVCZxdW90OwogICAgIG9wZXJhdG9y PSZxdW90O2VxLCBjb250YWlucyZxdW90OwogICAgIHZhbHVlPSZxdW90O3VybHZhcjpwaWMs IFNhZmFyaSZxdW90OwogICAgIGxvZ2ljPSZxdW90O29yJnF1b3Q7Jmd0OwogJmx0O3R4cDph cnRpY2xlIC8mZ3Q7CiZsdDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7Tm90IHRvZGF5LCB0 aGFua3MmbHQ7L3AmZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxw PkNvbXBhcmVzIChmb3IgZXF1YWxpdHkpIHRoZSBjdXJyZW50IGFydGljbGUgaW1hZ2UgaWQg d2l0aCB0aGUgdmFsdWUgb2YgdGhlIHVybCB2YXJpYWJsZSA8Y29kZT5waWM8L2NvZGU+IGFu ZCBjaGVja3MgaWYgdGhlIHZhbHVlIG9mIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRUUDwv c3Bhbj5fVVNFUl9BR0VOVCBzdHJpbmcgY29udGFpbnMgJiM4MjIwO1NhZmFyaSYjODIyMTsu IFRoaXMgZXhhbXBsZSB1c2VzIHRoZSAmIzgyMTY7b3ImIzgyMTc7IGxvZ2ljLCBoZW5jZSBp ZiA8ZW0+ZWl0aGVyPC9lbT4gY29uZGl0aW9uIGlzIG1ldCB0aGUgYXJ0aWNsZSBpcyBzaG93 biwgb3RoZXJ3aXNlIHRoZSAmIzgyMTY7bm90IHRvZGF5JiM4MjE3OyBtZXNzYWdlIGlzIGRp c3BsYXllZC48L3A+CgoJPGgzIGlkPSJlZzQiPkV4YW1wbGUgNDwvaDM+Cgo8cHJlIGNsYXNz PSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVv dDtwYXJlbnQ6TFZMMiZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2VxJnF1b3Q7CiAgICAg dmFsdWU9JnF1b3Q7bWFtbWFsJnF1b3Q7Jmd0OwogJmx0O3R4cDphcnRpY2xlIC8mZ3Q7CiZs dDt0eHA6ZWxzZSAvJmd0OwogJmx0O3AmZ3Q7Tm90IHRvZGF5LCB0aGFua3MmbHQ7L3AmZ3Q7 CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkNoZWNrcyB0aGUgMm5k IHN1Yi1jYXRlZ29yeSBvZiB0aGUgZ2xvYmFsIGNhdGVnb3J5JiM4MjE3O3MgdHJlZSB0byBz ZWUgaWYgaXQgZXF1YWxzICYjODIyMDttYW1tYWwmIzgyMjE7LiBJZiBpdCBkb2VzLCBzaG93 IHRoZSBhcnRpY2xlOyBpZiBub3Qgc2hvdyB0aGUgbWVzc2FnZS4gUmVtb3ZpbmcgdGhlIDxj b2RlPjpMVkwyPC9jb2RlPiAod2hpY2ggYWxsb3dzIHlvdSB0byBhbHNvIHJlbW92ZSB0aGUg b3BlcmF0b3IgcGFyYW1ldGVyIHRvIGZvcmNlIHRoZSBjb21wYXJpc29uIHRvIGJlIHRoZSBk ZWZhdWx0ICYjODIyMDtjb250YWlucyYjODIyMTspIGNoZWNrcyBpZiB0aGUgY3VycmVudCBn bG9iYWwgY2F0ZWdvcnkgaXMgYSBjaGlsZCBvZiAmIzgyMTY7bWFtbWFsJiM4MjE3OyAoYXQg YW55IGxldmVsKS48L3A+CgoJPHA+Q2hhbmdlIHRoZSBmaWVsZCB0byA8Y29kZT5wYXJlbnQ6 Q0FUMTwvY29kZT4gdG8gc2VlIGlmIHRoZSBhcnRpY2xlJiM4MjE3O3MgY2F0ZWdvcnkxIG1h dGNoZXMgJiM4MjE2O21hbW1hbCYjODIxNzsgYXQgYW55IGxldmVsLCBvciB1c2UgPGNvZGU+ ZmllbGQ9JnF1b3Q7cGFyZW50OkNBVDE6TFZMMiZxdW90OzwvY29kZT4gdG8gY29tYmluZSB0 aGUgY2hlY2tzLjwvcD4KCgk8aDMgaWQ9ImVnNSI+RXhhbXBsZSA1PC9oMz4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZx dW90O3VybHZhcjpwaWMsIHVybHZhcjpwYWdlJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7 Z3Q6TlVNLCB1bmRlZmluZWQmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDs/YXJ0aWNsZV9pbWFn ZSwmcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7 CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lm Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGVzdHMgaWYgdGhlIHVybCB2YXJpYWJsZSA8Y29k ZT5waWM8L2NvZGU+IGlzIHN0cmljdGx5IG51bWVyaWNhbGx5IGdyZWF0ZXIgdGhhbiB0aGUg dmFsdWUgaW4gdGhlIGN1cnJlbnQgYXJ0aWNsZSYjODIxNztzIDxjb2RlPmFydGljbGVfaW1h Z2U8L2NvZGU+IGZpZWxkIGFuZCB0aGF0IHRoZSB1cmwgdmFyaWFibGUgPGNvZGU+cGFnZTwv Y29kZT4gaXMgbWlzc2luZyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFu PiBhZGRyZXNzLiBDb21wYXJlIHRoZSBvdXRjb21lIG9mIHRoaXMgdGVzdCB3aXRoIHRoZSBv dGhlciBvcGVyYXRvcnMgdXNpbmcgdGhlIGZvbGxvd2luZyB0YWJsZSB3aGVuIHRlc3Rpbmcg dGhlIDxjb2RlPnBhZ2U8L2NvZGU+IHVybHZhcjo8L3A+CgoJPHRhYmxlPgoJCTx0cj4KCQkJ PHRoPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPjwv c3Bhbj4gPC90aD4KCQkJPHRoPmRlZmluZWQgPC90aD4KCQkJPHRoPnVuZGVmaW5lZCA8L3Ro PgoJCQk8dGg+aXN1c2VkIDwvdGg+CgkJCTx0aD5pc2VtcHR5IDwvdGg+CgkJPC90cj4KCQk8 dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3BhZyA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJj YXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8 dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48 L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJj YXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNh cHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJPC90 cj4KCQk8dHI+CgkJCTx0ZD4gaW5kZXgucGhwP3BhZ2U9IDwvdGQ+CgkJCTx0ZD4gPHNwYW4g Y2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90 ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNF PC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4g Y2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBj bGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8L3Rk PgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+IGluZGV4LnBocD9wYWdlPTQgPC90ZD4KCQkJPHRk PiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9z cGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2Fw cyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBz Ij48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4g PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48L3Nw YW4+IDwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPGgzIGlkPSJlZzYiPkV4YW1wbGUgNjwv aDM+CgoJPHA+UHV0IHRoaXMgaW5zaWRlIHlvdXIgPGNvZGU+cGxhaW5saW5rczwvY29kZT4g Zm9ybSBhbmQgZXhlY3V0ZSBhIDxjb2RlPiZsdDt0eHA6bGlua2xpc3QgLyZndDs8L2NvZGU+ IGZyb20gYW4gYXJ0aWNsZSBwYWdlL2Zvcm06PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7aWQmcXVvdDsK ICAgICBvcGVyYXRvcj0mcXVvdDtnZTpOVU0sIGxlOk5VTSZxdW90OwogICAgIHZhbHVlPSZx dW90O3VybHZhcjptaW4sIHVybHZhcjptYXgmcXVvdDsmZ3Q7CiAgJmx0O3R4cDpsaW5rZGVz Y3RpdGxlIC8mZ3Q7Jmx0O2JyIC8mZ3Q7CiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwv cHJlPgoKCTxwPlRoYXQgd2lsbCBsaXN0IG9ubHkgdGhlIGxpbmtzIHRoYXQgaGF2ZSBJRHMg YmV0d2VlbiB0aGUgPGNvZGU+bWluPC9jb2RlPiBhbmQgPGNvZGU+bWF4PC9jb2RlPiB2YXJp YWJsZXMgc3BlY2lmaWVkIG9uIHRoZSBhZGRyZXNzIGJhci4gTm90aWNlIHRoYXQgdGhlIGlk IGZpZWxkIGlzIG9ubHkgbGlzdGVkIG9uY2UgYW5kIGVhY2ggb3BlcmF0b3IgaXMgYXBwbGll ZCB0byBpdCBpbiB0dXJuLjwvcD4KCgk8aDMgaWQ9ImVnNyI+RXhhbXBsZSA3PC9oMz4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZp ZWxkPSZxdW90O3VybHZhcjpwcm9kdWN0X2NvZGUmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVv dDtpc2FsbnVtJnF1b3Q7Jmd0OwogICZsdDt0eHA6b3V0cHV0X2Zvcm0gZm9ybT0mcXVvdDtz aG93X3Byb2R1Y3QmcXVvdDsgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtJ bnZhbGlkIHByb2R1Y3QgY29kZSZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+VGVzdHMgdG8gc2VlIGlmIHRoZSBwcm9kdWN0X2NvZGUgPHNwYW4g Y2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gdmFyaWFibGUgaXMgYWxwaGFudW1lcmljIGFuZCBk aXNwbGF5cyBhIGZvcm0gaWYgc28uPC9wPgoKCTxoMyBpZD0iZWc4Ij5FeGFtcGxlIDg8L2gz PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRf aWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnNvcnRfb3JkZXImcXVvdDsKICAgICBvcGVyYXRvcj0m cXVvdDtpbiZxdW90OwogICAgIHZhbHVlPSZxdW90O2lkL3ByaWNlL3NpemUvY29sb3VyJnF1 b3Q7Jmd0OwogICZsdDtwJmd0O1NvcnRpbmcgdmFsdWVzIGJ5IHtzbWRfaWZfc29ydF9vcmRl cn0mbHQ7L3AmZ3Q7CiAgLy8gRG8gc29tZSBzdHVmZgombHQ7dHhwOmVsc2UgLyZndDsKICAv LyBVc2UgYSBkZWZhdWx0IHNvcnQsIG9yIHNob3cgYW4gZXJyb3IgaGVyZQombHQ7L3R4cDpz bWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5CeSB1c2luZyB0aGUgcmVwbGFjZW1lbnQg dGFnIHtzbWRfaWZfc29ydF9vcmRlcn0geW91IGhhdmUgcGx1Y2tlZCB0aGUgdmFsdWUgZnJv bSB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVSTDwvc3Bhbj4gYmFyIGFuZCBpbnNlcnRlZCBp dCBpbnRvIHRoZSBhcnRpY2xlLiBVc2VmdWwgd2hlbiB1c2luZyB0aGUgPGNvZGU+aW48L2Nv ZGU+IG9yIDxjb2RlPm5vdGluPC9jb2RlPiBvcGVyYXRvcnMgYmVjYXVzZSwgYWx0aG91Z2gg eW91IGtub3cgdGhhdCB0aGUgZmllbGQgbWF0Y2hlZCBvbmUgb2YgdGhlIHZhbHVlcyBpbiB5 b3VyIGxpc3QsIHlvdSB3b3VsZCBvdGhlcndpc2Ugbm90IGtub3cgd2hpY2ggb25lIGhhcyBi ZWVuIGdpdmVuIG9uIHRoZSBhZGRyZXNzIGJhci48L3A+CgoJPGgzIGlkPSJlZzkiPkV4YW1w bGUgOTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7 dHhwOnBocCZndDsKZ2xvYmFsICRib2R5ZXg7CiRib2R5ZXggPSBib2R5KGFycmF5KCkpIC4g ZXhjZXJwdChhcnJheSgpKTsKJmx0Oy90eHA6cGhwJmd0OwombHQ7dHhwOnNtZF9pZiBmaWVs ZD0mcXVvdDtwaHB2YXI6Ym9keWV4JnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7Z3Q6TEVO JnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7NTAwJnF1b3Q7Jmd0OwogICZsdDtwJmd0O1lvdSBh cmUgYSBiaWcgYm95IGF0IHtzbWRfaWZfbGVuX2JvZHlleH0KICAgICBjaGFyYWN0ZXJzIGxv bmchJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDIg Y2xhc3M9ImNoYW5nZWxvZyI+Q2hhbmdlbG9nPC9oMj4KCgk8dWw+CgkJPGxpPjMwIERlYyAw NyB8IDAuMSB8IEluaXRpYWwgcmVsZWFzZTwvbGk+CgkJPGxpPjMwIERlYyAwNyB8IDAuMiB8 IEFkZGVkIHBhcmVudCBjYXRlZ29yeSBjaGVja2luZyAodGhhbmtzIHRoZV9naG9zdCk8L2xp PgoJCTxsaT4wMiBKYW4gMDggfCAwLjMgfCBBZGRlZCBkZWZpbmVkL3VuZGVmaW5lZCBhbmQg c3RyaWN0IG51bWVyaWMgY29tcGFyaXNvbnM8L2xpPgoJCTxsaT4wNiBKYW4gMDggfCAwLjQg fCBBZGRlZCA8Y29kZT4/PC9jb2RlPiBub3RhdGlvbiB0byBhbGxvdyB0aGUgdmFsdWUgdG8g cmVhZCA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmaWVsZHM7IGJldHRlciBxdW90 ZSBzdXBwb3J0IChib3RoIHRoYW5rcyBOZWlsQSk8L2xpPgoJCTxsaT4wNiBKYW4gMDggfCAw LjQxIHwgRml4ZWQgbG93ZXIgY2FzZSBmaWVsZCBuYW1lcyBhbmQgdW5kZWZpbmVkIGluZGV4 IGVycm9yICh0aGFua3MgcGV0ZXJqKTwvbGk+CgkJPGxpPjE0IEphbiAwOCB8IDAuNSB8IEFk ZGVkIGNhc2Vfc2Vuc2l0aXZlIG9wdGlvbjsgbWFkZSAmIzgyMTY7Y29udGFpbnMmIzgyMTc7 IHRoZSBkZWZhdWx0IGZvciAmIzgyMTY7cGFyZW50JiM4MjE3OyB0ZXN0czsgaW1wcm92ZWQg aGVscCAoYWxsIHRoYW5rcyB0aGVfZ2hvc3QpOyBhZGRlZCBkZWxpbSBvcHRpb25zPC9saT4K CQk8bGk+MTUgSmFuIDA4IHwgMC41MSB8IEZpeGVkIGRlZmluZWQvdW5kZWZpbmVkIHN5bnRh eCBlcnJvcjsgdGlnaHRlbmVkIGlzdXNlZC9pc2VtcHR5IHRvIGRpc3Rpbmd1aXNoIHRoZW0g ZnJvbSBkZWZpbmVkL3VuZGVmaW5lZDwvbGk+CgkJPGxpPjI1IE1heSAwOCB8IDAuNiB8IEZp eGVkICYjODIxNjt1bmRlZmluZWQgaW5kZXgmIzgyMTc7IGVycm9ycyAodGhhbmtzIHJlZGJv dCBhbmQgdGhlX2dob3N0KSA7IGFkZGVkIG1vcmUgcHJldGV4dCB2YXJpYWJsZXMgOyBhZGRl ZCBtb3JlIDxjb2RlPmlzPC9jb2RlPiBjaGVja3MgKGFuZCB0aGUgPHNwYW4gY2xhc3M9ImNh cHMiPk5PU1BBQ0U8L3NwYW4+IG1vZGlmaWVyKSA7IGFsbG93ZWQgZmlsZSBhbmQgbGluayB0 ZXN0cyAoaW5jbHVkaW5nIHBhcmVudCBjYXRlZ29yaWVzKTwvbGk+CgkJPGxpPjI2IE1heSAw OCB8IDAuNjEgfCBGaXhlZCBzdHVwaWQgb3ZlcnNpZ2h0IGluIGZpZWxkIG5hbWUgZ2VuZXJh dGlvbiB0byBhbGxvdyBhcmJpdHJhcnkgbmFtZXMgaW5zdGVhZCBvZiBmb3JjaW5nICR0aGlz YXJ0aWNsZSAodGhhbmtzIHRvIEpvYW5hIENhcnZhbGhvIGZvciBsZWFkaW5nIG1lIHRvIHRo aXMpPC9saT4KCQk8bGk+MTEgSnVuIDA4IHwgMC42MiB8IEZpeGVkIGluY29ycmVjdCByZXN1 bHQgaWYgZXZhbCgpIGlzIGVtcHR5IDsgYWRkZWQgPHNwYW4gY2xhc3M9ImNhcHMiPk5VTEw8 L3NwYW4+IGZpZWxkIG9iamVjdDwvbGk+CgkJPGxpPjEwIFNlcCAwOCB8IDAuNyB8IEZpeGVk IHdhcm5pbmcgaWYgZW1wdHkgY3VzdG9tIGZpZWxkIGluIHZhbHVlICh0aGFua3MgdmlzdWFs cGVvcGxlKSA7IGFkZGVkIHR4cHZhciBzdXBwb3J0ICh0aGFua3MgdGhlX2dob3N0KSA7IGFk ZGVkIHRoaXNpbWFnZSBzdXBwb3J0IChmb3IgdGhlIGZ1dHVyZSkgOyBhZGRlZCBvcGVyYXRv cnMgPGNvZGU+aW48L2NvZGU+LCA8Y29kZT5ub3RpbjwvY29kZT4gYW5kIHRoZSA8Y29kZT5s aXN0X2RlbGltPC9jb2RlPiBhdHRyaWJ1dGU7IGVuYWJsZWQgcmVwbGFjZW1lbnQgdGFncyBm b3IgbWF0Y2hlZCB2YXJpYWJsZXM8L2xpPgoJCTxsaT4wMSBPY3QgMDggfCAwLjcxIHwgRml4 ZWQgdGhlIGZpeCBmb3IgZW1wdHkgY3VzdG9tIGZpZWxkcyBpbXBsZW1lbnRlZCBpbiAwLjcg KHRoYW5rcyBtYXB1L3Zpc3VhbHBlb3BsZSk8L2xpPgoJCTxsaT4wMSBPY3QgMDggfCAwLjcy IHwgQWRkZWQgPGNvZGU+Ok5PVEFHUzwvY29kZT4gKHRoYW5rcyBtYXB1KTwvbGk+CgkJPGxp PjEzIE9jdCAwOCB8IDAuNzMgfCBBZGRlZCA8Y29kZT46Tk9TUEFDRTwvY29kZT4gdG8gPGNv ZGU+YmVnaW5zPC9jb2RlPiwgPGNvZGU+ZW5kczwvY29kZT4gYW5kIDxjb2RlPmNvbnRhaW5z PC9jb2RlPiAodGhhbmtzIG1hcHUpLCBhZGRlZCBwaHB2YXIgc3VwcG9ydCwgPGNvZGU+OkxF TjwvY29kZT4gbW9kaWZpZXIgYW5kIGxlbmd0aCByZXBsYWNlbWVudCB0YWdzIChhbGwgdGhh bmtzIHRoZV9naG9zdCk8L2xpPgoJCTxsaT4xMyBPY3QgMDggfCAwLjc0IHwgQnVnIGZpeCB0 aGUgc21kX2lmXyBuYW1lcyBvZiB2YWxzIGFuZCBmaWVsZHMgdG8gYXZvaWQgY2xhc2hlcy4g Tm93IG51bWVyaWNhbGx5IGluZGV4ZWQ8L2xpPgoJCTxsaT4wMiBEZWMgMDggfCAwLjc1IHwg QWRkZWQgPGNvZGU+ZGl2aXNpYmxlPC9jb2RlPiBvcGVyYXRvciAodGhhbmtzIGdvbWVkaWEp IDsgYWxsb3cgc2hvcnQtY2lyY3VpdCBvZiBmaWVsZHMgKHRoYW5rcyByZWRib3QpPC9saT4K CQk8bGk+MjAgTWFyIDA5IHwgMC43NiB8IEFkZGVkIDxjb2RlPnBvc3R2YXI8L2NvZGU+IGZp ZWxkIHR5cGUgKHRoYW5rcyBrb3N0YXM0NSk8L2xpPgoJCTxsaT4yMiBNYXIgMDkgfCAwLjc3 IHwgQWRkZWQgPGNvZGU+OlRSSU08L2NvZGU+IG1vZGlmaWVyICh0aGFua3MgZ29tZWRpYSk8 L2xpPgoJCTxsaT4wNSBBcHIgMDkgfCAwLjggfCBBZGRlZCBmaWx0ZXJpbmcgY2FwYWJpbGl0 eTwvbGk+CgkJPGxpPjI2IFNlcCAwOSB8IDAuODEgfCBBZGRlZCBwYXJlbnQgPGNvZGU+VFRM PC9jb2RlPiBhbmQgPGNvZGU+S0lEUzwvY29kZT4gbW9kaWZpZXJzICh0aGFua3MgcGhvdG9u b21hZCkgOyBpbXByb3ZlZCBwYXJlbnQgZGVidWcgb3V0cHV0PC9saT4KCTwvdWw+Cgo8L2Rp dj4KPCEtLSAqKiogQkVHSU4gUExVR0lOIENTUyAqKiogLS0+CjxzdHlsZSB0eXBlPSJ0ZXh0 L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEuMyA7fQojc21kX2hlbHAgY29kZSB7 IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBjb3Vy aWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hlbHAg Y29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5 OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2luOjEw cHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0KI3NtZF9oZWxwIGE6bGluaywgI3NtZF9o ZWxwIGE6dmlzaXRlZCB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGJv cmRlci1ib3R0b206IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQojc21k X2hlbHAgYTpob3ZlciwgI3NtZF9oZWxwIGE6YWN0aXZlIHsgY29sb3I6IGJsdWU7IHRleHQt ZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsdWU7IHBhZGRp bmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4 IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVyOyB9 CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgcGFkZGlu ZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJp ZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzY5MzsgZm9udDogYm9sZCAxMnB4IEFyaWFs LCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwO3Rl eHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDEx cHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBw eCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdHQtbmFt ZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDoj ZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6 MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTsgYm9yZGVyOjFw eCBzb2xpZCAjNjY2O30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAgdGgge2JvcmRlcjoxcHgg c29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExV R0lOIENTUyAqKiogLS0+CiI7czozOiJtZDUiO3M6MzI6IjI2MjAxZTAxNGM4MDlmODUxMmIx YWIwNTk0YjgxZjhkIjt9