# Name: smd_if v0.77 # 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: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjY6InNtZF9pZiI7czo2OiJhdXRob3IiO3M6MTE6IlN0ZWYg RGF3c29uIjtzOjEwOiJhdXRob3JfdXJpIjtzOjIyOiJodHRwOi8vc3RlZmRhd3Nvbi5jb20v IjtzOjc6InZlcnNpb24iO3M6NDoiMC43NyI7czoxMToiZGVzY3JpcHRpb24iO3M6MzU6Ikdl bmVyaWMgbXVsdGlwbGUgaWYgY29uZGl0aW9uIHRlc3RzIjtzOjQ6ImNvZGUiO3M6MTE4MTg6 ImZ1bmN0aW9uIHNtZF9pZigkYXR0cywkdGhpbmcpIHsNCglnbG9iYWwgJHRoaXNhcnRpY2xl LCAkcHJldGV4dCwgJHRoaXNmaWxlLCAkdGhpc2xpbmssICR0aGlzaW1hZ2UsICR2YXJpYWJs ZTsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdmaWVsZCcgPT4gJycsDQoJCSdvcGVy YXRvcicgPT4gJycsDQoJCSd2YWx1ZScgPT4gJycsDQoJCSdsb2dpYycgPT4gJ2FuZCcsDQoJ CSdjYXNlX3NlbnNpdGl2ZScgPT4gMCwNCgkJJ3BhcmFtX2RlbGltJyA9PiAnLCcsDQoJCSdt b2RfZGVsaW0nID0+ICc6JywNCgkJJ2xpc3RfZGVsaW0nID0+ICcvJywNCgkJJ2RlYnVnJyA9 PiAnMCcsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFNwZWNpYWwgZmllbGQgbmFtZXMgdGhhdCBy ZWZlciB0byAkcHJldGV4dCBvciBlbHNld2hlcmUgLSBldmVyeXRoaW5nIGVsc2UgaXMgYXNz dW1lZCB0bw0KCS8vIGV4aXN0IGluICR0aGlzYXJ0aWNsZSBzbyBjdXN0b20gZmllbGRzIGNh biBiZSB1c2VkDQoJJGFsbFB0eHQgPSBhcnJheSgNCgkJImlkIiA9PiAnJHByZXRleHRbImlk Il0nLA0KCQkic2VjdGlvbiIgPT4gJyRwcmV0ZXh0WyJzIl0nLA0KCQkiY2F0ZWdvcnkiID0+ ICckcHJldGV4dFsiYyJdJywNCgkJInF1ZXJ5IiA9PiAnJHByZXRleHRbInEiXScsDQoJCSJw ZyIgPT4gJyRwcmV0ZXh0WyJwZyJdJywNCgkJIm1vbnRoIiA9PiAnJHByZXRleHRbIm1vbnRo Il0nLA0KCQkiYXV0aG9yIiA9PiAnJHByZXRleHRbImF1dGhvciJdJywNCgkJInN0YXR1cyIg PT4gJyRwcmV0ZXh0WyJzdGF0dXMiXScsDQoJCSJwYWdlIiA9PiAnJHByZXRleHRbInBhZ2Ui XScsDQoJCSJuZXh0X2lkIiA9PiAnJHByZXRleHRbIm5leHRfaWQiXScsDQoJCSJuZXh0X3Rp dGxlIiA9PiAnJHByZXRleHRbIm5leHRfdGl0bGUiXScsDQoJCSJuZXh0X3V0aXRsZSIgPT4g JyRwcmV0ZXh0WyJuZXh0X3V0aXRsZSJdJywNCgkJInByZXZfaWQiID0+ICckcHJldGV4dFsi cHJldl9pZCJdJywNCgkJInByZXZfdGl0bGUiID0+ICckcHJldGV4dFsicHJldl90aXRsZSJd JywNCgkJInByZXZfdXRpdGxlIiA9PiAnJHByZXRleHRbInByZXZfdXRpdGxlIl0nLA0KCQki cGVybWxpbmtfbW9kZSIgPT4gJyRwcmV0ZXh0WyJwZXJtbGlua19tb2RlIl0nLA0KCSk7DQoJ Ly8gRWFjaCBlbnRyeSBoYXMgdGhlIG9wZXJhdGlvbiB0byBiZSBldmFsKClkIGxhdGVyIGFu ZCBhIGxpc3Qgb2YgZGlzYWxsb3dlZCBmaWVsZHMNCgkkYWxsT3BzID0gYXJyYXkoDQoJCSdl cScgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIENBU1QgRklFTEQgPT09IENBU1QgVkFM VUUnLCAnJyksDQoJCSdub3QnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJ RUxEICE9PSBDQVNUIFZBTFVFJywgJycpLA0KCQknZ3QnID0+IGFycmF5KCdpc3NldChWQVJO QU1FKSAmJiBDQVNUIEZJRUxEID4gQ0FTVCBWQUxVRScsICcnKSwNCgkJJ2dlJyA9PiBhcnJh eSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCA+PSBDQVNUIFZBTFVFJywgJycpLA0K CQknbHQnID0+IGFycmF5KCdpc3NldChWQVJOQU1FKSAmJiBDQVNUIEZJRUxEIDwgQ0FTVCBW QUxVRScsICcnKSwNCgkJJ2xlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgQ0FTVCBG SUVMRCA8PSBDQVNUIFZBTFVFJywgJycpLA0KCQknZGl2aXNpYmxlJyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgQ0FTVCBGSUVMRCAlIENBU1QgVkFMVUUgPT09IDAnLCAnJyksDQoJ CSdpbicgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYmIGluX2FycmF5KEZJRUxELCBleHBs b2RlKCInLiRsaXN0X2RlbGltLiciLCBWQUxVRSkpICE9PSBmYWxzZScsICcnKSwNCgkJJ25v dGluJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgaW5fYXJyYXkoRklFTEQsIGV4cGxv ZGUoIicuJGxpc3RfZGVsaW0uJyIsIFZBTFVFKSkgPT09IGZhbHNlJywgJycpLA0KCQknYmVn aW5zJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgc3RycG9zKEZJRUxELCBWQUxVRSkg PT09IDAnLCAnJyksDQoJCSdjb250YWlucycgPT4gYXJyYXkoJ2lzc2V0KFZBUk5BTUUpICYm IHN0cnBvcyhGSUVMRCwgVkFMVUUpICE9PSBmYWxzZScsICcnKSwNCgkJJ2VuZHMnID0+IGFy cmF5KCdpc3NldChWQVJOQU1FKSAmJiBzdWJzdHIoRklFTEQsIHN0cmxlbihGSUVMRCkgLSBz dHJsZW4oVkFMVUUpKSA9PT0gVkFMVUUnLCAnJyksDQoJCSdkZWZpbmVkJyA9PiBhcnJheSgn aXNzZXQoVkFSTkFNRSknLCAncGFyZW50JyksDQoJCSd1bmRlZmluZWQnID0+IGFycmF5KCch aXNzZXQoVkFSTkFNRSknLCAncGFyZW50JyksDQoJCSdpc2VtcHR5JyA9PiBhcnJheSgnaXNz ZXQoVkFSTkFNRSkgJiYgRklFTEQgPT0gIiInLCAnJyksDQoJCSdpc3VzZWQnID0+IGFycmF5 KCdpc3NldChWQVJOQU1FKSAmJiBGSUVMRCAhPSAiIicsICcnKSwNCgkJJ2lzbnVtJyA9PiBh cnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfZGlnaXQoKHN0cmluZylGSUVMRCknLCAn JyksDQoJCSdpc2FscGhhJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfYWxw aGEoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2FsbnVtJyA9PiBhcnJheSgnaXNzZXQo VkFSTkFNRSkgJiYgY3R5cGVfYWxudW0oKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc2xv d2VyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfbG93ZXIoKHN0cmluZylG SUVMRCknLCAnJyksDQoJCSdpc3VwcGVyJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYg Y3R5cGVfdXBwZXIoKHN0cmluZylGSUVMRCknLCAnJyksDQoJCSdpc3B1bmN0JyA9PiBhcnJh eSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfcHVuY3QoKHN0cmluZylGSUVMRCknLCAnJyks DQoJCSdpc3NwYWNlJyA9PiBhcnJheSgnaXNzZXQoVkFSTkFNRSkgJiYgY3R5cGVfc3BhY2Uo KHN0cmluZylGSUVMRCknLCAnJyksDQoJKTsNCg0KCSRudW1lcmljT3BzID0gImd0LCBnZSwg bHQsIGxlLCBlcSwgbm90LCBkaXZpc2libGUiOw0KCSRjYXNlT3BzID0gImlzbG93ZXIsIGlz dXBwZXIiOw0KCSRzcGFjZU9wcyA9ICJpc251bSwgaXNhbHBoYSwgaXNhbG51bSwgaXNsb3dl ciwgaXN1cHBlciwgaXNwdW5jdCwgYmVnaW5zLCBjb250YWlucywgZW5kcyI7DQoJJGZpZWxk cyA9IGRvX2xpc3QoJGZpZWxkLCAkcGFyYW1fZGVsaW0pOw0KCSRudW1GbGRzID0gY291bnQo JGZpZWxkcyk7DQoJJG9wcyA9IGRvX2xpc3QoJG9wZXJhdG9yLCAkcGFyYW1fZGVsaW0pOw0K CSRudW1PcHMgPSBjb3VudCgkb3BzKTsNCgkkdmFscyA9IGRvX2xpc3QoJHZhbHVlLCAkcGFy YW1fZGVsaW0pOw0KCSRudW1WYWxzID0gY291bnQoJHZhbHMpOw0KCSRwYXJlbnRDYXRzID0g Jyc7IC8vIFBsYWNlaG9sZGVyIGZvciB0aGUgY29uY2F0ZW5hdGVkIGxpc3Qgb2YgY2F0ZWdv cnkgbGVhZiBub2Rlcw0KCSRyZXBsYWNlbWVudHMgPSBhcnJheSgpOw0KCSR0eXBlID0gKCR0 aGlzZmlsZSkgPyAiZmlsZSIgOiAoKCR0aGlzbGluaykgPyAibGluayIgOiAoKCR0aGlzaW1h Z2UpID8gImltYWdlIiA6ICJhcnRpY2xlIikpOw0KCSRvdXQgPSBhcnJheSgpOw0KCSRpdGVy YXRpb25zID0gKCRudW1GbGRzID4gJG51bU9wcykgPyAkbnVtRmxkcyA6ICRudW1PcHM7DQoN Cglmb3IgKCRpZHggPSAwOyAkaWR4IDwgJGl0ZXJhdGlvbnM7ICRpZHgrKykgew0KCQkkZmxk ID0gKCRpZHggPCAkbnVtRmxkcykgPyAkZmllbGRzWyRpZHhdIDogJGZpZWxkc1swXTsgLy8g QWxsb3cgc2hvcnQtY2lyY3VpdA0KCQkkZmxkUGFydHMgPSBleHBsb2RlKCRtb2RfZGVsaW0s ICRmbGQpOw0KCQkkdmFsID0gKCRpZHggPCAkbnVtVmFscykgPyAkdmFsc1skaWR4XSA6ICcn Ow0KCQkkdmFsUGFydHMgPSBleHBsb2RlKCRtb2RfZGVsaW0sICR2YWwpOw0KCQkkb3AgPSAo JGlkeCA8ICRudW1PcHMgJiYgJG9wc1skaWR4XSAhPSAnJykgPyAkb3BzWyRpZHhdIDogKCgk ZmxkUGFydHNbMF09PSJwYXJlbnQiKSA/ICJjb250YWlucyIgOiAiZXEiKTsNCgkJJG9wUGFy dHMgPSBleHBsb2RlKCRtb2RfZGVsaW0sICRvcCk7DQoJCSRvcCA9IChhcnJheV9rZXlfZXhp c3RzKCRvcFBhcnRzWzBdLCAkYWxsT3BzKSkgPyAkb3BQYXJ0c1swXSA6ICJlcSI7DQoJCSRj YXN0ID0gKChjb3VudCgkb3BQYXJ0cykgPT0gMikgJiYgKCRvcFBhcnRzWzFdID09PSAiTlVN IikgJiYgKGluX2xpc3QoJG9wLCAkbnVtZXJpY09wcykpKSA/ICcoaW50KScgOiAnJzsNCgkJ JGxlbmd0aCA9ICgoY291bnQoJG9wUGFydHMpID09IDIpICYmICgkb3BQYXJ0c1sxXSA9PT0g IkxFTiIpICYmIChpbl9saXN0KCRvcCwgJG51bWVyaWNPcHMpKSkgPyAnc3RybGVuKEZJRUxE KScgOiAnJzsNCgkJJGtpbGxTcGFjZXMgPSAoKGNvdW50KCRvcFBhcnRzKSA9PSAyKSAmJiAo JG9wUGFydHNbMV0gPT09ICJOT1NQQUNFIikgJiYgKGluX2xpc3QoJG9wLCAkc3BhY2VPcHMp KSkgPyB0cnVlIDogZmFsc2U7DQoJCSRzdHJpcEZsZCA9ICgoY291bnQoJGZsZFBhcnRzKSA+ IDEpICYmIChpbl9hcnJheSgiTk9UQUdTIiwgJGZsZFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNl Ow0KCQkkc3RyaXBWYWwgPSAoKGNvdW50KCR2YWxQYXJ0cykgPiAxKSAmJiAoaW5fYXJyYXko Ik5PVEFHUyIsICR2YWxQYXJ0cykpKSA/IHRydWUgOiBmYWxzZTsNCgkJJHRyaW1GbGQgPSAo KGNvdW50KCRmbGRQYXJ0cykgPiAxKSAmJiAoaW5fYXJyYXkoIlRSSU0iLCAkZmxkUGFydHMp KSkgPyB0cnVlIDogZmFsc2U7DQoJCSR0cmltVmFsID0gKChjb3VudCgkdmFsUGFydHMpID4g MSkgJiYgKGluX2FycmF5KCJUUklNIiwgJHZhbFBhcnRzKSkpID8gdHJ1ZSA6IGZhbHNlOw0K CQkkY2FzZV9zZW5zaXRpdmUgPSAoaW5fbGlzdCgkb3AsICRjYXNlT3BzKSkgPyAxIDogJGNh c2Vfc2Vuc2l0aXZlOw0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICdURVNUICcuKCRpZHgr MSkubjsNCgkJCWRtcCgkZmxkUGFydHMsICRvcFBhcnRzLCAkdmFsUGFydHMpOw0KCQl9DQoJ CS8vIEdldCB0aGUgb3BlcmF0b3IgcmVwbGFjZW1lbnQgY29kZQ0KCQkkZXhjbHVkZSA9IGRv X2xpc3QoJGFsbE9wc1skb3BdWzFdKTsNCgkJJG9wID0gJGFsbE9wc1skb3BdWzBdOw0KDQoJ CS8vIEFzIGxvbmcgYXMgdGhlIGN1cnJlbnQgb3BlcmF0b3IgYWxsb3dzIHRoaXMgZmllbGQu Li4NCgkJaWYgKCFpbl9hcnJheSgkZmxkUGFydHNbMF0sICRleGNsdWRlKSkgew0KCQkJLy8g TWFrZSB1cCB0aGUgdGVzdCBmaWVsZCB2YXJpYWJsZQ0KCQkJaWYgKGlzc2V0KCR0aGlzZmls ZVskZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRm bGQgPSAnJHRoaXNmaWxlWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0 aGlzbGlua1skZmxkUGFydHNbMF1dKSkgew0KCQkJCSRyZmxkID0gJGZsZFBhcnRzWzBdOw0K CQkJCSRmbGQgPSAnJHRoaXNsaW5rWyInLiRyZmxkLiciXSc7DQoJCQl9IGVsc2UgaWYgKGlz c2V0KCR0aGlzaW1hZ2VbJGZsZFBhcnRzWzBdXSkpIHsNCgkJCQkkcmZsZCA9ICRmbGRQYXJ0 c1swXTsNCgkJCQkkZmxkID0gJyR0aGlzaW1hZ2VbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxz ZSBpZiAoYXJyYXlfa2V5X2V4aXN0cygkZmxkUGFydHNbMF0sICRhbGxQdHh0KSkgew0KCQkJ CSRyZmxkID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAkYWxsUHR4dFskcmZsZF07DQoJ CQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAicGFyZW50Iikgew0KCQkJCSRsZXZlbCA9 ICcnOw0KCQkJCWZvcmVhY2ggKCRmbGRQYXJ0cyBhcyAkcGFydCkgew0KCQkJCQlpZiAoJHBh cnQgPT0gInBhcmVudCIpIHsNCgkJCQkJCSR0aGVDYXQgPSAoJHRoaXNmaWxlKSA/ICR0aGlz ZmlsZVsnY2F0ZWdvcnknXSA6ICgoJHRoaXNsaW5rKSA/ICR0aGlzbGlua1snY2F0ZWdvcnkn XSA6ICgoJHRoaXNpbWFnZSkgPyAkdGhpc2ltYWdlWydjYXRlZ29yeSddIDogJHByZXRleHRb J2MnXSkpOw0KCQkJCQl9IGVsc2UgaWYgKHN0cnBvcygkcGFydCwgIkNBVCIpID09PSAwKSB7 DQoJCQkJCQkkdGhlQ2F0ID0gJHRoaXNhcnRpY2xlWyJjYXRlZ29yeSIuc3Vic3RyKCRwYXJ0 LCAzKV07DQoJCQkJCX0gZWxzZSBpZiAoc3RycG9zKCRwYXJ0LCAiTFZMIikgPT09IDApIHsN CgkJCQkJCSRsZXZlbCA9IHN1YnN0cigkcGFydCwgMyk7DQoJCQkJCX0NCgkJCQl9DQoNCgkJ CQkkdHJlZSA9IGdldFRyZWVQYXRoKGRvU2xhc2goJHRoZUNhdCksICR0eXBlKTsNCgkJCQlp ZiAoJGRlYnVnKSB7DQoJCQkJCWVjaG8gIkNBVEVHT1JZIFRSRUU6IjsNCgkJCQkJZG1wKCR0 cmVlKTsNCgkJCQl9DQoJCQkJJGl0ZW1zID0gYXJyYXkoKTsNCgkJCQlmb3JlYWNoICgkdHJl ZSBhcyAkbGVhZikgew0KCQkJCQlpZiAoJGxlYWZbJ25hbWUnXSA9PSAicm9vdCIgfHwgJGxl YWZbJ25hbWUnXSA9PSAkdGhlQ2F0KSB7DQoJCQkJCQljb250aW51ZTsNCgkJCQkJfSBlbHNl IGlmICgkbGV2ZWwgPT0gJycgfHwgJGxldmVsID09ICRsZWFmWydsZXZlbCddKSB7DQoJCQkJ CQkkaXRlbXNbXSA9ICRsZWFmWyduYW1lJ107DQoJCQkJCX0NCgkJCQl9DQoJCQkJJHBhcmVu dENhdHMgPSAkcmZsZCA9IGltcGxvZGUoIiAiLCAkaXRlbXMpOw0KCQkJCSRmbGQgPSAnJHBh cmVudENhdHMnOw0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gInR4cHZhciIpIHsN CgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA+IDEpIHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFy dHNbMV07DQoJCQkJCSRmbGQgPSAnJHZhcmlhYmxlWyInLiRyZmxkLiciXSc7DQoJCQkJfQ0K CQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0gInVybHZhciIpIHsNCgkJCQlpZiAoY291 bnQoJGZsZFBhcnRzKSA+IDEpIHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJ CSRmbGQgPSAnJF9HRVRbIicuJHJmbGQuJyJdJzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCRm bGRQYXJ0c1swXSA9PSAicG9zdHZhciIpIHsNCgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA+ IDEpIHsNCgkJCQkJJHJmbGQgPSAkZmxkUGFydHNbMV07DQoJCQkJCSRmbGQgPSAnJF9QT1NU WyInLiRyZmxkLiciXSc7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkZmxkUGFydHNbMF0gPT0g InN2cnZhciIpIHsNCgkJCQlpZiAoY291bnQoJGZsZFBhcnRzKSA+IDEpIHsNCgkJCQkJJHJm bGQgPSAkZmxkUGFydHNbMV07DQoJCQkJCSRmbGQgPSAnJF9TRVJWRVJbIicuJHJmbGQuJyJd JzsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCRmbGRQYXJ0c1swXSA9PSAicGhwdmFyIikgew0K CQkJCWlmIChjb3VudCgkZmxkUGFydHMpID4gMSkgew0KCQkJCQkkcmZsZCA9ICRmbGRQYXJ0 c1sxXTsNCgkJCQkJJGZsZCA9ICckR0xPQkFMU1siJy4kcmZsZC4nIl0nOw0KCQkJCX0NCgkJ CX0gZWxzZSBpZiAoaXNzZXQoJHRoaXNhcnRpY2xlWyRmbGRQYXJ0c1swXV0pKSB7DQoJCQkJ JHJmbGQgPSBzdHJ0b2xvd2VyKCRmbGRQYXJ0c1swXSk7DQoJCQkJJGZsZCA9ICckdGhpc2Fy dGljbGVbIicuJHJmbGQuJyJdJzsNCgkJCX0gZWxzZSBpZiAoJGZsZFBhcnRzWzBdID09ICJO VUxMIikgew0KCQkJCSRzbWRfaWZfdmFyID0gJyc7DQoJCQkJJGZsZCA9ICckc21kX2lmX3Zh cic7DQoJCQkJJHJmbGQgPSAiTlVMTCI7DQoJCQl9IGVsc2Ugew0KCQkJCSRzbWRfaWZfdmFy ID0gJGZsZFBhcnRzWzBdOw0KCQkJCSRmbGQgPSAnJHNtZF9pZl92YXInOw0KCQkJCSRyZmxk ID0gImZpZWxkIi4oJGlkeCoxKzEpOw0KCQkJfQ0KCQkJJHJsZmxkID0gInNtZF9pZl9sZW5f Ii4kcmZsZDsNCgkJCSRyZmxkID0gInNtZF9pZl8iLiRyZmxkOw0KDQoJCQkvLyBUYWtlIGEg Y29weSBvZiAkZmxkIHRvIHVzZSBpbiBhbnkgaXNzZXQoKSByZXF1ZXN0cw0KCQkJJGZsZENs ZWFuID0gJGZsZDsNCgkJCWlmICgka2lsbFNwYWNlcykgew0KCQkJCSRmbGQgPSAncHJlZ19y ZXBsYWNlKCIvXHMrLyIsIiIsJy4kZmxkLicpJzsNCgkJCX0NCgkJCWlmICgkc3RyaXBGbGQp IHsNCgkJCQkkZmxkID0gJ3RyaW0oc3RyaXBfdGFncygnLiRmbGQuJykpJzsNCgkJCX0NCgkJ CWlmICgkdHJpbUZsZCkgew0KCQkJCSRmbGQgPSAndHJpbSgnLiRmbGQuJyknOw0KCQkJfQ0K DQoJCQkvLyBGaW5kIHRoZSByZWFsIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdCAobWF5IGJl IGFub3RoZXIgZmllbGQpDQoJCQlpZiAoJHZhbFBhcnRzWzBdID09ICJ1cmx2YXIiKSB7DQoJ CQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJCSR2ZmxkID0gJHZhbFBhcnRz WzFdOw0KCQkJCQkkdmFsID0gKGlzc2V0KCRfR0VUWyR2ZmxkXSkgJiYgJF9HRVRbJHZmbGRd ICE9ICIiKSA/ICckX0dFVFsiJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgn IicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmICgkdmFsUGFydHNbMF0g PT0gInBvc3R2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCR2YWxQYXJ0cykgPiAxKSB7DQoJCQkJ CSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkkdmFsID0gKGlzc2V0KCRfUE9TVFskdmZs ZF0pICYmICRfUE9TVFskdmZsZF0gIT0gIiIpID8gJyRfUE9TVFsiJy4kdmZsZC4nIl0nIDog ZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBl bHNlIGlmICgkdmFsUGFydHNbMF0gPT0gInN2cnZhciIpIHsNCgkJCQlpZiAoY291bnQoJHZh bFBhcnRzKSA+IDEpIHsNCgkJCQkJJHZmbGQgPSAkdmFsUGFydHNbMV07DQoJCQkJCSR2YWwg PSAoaXNzZXQoJF9TRVJWRVJbJHZmbGRdKSAmJiAkX1NFUlZFUlskdmZsZF0gIT0gIiIpID8g JyRfU0VSVkVSWyInLiR2ZmxkLiciXScgOiBkb1F1b3RlKHN0cl9yZXBsYWNlKCciJywgJ1wi JywgJHZmbGQpKTsNCgkJCQl9DQoJCQl9IGVsc2UgaWYgKCR2YWxQYXJ0c1swXSA9PSAidHhw dmFyIikgew0KCQkJCWlmIChjb3VudCgkdmFsUGFydHMpID4gMSkgew0KCQkJCQkkdmZsZCA9 ICR2YWxQYXJ0c1sxXTsNCgkJCQkJJHZhbCA9IChpc3NldCgkdmFyaWFibGVbJHZmbGRdKSAm JiAkdmFyaWFibGVbJHZmbGRdICE9ICIiKSA/ICckdmFyaWFibGVbIicuJHZmbGQuJyJdJyA6 IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmZsZCkpOw0KCQkJCX0NCgkJCX0g ZWxzZSBpZiAoJHZhbFBhcnRzWzBdID09ICJwaHB2YXIiKSB7DQoJCQkJaWYgKGNvdW50KCR2 YWxQYXJ0cykgPiAxKSB7DQoJCQkJCSR2ZmxkID0gJHZhbFBhcnRzWzFdOw0KCQkJCQkkdmFs ID0gKGlzc2V0KCRHTE9CQUxTWyR2ZmxkXSkgJiYgJEdMT0JBTFNbJHZmbGRdICE9ICIiKSA/ ICckR0xPQkFMU1siJy4kdmZsZC4nIl0nIDogZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdc IicsICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBlbHNlIGlmIChzdHJwb3MoJHZhbFBhcnRzWzBd LCAiPyIpID09PSAwKSB7DQoJCQkJJHZhbFBhcnRzWzBdID0gc3Vic3RyKHN0cnRvbG93ZXIo JHZhbFBhcnRzWzBdKSwgMSk7DQoJCQkJJHZmbGQgPSAkdmFsUGFydHNbMF07DQoJCQkJaWYg KGlzc2V0KCR0aGlzZmlsZVskdmZsZF0pICYmICR0aGlzZmlsZVskdmZsZF0gIT0gIiIpIHsN CgkJCQkJJHZhbCA9ICckdGhpc2ZpbGVbIicuJHZmbGQuJyJdJzsNCgkJCQl9IGVsc2UgaWYg KGlzc2V0KCR0aGlzbGlua1skdmZsZF0pICYmICR0aGlzbGlua1skdmZsZF0gIT0gIiIpIHsN CgkJCQkJJHZhbCA9ICckdGhpc2xpbmtbIicuJHZmbGQuJyJdJzsNCgkJCQl9IGVsc2UgaWYg KGlzc2V0KCR0aGlzaW1hZ2VbJHZmbGRdKSAmJiAkdGhpc2ltYWdlWyR2ZmxkXSAhPSAiIikg ew0KCQkJCQkkdmFsID0gJyR0aGlzaW1hZ2VbIicuJHZmbGQuJyJdJzsNCgkJCQl9IGVsc2Ug aWYgKGFycmF5X2tleV9leGlzdHMoJHZmbGQsICRhbGxQdHh0KSAmJiAkYWxsUHR4dFskdmZs ZF0gIT0gIiIpIHsNCgkJCQkJJHZhbCA9ICRhbGxQdHh0WyR2ZmxkXTsNCgkJCQl9IGVsc2Ug aWYgKGlzc2V0KCR0aGlzYXJ0aWNsZVskdmZsZF0pICYmICR0aGlzYXJ0aWNsZVskdmZsZF0g IT0gIiIpIHsNCgkJCQkJJHZhbCA9ICckdGhpc2FydGljbGVbIicuJHZmbGQuJyJdJzsNCgkJ CQl9IGVsc2Ugew0KCQkJCQkkdmFsID0gZG9RdW90ZShzdHJfcmVwbGFjZSgnIicsICdcIics ICR2ZmxkKSk7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQkkdmZsZCA9ICJ2YWwiLigkaWR4 KjErMSk7DQoJCQkJJHZhbCA9IGRvUXVvdGUoc3RyX3JlcGxhY2UoJyInLCAnXCInLCAkdmFs UGFydHNbMF0pKTsNCgkJCX0NCgkJCSR2bGZsZCA9ICJzbWRfaWZfbGVuXyIuJHZmbGQ7DQoJ CQkkdmZsZCA9ICJzbWRfaWZfIi4kdmZsZDsNCgkJCWlmICgkc3RyaXBWYWwpIHsNCgkJCQkk dmFsID0gJ3RyaW0oc3RyaXBfdGFncygnLiR2YWwuJykpJzsNCgkJCX0NCgkJCWlmICgkdHJp bVZhbCkgew0KCQkJCSR2YWwgPSAndHJpbSgnLiR2YWwuJyknOw0KCQkJfQ0KDQoJCQkvLyBS ZXBsYWNlIHRoZSBzdHJpbmcgcGFydHMuLi4NCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiQ0FT VCIsICRjYXN0LCAkb3ApOw0KCQkJJGNtZCA9ICgkbGVuZ3RoKSA/IHN0cl9yZXBsYWNlKCJG SUVMRCIsICRsZW5ndGgsICRjbWQpIDogJGNtZDsNCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgi RklFTEQiLCAoKCRjYXNlX3NlbnNpdGl2ZSkgPyAkZmxkIDogJ3N0cnRvbG93ZXIoJy4kZmxk LicpJyksICRjbWQpOw0KCQkJJGNtZCA9IHN0cl9yZXBsYWNlKCJWQVJOQU1FIiwgJGZsZENs ZWFuLCAkY21kKTsNCgkJCSRjbWQgPSBzdHJfcmVwbGFjZSgiVkFMVUUiLCAoKCRjYXNlX3Nl bnNpdGl2ZSkgPyAnVkFMVUUnIDogJ3N0cnRvbG93ZXIoVkFMVUUpJyksICRjbWQpOw0KCQkJ JGNtZCA9ICJAXCRyZXBsYWNlbWVudHNbJ3siLiRyZmxkLiJ9J10gPSAiLiRmbGQuIjsgXG5A XCRyZXBsYWNlbWVudHNbJ3siLiRybGZsZC4ifSddID0gc3RybGVuKCIuJGZsZC4iKTsgXG5A XCRyZXBsYWNlbWVudHNbJ3siLiR2ZmxkLiJ9J10gPSAiLiR2YWwuIjsgXG5AXCRyZXBsYWNl bWVudHNbJ3siLiR2bGZsZC4ifSddID0gc3RybGVuKCIuJHZhbC4iKTsgXG5cJG91dFtdID0g KCIuc3RyX3JlcGxhY2UoIlZBTFVFIiwgKCgkdmFsPT09IicnIiAmJiBzdHJwb3MoJG9wLCAi c3RycG9zIikgIT09IGZhbHNlKSA/ICInICciIDogJHZhbCksICRjbWQpLiIpID8gJ3RydWUn IDogJ2ZhbHNlJzsiOw0KCQkJaWYgKCRkZWJ1Zykgew0KCQkJCWRtcCgkY21kKTsNCgkJCX0N CgkJCS8vIC4uLiBhbmQgZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24NCgkJCWV2YWwoJGNtZCk7 DQoJCX0NCgl9DQoJaWYgKCRkZWJ1Zykgew0KCQllY2hvICJSRVNVTFQ6IjsNCgkJZG1wKCRv dXQpOw0KCQllY2hvICJSRVBMQUNFTUVOVFM6IjsNCgkJZG1wKCRyZXBsYWNlbWVudHMpOw0K CX0NCglpZiAoJGRlYnVnID4gMSkgew0KCQllY2hvICJQUkVURVhUOiI7DQoJCWRtcCgkcHJl dGV4dCk7DQoJCWVjaG8gIlRISVMgQVJUSUNMRToiOw0KCQlkbXAoJHRoaXNhcnRpY2xlKTsN CgkJZWNobyAiVEhJUyBGSUxFOiI7DQoJCWRtcCgkdGhpc2ZpbGUpOw0KCQllY2hvICJUSElT IExJTks6IjsNCgkJZG1wKCR0aGlzbGluayk7DQoJCWVjaG8gIlRISVMgSU1BR0U6IjsNCgkJ ZG1wKCR0aGlzaW1hZ2UpOw0KCX0NCgkvLyBDaGVjayBsb2dpYw0KCSRyZXN1bHQgPSAoJG91 dCkgPyB0cnVlIDogZmFsc2U7DQoJaWYgKHN0cnRvbG93ZXIoJGxvZ2ljKSA9PSAiYW5kIiAm JiBpbl9hcnJheSgiZmFsc2UiLCAkb3V0KSkgew0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJfQ0K CWlmIChzdHJ0b2xvd2VyKCRsb2dpYykgPT0gIm9yIiAmJiAhaW5fYXJyYXkoInRydWUiLCAk b3V0KSkgew0KCQkkcmVzdWx0ID0gZmFsc2U7DQoJfQ0KDQoJcmV0dXJuIHBhcnNlKEV2YWxF bHNlKHN0cnRyKCR0aGluZywgJHJlcGxhY2VtZW50cyksICRyZXN1bHQpKTsNCn0iO3M6NDoi dHlwZSI7czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NDoiaGVscCI7czozMTkxMDoi CTxwPjxkaXYgaWQ9InNtZF9oZWxwIj48L3A+CgoJPGgxPnNtZF9pZjwvaDE+CgoJPHA+QSBy ZWFsbHkgc2ltcGxlLCBnZW5lcmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3Rl ci4gQ2FuIHRlc3QgYW55IGZpZWxkIG9yIHZhcmlhYmxlIGluIHRoZSBjdXJyZW50IGFydGlj bGUsIGZpbGUsIGltYWdlLCBsaW5rLCA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiB2 YXIgb3IgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAvJmd0OzwvY29kZT4gY29udGV4dCBmb3Ig YSB2YXJpZXR5IG9mIGF0dHJpYnV0ZXMgYW5kIHRha2UgYWN0aW9uIGlmIDxzcGFuIGNsYXNz PSJjYXBzIj5UUlVFPC9zcGFuPiBvciA8c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+ LjwvcD4KCgk8aDI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgbW9zdCBt YWpvciBhcnRpY2xlLCBmaWxlLCBpbWFnZSBhbmQgbGluayB2YXJpYWJsZXMgc3VjaCBhcyBz ZWN0aW9uLCBjYXRlZ29yeSwgY3VzdG9tIGZpZWxkcywgaWQsIHF1ZXJ5IHN0cmluZywgYXV0 aG9yLCBib2R5LCBleGNlcnB0LCB5YWhkZSB5YWhkZSwgcGx1cyB1cmwgdmFycywgc2VydmVy IHZhcnMsIHR4cCB2YXJzLCBwaHAgdmFycywgYW5kIHN1Yi1jYXRlZ29yeS9wYXJlbnQgY2hl Y2tpbmc8L2xpPgoJCTxsaT5UZXN0cyBpbmNsdWRlIGVxdWFsaXR5LCBpbmVxdWFsaXR5LCBs ZXNzIHRoYW4sIGdyZWF0ZXIgdGhhbiwgZGl2aXNpYmxlIGJ5LCBlbXB0eSwgdXNlZCwgZGVm aW5lZCwgYmVnaW5zLCBlbmRzLCBjb250YWlucywgaXMgbnVtZXJpYyAvIGFscGhhIC8gYWxw aGFudW1lcmljIC8gbG93ZXJjYXNlIC8gdXBwZXJjYXNlLCBhbW9uZyBvdGhlcnM8L2xpPgoJ CTxsaT5UZXN0cyBmb3IgbW9yZSB0aGFuIG9uZSBjb25kaXRpb24gYXQgb25jZSBhbmQgYXBw bGllcyBlaXRoZXIgPHNwYW4gY2xhc3M9ImNhcHMiPkFORDwvc3Bhbj4gbG9naWMgKGFsbCB0 ZXN0cyBtdXN0IHBhc3MpIG9yIE9SIGxvZ2ljIChhbnkgdGVzdCBtdXN0IHBhc3MpPC9saT4K CQk8bGk+QWxsIHRlc3RlZCBmaWVsZHMgYW5kIHZhbHVlcyBhcmUgYXZhaWxhYmxlIHRvIHRo ZSBjb250YWluZXIgc28geW91IGNhbiBkaXNwbGF5IHRoZW08L2xpPgoJCTxsaT5VZ2x5IGFu ZCB2ZXJ5IGRpcnR5LiBVc2VzIDxzcGFuIGNsYXNzPSJjYXBzIj5QSFA8L3NwYW4+JiM4MjE3 O3MgPGNvZGU+ZXZhbCgpPC9jb2RlPiBjb21tYW5kIHdoaWNoIG1vc3QgcHJvZ3JhbW1lcnMg Y29uY3VyIHNob3VsZCBiZSByZW5hbWVkIDxjb2RlPmV2aWwoKTwvY29kZT48L2xpPgoJPC91 bD4KCgk8aDI+QXV0aG9yPC9oMj4KCgk8cD48YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5j b20vY29tbWVudEZvcm0iPlN0ZWYgRGF3c29uPC9hPi4gQmFzZWQgb24gYW4gaWRlYSBicmV3 aW5nIGluIHRoZSBiYWNrIG9mIG15IG1pbmQgd2hpbGUgaGFja2luZyBjaHNfaWZfdXJsdmFy LjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwPkRv d25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0 ZXJuLm9yZy9wbHVnaW5zLzkzMC9zbWRfaWYiPnRleHRwYXR0ZXJuLm9yZzwvYT4sIG9yIHRo ZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3YXJlIHBhZ2U8L2E+ LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVuYWJsZSB0aGUgcGx1 Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92 aWV3dG9waWMucGhwP2lkPTI1MzU3Ij5mb3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8g b3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2lu LjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUgZnJvbSB0aGUgQWRtaW4g LSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoKCTxwPlVzZSB0aGUg dGFnIGluIGFueSBwYWdlLCBmb3JtIG9yIGFydGljbGUgY29udGV4dC4gQ2FuIGFsc28gYmUg dXNlZCBpbnNpZGUgZmlsZSwgaW1hZ2Ugb3IgbGluayBsaXN0cyB0byB0YWtlIGFjdGlvbiBk ZXBlbmRpbmcgb24gYXR0cmlidXRlcyBvZiB0aGUgY3VycmVudCBpdGVtLjwvcD4KCgk8aDMg Y2xhc3M9InRhZyI+c21kX2lmPC9oMz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnkiPkF0IHRo ZSBwbGFjZSB5b3Ugd2lzaCB0byBjb21wYXJlIGEgZmllbGQgd2l0aCBhbm90aGVyIHZhbHVl LCBwdXQgdGhpcyB0YWcgd2l0aCBhbGwgdGhyZWUgbWFuZGF0b3J5IGF0dHJpYnV0ZXMgKHNo YWRlZCBiZWxvdykuIEVhY2ggdGFrZSBhIHNlcmllcyBvZiBjb21tYS1zZXBhcmF0ZWQgbGlz dHMgJiM4MjEyOyB0aG91Z2ggdGhlIDxhIGhyZWY9IiNwYXJhbWRlbGltIj5jb21tYSBpcyBv dmVycmlkYWJsZTwvYT4gd2l0aCB0aGUgcGFyYW1fZGVsaW0gYXR0cmlidXRlLiBJZiB0aGUg cmVzdWx0IG9mIGFsbCB0aGUgY29tcGFyaXNvbiB0ZXN0cyBpcyA8c3BhbiBjbGFzcz0iY2Fw cyI+VFJVRTwvc3Bhbj4gdGhlIGNvbnRhaW5lZCBibG9jayB3aWxsIGJlIGV4ZWN1dGVkLiBJ ZiB0aGUgcmVzdWx0IGlzIDxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj4sIGFueSA8 Y29kZT4mbHQ7dHhwOmVsc2UgLyZndDs8L2NvZGU+IHdpbGwgYmUgZXhlY3V0ZWQgaW5zdGVh ZC4gV2l0aG91dCBhbnkgPGNvZGU+Jmx0O3R4cDplbHNlIC8mZ3Q7PC9jb2RlPiBibG9jaywg bm90aGluZyBpcyBvdXRwdXQgaWYgdGhlIHJlc3VsdCBpcyA8c3BhbiBjbGFzcz0iY2FwcyI+ RkFMU0U8L3NwYW4+LjwvcD4KCgk8aDQgY2xhc3M9ImF0dHMgIiBpZD0iYXR0cmlidXRlcyI+ QXR0cmlidXRlczwvaDQ+CgoJPHVsPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFu ZCI+ZmllbGQ8L3NwYW4+IDogdGhlIDxhIGhyZWY9IiNmaWVsZCI+ZmllbGRzPC9hPiB0byB0 ZXN0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIG1hbmQiPm9wZXJhdG9yPC9z cGFuPiA6IHRoZSA8YSBocmVmPSIjb3BlcmF0b3IiPm9wZXJhdGlvbnM8L2E+IGZvciBjb21w YXJpc29uIHdpdGggdGhhdCBmaWVsZCAoZS5nLiA8Y29kZT5lcTwvY29kZT4sIDxjb2RlPm5v dDwvY29kZT4sIDxjb2RlPmJlZ2luczwvY29kZT4sIGV0YykuIERlZmF1bHQgaXMgdXN1YWxs eSA8Y29kZT5lcTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUgbWFu ZCI+dmFsdWU8L3NwYW4+IDogdGhlIDxhIGhyZWY9IiN2YWx1ZSI+dmFsdWVzPC9hPiB3aXRo IHdoaWNoIHRvIGNvbXBhcmUgdGhlIGZpZWxkczwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+bG9naWM8L3NwYW4+IDogaG93IG11bHRpcGxlIHRlc3RzIGFyZSBqb2luZWQ6 IDxzcGFuIGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+IG9yIE9SLiBEZWZhdWx0IGlzIDxzcGFu IGNsYXNzPSJjYXBzIj5BTkQ8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1u YW1lIj5jYXNlX3NlbnNpdGl2ZTwvc3Bhbj4gOiAxID0gY2FzZS1zZW5zaXRpdmUgY29tcGFy aXNvbjsgMCA9IGlnbm9yZSBjYXNlLiBEZWZhdWx0IGlzIDA8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPnBhcmFtX2RlbGltPC9zcGFuPiA6IGRlbGltaXRlciB1c2VkIGJl dHdlZW4gZWFjaCBmaWVsZCwgb3BlcmF0b3Igb3IgdmFsdWUgaW4gYSBtdWx0aS10ZXN0LiBE ZWZhdWx0IGlzIGEgY29tbWEgKCwpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1l Ij5tb2RfZGVsaW08L3NwYW4+IDogZGVsaW1pdGVyIHVzZWQgd2hlbiBzcGVjaWZ5aW5nIGZp ZWxkIG9yIG9wZXJhdG9yIG1vZGlmaWVycyBmb3IgdXJsdmFyLCBwb3N0dmFyLCBzdnJ2YXIg YW5kIHR4cHZhci4gRGVmYXVsdCBpcyBhIGNvbG9uICg6KTwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdHQtbmFtZSI+bGlzdF9kZWxpbTwvc3Bhbj4gOiBkZWxpbWl0ZXIgdXNlZCB3aGVu IHNwZWNpZnlpbmcgYSBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayB2aWEgdGhlIDxjb2RlPmlu PC9jb2RlPiBvciA8Y29kZT5ub3RpbjwvY29kZT4gb3BlcmF0b3JzLiBEZWZhdWx0IGlzIGEg Zm9yd2FyZC1zbGFzaCAoLyk8L2xpPgoJPC91bD4KCgk8cD5UaGUgbGlzdHMgYXJlIHByb2Nl c3NlZCBpbiBvcmRlciwgaS5lLiB0aGUgMXN0IGZpZWxkIHVzZXMgdGhlIDFzdCBvcGVyYXRv ciBpbiB0aGUgbGlzdCBhbmQgY29tcGFyZXMgaXQgdG8gdGhlIDFzdCB2YWx1ZTsgdGhlIDJu ZCBmaWVsZCB1c2VzIHRoZSAybmQgb3BlcmF0b3IgaW4gdGhlIGxpc3QgYW5kIGNvbXBhcmVz IGl0IHRvIHRoZSAybmQgdmFsdWUsIGFuZCBzbyBvbi4gVmFsdWVzIHNob3VsZCB1c3VhbGx5 IGJlIHNwZWNpZmllZCB3aXRoIHBsYWNlaG9sZGVycyB0byBtYWludGFpbiBvcmRlcjogZS5n LiA8Y29kZT52YWx1ZT0mcXVvdDssIDQsLCB0b3AmcXVvdDs8L2NvZGU+PC9wPgoKCTxwPk5v dGUgdGhhdCwgYWx0aG91Z2ggdGhlIGZpcnN0IHRocmVlIGF0dHJpYnV0ZXMgYXJlIGNvbnNp ZGVyZWQgbWFuZGF0b3J5LCBpZiB5b3UgaGFwcGVuIHRvIHJlcXVpcmUgdGhlIGRlZmF1bHQg b3BlcmF0b3IgZm9yIGFsbCB5b3VyIHRlc3RzLCB5b3UgY2FuIHNhZmVseSBvbWl0IDxjb2Rl Pm9wZXJhdG9yPC9jb2RlPi4gU2ltaWxhcmx5IHdpdGggdmFsdWVzOiBpZiB5b3UgYXJlIGVu dGlyZWx5IHRlc3RpbmcgdGhlIGV4aXN0ZW5jZSBvciB0eXBlIG9mIHZhcmlhYmxlcywgeW91 IGNhbiBvbWl0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVyIGlmIHlvdSB3aXNo LiBBbmQgaWYgeW91IGFyZSB0ZXN0aW5nIHRoZSBzYW1lIDxjb2RlPmZpZWxkPC9jb2RlPiBh Z2FpbiBhbmQgYWdhaW4gZm9yIGRpZmZlcmluZyBjb25kaXRpb25zLCB5b3UgY2FuIGxpc3Qg aXQganVzdCBvbmNlIGFzIGEgY29udmVuaWVudCBzaG9ydGN1dC48L3A+CgoJPGg0IGNsYXNz PSJhdHQtbmFtZSAiIGlkPSJmaWVsZCI+ZmllbGQ8L2g0PgoKCTxwPkxpc3Qgb2YgZmllbGQg bG9jYXRpb25zIHRvIGxvb2sgYXQuIFNvbWUgdXNlZnVsIHZhbHVlcyBhcmU6PC9wPgoKCTx1 bD4KCQk8bGk+PGNvZGU+c2VjdGlvbjwvY29kZT48L2xpPgoJCTxsaT48Y29kZT5jYXRlZ29y eTwvY29kZT4gKG9yIDxjb2RlPmNhdGVnb3J5MTwvY29kZT4sIG9yIDxjb2RlPmNhdGVnb3J5 MjwvY29kZT4gaWYgb24gYW4gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2RlPmF1dGhv cmlkPC9jb2RlPiBvciA8Y29kZT5hdXRob3I8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+aWQ8 L2NvZGU+IChmaWxlL2xpbmsvaW1hZ2UvYXJ0aWNsZSBJRCkuIEluIGFuIGluZGl2aWR1YWwg YXJ0aWNsZSBjb250ZXh0LCB1c2UgPGNvZGU+dGhpc2lkPC9jb2RlPiBpbnN0ZWFkPC9saT4K CQk8bGk+PGNvZGU+cXVlcnk8L2NvZGU+ICh0aGUgcXVlcnkgc3RyaW5nIGZyb20gdGhlIHNl YXJjaCBmb3JtKTwvbGk+CgkJPGxpPjxjb2RlPnBnPC9jb2RlPiAodGhlIGN1cnJlbnQgcGFn ZSBudW1iZXIgaW4gbGlzdHMpPC9saT4KCQk8bGk+PGNvZGU+bW9udGg8L2NvZGU+IChjdXJy ZW50IG1vbnRoIGZpZWxkIGZyb20gdGhlIGFkZHJlc3MgYmFyKTwvbGk+CgkJPGxpPjxjb2Rl PnN0YXR1czwvY29kZT4gKGRvY3VtZW50IHN0YXR1czogMjAwLCA0MDQsIDQwMywgZXRjKTwv bGk+CgkJPGxpPjxjb2RlPnBhZ2U8L2NvZGU+ICh0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRY UDwvc3Bhbj4gUGFnZSB0ZW1wbGF0ZSB1c2VkIGJ5IHRoaXMgc2VjdGlvbik8L2xpPgoJCTxs aT48Y29kZT5uZXh0X2lkPC9jb2RlPiAvIDxjb2RlPnByZXZfaWQ8L2NvZGU+IChJRCBvZiBu ZXh0L3ByZXYgZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJPGxpPjxjb2Rl Pm5leHRfdGl0bGU8L2NvZGU+IC8gPGNvZGU+cHJldl90aXRsZTwvY29kZT4oVGl0bGUgb2Yg bmV4dC9wcmV2IGRvY3VtZW50IGlmIG9uIGFydGljbGUgcGFnZSk8L2xpPgoJCTxsaT48Y29k ZT5uZXh0X3V0aXRsZTwvY29kZT4gLyA8Y29kZT5wcmV2X3V0aXRsZTwvY29kZT4gKHVybC10 aXRsZSBvZiBuZXh0L3ByZXYgZG9jdW1lbnQgaWYgb24gYXJ0aWNsZSBwYWdlKTwvbGk+CgkJ PGxpPjxjb2RlPnBlcm1saW5rX21vZGU8L2NvZGU+ICh0YWtlIGFjdGlvbiBiYXNlZCBvbiBv bmUgb2YgdGhlIG1lc3N5L2NsZWFuIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHNj aGVtZXMpPC9saT4KCQk8bGk+PGNvZGU+b3RoZXIgYXJ0aWNsZS9maWxlL2xpbmsgZmllbGQ8 L2NvZGU+IChlLmcuIGJvZHksIGV4Y2VycHQsIGFydGljbGVfaW1hZ2UsIGtleXdvcmRzLCBs aW5rYW5tZSwgZmlsZW5hbWUsIGRvd25sb2FkcywgJiM4MjMwOyk8L2xpPgoJCTxsaT48Y29k ZT5teV9jdXN0b21fZmllbGRfbmFtZTwvY29kZT4gKGFueSBjdXN0b20gZmllbGRzIHlvdSBo YXZlIGRlZmluZWQpPC9saT4KCQk8bGk+PGNvZGU+dXJsdmFyOnZhcl9uYW1lPC9jb2RlPiAo YW55IHZhcmlhYmxlIGluIHRoZSBhZGRyZXNzIGJhciBhZnRlciB0aGUgPGNvZGU+PzwvY29k ZT4pPC9saT4KCQk8bGk+PGNvZGU+cG9zdHZhcjp2YXJfbmFtZTwvY29kZT4gKGFueSB2YXJp YWJsZSBwb3N0ZWQgZnJvbSBhbiA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gZm9y bSk8L2xpPgoJCTxsaT48Y29kZT5zdnJ2YXI6dmFyX25hbWU8L2NvZGU+IChhbnkgc3RhbmRh cmQgc2VydmVyIHZhcmlhYmxlLCBlLmcuIDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFu Pl9VU0VSX0FHRU5UKTwvbGk+CgkJPGxpPjxjb2RlPnR4cHZhcjpteV92YXI8L2NvZGU+IChh bnkgVGV4dHBhdHRlcm4gdmFyaWFibGUgc2V0IHdpdGggPGNvZGU+Jmx0O3R4cDp2YXJpYWJs ZSBuYW1lPSZxdW90O215X3ZhciZxdW90OyAvJmd0OzwvY29kZT4pPC9saT4KCQk8bGk+PGNv ZGU+cGhwdmFyOm15X3ZhcjwvY29kZT4gKGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+UEhQPC9z cGFuPiB2YXJpYWJsZSA8ZW0+aW4gdGhlIGdsb2JhbCBzY29wZTwvZW0+KTwvbGk+CgkJPGxp Pjxjb2RlPnBhcmVudDpvcHRpb25hbF9tb2RpZmllcnM8L2NvZGU+ICh3aGV0aGVyIHRoZSBn aXZlbiBjYXRlZ29yeSBpcyBhIGRlc2NlbmRlbnQgb2YgYW5vdGhlciBjYXRlZ29yeSk8L2xp PgoJCTxsaT48Y29kZT5OVUxMPC9jb2RlPiAodXNlZnVsIHdoZW4gY29tcGFyaW5nIGFyYml0 cmFyeSB2YWx1ZXMgZm9yIGVtcHRpbmVzcyk8L2xpPgoJPC91bD4KCgk8cD5JZiB5b3Ugc3Bl Y2lmeSBhIGZpZWxkIG5hbWUgdGhhdCBkb2VzIG5vdCBleGlzdCwgdGhlIHRleHQgeW91IHVz ZSB3aWxsIGJlIHRha2VuIHZlcmJhdGltIGluIG1vc3QgY2FzZXMuPC9wPgoKCTxwPklmIHlv dSB3aXNoIHRvIGNvbXBhcmUgYSBmaWVsZCB0aGF0IG1pZ2h0IGNvbnRhaW4gPHNwYW4gY2xh c3M9ImNhcHMiPkhUTUw8L3NwYW4+IChlLmcgPGNvZGU+Ym9keTwvY29kZT4pLCBhZGQgdGhl IG1vZGlmaWVyIDxjb2RlPjpOT1RBR1M8L2NvZGU+IHRvIHRoZSBlbmQgb2YgdGhlIGZpZWxk LiBJdCB3aWxsIGhhdmUgaXRzIDxzcGFuIGNsYXNzPSJjYXBzIj5IVE1MPC9zcGFuPiBhbmQg PHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdGFncyBzdHJpcHBlZCBmcm9tIGl0IGFu ZCB3aWxsIGFsc28gYmUgdHJpbW1lZCB0byByZW1vdmUgbGVhZGluZyBhbmQgdHJhaWxpbmcg c3BhY2VzLiBZb3UgbWF5IGNob29zZSB0byBzb2xlbHkgcmVtb3ZlIHNwYWNlcyBmcm9tIGJv dGggdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYW55IGZpZWxkIGJ5IGFkZGluZyA8Y29kZT46VFJJ TTwvY29kZT4gdG8gdGhlIGVuZCBvZiB0aGUgZmllbGQuPC9wPgoKCTxwPlRoZSBzcGVjaWFs IGZpZWxkIDxjb2RlPnBhcmVudDwvY29kZT4gY2hlY2tzIHRoZSBwYXJlbnQgY2F0ZWdvcnkg Zm9yIGEgbWF0Y2guIFVubGlrZSB0aGUgb3RoZXIgZmllbGQgdHlwZXMsIHRoZSBkZWZhdWx0 IDxhIGhyZWY9IiNvcGVyYXRvciI+b3BlcmF0b3I8L2E+IGZvciBwYXJlbnQgaXMgJiM4MjE2 O2NvbnRhaW5zJiM4MjE3Oy4gVGhpcyBpcyBiZWNhdXNlIHRoZSBlbnRpcmUgdHJlZSBpcyBj aGVja2VkIGZvciBhIG1hdGNoLCBzdGFydGluZyBmcm9tIHRoZSB0b3Agb2YgdGhlIHRyZWUg ZG93biB0byB0aGUgY3VycmVudCBjYXRlZ29yeS4gSW50ZXJuYWxseSwgdGhlIHBsdWdpbiBt YWtlcyB1cCBhICYjODIyMDticmVhZGNydW1iIHRyYWlsJiM4MjIxOyBvZiBjYXRlZ29yaWVz IGluIHRoZSBjdXJyZW50IGJyYW5jaCwgZWFjaCBzZXBhcmF0ZWQgYnkgYSBzcGFjZSwgc28g dGVzdGluZyBmb3IgZXF1YWxpdHkgd291bGQgcmVxdWlyZSBwdXR0aW5nIHRoZW0gYWxsIGlu IHRoZSA8YSBocmVmPSIjdmFsdWUiPnZhbHVlPC9hPiBwYXJhbWV0ZXIuPC9wPgoKCTxwPllv dSBhcmUgb2YgY291cnNlIGZyZWUgdG8gY2hvb3NlIGFuIGFsdGVybmF0aXZlIG9wZXJhdG9y OyA8Y29kZT5iZWdpbnM8L2NvZGU+IGlzIHZlcnkgdXNlZnVsIGZvciB0ZXN0aW5nIGlmIHRo ZSB0b3AgbGV2ZWwgY2F0ZWdvcnkgbWF0Y2hlcyB0aGUgb25lIGdpdmVuIGluIHRoZSA8Y29k ZT52YWx1ZTwvY29kZT4gZmllbGQuPC9wPgoKCTxwPklmIHlvdSB1c2UgPGNvZGU+cGFyZW50 OkxWTG48L2NvZGU+LCB0aGUgY29tcGFyaXNvbiB3aWxsIGJlIHJlc3RyaWN0ZWQgdG8gdGhh dCAmIzgyMjA7bGV2ZWwmIzgyMjE7IG9mIHN1Yi1jYXRlZ29yeTsgTFZMMSBpcyB0aGUgJiM4 MjIwO3RvcCYjODIyMTsgbGV2ZWwsIExWTDIgaXMgdGhlIG5leHQgc3ViLWNhdGVnb3J5IGxl dmVsLCBhbmQgc28gb24uIFdoZW4gdXNpbmcgdGhlc2UgbW9kaWZpZXJzLCB0aGUgJiM4MjE2 O2VxJiM4MjE3OyBvcGVyYXRvciBiZWNvbWVzIG1vcmUgdXNlZnVsIGJlY2F1c2UgeW91IGFy ZSBjb21wYXJpbmcgYSBzaW5nbGUgcGFyZW50IGNhdGVnb3J5LjwvcD4KCgk8cD5XaGVuIHVz aW5nIGFydGljbGVzLCB5b3UgY2FuIGZ1cnRoZXIgbW9kaWZ5IHRoZSBiZWhhdmlvdXIgb2Yg dGhlIHBhcmVudCB1c2luZyB0aGUgPGNvZGU+Q0FUbjwvY29kZT4gc3ludGF4ICh3aGVyZSAm IzgyMTY7biYjODIxNzsgaXMgMSBvciAyKS4gU3BlY2lmeWluZyAmIzgyMjA7cGFyZW50JiM4 MjIxOyB3aXRob3V0IDxjb2RlPkNBVG48L2NvZGU+IHdpbGwgdXNlIHRoZSBnbG9iYWwgY2F0 ZWdvcnkgKDxjb2RlPj9jPTwvY29kZT4pLiBJZiB5b3UgYWRkIDxjb2RlPjpDQVRuPC9jb2Rl PiBpdCB3aWxsIGluc3RlYWQgY29tcGFyZSB0aGUgYXJ0aWNsZSYjODIxNztzIGNhdGVnb3J5 MSBvciBjYXRlZ29yeTIgcmVzcGVjdGl2ZWx5LjwvcD4KCgk8cD5Zb3UgY2FuIHVzZSA8c3Bh biBjbGFzcz0iY2FwcyI+Q0FUPC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPkxWTDwv c3Bhbj4gaW4gY29tYmluYXRpb24sIGluZGVwZW5kZW50bHkgb3Igbm90IGF0IGFsbC4gVGhp cyBhbGxvd3MgY29tcGFyaXNvbnMgc3VjaCBhcyAmIzgyMjA7aWYgdGhlIDJuZCBzdWItY2F0 ZWdvcnkgb2YgY2F0ZWdvcnkxIGVxdWFscyBibGFoYmxhaCYjODIyMTsgb3IgJiM4MjIwO2lm IGNhdGVnb3J5MiBpcyBhIGNoaWxkIG9mIGJsYWhibGFoJiM4MjIxOy4gU2VlIDxhIGhyZWY9 IiNlZzQiPkV4YW1wbGUgNDwvYT4uPC9wPgoKCTxwPk9uZSBvdGhlciBzcGVjaWFsIGZpZWxk IGlzIDxjb2RlPk5VTEw8L2NvZGU+LiBUaGlzIGlzIGV4YWN0bHkgd2hhdCBpdCBzYXlzIGl0 IGlzOiBlbXB0eS4gVGhlIHJlYXNvbiBmb3IgaXRzIGluY2x1c2lvbiBpcyB0aGF0IHNvbWV0 aW1lcyB5b3Ugd2lzaCB0byB0ZXN0IHNvbWV0aGluZyB0aGF0IGlzbiYjODIxNzt0IGEgdHJ1 ZSB2YXJpYWJsZSAmIzgyMTI7IGUuZy4gYSByZXBsYWNlbWVudCB2YXJpYWJsZSBmcm9tIHNt ZF92YXJzIG9yIHNtZF9lYWNoICYjODIxMjsgdG8gc2VlIGlmIGl0JiM4MjE3O3MgZW1wdHkg b3Igbm90LjwvcD4KCgk8cD5JZiB5b3Ugd2VyZSB0byBwdXQgdGhpczo8L3A+CgoJPHA+PGNv ZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7e3Jlc3VsdH0mcXVvdDsgb3BlcmF0b3I9 JnF1b3Q7aXNlbXB0eSZxdW90OyZndDs8L2NvZGU+PC9wPgoKCTxwPnlvdSB3b3VsZCBub3Qg Z2V0IHRoZSByZXN1bHQgeW91IGV4cGVjdCAoaXQmIzgyMTc7cyBwcmV0dHkgZXNvdGVyaWMg YnV0IGl0IHJldm9sdmVzIGFyb3VuZCB0aGUgZmFjdCB0aGF0IDxjb2RlPiZxdW90OyZxdW90 OzwvY29kZT4gKGFzIGEgdmFyaWFibGUgbmFtZSkgaXMgbm90IGVtcHR5LCBpdCYjODIxNztz IGludmFsaWQpLiBUbyBnZXQgcm91bmQgdGhpcyB5b3UgbWF5IHVzZSA8c3BhbiBjbGFzcz0i Y2FwcyI+TlVMTDwvc3Bhbj4gYXMgYSBwbGFjZWhvbGRlciBhbmQgbW92ZSB0aGUgdGhpbmcg eW91IHdhbnQgdG8gY2hlY2sgaW50byB0aGUgPGNvZGU+dmFsdWU8L2NvZGU+IGluc3RlYWQs IGUuZzo8L3A+CgoJPHA+PGNvZGU+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7TlVMTCZx dW90OyBvcGVyYXRvcj0mcXVvdDtlcSZxdW90OyB2YWx1ZT0mcXVvdDt7cmVzdWx0fSZxdW90 OyZndDs8L2NvZGU+PC9wPgoKCTxwPndpbGwgdGVzdCB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi Pk5VTEw8L3NwYW4+IG9iamVjdCAoaS5lLiAmIzgyMTY7ZW1wdGluZXNzJiM4MjE3OykgdG8g c2VlIGlmIGl0JiM4MjE3O3MgZXF1YWwgdG8gdGhlIDxjb2RlPntyZXN1bHR9PC9jb2RlPiBy ZXBsYWNlbWVudCB2YXJpYWJsZS4gWW91IGNhbiB1c2Ugc2ltaWxhciBsb2dpYyB0byB0ZXN0 IGZvciBvcHRpb25hbCB2YXJpYWJsZXMgYnkgc3dhcHBpbmcgdGhlIGZpZWxkIGFuZCB2YWx1 ZSwgbGlrZSB0aGlzOjwvcD4KCgk8cD48Y29kZT4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVv dDs3JnF1b3Q7IG9wZXJhdG9yPSZxdW90O2d0JnF1b3Q7IHZhbHVlPSZxdW90O3tyZXN1bHR9 JnF1b3Q7Jmd0OzwvY29kZT48L3A+CgoJPHA+VGhhdCB3b3VsZCBzZWUgaWYgdGhlIHJlcGxh Y2VtZW50IHZhcmlhYmxlIDxjb2RlPntyZXN1bHR9PC9jb2RlPiB3YXMgbGVzcyB0aGFuIG9y IGVxdWFsIHRvIDcgKHRoYXQmIzgyMTc7cyBub3QgYSB0eXBvLCB0aGUgbG9naWMgaXMgcmV2 ZXJzZWQgaW4gdGhpcyBjYXNlOiBpdCBpcyBpbnRlcnByZXRlZCBhczogJiM4MjIwO2lzIDcg Z3JlYXRlciB0aGFuIHtyZXN1bHR9JiM4MjIxOywgd2hpY2ggaXMgdGhlIHNhbWUgYXMgJiM4 MjIwO2lzIHtyZXN1bHR9IGxlc3MgdGhhbiBvciBlcXVhbCB0byA3JiM4MjIxOyEpPC9wPgoK CTxoNCBjbGFzcz0iYXR0LW5hbWUgIiBpZD0ib3BlcmF0b3IiPm9wZXJhdG9yPC9oND4KCgk8 cD5MaXN0IG9mIG9wZXJhdG9ycyB0byBhcHBseSwgaW4gb3JkZXIsIHRvIGVhY2ggZmllbGQu IENob29zZSBmcm9tOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPmVxPC9jb2RlPiBFcXVhbCAo dGhlIGRlZmF1bHQgZm9yIGFsbCBleGNlcHQgJiM4MjE2O3BhcmVudCYjODIxNzspPC9saT4K CQk8bGk+PGNvZGU+bm90PC9jb2RlPiBOb3QgZXF1YWw8L2xpPgoJCTxsaT48Y29kZT5sdDwv Y29kZT4gTGVzcyB0aGFuPC9saT4KCQk8bGk+PGNvZGU+Z3Q8L2NvZGU+IEdyZWF0ZXIgdGhh bjwvbGk+CgkJPGxpPjxjb2RlPmxlPC9jb2RlPiBMZXNzIHRoYW4gb3IgZXF1YWwgdG88L2xp PgoJCTxsaT48Y29kZT5nZTwvY29kZT4gR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvPC9saT4K CQk8bGk+PGNvZGU+aW48L2NvZGU+IEZpZWxkIGlzIG9uZSBvZiBhIGxpc3Qgb2YgdmFsdWVz PC9saT4KCQk8bGk+PGNvZGU+bm90aW48L2NvZGU+IEZpZWxkIGlzIG5vdCBvbmUgb2YgdGhl IGdpdmVuIGxpc3Qgb2YgdmFsdWVzPC9saT4KCQk8bGk+PGNvZGU+ZGl2aXNpYmxlPC9jb2Rl PiBGaWVsZCBpcyBleGFjdGx5IGRpdmlzaWJsZSBieSB0aGUgdmFsdWU8L2xpPgoJCTxsaT48 Y29kZT5iZWdpbnM8L2NvZGU+IEZpZWxkIGJlZ2lucyB3aXRoIGEgc2VxdWVuY2Ugb2YgY2hh cmFjdGVyczwvbGk+CgkJPGxpPjxjb2RlPmNvbnRhaW5zPC9jb2RlPiBGaWVsZCBjb250YWlu cyBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgKGRlZmF1bHQgZm9yICYjODIxNjtwYXJlbnQm IzgyMTc7KTwvbGk+CgkJPGxpPjxjb2RlPmVuZHM8L2NvZGU+IEZpZWxkIGVuZHMgd2l0aCBh IHNlcXVlbmNlIG9mIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48Y29kZT5pc2VtcHR5PC9jb2Rl PiBGaWVsZCBpcyBlbXB0eSAoY29udGFpbnMgbm90aGluZyk8L2xpPgoJCTxsaT48Y29kZT5p c3VzZWQ8L2NvZGU+IEZpZWxkIGhhcyBzb21lIHZhbHVlPC9saT4KCQk8bGk+PGNvZGU+ZGVm aW5lZDwvY29kZT4gRmllbGQgaXMgc2V0ICh1c2VmdWwgd2l0aCB1cmx2YXIgdmFyaWFibGVz KTwvbGk+CgkJPGxpPjxjb2RlPnVuZGVmaW5lZDwvY29kZT4gRmllbGQgaXMgbm90IHNldCwg b3IgbWlzc2luZyBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5l PC9saT4KCQk8bGk+PGNvZGU+aXNudW08L2NvZGU+IEZpZWxkIGlzIGEgbnVtYmVyPC9saT4K CQk8bGk+PGNvZGU+aXNhbHBoYTwvY29kZT4gRmllbGQgY29udGFpbnMgY2hhcmFjdGVycyBv bmx5PC9saT4KCQk8bGk+PGNvZGU+aXNhbG51bTwvY29kZT4gRmllbGQgY29udGFpbnMgYWxw aGFudW1lcmljIGNoYXJhY3RlcnMgb25seTwvbGk+CgkJPGxpPjxjb2RlPmlzbG93ZXI8L2Nv ZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQgaXMgbG93ZXIgY2FzZTwvbGk+CgkJ PGxpPjxjb2RlPmlzdXBwZXI8L2NvZGU+IEV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgZmllbGQg aXMgdXBwZXIgY2FzZTwvbGk+CgkJPGxpPjxjb2RlPmlzcHVuY3Q8L2NvZGU+IEV2ZXJ5IGNo YXJhY3RlciBpbiB0aGUgZmllbGQgaXMgc29tZSBwdW5jdHVhdGlvbiBtYXJrPC9saT4KCQk8 bGk+PGNvZGU+aXNzcGFjZTwvY29kZT4gRXZlcnkgY2hhcmFjdGVyIGluIHRoZSBmaWVsZCBp cyBhIHdoaXRlc3BhY2UgY2hhcmFjdGVyIChvciB0YWIsIG5ld2xpbmUsIGV0Yyk8L2xpPgoJ PC91bD4KCgk8cD5XaXRoIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycyAocHJpbWFyaWx5IGd0 LCBsdCwgZ2UsIGxlKSB5b3UgbWF5IGZpbmQgb2RkIGJlaGF2aW91ciB3aGVuIGNvbXBhcmlu ZyBudW1iZXJzLiBGb3IgZXhhbXBsZSwgPGNvZGU+dXJsdmFyOnBpYyBndCA2PC9jb2RlPiB3 aWxsIHJldHVybiA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gaWYgPGNvZGU+cGlj PC9jb2RlPiBpcyBzZXQgdG8gJiM4MjIwO2ZyZWQmIzgyMjE7LiBUaGlzIGlzIGJlY2F1c2Ug dGhlIHdvcmQgJiM4MjIwO2ZyZWQmIzgyMjE7IChvciBhdCBsZWFzdCB0aGUgJiM4MjIwO2No YXJhY3RlciBmJiM4MjIxOykgaXMgZ3JlYXRlciBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMi PkFTQ0lJPC9zcGFuPiB0YWJsZSB0aGFuIHRoZSAmIzgyMjA7Y2hhcmFjdGVyIDYmIzgyMjE7 LjwvcD4KCgk8cD5UbyBjaXJjdW12ZW50IHRoaXMgcHJvYmxlbSwgeW91IG1heSBhcHBlbmQg PGNvZGU+Ok5VTTwvY29kZT4gdG8gdGhlIGVuZCBvZiBhbnkgb2YgdGhlc2Ugb3BlcmF0b3Jz IHRvIGZvcmNlIHRoZSBwbHVnaW4gdG8gY2hlY2sgdGhhdCB0aGUgdmFsdWVzIGFyZSBpbnRl Z2Vycy48L3A+CgoJPHA+SWYgeW91IHdpc2ggdG8gY29tcGFyZSB0aGUgbGVuZ3RoIG9mIGEg ZmllbGQgb3IgdmFsdWUsIGFwcGVuZCA8Y29kZT46TEVOPC9jb2RlPiB0byBhbnkgb2YgdGhl IG51bWVyaWNhbCBjb21wYXJpc29uIG9wZXJhdG9ycy4gSXQgZG9lc24mIzgyMTc7dCBtYWtl IHNlbnNlIHRvIHVzZSBib3RoIDxjb2RlPjpOVU08L2NvZGU+IGFuZCA8Y29kZT46TEVOPC9j b2RlPiB0b2dldGhlciwgc28gdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLjwvcD4KCgk8 cD5UaGUgPGNvZGU+YmVnaW5zPC9jb2RlPiwgPGNvZGU+ZW5kczwvY29kZT4gYW5kIDxjb2Rl PmNvbnRhaW5zPC9jb2RlPiBvcGVyYXRvcnMsIGFsb25nIHdpdGggYW55IG9mIHRoZSA8Y29k ZT5pczwvY29kZT4gb3BlcmF0b3JzIChleGNlcHQgPGNvZGU+aXNzcGFjZTwvY29kZT4pLCBj YW4gdGFrZSBhbiBleHRyYSBwYXJhbWV0ZXIgYXMgd2VsbC4gU2luY2UgdGhleSBjb21wYXJl IGV2ZXJ5IGNoYXJhY3RlciBhZ2FpbnN0IHRoZSBnaXZlbiBiZWhhdmlvdXIsIHNwYWNlIGNo YXJhY3RlcnMgY2FuIG1lc3MgdGhpbmdzIHVwIGEgYml0LiBGb3IgZXhhbXBsZSA8Y29kZT5m aWVsZD0mcXVvdDtjdXN0b20xJnF1b3Q7IG9wZXJhdG9yPSZxdW90O2lzbG93ZXImcXVvdDs8 L2NvZGU+IHdpbGwgZmFpbCBpZiBjdXN0b20xIGNvbnRhaW5zICYjODIyMDt0aGlzIGlzIGEg dGVzdCYjODIyMTsuIE9yIGNvbXBhcmluZyBzb21ldGhpbmcgdG8gPGNvZGU+Ym9keTwvY29k ZT4gY2FuIGZhaWwgYmVjYXVzZSB0aGUgYm9keSBvZnRlbiBzdGFydHMgd2l0aCBhIG51bWJl ciBvZiBzcGFjZSBjaGFyYWN0ZXJzLiBUbyBjaXJjdW12ZW50IHRoaXMsIGFkZCA8Y29kZT46 Tk9TUEFDRTwvY29kZT4gdG8gdGhlIG9wZXJhdG9yIHdoaWNoIHdpbGwgcmVtb3ZlIGFsbCBz cGFjZXMgZnJvbSB0aGUgc3RyaW5nIGJlZm9yZSB0ZXN0aW5nIGl0LjwvcD4KCgk8cD5Ob3Rl IGFsc28gdGhhdCB3aGlsZSA8Y29kZT5kZWZpbmVkPC9jb2RlPiBhbmQgPGNvZGU+dW5kZWZp bmVkPC9jb2RlPiBkaWZmZXIgc2VtYW50aWNhbGx5IGZyb20gPGNvZGU+aXN1c2VkPC9jb2Rl PiBhbmQgPGNvZGU+aXNlbXB0eTwvY29kZT4gKHJlc3BlY3RpdmVseSksIHRoZSB3YXkgPHNw YW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gYXNzaWducyB2YXJpYWJsZXMgbWVhbnMgdGhh dCwgZm9yIHRoZSBtb3N0IHBhcnQsIHRoZSB0ZXJtcyBhcmUgaW50ZXJjaGFuZ2VhYmxlLiBX aGVuIGRlYWxpbmcgd2l0aCB1cmx2YXJzLCBwb3N0dmFycyBhbmQgc3ZydmFycywgdGhlIHR3 byBzZXRzIG9mIG9wZXJhdG9ycyBiZWhhdmUgaW5kZXBlbmRlbnRseSwgYXMgeW91IHdvdWxk IGV4cGVjdC4gU2VlIDxhIGhyZWY9IiNlZzUiPkV4YW1wbGUgNTwvYT4gZm9yIG1vcmUuIE5l aXRoZXIgPGNvZGU+ZGVmaW5lZDwvY29kZT4gbm9yIDxjb2RlPnVuZGVmaW5lZDwvY29kZT4g bWFrZSBzZW5zZSB3aXRoIDxjb2RlPnBhcmVudDwvY29kZT4sIHNvIHRoZXkgYXJlIGZvcmJp ZGRlbi48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJ2YWx1ZSI+dmFsdWU8L2g0 PgoKCTxwPkxpc3Qgb2YgdmFsdWVzIHRvIGNvbXBhcmUgZWFjaCBmaWVsZCBpbiB0dXJuIHRv LiBDYW4gYmUgc3RhdGljIHZhbHVlcy90ZXh0IG9yIHRoZSBuYW1lIG9mIGFueSA8c3BhbiBj bGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBmaWVsZCwgbGlrZSB0aG9zZSBnaXZlbiBpbiA8YSBo cmVmPSIjZmllbGQiPmZpZWxkPC9hPiAoZXhjZXB0ICYjODIyMDtwYXJlbnQmIzgyMjE7KS48 L3A+CgoJPHA+VG8gZGlzdGluZ3Vpc2ggYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFu PiBmaWVsZCBmcm9tIHN0YXRpYyB0ZXh0LCBwcmVmaXggdGhlIGZpZWxkIG5hbWUgd2l0aCA8 Y29kZT4/PC9jb2RlPi4gRm9yIGV4YW1wbGU6IDxjb2RlPnZhbHVlPSZxdW90O3RpdGxlJnF1 b3Q7PC9jb2RlPiB3aWxsIGNvbXBhcmUgeW91ciBjaG9zZW4gZmllbGQgYWdhaW5zdCB0aGUg d29yZCAmIzgyMjA7dGl0bGUmIzgyMjE7LCB3aGVyZWFzIDxjb2RlPnZhbHVlPSZxdW90Oz90 aXRsZSZxdW90OzwvY29kZT4gd2lsbCBjb21wYXJlIHlvdXIgZmllbGQgYWdhaW5zdCB0aGUg Y3VycmVudCBhcnRpY2xlJiM4MjE3O3MgdGl0bGUuPC9wPgoKCTxwPklmIHlvdSB3aXNoIHRv IGNvbXBhcmUgYSB2YWx1ZSB0aGF0IG1pZ2h0IGNvbnRhaW4gPHNwYW4gY2xhc3M9ImNhcHMi PkhUTUw8L3NwYW4+IChlLmcgPGNvZGU+P2JvZHk8L2NvZGU+KSwgYWRkIHRoZSBtb2RpZmll ciA8Y29kZT46Tk9UQUdTPC9jb2RlPiB0byB0aGUgZW5kIG9mIHRoZSB2YWx1ZS4gSXQgd2ls bCBoYXZlIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gYW5kIDxzcGFuIGNs YXNzPSJjYXBzIj5QSFA8L3NwYW4+IHRhZ3Mgc3RyaXBwZWQgZnJvbSBpdCBhbmQgd2lsbCBh bHNvIGJlIHRyaW1tZWQgdG8gcmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHNwYWNlcy4g WW91IG1heSBjaG9vc2UgdG8gc29sZWx5IHJlbW92ZSBzcGFjZXMgZnJvbSBib3RoIHRoZSBz dGFydCBhbmQgZW5kIG9mIGFueSB2YWx1ZSBieSBhZGRpbmcgPGNvZGU+OlRSSU08L2NvZGU+ IHRvIHRoZSBlbmQgb2YgdGhlIHZhbHVlLjwvcD4KCgk8cD5Ob3RlIHRoYXQgeW91IG1heSBm aW5kIHVzaW5nIGRvdWJsZS1xdW90ZXMgaW4gZmllbGRzIGdpdmVzIHVuZXhwZWN0ZWQgcmVz dWx0cy4gVGhleSBhcmUgYmVzdCBhdm9pZGVkLCBvciB3b3JrZWQgYXJvdW5kIGJ5IHVzaW5n IDxjb2RlPmNvbnRhaW5zPC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmVxPC9jb2RlPi48L3A+ CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJsb2dpYyI+bG9naWM8L2g0PgoKCTxwPkNh biBiZSBvbmUgb2YgPGNvZGU+YW5kPC9jb2RlPiAodGhlIGRlZmF1bHQpIG9yIDxjb2RlPm9y PC9jb2RlPi4gSWYgdXNpbmcgPGNvZGU+YW5kPC9jb2RlPiwgYWxsIGNvbmRpdGlvbnMgbXVz dCBiZSBtZXQgZm9yIGEgPHNwYW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+IHJlc3VsdC4g SWYgdXNpbmcgPGNvZGU+b3I8L2NvZGU+LCBhbnkgb2YgdGhlIGNvbmRpdGlvbnMgdGhhdCBt YXRjaCB3aWxsIGdpdmUgYSA8c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj4gcmVzdWx0 LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9ImNhc2VzZW5zZSI+Y2FzZV9zZW5z aXRpdmU8L2g0PgoKCTxwPkJ5IGRlZmF1bHQsIGFsbCBjb21wYXJpc29ucyBhcmUgY2FzZS1p bnNlbnNpdGl2ZSAoMCkuIElmIHlvdSB3aXNoIHRvIG1ha2UgdGhlbSBzZW5zaXRpdmUgdG8g Y2FwdGlsaXNhdGlvbiwgc3BlY2lmeSA8Y29kZT5jYXNlX3NlbnNpdGl2ZT0mcXVvdDsxJnF1 b3Q7PC9jb2RlPi4gTm90ZSB0aGF0IGlmIHVzaW5nIDxjb2RlPmlzbG93ZXI8L2NvZGU+IG9y IDxjb2RlPmlzdXBwZXI8L2NvZGU+IGluIGEgY29tcGFyaXNvbiwgY2FzZSBzZW5zaXRpdml0 eSB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc3dpdGNoZWQgb24gd2hpbGUgdGhlIHRlc3QgaXMg dGFraW5nIHBsYWNlLjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9InBhcmFtZGVs aW0iPnBhcmFtX2RlbGltPC9oND4KCgk8cD5Zb3Ugbm9ybWFsbHkgc3BlY2lmeSBjb21tYS1z ZXBhcmF0ZWQgbGlzdHMgdG8gdGhlIDxjb2RlPmZpZWxkPC9jb2RlPiwgPGNvZGU+b3BlcmF0 b3I8L2NvZGU+IGFuZCA8Y29kZT52YWx1ZTwvY29kZT4gcGFyYW1ldGVycy4gU29tZXRpbWVz IHRoaXMgbWlnaHQgbm90IGJlIGRlc2lyYWJsZSBpZiB5b3UgaGF2ZSB1c2VkIHRoYXQgY2hh cmFjdGVyIGluIHRoZSBuYW1lIG9mIGEgY3VzdG9tIGZpZWxkLCBmb3IgZXhhbXBsZS4gVGhp cyBvcHRpb24gYWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIGRlbGltaXRlciB0byBhbG1vc3Qg YW55dGhpbmcgeW91IGxpa2UsIGUuZy4gc3BlY2lmeWluZyA8Y29kZT5wYXJhbV9kZWxpbT0m cXVvdDsvLyZxdW90OzwvY29kZT4gbWVhbnMgeW91IHdvdWxkIHNwZWNpZnkgPGVtPmFsbDwv ZW0+IHlvdXIgcGFyYW1ldGVyIGxpc3RzIGxpa2UgdGhpczo8L3A+CgoJPHA+PGNvZGU+Zmll bGQ9JnF1b3Q7c2VjdGlvbiAvLyB1cmx2YXI6dHlwZSZxdW90OyBvcGVyYXRvcj0mcXVvdDtl cSAvLyBiZWdpbnMmcXVvdDsgdmFsdWU9JnF1b3Q7YW5pbWFscyAvLyB0aWdlciZxdW90Ozwv Y29kZT48L3A+CgoJPGg0IGNsYXNzPSJhdHQtbmFtZSAiIGlkPSJtb2RkZWxpbSI+bW9kX2Rl bGltPC9oND4KCgk8cD5WZXJ5IHNpbWlsYXIgdG8gPGEgaHJlZj0iI3BhcmFtZGVsaW0iPnBh cmFtX2RlbGltPC9hPiwgdGhpcyBnb3Zlcm5zIHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdl ZW4gYW4gb3B0aW9uIGFuZCBpdHMgbW9kaWZpZXIgKGUuZy4gdGhlIHRoaW5nIHNlcGFyYXRp bmcgdXJsdmFyLCBwb3N0dmFyLCBzdnJ2YXIgb3IgdHhwdmFyIGZyb20gdGhlIHZhcmlhYmxl IG5hbWUsIG9yIHBhcmVudCBmcm9tIDxjb2RlPkxWTDwvY29kZT4gYW5kIDxjb2RlPkNBVDwv Y29kZT4sIGFuZCBhbHNvIHRoZSBjaGFyYWN0ZXIocykgdGhhdCBzZXBhcmF0ZSBhbiBvcGVy YXRvciBmcm9tIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+TlVNPC9zcGFuPiBvciA8c3BhbiBj bGFzcz0iY2FwcyI+Tk9TUEFDRTwvc3Bhbj4gbW9kaWZpZXJzKS4gSXQgaXMgdGhlIGNvbG9u ICg6KSBieSBkZWZhdWx0LjwvcD4KCgk8aDQgY2xhc3M9ImF0dC1uYW1lICIgaWQ9Im1vZGRl bGltIj5saXN0X2RlbGltPC9oND4KCgk8cD5Gb3IgdXNlIHdpdGggdGhlIDxjb2RlPmluPC9j b2RlPiBhbmQgPGNvZGU+bm90aW48L2NvZGU+IG9wZXJhdG9ycywgdGhpcyBpcyB0aGUgZGVs aW1pdGVyIGJldHdlZW4gdmFsdWVzLiBJdCBpcyB0aGUgZm9yd2FyZC1zbGFzaCAoLykgYnkg ZGVmYXVsdC4gQSBjb250cml2ZWQgZXhhbXBsZTo8L3A+Cgo8cHJlPjxjb2RlPiZsdDt0eHA6 c21kX2lmIGZpZWxkPSZxdW90O3R4cHZhcjpsZXZlbCZxdW90OyBvcGVyYXRvcj0mcXVvdDtp biZxdW90OwogICAgIHZhbHVlPSZxdW90OzEvMi8zLzUvOC8xMy8yMS8zNCZxdW90OyZndDsK ICAmbHQ7cCZndDtSZXN1bHQgaXMgYSBGaWJvbmFjY2kgdmFsdWUhJmx0Oy9wJmd0OwombHQ7 L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Ob3RlIHRoYXQgaW4gYWxsICYj ODIxNjtkZWxpbSYjODIxNzsgYXR0cmlidXRlcywgc29tZSBjaGFyYWN0ZXIgc2VxdWVuY2Vz IG1heSBjYXVzZSBwcm9ibGVtcyAocXVvdGVzICYjODIxMjsgc2luZ2xlIG9yIGRvdWJsZSAm IzgyMTI7IHNwcmluZyB0byBtaW5kOyBvdGhlcnMgbGlrZSBwYXJlbnRoZXNlcyBtYXkgYWxz byBjYXVzZSB0aGUgcGx1Z2luIHRvIGV4cGxvZGUpLjwvcD4KCgk8aDM+UmVwbGFjZW1lbnQg dGFnczwvaDM+CgoJPHA+RXZlcnkgZmllbGQgb3IgdmFsdWUgdGhhdCB5b3UgcmVmZXIgdG8g aW4geW91ciBzbWRfaWYgdGFnIGJlY29tZXMgYXZhaWxhYmxlIHdpdGhpbiB0aGUgY29udGFp bmluZyBibG9jayBzbyB5b3UgY2FuIGRpc3BsYXkgaXRzIGNvbnRlbnRzIGlmIHlvdSB3aXNo LiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgaXMgbm90IG11Y2ggdXNlIGJ1dCBpdCBjYW4gYmUg dmVyeSB1c2VmdWwgd2l0aCB0aGUgPGNvZGU+aW48L2NvZGU+IG9wZXJhdG9yIG9yIHRoZSA8 Y29kZT46TEVOPC9jb2RlPiBtb2RpZmllciAuIEZvciBpbnN0YW5jZSwgaWYgeW91IGhhdmUg YXNrZWQgc21kX2lmIHRvIHRlc3QgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ IHZhcmlhYmxlIG5hbWVkICYjODIxNjtsZXZlbCYjODIxNzsgYW5kIHRvbGQgaXQgdG8gY29t cGFyZSBpdCB0byB0aGUgY3VzdG9tIGZpZWxkIGxhYmVsbGVkICYjODIxNjthbGxvd2FibGVf bGV2ZWxzJiM4MjE3OywgdHdvIHRhZ3MgYmVjb21lIGF2YWlsYWJsZSB3aGljaCB5b3UgY2Fu IHVzZSB3aXRoaW4gdGhlIGNvbnRhaW5pbmcgYmxvY2s6PC9wPgoKCTx1bD4KCQk8bGk+PGNv ZGU+e3NtZF9pZl9sZXZlbH08L2NvZGU+IHdvdWxkIGRpc3BsYXkgdGhlIHZhbHVlIG9mIHRo ZSAmIzgyMTY7bGV2ZWwmIzgyMTc7IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IHZh cmlhYmxlPC9saT4KCQk8bGk+PGNvZGU+e3NtZF9pZl9hbGxvd2FibGVfbGV2ZWxzfTwvY29k ZT4gd291bGQgZGlzcGxheSB0aGUgY29udGVudHMgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZSYj ODIxNztzIGN1c3RvbSBmaWVsZDwvbGk+Cgk8L3VsPgoKCTxwPlRoZSByZXBsYWNlbWVudCB0 YWdzIGFyZSBhbHdheXMgcHJlZml4ZWQgd2l0aCA8Y29kZT5zbWRfaWZfPC9jb2RlPiBzbyB0 aGV5IGRvbiYjODIxNzt0IGNsYXNoIHdpdGggdGhlIG9uZXMgaW4gc21kX2dhbGxlcnkgKGZv ciBleGFtcGxlLCB3aGVuIHVzaW5nIHNtZF9pZiBpbnNpZGUgYW4gc21kX2dhbGxlcnkgdGFn KS4gSWYgeW91IGFyZSBjb21wYXJpbmcgYSBmaXhlZC12YWx1ZSBmaWVsZCAoc3VjaCBhcyA8 Y29kZT5maWVsZD0mcXVvdDtOVUxMJnF1b3Q7PC9jb2RlPiBvciA8Y29kZT52YWx1ZT0mcXVv dDsxMiZxdW90OzwvY29kZT4gb3Igc21kX2dhbGxlcnkmIzgyMTc7cyA8Y29kZT52YWx1ZT0m cXVvdDt7Y2F0ZWdvcnl9JnF1b3Q7PC9jb2RlPikgdGhlIG5hbWUgb2YgdGhlIHJlcGxhY2Vt ZW50IHRhZ3MgYXJlIDxjb2RlPntzbWRfaWZfZmllbGROfTwvY29kZT4gZm9yIGZpZWxkcyBh bmQgPGNvZGU+e3NtZF9pZl92YWxOfTwvY29kZT4gZm9yIHZhbHVlcywgd2hlcmUgTiBpcyB0 aGUgdGVzdCBudW1iZXIgc3RhcnRpbmcgZnJvbSAxLjwvcD4KCgk8cD5UaGVyZSBhcmUgYWxz byB0d28gJiM4MjE2O2xlbmd0aCYjODIxNzsgcmVwbGFjZW1lbnQgdGFncy4gRm9sbG93aW5n IGEgc2ltaWxhciBjb252ZW50aW9uIHRvIGFib3ZlLCB0aGVzZSBhcmUgcHJlZml4ZWQgd2l0 aCA8Y29kZT5zbWRfaWZfbGVuXzwvY29kZT4uIElmIHlvdSBnZXQgc3R1Y2ssIHRlbXBvcmFy aWx5IHN3aXRjaCA8Y29kZT5kZWJ1Zz0mcXVvdDsxJnF1b3Q7PC9jb2RlPiBvbiB0byBzZWUg dGhlIHJlcGxhY2VtZW50cyBhdmFpbGFibGUgYW5kIHRoZWlyIGFzc29jaWF0ZWQgbmFtZXMv dmFsdWVzLjwvcD4KCgk8cD5TZWUgPGEgaHJlZj0iI2VnOCI+RXhhbXBsZSA4PC9hPiBhbmQg PGEgaHJlZj0iI2VnOSI+OTwvYT4gZm9yIG1vcmUuPC9wPgoKCTxoMj5FeGFtcGxlczwvaDI+ CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtzZWN0aW9uLCBp ZCZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2JlZ2lucywgZ3QmcXVvdDsKICAgICB2YWx1 ZT0mcXVvdDtsaW9uLCAxMiZxdW90OyZndDsKICZsdDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7 dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0b2RheSwgdGhhbmtzJmx0Oy9wJmd0Owom bHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5DaGVja3MgaWYgdGhlIGN1 cnJlbnQgc2VjdGlvbiBuYW1lIGJlZ2lucyB3aXRoIHRoZSB3b3JkICYjODIyMDtsaW9uJiM4 MjIxOyBhbmQgdGhlIGFydGljbGUgSUQgaXMgZ3JlYXRlciB0aGFuIDEyLiBEaXNwbGF5cyB0 aGUgYXJ0aWNsZSBpZiBib3RoIGNvbmRpdGlvbnMgYXJlIG1ldCBvciBkaXNwbGF5cyB0aGUg dGV4dCAmIzgyMjA7Tm90IHRvZGF5LCB0aGFua3MmIzgyMjE7IGlmIG5vdC48L3A+CgoJPGgz IGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xh c3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtzdW1tYXJ5LCBjYXRlZ29y eSwgdXJsdmFyOnBpYyZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2lzdXNlZCwgZXEsIGlz bnVtJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7LCBhbmltYWwgLCZxdW90OyAmZ3Q7CiAmbHQ7 dHhwOmFydGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9k YXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+Q2hlY2tzIGlmIHRoZSBjdXN0b20gZmllbGQgbGFiZWxsZWQgJiM4MjIwO3N1bW1h cnkmIzgyMjE7IGhhcyBzb21lIGRhdGEgaW4gaXQsIGNoZWNrcyBpZiB0aGUgZ2xvYmFsIGNh dGVnb3J5IGVxdWFscyAmIzgyMjA7YW5pbWFsJiM4MjIxOyBhbmQgdGVzdHMgaWYgdGhlIHVy bHZhciA8Y29kZT5waWM8L2NvZGU+IGlzIG51bWVyaWMgKGUuZy4gPGNvZGU+P3BpYz01PC9j b2RlPikuPC9wPgoKCTxwPklmIGFsbCB0aGVzZSBjb25kaXRpb25zIGFyZSBtZXQgdGhlIGFy dGljbGUgaXMgZGlzcGxheWVkLCBlbHNlIHRoZSBtZXNzYWdlIGlzIHNob3duLiBOb3RlIHRo YXQgPGNvZGU+aXN1c2VkPC9jb2RlPiBhbmQgPGNvZGU+aXNudW08L2NvZGU+IGRvbiYjODIx Nzt0IHRha2UgYXJndW1lbnRzIGZvciA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIHRoZWlyIHBv c2l0aW9ucyBhcmUgaGVsZCBieSBlbXB0eSBjb21tYXMgKHRlY2huaWNhbGx5IHRoZSBsYXN0 IGNvbW1hIGlzbiYjODIxNzt0IG5lZWRlZCBidXQgaXQgaGVscHMga2VlcCBldmVyeXRoaW5n IG5lYXQgaWYgeW91IGFkZCBmdXJ0aGVyIHRlc3RzIGxhdGVyIG9uKS48L3A+CgoJPGgzIGlk PSJlZzMiPkV4YW1wbGUgMzwvaDM+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9 ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDthcnRpY2xlX2ltYWdlLCBzdnJ2 YXI6SFRUUF9VU0VSX0FHRU5UJnF1b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7ZXEsIGNvbnRh aW5zJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJsdmFyOnBpYywgU2FmYXJpJnF1b3Q7CiAg ICAgbG9naWM9JnF1b3Q7b3ImcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0 O3R4cDplbHNlIC8mZ3Q7CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsK Jmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Q29tcGFyZXMgKGZvciBl cXVhbGl0eSkgdGhlIGN1cnJlbnQgYXJ0aWNsZSBpbWFnZSBpZCB3aXRoIHRoZSB2YWx1ZSBv ZiB0aGUgdXJsIHZhcmlhYmxlIDxjb2RlPnBpYzwvY29kZT4gYW5kIGNoZWNrcyBpZiB0aGUg dmFsdWUgb2YgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5IVFRQPC9zcGFuPl9VU0VSX0FHRU5U IHN0cmluZyBjb250YWlucyAmIzgyMjA7U2FmYXJpJiM4MjIxOy4gVGhpcyBleGFtcGxlIHVz ZXMgdGhlICYjODIxNjtvciYjODIxNzsgbG9naWMsIGhlbmNlIGlmIDxlbT5laXRoZXI8L2Vt PiBjb25kaXRpb24gaXMgbWV0IHRoZSBhcnRpY2xlIGlzIHNob3duLCBvdGhlcndpc2UgdGhl ICYjODIxNjtub3QgdG9kYXkmIzgyMTc7IG1lc3NhZ2UgaXMgZGlzcGxheWVkLjwvcD4KCgk8 aDMgaWQ9ImVnNCI+RXhhbXBsZSA0PC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3BhcmVudDpMVkwyJnF1 b3Q7CiAgICAgb3BlcmF0b3I9JnF1b3Q7ZXEmcXVvdDsKICAgICB2YWx1ZT0mcXVvdDttYW1t YWwmcXVvdDsmZ3Q7CiAmbHQ7dHhwOmFydGljbGUgLyZndDsKJmx0O3R4cDplbHNlIC8mZ3Q7 CiAmbHQ7cCZndDtOb3QgdG9kYXksIHRoYW5rcyZsdDsvcCZndDsKJmx0Oy90eHA6c21kX2lm Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+Q2hlY2tzIHRoZSAybmQgc3ViLWNhdGVnb3J5IG9m IHRoZSBnbG9iYWwgY2F0ZWdvcnkmIzgyMTc7cyB0cmVlIHRvIHNlZSBpZiBpdCBlcXVhbHMg JiM4MjIwO21hbW1hbCYjODIyMTsuIElmIGl0IGRvZXMsIHNob3cgdGhlIGFydGljbGU7IGlm IG5vdCBzaG93IHRoZSBtZXNzYWdlLiBSZW1vdmluZyB0aGUgPGNvZGU+OkxWTDI8L2NvZGU+ ICh3aGljaCBhbGxvd3MgeW91IHRvIGFsc28gcmVtb3ZlIHRoZSBvcGVyYXRvciBwYXJhbWV0 ZXIgdG8gZm9yY2UgdGhlIGNvbXBhcmlzb24gdG8gYmUgdGhlIGRlZmF1bHQgJiM4MjIwO2Nv bnRhaW5zJiM4MjIxOykgY2hlY2tzIGlmIHRoZSBjdXJyZW50IGdsb2JhbCBjYXRlZ29yeSBp cyBhIGNoaWxkIG9mICYjODIxNjttYW1tYWwmIzgyMTc7IChhdCBhbnkgbGV2ZWwpLjwvcD4K Cgk8cD5DaGFuZ2UgdGhlIGZpZWxkIHRvIDxjb2RlPnBhcmVudDpDQVQxPC9jb2RlPiB0byBz ZWUgaWYgdGhlIGFydGljbGUmIzgyMTc7cyBjYXRlZ29yeTEgbWF0Y2hlcyAmIzgyMTY7bWFt bWFsJiM4MjE3OyBhdCBhbnkgbGV2ZWwsIG9yIHVzZSA8Y29kZT5maWVsZD0mcXVvdDtwYXJl bnQ6Q0FUMTpMVkwyJnF1b3Q7PC9jb2RlPiB0byBjb21iaW5lIHRoZSBjaGVja3MuPC9wPgoK CTxoMyBpZD0iZWc1Ij5FeGFtcGxlIDU8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFyOnBpYywg dXJsdmFyOnBhZ2UmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtndDpOVU0sIHVuZGVmaW5l ZCZxdW90OwogICAgIHZhbHVlPSZxdW90Oz9hcnRpY2xlX2ltYWdlLCZxdW90OyZndDsKICZs dDt0eHA6YXJ0aWNsZSAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O05vdCB0 b2RheSwgdGhhbmtzJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3By ZT4KCgk8cD5UZXN0cyBpZiB0aGUgdXJsIHZhcmlhYmxlIDxjb2RlPnBpYzwvY29kZT4gaXMg c3RyaWN0bHkgbnVtZXJpY2FsbHkgZ3JlYXRlciB0aGFuIHRoZSB2YWx1ZSBpbiB0aGUgY3Vy cmVudCBhcnRpY2xlJiM4MjE3O3MgPGNvZGU+YXJ0aWNsZV9pbWFnZTwvY29kZT4gZmllbGQg YW5kIHRoYXQgdGhlIHVybCB2YXJpYWJsZSA8Y29kZT5wYWdlPC9jb2RlPiBpcyBtaXNzaW5n IGZyb20gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IGFkZHJlc3MuIENvbXBh cmUgdGhlIG91dGNvbWUgb2YgdGhpcyB0ZXN0IHdpdGggdGhlIG90aGVyIG9wZXJhdG9ycyB1 c2luZyB0aGUgZm9sbG93aW5nIHRhYmxlIHdoZW4gdGVzdGluZyB0aGUgPGNvZGU+cGFnZTwv Y29kZT4gdXJsdmFyOjwvcD4KCgk8dGFibGU+CgkJPHRyPgoJCQk8dGg+PHNwYW4gY2xhc3M9 ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+PC9zcGFuPiA8L3RoPgoJCQk8 dGg+ZGVmaW5lZCA8L3RoPgoJCQk8dGg+dW5kZWZpbmVkIDwvdGg+CgkJCTx0aD5pc3VzZWQg PC90aD4KCQkJPHRoPmlzZW1wdHkgPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBpbmRl eC5waHA/cGFnIDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNz PSJjYXBzIj5GQUxTRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9 ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJ PHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFu Pjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9 ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRk PiBpbmRleC5waHA/cGFnZT0gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2FwcyI+PHNw YW4gY2xhc3M9ImNhcHMiPlRSVUU8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFu IGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFMU0U8L3NwYW4+PC9zcGFuPiA8 L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+RkFM U0U8L3NwYW4+PC9zcGFuPiA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJjYXBzIj48c3Bh biBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJPC90cj4KCQk8dHI+ CgkJCTx0ZD4gaW5kZXgucGhwP3BhZ2U9NCA8L3RkPgoJCQk8dGQ+IDxzcGFuIGNsYXNzPSJj YXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VFJVRTwvc3Bhbj48L3NwYW4+IDwvdGQ+CgkJCTx0 ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5GQUxTRTwvc3Bhbj48 L3NwYW4+IDwvdGQ+CgkJCTx0ZD4gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJj YXBzIj5UUlVFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQkJPHRkPiA8c3BhbiBjbGFzcz0iY2Fw cyI+PHNwYW4gY2xhc3M9ImNhcHMiPkZBTFNFPC9zcGFuPjwvc3Bhbj4gPC90ZD4KCQk8L3Ry PgoJPC90YWJsZT4KCgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2PC9oMz4KCgk8cD5QdXQgdGhp cyBpbnNpZGUgeW91ciA8Y29kZT5wbGFpbmxpbmtzPC9jb2RlPiBmb3JtIGFuZCBleGVjdXRl IGEgPGNvZGU+Jmx0O3R4cDpsaW5rbGlzdCAvJmd0OzwvY29kZT4gZnJvbSBhbiBhcnRpY2xl IHBhZ2UvZm9ybTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDtpZCZxdW90OwogICAgIG9wZXJhdG9yPSZx dW90O2dlOk5VTSwgbGU6TlVNJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7dXJsdmFyOm1pbiwg dXJsdmFyOm1heCZxdW90OyZndDsKICAmbHQ7dHhwOmxpbmtkZXNjdGl0bGUgLyZndDsmbHQ7 YnIgLyZndDsKJmx0Oy90eHA6c21kX2lmJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCB3 aWxsIGxpc3Qgb25seSB0aGUgbGlua3MgdGhhdCBoYXZlIElEcyBiZXR3ZWVuIHRoZSA8Y29k ZT5taW48L2NvZGU+IGFuZCA8Y29kZT5tYXg8L2NvZGU+IHZhcmlhYmxlcyBzcGVjaWZpZWQg b24gdGhlIGFkZHJlc3MgYmFyLiBOb3RpY2UgdGhhdCB0aGUgaWQgZmllbGQgaXMgb25seSBs aXN0ZWQgb25jZSBhbmQgZWFjaCBvcGVyYXRvciBpcyBhcHBsaWVkIHRvIGl0IGluIHR1cm4u PC9wPgoKCTxoMyBpZD0iZWc3Ij5FeGFtcGxlIDc8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfaWYgZmllbGQ9JnF1b3Q7dXJsdmFy OnByb2R1Y3RfY29kZSZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2lzYWxudW0mcXVvdDsm Z3Q7CiAgJmx0O3R4cDpvdXRwdXRfZm9ybSBmb3JtPSZxdW90O3Nob3dfcHJvZHVjdCZxdW90 OyAvJmd0OwombHQ7dHhwOmVsc2UgLyZndDsKICZsdDtwJmd0O0ludmFsaWQgcHJvZHVjdCBj b2RlJmx0Oy9wJmd0OwombHQ7L3R4cDpzbWRfaWYmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5U ZXN0cyB0byBzZWUgaWYgdGhlIHByb2R1Y3RfY29kZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJM PC9zcGFuPiB2YXJpYWJsZSBpcyBhbHBoYW51bWVyaWMgYW5kIGRpc3BsYXlzIGEgZm9ybSBp ZiBzby48L3A+CgoJPGgzIGlkPSJlZzgiPkV4YW1wbGUgODwvaDM+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9pZiBmaWVsZD0mcXVvdDt1 cmx2YXI6c29ydF9vcmRlciZxdW90OwogICAgIG9wZXJhdG9yPSZxdW90O2luJnF1b3Q7CiAg ICAgdmFsdWU9JnF1b3Q7aWQvcHJpY2Uvc2l6ZS9jb2xvdXImcXVvdDsmZ3Q7CiAgJmx0O3Am Z3Q7U29ydGluZyB2YWx1ZXMgYnkge3NtZF9pZl9zb3J0X29yZGVyfSZsdDsvcCZndDsKICAv LyBEbyBzb21lIHN0dWZmCiZsdDt0eHA6ZWxzZSAvJmd0OwogIC8vIFVzZSBhIGRlZmF1bHQg c29ydCwgb3Igc2hvdyBhbiBlcnJvciBoZXJlCiZsdDsvdHhwOnNtZF9pZiZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPkJ5IHVzaW5nIHRoZSByZXBsYWNlbWVudCB0YWcge3NtZF9pZl9zb3J0 X29yZGVyfSB5b3UgaGF2ZSBwbHVja2VkIHRoZSB2YWx1ZSBmcm9tIHRoZSA8c3BhbiBjbGFz cz0iY2FwcyI+VVJMPC9zcGFuPiBiYXIgYW5kIGluc2VydGVkIGl0IGludG8gdGhlIGFydGlj bGUuIFVzZWZ1bCB3aGVuIHVzaW5nIHRoZSA8Y29kZT5pbjwvY29kZT4gb3IgPGNvZGU+bm90 aW48L2NvZGU+IG9wZXJhdG9ycyBiZWNhdXNlLCBhbHRob3VnaCB5b3Uga25vdyB0aGF0IHRo ZSBmaWVsZCBtYXRjaGVkIG9uZSBvZiB0aGUgdmFsdWVzIGluIHlvdXIgbGlzdCwgeW91IHdv dWxkIG90aGVyd2lzZSBub3Qga25vdyB3aGljaCBvbmUgaGFzIGJlZW4gZ2l2ZW4gb24gdGhl IGFkZHJlc3MgYmFyLjwvcD4KCgk8aDMgaWQ9ImVnOSI+RXhhbXBsZSA5PC9oMz4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6cGhwJmd0OwpnbG9i YWwgJGJvZHlleDsKJGJvZHlleCA9IGJvZHkoYXJyYXkoKSkgLiBleGNlcnB0KGFycmF5KCkp OwombHQ7L3R4cDpwaHAmZ3Q7CiZsdDt0eHA6c21kX2lmIGZpZWxkPSZxdW90O3BocHZhcjpi b2R5ZXgmcXVvdDsKICAgICBvcGVyYXRvcj0mcXVvdDtndDpMRU4mcXVvdDsKICAgICB2YWx1 ZT0mcXVvdDs1MDAmcXVvdDsmZ3Q7CiAgJmx0O3AmZ3Q7WW91IGFyZSBhIGJpZyBib3kgYXQg e3NtZF9pZl9sZW5fYm9keWV4fQogICAgIGNoYXJhY3RlcnMgbG9uZyEmbHQ7L3AmZ3Q7CiZs dDsvdHhwOnNtZF9pZiZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMiBjbGFzcz0iY2hhbmdlbG9n Ij5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+MzAgRGVjIDA3IHwgMC4xIHwgSW5pdGlh bCByZWxlYXNlPC9saT4KCQk8bGk+MzAgRGVjIDA3IHwgMC4yIHwgQWRkZWQgcGFyZW50IGNh dGVnb3J5IGNoZWNraW5nICh0aGFua3MgdGhlX2dob3N0KTwvbGk+CgkJPGxpPjAyIEphbiAw OCB8IDAuMyB8IEFkZGVkIGRlZmluZWQvdW5kZWZpbmVkIGFuZCBzdHJpY3QgbnVtZXJpYyBj b21wYXJpc29uczwvbGk+CgkJPGxpPjA2IEphbiAwOCB8IDAuNCB8IEFkZGVkIDxjb2RlPj88 L2NvZGU+IG5vdGF0aW9uIHRvIGFsbG93IHRoZSB2YWx1ZSB0byByZWFkIDxzcGFuIGNsYXNz PSJjYXBzIj5UWFA8L3NwYW4+IGZpZWxkczsgYmV0dGVyIHF1b3RlIHN1cHBvcnQgKGJvdGgg dGhhbmtzIE5laWxBKTwvbGk+CgkJPGxpPjA2IEphbiAwOCB8IDAuNDEgfCBGaXhlZCBsb3dl ciBjYXNlIGZpZWxkIG5hbWVzIGFuZCB1bmRlZmluZWQgaW5kZXggZXJyb3IgKHRoYW5rcyBw ZXRlcmopPC9saT4KCQk8bGk+MTQgSmFuIDA4IHwgMC41IHwgQWRkZWQgY2FzZV9zZW5zaXRp dmUgb3B0aW9uOyBtYWRlICYjODIxNjtjb250YWlucyYjODIxNzsgdGhlIGRlZmF1bHQgZm9y ICYjODIxNjtwYXJlbnQmIzgyMTc7IHRlc3RzOyBpbXByb3ZlZCBoZWxwIChhbGwgdGhhbmtz IHRoZV9naG9zdCk7IGFkZGVkIGRlbGltIG9wdGlvbnM8L2xpPgoJCTxsaT4xNSBKYW4gMDgg fCAwLjUxIHwgRml4ZWQgZGVmaW5lZC91bmRlZmluZWQgc3ludGF4IGVycm9yOyB0aWdodGVu ZWQgaXN1c2VkL2lzZW1wdHkgdG8gZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIGRlZmluZWQvdW5k ZWZpbmVkPC9saT4KCQk8bGk+MjUgTWF5IDA4IHwgMC42IHwgRml4ZWQgJiM4MjE2O3VuZGVm aW5lZCBpbmRleCYjODIxNzsgZXJyb3JzICh0aGFua3MgcmVkYm90IGFuZCB0aGVfZ2hvc3Qp IDsgYWRkZWQgbW9yZSBwcmV0ZXh0IHZhcmlhYmxlcyA7IGFkZGVkIG1vcmUgPGNvZGU+aXM8 L2NvZGU+IGNoZWNrcyAoYW5kIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Tk9TUEFDRTwvc3Bh bj4gbW9kaWZpZXIpIDsgYWxsb3dlZCBmaWxlIGFuZCBsaW5rIHRlc3RzIChpbmNsdWRpbmcg cGFyZW50IGNhdGVnb3JpZXMpPC9saT4KCQk8bGk+MjYgTWF5IDA4IHwgMC42MSB8IEZpeGVk IHN0dXBpZCBvdmVyc2lnaHQgaW4gZmllbGQgbmFtZSBnZW5lcmF0aW9uIHRvIGFsbG93IGFy Yml0cmFyeSBuYW1lcyBpbnN0ZWFkIG9mIGZvcmNpbmcgJHRoaXNhcnRpY2xlICh0aGFua3Mg dG8gSm9hbmEgQ2FydmFsaG8gZm9yIGxlYWRpbmcgbWUgdG8gdGhpcyk8L2xpPgoJCTxsaT4x MSBKdW4gMDggfCAwLjYyIHwgRml4ZWQgaW5jb3JyZWN0IHJlc3VsdCBpZiBldmFsKCkgaXMg ZW1wdHkgOyBhZGRlZCA8c3BhbiBjbGFzcz0iY2FwcyI+TlVMTDwvc3Bhbj4gZmllbGQgb2Jq ZWN0PC9saT4KCQk8bGk+MTAgU2VwIDA4IHwgMC43IHwgRml4ZWQgd2FybmluZyBpZiBlbXB0 eSBjdXN0b20gZmllbGQgaW4gdmFsdWUgKHRoYW5rcyB2aXN1YWxwZW9wbGUpIDsgYWRkZWQg dHhwdmFyIHN1cHBvcnQgKHRoYW5rcyB0aGVfZ2hvc3QpIDsgYWRkZWQgdGhpc2ltYWdlIHN1 cHBvcnQgKGZvciB0aGUgZnV0dXJlKSA7IGFkZGVkIG9wZXJhdG9ycyA8Y29kZT5pbjwvY29k ZT4sIDxjb2RlPm5vdGluPC9jb2RlPiBhbmQgdGhlIDxjb2RlPmxpc3RfZGVsaW08L2NvZGU+ IGF0dHJpYnV0ZTsgZW5hYmxlZCByZXBsYWNlbWVudCB0YWdzIGZvciBtYXRjaGVkIHZhcmlh YmxlczwvbGk+CgkJPGxpPjAxIE9jdCAwOCB8IDAuNzEgfCBGaXhlZCB0aGUgZml4IGZvciBl bXB0eSBjdXN0b20gZmllbGRzIGltcGxlbWVudGVkIGluIDAuNyAodGhhbmtzIG1hcHUvdmlz dWFscGVvcGxlKTwvbGk+CgkJPGxpPjAxIE9jdCAwOCB8IDAuNzIgfCBBZGRlZCA8Y29kZT46 Tk9UQUdTPC9jb2RlPiAodGhhbmtzIG1hcHUpPC9saT4KCQk8bGk+MTMgT2N0IDA4IHwgMC43 MyB8IEFkZGVkIDxjb2RlPjpOT1NQQUNFPC9jb2RlPiB0byA8Y29kZT5iZWdpbnM8L2NvZGU+ LCA8Y29kZT5lbmRzPC9jb2RlPiBhbmQgPGNvZGU+Y29udGFpbnM8L2NvZGU+ICh0aGFua3Mg bWFwdSksIGFkZGVkIHBocHZhciBzdXBwb3J0LCA8Y29kZT46TEVOPC9jb2RlPiBtb2RpZmll ciBhbmQgbGVuZ3RoIHJlcGxhY2VtZW50IHRhZ3MgKGFsbCB0aGFua3MgdGhlX2dob3N0KTwv bGk+CgkJPGxpPjEzIE9jdCAwOCB8IDAuNzQgfCBCdWcgZml4IHRoZSBzbWRfaWZfIG5hbWVz IG9mIHZhbHMgYW5kIGZpZWxkcyB0byBhdm9pZCBjbGFzaGVzLiBOb3cgbnVtZXJpY2FsbHkg aW5kZXhlZDwvbGk+CgkJPGxpPjAyIERlYyAwOCB8IDAuNzUgfCBBZGRlZCA8Y29kZT5kaXZp c2libGU8L2NvZGU+IG9wZXJhdG9yICh0aGFua3MgZ29tZWRpYSkgOyBhbGxvdyBzaG9ydC1j aXJjdWl0IG9mIGZpZWxkcyAodGhhbmtzIHJlZGJvdCk8L2xpPgoJCTxsaT4yMCBNYXIgMDkg fCAwLjc2IHwgQWRkZWQgPGNvZGU+cG9zdHZhcjwvY29kZT4gZmllbGQgdHlwZSAodGhhbmtz IGtvc3RhczQ1KTwvbGk+CgkJPGxpPjIyIE1hciAwOSB8IDAuNzcgfCBBZGRlZCA8Y29kZT46 VFJJTTwvY29kZT4gbW9kaWZpZXIgKHRoYW5rcyBnb21lZGlhKTwvbGk+Cgk8L3VsPgoKICA8 L2Rpdj4KPCEtLSAtLS0gQkVHSU4gUExVR0lOIENTUyAtLS0gLS0+CjxzdHlsZSB0eXBlPSJ0 ZXh0L2NzcyI+CiNzbWRfaGVscCB7IGxpbmUtaGVpZ2h0OjEuMyA7fQojc21kX2hlbHAgY29k ZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQ6IDEwNSUvMTMwJSAiQ291cmllciBOZXciLCBj b3VyaWVyLCBtb25vc3BhY2U7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGQ0M7fQojc21kX2hl bHAgY29kZS5ibG9jayB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyOjFweCBkb3R0ZWQg Izk5OTsgYmFja2dyb3VuZC1jb2xvcjogI2YwZTY4YzsgZGlzcGxheTpibG9jazsgbWFyZ2lu OjEwcHggMTBweCAyMHB4OyBwYWRkaW5nOjEwcHg7IH0KI3NtZF9oZWxwIGE6bGluaywgI3Nt ZF9oZWxwIGE6dmlzaXRlZCB7IGNvbG9yOiBibHVlOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7 IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibHVlOyBwYWRkaW5nLWJvdHRvbToxcHg7fQoj c21kX2hlbHAgYTpob3ZlciwgI3NtZF9oZWxwIGE6YWN0aXZlIHsgY29sb3I6IGJsdWU7IHRl eHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIGJsdWU7IHBh ZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250OiAy MHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2VudGVy OyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsgcGFk ZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fucy1z ZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzY5MzsgZm9udDogYm9sZCAxMnB4IEFy aWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAw O3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xk IDExcHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjog MTBweCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdHQt bmFtZSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3Vu ZDojZWVlOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lk dGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRf aGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6 LjVlbSAwO30KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPgoiO3M6 MzoibWQ1IjtzOjMyOiIyYmI0N2U0Y2I5YjI4OTI4OTFmNTI0NjFmZDZlZjc5YSI7fQ==