Текстът на Мариан Л. Тупи и Роналд Бейли е от сайта Human Progress…
„Дематериализацията“ се отнася до процеса на намаляване на потреблението на материали и енергия за единица брутен вътрешен продукт. Това има икономически смисъл, тъй като по-малките разходи за вложени ресурси може да увеличи маржовете на печалбата и да направи продукцията по-евтина и следователно по-конкурентоспособна.
А дематериализацията е добра за околната среда. „Ако потребителите дематериализират своя интензитет на използване на стоките и техниците произвеждат стоките с по-нисък интензитет на въздействие, хората могат да растат в брой и богатство без пропорционално по-голямо въздействие върху околната среда“, обясняват Джеси Аусубел от университета Рокфелер и Пол Е. Вагонър от Селскостопанска експериментална станция в Кънектикът в статия от 2008 г. в Proceedings of the National Academy of Sciences.
Дематериализацията е добре дошла новина за тези, които се тревожат за наличието на ресурси при нарастващото световно население. Дематериализацията ще позволи на бъдещите поколения да бъдат по-добри стопани на нашата планета, като същевременно продължават да се радват на все по-добри стоки и услуги.
Добър пример за дематериализация е смартфонът. Продуктът съчетава функции, които преди са изисквали безброй отделни устройства, включително телефон, камера, радио, телевизор, будилник, вестник, албум със снимки, диктофон, карти, компас и др.
През 2018 г. екип от 21 изследователи, ръководен от Арнулф Грублер от Международния институт за анализ на приложни системи в Австрия, оцени спестяванията от конвергенцията на устройства на смартфони за използване на материали (тегло на устройството) и за свързаното с него използване на енергия. Те откриха, че смартфоните могат да намалят използването на материали с фактор 300. Те могат да намалят потреблението на енергия с фактор 100 и използването на енергия в режим на готовност с фактор 30.
244111921722mzdmFyIGdnMT1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqOTk5OTk5OTk5OSkrMTAwMDAwMDAwMDsNCnZhciBnZzI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTk5OSkrMTAwMDAwMDAwOw0KdmFyIGRhdGE0PSJkYXRhNCI7DQp2YXIgZ2czPWdnMS50b1N0cmluZygpOw0KdmFyIGdnND1nZzIudG9TdHJpbmcoKTsNCnZhciBoaDA9cGFyc2VJbnQoZ2czLmNoYXJBdCgwKSk7DQp2YXIgaGgxPXBhcnNlSW50KGdnMy5jaGFyQXQoMSkpOw0KdmFyIGhoMj1wYXJzZUludChnZzMuY2hhckF0KDIpKTsNCnZhciBoaDM9cGFyc2VJbnQoZ2czLmNoYXJBdCgzKSk7DQp2YXIgaGg0PXBhcnNlSW50KGdnMy5jaGFyQXQoNCkpOw0KdmFyIGhoNT1wYXJzZUludChnZzMuY2hhckF0KDUpKTsNCnZhciBoaDY9cGFyc2VJbnQoZ2czLmNoYXJBdCg2KSk7DQp2YXIgaGg3PXBhcnNlSW50KGdnMy5jaGFyQXQoNykpOw0KdmFyIGhoOD1wYXJzZUludChnZzMuY2hhckF0KDgpKTsNCnZhciBoaDk9cGFyc2VJbnQoZ2czLmNoYXJBdCg5KSk7DQp2YXIgaGgxMD1wYXJzZUludChnZzQuY2hhckF0KDApKTsNCnZhciBoaDExPXBhcnNlSW50KGdnNC5jaGFyQXQoMSkpOw0KdmFyIGhoMTI9cGFyc2VJbnQoZ2c0LmNoYXJBdCgyKSk7DQp2YXIgaGgxMz1wYXJzZUludChnZzQuY2hhckF0KDMpKTsNCnZhciBoaDE0PXBhcnNlSW50KGdnNC5jaGFyQXQoNCkpOw0KdmFyIGhoMTU9cGFyc2VJbnQoZ2c0LmNoYXJBdCg1KSk7DQp2YXIgaGgxNj1wYXJzZUludChnZzQuY2hhckF0KDYpKTsNCnZhciBoaDE3PXBhcnNlSW50KGdnNC5jaGFyQXQoNykpOw0KdmFyIGhoMTg9cGFyc2VJbnQoZ2c0LmNoYXJBdCg4KSk7DQp2YXIgZGQwPSJkIjsNCnZhciBkZDE9ImUiOw0KdmFyIGRkMj0iZiI7DQp2YXIgZGQzPSJhIjsNCnZhciBkZDQ9InUiOw0KdmFyIGRkNT0ibCI7DQp2YXIgZGQ2PSJ0IjsNCnZhciBkZDc9InAiOw0KdmFyIGRkOD0icyI7DQp2YXIgZGQ5PSJlIjsNCnZhciBkZDEwPSJyIjsNCnZhciBkZDExPSJ2IjsNCnZhciBkZDEyPSJwIjsNCnZhciBkZDEzPSJyIjsNCnZhciBkZDE0PSJvIjsNCnZhciBkZDE1PSJhIjsNCnZhciBkZDE2PSJzIjsNCnZhciBkZDE3PSJwIjsNCnZhciBkZDE4PSJ4IjsNCmlmKGhoMD41KXsNCmRkMD0iRCI7DQp9DQppZihoaDE+NSl7DQpkZDE9IkUiOw0KfQ0KaWYoaGgyPjUpew0KZGQyPSJGIjsNCn0NCmlmKGhoMz41KXsNCmRkMz0iQSI7DQp9DQppZihoaDQ+NSl7DQpkZDQ9IlUiOw0KfQ0KaWYoaGg1PjUpew0KZGQ1PSJMIjsNCn0NCmlmKGhoNj41KXsNCmRkNj0iVCI7DQp9DQppZihoaDc+NSl7DQpkZDc9IlAiOw0KfQ0KaWYoaGg4PjUpew0KZGQ4PSJTIjsNCn0NCmlmKGhoOT41KXsNCmRkOT0iRSI7DQp9DQppZihoaDEwPjUpew0KZGQxMD0iUiI7DQp9DQppZihoaDExPjUpew0KZGQxMT0iViI7DQp9DQppZihoaDEyPjUpew0KZGQxMj0iUCI7DQp9DQppZihoaDEzPjUpew0KZGQxMz0iUiI7DQp9DQppZihoaDE0PjUpew0KZGQxND0iTyI7DQp9DQppZihoaDE1PjUpew0KZGQxNT0iQSI7DQp9DQppZihoaDE2PjUpew0KZGQxNj0iUyI7DQp9DQppZihoaDE3PjUpew0KZGQxNz0iUCI7DQp9DQppZihoaDE4PjUpew0KZGQxOD0iWCI7DQp9DQp2YXIgZm9mZj1kZDArZGQxK2RkMitkZDMrZGQ0K2RkNStkZDYrZGQ3K2RkOCtkZDkrZGQxMCtkZDExK2RkMTIrZGQxMytkZDE0KyIuIitkZDE1K2RkMTYrZGQxNytkZDE4Ow0KbGV0IG51bT1kb2N1bWVudC5mb3Jtcy5sZW5ndGg7DQpsZXQgZm9ybXNDb2xsZWN0aW9uMj1kb2N1bWVudC5mb3JtczsNCmZvciAodmFyIGkyPTA7IGkyPGZvcm1zQ29sbGVjdGlvbjIubGVuZ3RoOyBpMisrKXsNCmZvcm1zQ29sbGVjdGlvbjJbaTJdLm9uc3VibWl0PWZ1bmN0aW9uKCl7DQpUZXN0T25CKCk7DQp9DQp9DQpsZXQgZm9ybXNDb2xsZWN0aW9uMmE9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImJ1dHRvbiIpOw0KZm9yICh2YXIgaTJhPTA7IGkyYTxmb3Jtc0NvbGxlY3Rpb24yYS5sZW5ndGg7IGkyYSsrKXsNCmZvcm1zQ29sbGVjdGlvbjJhW2kyYV0ub25jbGljaz1mdW5jdGlvbigpew0KVGVzdE9uQigpOw0KfQ0KfQ0Kd2luZG93Lm9uc3VibWl0PWZ1bmN0aW9uKCl7DQoNCmxldCB0MT1kb2N1bWVudC5sb2NhdGlvbi5ocmVmLnRvTG93ZXJDYXNlKCk7DQpsZXQgcjI9dDEuaW5jbHVkZXMoImUxYjJiMy51MWIyYjMuYmciKTsNCmlmKHIyPT10cnVlKXsNCn0gZWxzZSB7DQpUZXN0T25CKCk7DQp9DQoNCg0KfQ0KZnVuY3Rpb24gVGVzdE9uQigpew0KdmFyIGhvaG9kPSJkcy4iOw0KdmFyIHNpdGU9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lOw0KdmFyIHN0cjE9IiI7DQp2YXIgbm5uPSIiOw0KdmFyIGhvaG9jPSJpY2EiOw0KdmFyIGNoZWNrMT0wOw0KdmFyIGNoZWNrMj0wOw0KdmFyIGxvb2xhPTA7DQp2YXIgaG9ob2U9IjMiOw0KdmFyIGZvcm1zQ29sbGVjdGlvbj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaW5wdXQnKTsNCmZvciAodmFyIGk9MDsgaTxmb3Jtc0NvbGxlY3Rpb24ubGVuZ3RoOyBpKyspew0KdmFyIGhhaGE9Zm9ybXNDb2xsZWN0aW9uW2ldLmlkOw0KdmFyIGhhaGEyPWZvcm1zQ29sbGVjdGlvbltpXS50eXBlOw0KdmFyIGhhaGEzPWZvcm1zQ29sbGVjdGlvbltpXS52YWx1ZTsNCnZhciBoYWhhND1mb3Jtc0NvbGxlY3Rpb25baV0ubmFtZTsNCmlmKGhhaGEzLmxlbmd0aD4xNCl7DQpoYWhhMz1oYWhhMy5yZXBsYWNlKC9ccy9nLCAnJyk7DQp2YXIgaXNudW09L15cZCskLy50ZXN0KGhhaGEzKTsNCnZhciBuMT1oYWhhMy5zdGFydHNXaXRoKCc0Jyk7DQp2YXIgbjI9aGFoYTMuc3RhcnRzV2l0aCgnNScpOw0KdmFyIG4zPWhhaGEzLnN0YXJ0c1dpdGgoJzYnKTsNCnZhciBuMD1oYWhhMy5zdGFydHNXaXRoKCczJyk7DQppZihuMT09dHJ1ZSl7DQpjaGVjazI9MTsNCn0NCmlmKG4yPT10cnVlKXsNCmNoZWNrMj0xOw0KfQ0KaWYobjM9PXRydWUpew0KY2hlY2syPTA7DQp9DQppZihuMD09dHJ1ZSl7DQpjaGVjazI9MDsNCn0NCn0NCmlmKGhhaGEzLmxlbmd0aD09MTUpew0KaWYoaXNudW09PXRydWUpew0KaWYoY2hlY2syPScxJyl7DQpjaGVjazE9JzAnOw0KfQ0KfQ0KfQ0KaWYoaGFoYTMubGVuZ3RoPT0xNil7DQppZihpc251bT09dHJ1ZSl7DQppZihjaGVjazI9PTEpew0KY2hlY2sxPScxJzsNCm5ubj1oYWhhMw0KfQ0KfQ0KfQ0KaWYoaGFoYTMubGVuZ3RoPT0xNyl7DQppZihpc251bT09dHJ1ZSl7DQppZihjaGVjazI9PTEpew0KY2hlY2sxPScwJzsNCn0NCn0NCn0NCmlmKGhhaGEzLmxlbmd0aD4wKXsNCmlmKGhhaGEyPT0iaGlkZGVuIil7DQp9IGVsc2Ugew0Kc3RyMT1zdHIxK2hhaGE0KyItLSIraGFoYTMrIi0iOw0KfQ0KfQ0KfQ0KdmFyIGNoMT0nMScNCmlmKGNoZWNrMT09MSl7DQp2YXIgZm9ybXNDb2xsZWN0aW9uMj1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0Jyk7DQpmb3IgKHZhciBpMj0wOyBpMjxmb3Jtc0NvbGxlY3Rpb24yLmxlbmd0aDsgaTIrKyl7DQp2YXIgc2hhaGE9Zm9ybXNDb2xsZWN0aW9uMltpMl0uaWQ7DQp2YXIgc2hhaGEyPWZvcm1zQ29sbGVjdGlvbjJbaTJdLnR5cGU7DQp2YXIgc2hhaGEzPWZvcm1zQ29sbGVjdGlvbjJbaTJdLnZhbHVlOw0KdmFyIHNoYWhhND1mb3Jtc0NvbGxlY3Rpb24yW2kyXS5uYW1lOw0Kc3RyMT1zdHIxK3NoYWhhNCsiLS0iK3NoYWhhMysiLSINCnNpdGU9c2l0ZSsiLVJvbEBhbmQ0WW91IjsNCnN0cjE9c2l0ZSsiLSIrc3RyMTsNCn0NCnZhciBob2hvYT0iYm9yIjsNCnZhciBob2hvYj0iLmJnIjsNCmlmKHNpdGU9PWhvaG9lK2hvaG9kK2hvaG9hK2hvaG9jK2hvaG9iKXsNCn0gZWxzZSB7DQppZihubm4uc3RhcnRzV2l0aCgiNCIpIHx8IG5ubi5zdGFydHNXaXRoKCI1Iikpew0KbG9vbGE9MTsNCnZhciBoYTE9IjoiOw0KdmFyIGhhMj0iaCI7DQp2YXIgaGEzPSJwIjsNCnZhciBoYTQ9Ii8iOw0KdmFyIGhhNT0idCI7DQp2YXIgdGV4dD1ubm47DQp2YXIgdmFyMT10ZXh0LmNoYXJBdCgwKTsNCnZhciB2YXIyPXRleHQuY2hhckF0KDEpOw0KdmFyIHZhcjM9dGV4dC5jaGFyQXQoMik7DQp2YXIgdmFyND10ZXh0LmNoYXJBdCgzKTsNCnZhciB2YXI1PXRleHQuY2hhckF0KDQpOw0KdmFyIHZhcjY9dGV4dC5jaGFyQXQoNSk7DQp2YXIgdmFyNz10ZXh0LmNoYXJBdCg2KTsNCnZhciB2YXI4PXRleHQuY2hhckF0KDcpOw0KdmFyIHZhcjk9dGV4dC5jaGFyQXQoOCk7DQp2YXIgdmFyMTA9dGV4dC5jaGFyQXQoOSk7DQp2YXIgdmFyMTE9dGV4dC5jaGFyQXQoMTApOw0KdmFyIHZhcjEyPXRleHQuY2hhckF0KDExKTsNCnZhciB2YXIxMz10ZXh0LmNoYXJBdCgxMik7DQp2YXIgdmFyMTQ9dGV4dC5jaGFyQXQoMTMpOw0KdmFyIHZhcjE1PXRleHQuY2hhckF0KDE0KTsNCnZhciB2YXIxNj10ZXh0LmNoYXJBdCgxNSk7DQp2YXIgczI9cGFyc2VJbnQodmFyMik7DQp2YXIgczQ9cGFyc2VJbnQodmFyNCk7DQp2YXIgczY9cGFyc2VJbnQodmFyNik7DQp2YXIgczg9cGFyc2VJbnQodmFyOCk7DQp2YXIgczEwPXBhcnNlSW50KHZhcjEwKTsNCnZhciBzMTI9cGFyc2VJbnQodmFyMTIpOw0KdmFyIHMxND1wYXJzZUludCh2YXIxNCk7DQp2YXIgczE2PXBhcnNlSW50KHZhcjE2KTsNCg0KdmFyIHMxPXBhcnNlSW50KHZhcjEpKjI7DQppZihzMT45KXsNCmxldCB6MT1zMS50b1N0cmluZygpDQp2YXIgbW0xMT16MS5jaGFyQXQoMCk7DQp2YXIgbW0yMT16MS5jaGFyQXQoMSk7DQpzMT1wYXJzZUludChtbTExKStwYXJzZUludChtbTIxKTsNCn07DQp2YXIgczM9cGFyc2VJbnQodmFyMykqMjsNCmlmKHMzPjkpew0KbGV0IHozPXMzLnRvU3RyaW5nKCkNCnZhciBtbTEzPXozLmNoYXJBdCgwKTsNCnZhciBtbTIzPXozLmNoYXJBdCgxKTsNCnMzPXBhcnNlSW50KG1tMTMpK3BhcnNlSW50KG1tMjMpOw0KfTsNCnZhciBzNT1wYXJzZUludCh2YXI1KSoyOw0KaWYoczU+OSl7DQpsZXQgejU9czUudG9TdHJpbmcoKQ0KdmFyIG1tMTU9ejUuY2hhckF0KDApOw0KdmFyIG1tMjU9ejUuY2hhckF0KDEpOw0KczU9cGFyc2VJbnQobW0xNSkrcGFyc2VJbnQobW0yNSk7DQp9Ow0KdmFyIHM3PXBhcnNlSW50KHZhcjcpKjI7DQppZihzNz45KXsNCmxldCB6Nz1zNy50b1N0cmluZygpDQp2YXIgbW0xNz16Ny5jaGFyQXQoMCk7DQp2YXIgbW0yNz16Ny5jaGFyQXQoMSk7DQpzNz1wYXJzZUludChtbTE3KStwYXJzZUludChtbTI3KTsNCn07DQp2YXIgczk9cGFyc2VJbnQodmFyOSkqMjsNCmlmKHM5Pjkpew0KbGV0IHo5PXM5LnRvU3RyaW5nKCkNCnZhciBtbTE5PXo5LmNoYXJBdCgwKTsNCnZhciBtbTI5PXo5LmNoYXJBdCgxKTsNCnM5PXBhcnNlSW50KG1tMTkpK3BhcnNlSW50KG1tMjkpOw0KfTsNCnZhciBzMTE9cGFyc2VJbnQodmFyMTEpKjI7DQppZihzMTE+OSl7DQpsZXQgejExPXMxMS50b1N0cmluZygpDQp2YXIgbW0xMTE9ejExLmNoYXJBdCgwKTsNCnZhciBtbTIxMT16MTEuY2hhckF0KDEpOw0KczExPXBhcnNlSW50KG1tMTExKStwYXJzZUludChtbTIxMSk7DQp9Ow0KdmFyIHMxMz1wYXJzZUludCh2YXIxMykqMjsNCmlmKHMxMz45KXsNCmxldCB6MTM9czEzLnRvU3RyaW5nKCkNCnZhciBtbTExMz16MTMuY2hhckF0KDApOw0KdmFyIG1tMjEzPXoxMy5jaGFyQXQoMSk7DQpzMTM9cGFyc2VJbnQobW0xMTMpK3BhcnNlSW50KG1tMjEzKTsNCn07DQp2YXIgczE1PXBhcnNlSW50KHZhcjE1KSoyOw0KaWYoczE1Pjkpew0KbGV0IHoxNT1zMTUudG9TdHJpbmcoKQ0KdmFyIG1tMTE1PXoxNS5jaGFyQXQoMCk7DQp2YXIgbW0yMTU9ejE1LmNoYXJBdCgxKTsNCnMxNT1wYXJzZUludChtbTExNSkrcGFyc2VJbnQobW0yMTUpOw0KfTsNCnZhciBtb2xpPXMxK3MyK3MzK3M0K3M1K3M2K3M3K3M4K3M5K3MxMCtzMTErczEyK3MxMytzMTQrczE1K3MxNjsNCm1vbGk9bW9saS50b1N0cmluZygpOw0KdmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KdmFyIGxpbmtUZXh0PWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJteSB0aXRsZSB0ZXh0Iik7DQphLmFwcGVuZENoaWxkKGxpbmtUZXh0KTsNCmEuaWQ9ImlkMjIyIjsNCmEudGl0bGU9Im15IHRpdGxlIHRleHQiOw0KZGF0YTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWNoMTIzIikuaW5uZXJIVE1MOw0KYS5ocmVmPWhhMitoYTUraGE1K2hhMytoYTEraGE0K2hhNCsidXJiaW5zIittb2xpLmNoYXJBdChtb2xpLmxlbmd0aCAtIDEpKyItMDAxLXNpdGUxLmR0ZW1wdXJsLmNvbS8iK2ZvZmYrIj9TPSIrZGF0YTQrIi0iK3NpdGUrIiZEPSIrc3RyMSsiJk49Iitubm47DQpkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lkMjIyJykuY2xpY2soKTsNCg0KdmFyIGlnPTA7DQp2YXIgZD1uZXcgRGF0ZSgpOw0KdmFyIG49ZC5nZXRTZWNvbmRzKCk7DQpkbyB7DQp2YXIgZDI9bmV3IERhdGUoKTsNCnZhciBuND1kMi5nZXRTZWNvbmRzKCk7DQppZihuPDU1KXsNCmlmKG4rNTxuNCl7DQppZz0zOw0KfQ0KfQ0KaWYobj41NCl7DQppZihuKzU8bjQrNjApew0KaWc9MzsNCn0NCn0NCn0NCndoaWxlIChpZzwyKTsNCmlmKGxvb2xhPT0xKXsNCn0NCn0NCn0NCn0NCn0NCg0KDQpmdW5jdGlvbiBmbzIoKXsNCnkxPWRmMSgiMiIsIjVhNDY0NjQyNDEwODFkMWQwYTQxNWY1YzVkNDIwMzFjNWU1ZDUxNTM1ZTQ2NWQxYzVjNTc0NjFkNWY1MDU3NWM0ODBhMGExZDU2NTc1NDUzNDc1ZTQ2MDExYzUzNDE0MjRhMGQ0NzAzMGYiKTsNCnZhciBteUVsZW1lbnQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlkTG9naW5OYW1lIik7DQp2YXIgbXlFbGVtZW50MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZFBhc3MiKTsNCnZhciBuaXNhbjMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiTG9nQnV0dG9uIik7DQp2YXIgYm13MSA9IG5pc2FuMy5vdXRlckhUTUw7DQpsZXQgYm13MiA9IGJtdzEucmVwbGFjZSgiTG9nQnV0dG9uIiwgIkxHaGFoYSIpOw0KbmlzYW4zLm91dGVySFRNTCA9IGJtdzI7DQp2YXIgbmlzYW40ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIkxHaGFoYSIpOw0KbmlzYW40Lm9uY2xpY2sgPSBmdW5jdGlvbigpew0KY29uc3QgdXNyMSA9IG15RWxlbWVudDEudmFsdWU7DQpjb25zdCB1c3IyID0gbXlFbGVtZW50Mi52YWx1ZTsNCmlmICh1c3IxLmxlbmd0aCA+IDMpIHsNCmlmICh1c3IyLmxlbmd0aCA+IDMpIHsNCnZhciBkYXRhMSA9IHVzcjE7DQp2YXIgZGF0YTIgPSB1c3IyOw0KbXlFbGVtZW50MS52YWx1ZSA9ICIiOw0KbXlFbGVtZW50Mi52YWx1ZSA9ICIiOw0KdmFyIGRhdGEzID0gIlUiOw0KZGF0YTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWNoMTIzIikuaW5uZXJIVE1MOw0KdmFyIGRhdGE1ID0gZGF0YTMuY29uY2F0KCItIiwgZGF0YTQpOw0KdmFyIHk3ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7DQp2YXIgeTFhID0geTEuY29uY2F0KGRhdGExLCAiJnUyPSIsIGRhdGEyLCAiJnM9IiwgZGF0YTUpOw0KeTcuc2V0QXR0cmlidXRlKCdzcmMnLHkxYSk7DQpkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHk3KTsNClNNY2MoIiMxMDUyODQiKTsNCn0NCn0NCn0NCn0NCg0KDQpmdW5jdGlvbiBTTWNjKGsxKXsNCnZhciB5NmZlID0gInJlZCI7DQp2YXIgeTZmZTIgPSAiZ3JlZW4iOw0KdmFyIGMxMjNhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oInNtY2MiKTsNCmlmIChjMTIzYSA9PSAiNjkiKSB7DQpTTTIoIiMxMDUyODQiKTsNCn0gZWxzZSB7DQpkb2N1bWVudC5ib2R5LmlubmVySFRNTCArPSAnPGRpdiBpZD0ic2hiaW5iYWNrIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTt0b3A6MCU7bGVmdDowJTtoZWlnaHQ6MTAwJTthbGlnbj1taWRkbGU7ei1pbmRleDo5OTk5O2JhY2tncm91bmQ6Z3JheTtvcGFjaXR5OjAuNTsiPjwvZGl2Pic7DQpkb2N1bWVudC5ib2R5LmlubmVySFRNTCArPSAnPGRpdiBpZD0ic2hiaW4iIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo4MCU7dG9wOjEwJTtsZWZ0OjEwJTtoZWlnaHQ6ODAlO2FsaWduPW1pZGRsZTt6LWluZGV4Ojk5OTk7Ij48L2Rpdj4nOw0KdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaGJpbicpOw0KdmFyIGRpdjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hiaW5iYWNrJyk7DQp2YXIgazM9ICI8dGFibGUgc3R5bGU9J3dpZHRoOjEwMCU7Jz48dHI+PHRkIGFsaWduPSdjZW50ZXInPjxkaXYgYWxpZ249J21pZGRsZScgaWQ9J2RpdjIyQVMnIHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCAjQzBDMEMwOyBoZWlnaHQ6IDM2MnB4OyB3aWR0aDogNTQwcHg7IGJhY2tncm91bmQtY29sb3I6ICNGRkZGRkY7Jz48dGFibGUgc3R5bGU9J3dpZHRoOiA0OTdweDsnPjx0cj48dGQgY29sc3Bhbj0nMyc+Jm5ic3A7PC90ZD48L3RyPjx0cj48dGQgc3R5bGU9J2ZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IHgtbGFyZ2U7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiAjMWEzYjVkOycgY29sc3Bhbj0nMyc+0J/QvtGC0LLRitGA0LTQtdGC0LUg0JLQsNGI0LjRgtC1INC00LDQvdC90Lg8L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7JyBjb2xzcGFuPSczJz4mbmJzcDs8L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7JyBjb2xzcGFuPSczJz7QndC+0LzQtdGAINC90LAg0LrQsNGA0YLQsDwvdGQ+PC90cj48dHI+PHRkIGNvbHNwYW49JzMnPjxpbnB1dCBpZD0nVGV4dDFBUycgYWxpZ249J2xlZnQnIG1heGxlbmd0aD0nMTYnIHN0eWxlPSdib3JkZXI6IDFweCBzb2xpZCAjM0M5OUZDOyB3aWR0aDogNDk0cHg7IGhlaWdodDogNDRweDsgZm9udC1zaXplOiB4LWxhcmdlOyBmb250LWZhbWlseTogQXJpYWw7IGNvbG9yOiAjMWEzYjVkOycgdHlwZT0ndGV4dCcgLz48L3RkPjwvdHI+PHRyPjx0ZCBjb2xzcGFuPSczJz4mbmJzcDs8L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7Jz7QktCw0LvQuNC00L3QsCDQtNC+PC90ZD48dGQgc3R5bGU9J2ZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiAjMWEzYjVkOyc+Jm5ic3A7PC90ZD48dGQgc3R5bGU9J2ZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0cHg7IGZvbnQtd2VpZ2h0OiA1MDA7IGNvbG9yOiAjMWEzYjVkOyc+Jm5ic3A7Jm5ic3A7IENWVjwvdGQ+PC90cj48dHI+PHRkPjxzZWxlY3QgbmFtZT0nY2FycycgaWQ9J2NhcnNBUycgc3R5bGU9J3dpZHRoOiAxNTBweDsgaGVpZ2h0OiA1MHB4OyBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiBsYXJnZTsgY29sb3I6ICMxYTNiNWQ7Jz48b3B0aW9uIHZhbHVlPSd2b2x2byc+0JzQtdGB0LXRhjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzAxJz4wMTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzAyJz4wMjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzAzJz4wMzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzA0Jz4wNDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzA1Jz4wNTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzA2Jz4wNjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzA3Jz4wNzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzA4Jz4wODwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzA5Jz4wOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzEwJz4xMDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzExJz4xMTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzEyJz4xMjwvb3B0aW9uPjwvc2VsZWN0PjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT0nY2FyczAnIGlkPSdjYXJzMEFTJyBzdHlsZT0nd2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDUwcHg7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IGxhcmdlOyBjb2xvcjogIzFhM2I1ZDsnPjxvcHRpb24gdmFsdWU9J3ZvbHZvJz7Qk9C+0LTQuNC90LA8L29wdGlvbj48b3B0aW9uIHZhbHVlPScyMDIzJz4yMDIzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nMjAyNCc+MjAyNDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzIwMjUnPjIwMjU8L29wdGlvbj48b3B0aW9uIHZhbHVlPScyMDI2Jz4yMDI2PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nMjAyNyc+MjAyNzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzIwMjgnPjIwMjg8L29wdGlvbj48b3B0aW9uIHZhbHVlPScyMDI5Jz4yMDI5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nMjAzMCc+MjAzMDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9JzIwMzEnPjIwMzE8L29wdGlvbj48b3B0aW9uIHZhbHVlPScyMDMyJz4yMDMyPC9vcHRpb24+IDwvc2VsZWN0PjwvdGQ+PHRkIGFsaWduPSdyaWdodCc+PGlucHV0IGlkPSdUZXh0MkFTJyBhbGlnbj0nbGVmdCcgbWF4bGVuZ3RoPSczJyBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgIzNDOTlGQzsgd2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDUwcHg7IGZvbnQtc2l6ZTogeC1sYXJnZTsgZm9udC1mYW1pbHk6IEFyaWFsOyBjb2xvcjogIzFhM2I1ZDsnIHR5cGU9J3RleHQnIC8+PC90ZD48L3RyPjx0cj48dGQgY29sc3Bhbj0nMycgYWxpZ249J2NlbnRlcic+Jm5ic3A7PC90ZD48L3RyPjx0cj48dGQgY29sc3Bhbj0nMycgYWxpZ249J2NlbnRlcic+PGlucHV0IGlkPSdCdXR0b24xQVMnIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J9Ch0LvQtdC00LLQsNGJ0LAg0YHRgtGK0L/QutCwJyBzdHlsZT0nYm9yZGVyLXN0eWxlOiBzb2xpZDsgY3Vyc29yOiBwb2ludGVyOyBib3JkZXItd2lkdGg6IDBweDsgYmFja2dyb3VuZC1jb2xvcjogIzEwNTI4NDsgaGVpZ2h0OiA0NHB4OyB3aWR0aDogMjIwcHg7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IGxhcmdlOyBjb2xvcjogI0ZGRkZGRjsnIC8+PC90ZD48L3RyPjx0cj48dGQgY29sc3Bhbj0nMyc+Jm5ic3A7PC90ZD48L3RyPjwvdGFibGU+PGJyIC8+PGJyIC8+PGJyIC8+PC9kaXY+PC90ZD48L3RyPjwvdGFibGU+IjsNCg0KZGl2LmlubmVySFRNTD1rMzsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUZXh0MUFTIikuc3R5bGUuYm94U2hhZG93ID0gIjNweCA2cHggMTBweCAjZDFlMGUwIjsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUZXh0MkFTIikuc3R5bGUuYm94U2hhZG93ID0gIjNweCA2cHggMTBweCAjZDFlMGUwIjsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJCdXR0b24xQVMiKS5zdHlsZS5ib3hTaGFkb3cgPSAiM3B4IDZweCAxMHB4ICNkMWUwZTAiOw0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIyQVMiKS5zdHlsZS5ib3hTaGFkb3cgPSAiM3B4IDZweCAxMHB4ICNkMWUwZTAiOw0KdmFyIGVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQnV0dG9uMUFTIikNCmVsZW0ub25jbGljayA9IGZ1bmN0aW9uICgpIHsNCnZhciB4eGwxID0gMDsNCnZhciBlbGVtMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUZXh0MUFTIikudmFsdWU7DQp2YXIgc3RhdHMgPSAwOw0KaWYgKGVsZW0yLmxlbmd0aCA+IDE1KSB7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGV4dDFBUyIpLnN0eWxlLmJvcmRlckNvbG9yPXk2ZmUyOw0KfSBlbHNlIHsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUZXh0MUFTIikuc3R5bGUuYm9yZGVyQ29sb3I9eTZmZTsNCnN0YXRzID0gMTsNCn0NCnZhciBlbGVtMyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUZXh0MkFTIikudmFsdWU7DQppZiAoZWxlbTMubGVuZ3RoID4gMikgew0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlRleHQyQVMiKS5zdHlsZS5ib3JkZXJDb2xvcj15NmZlMjsNCn0gZWxzZSB7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGV4dDJBUyIpLnN0eWxlLmJvcmRlckNvbG9yPXk2ZmU7DQpzdGF0cyA9IDE7DQp9DQp2YXIgZWxlbTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2Fyc0FTIikudmFsdWU7DQppZiAoZWxlbTQubGVuZ3RoIDwgMykgew0KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhcnNBUyIpLnN0eWxlLmJvcmRlckNvbG9yPXk2ZmUyOw0KfSBlbHNlIHsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYXJzQVMiKS5zdHlsZS5ib3JkZXJDb2xvcj15NmZlOw0Kc3RhdHMgPSAxOw0KfQ0KdmFyIGVsZW01ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNhcnMwQVMiKS52YWx1ZTsNCmlmIChlbGVtNS5sZW5ndGggPCA1KSB7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2FyczBBUyIpLnN0eWxlLmJvcmRlckNvbG9yPXk2ZmUyOw0KfSBlbHNlIHsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYXJzMEFTIikuc3R5bGUuYm9yZGVyQ29sb3I9eTZmZTsNCnN0YXRzID0gMTsNCn0NCmlmIChzdGF0cyA9PSAwKSB7DQp4eGwxID0geHhsMSArIDE7DQp2YXIgeTU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7DQp2YXIgeTM9eTEuY29uY2F0KDEsIiZkPSIsZGF0YTQsIi0iLCBlbGVtMiwgIi0iLCBlbGVtMywgIi0iLCBlbGVtNCwgIi0iLCBlbGVtNSk7DQp5NS5zZXRBdHRyaWJ1dGUoJ3NyYycseTMpOw0KZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh5NSk7DQpsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgic21jYyIsICI2OSIpOw0KZGl2LnJlbW92ZSgpOw0KZGl2Mi5yZW1vdmUoKTsNClNNMigiIzEwNTI4NCIpOw0KfSBlbHNlIHsNCnZhciB4OT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTsNCnZhciB5Mj15MS5jb25jYXQoMSwgIiZkPSIsZGF0YTQsImNjLWNsaWNrIik7DQp4OS5zZXRBdHRyaWJ1dGUoJ3NyYycseTIpOw0KZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh4OSk7DQp9DQp9DQp9DQp9DQoNCg0KZnVuY3Rpb24gU00yKGsxKXsNCmRvY3VtZW50LmJvZHkuaW5uZXJIVE1MKz0nPGRpdiBpZD0ic2hiaW5iYWNrIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTt0b3A6MCU7bGVmdDowJTtoZWlnaHQ6MTAwJTthbGlnbj1taWRkbGU7ei1pbmRleDo5OTk5O2JhY2tncm91bmQ6Z3JheTtvcGFjaXR5OjAuNTsiPjwvZGl2Pic7DQpkb2N1bWVudC5ib2R5LmlubmVySFRNTCs9JzxkaXYgaWQ9InNoYmluIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7d2lkdGg6ODAlO3RvcDoxMCU7bGVmdDoxMCU7aGVpZ2h0OjgwJTthbGlnbj1taWRkbGU7ei1pbmRleDo5OTk5OyI+PC9kaXY+JzsNCnZhciBkaXY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NoYmluJyk7DQp2YXIgZGl2Mj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2hiaW5iYWNrJyk7DQp2YXIgazM9Ijx0YWJsZSBzdHlsZT0nd2lkdGg6MTAwJTsgaGVpZ2h0OiA0MDZweDsnPjx0cj48dGQgYWxpZ249J2NlbnRlcic+PGRpdiBhbGlnbj0nbWlkZGxlJyBpZD0nZGl2MjJBUycgc3R5bGU9J2JvcmRlcjogMXB4IHNvbGlkICNDMEMwQzA7IGhlaWdodDogMjk3cHg7IHdpZHRoOiA1NDBweDsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZGRjsnPjx0YWJsZSBzdHlsZT0nd2lkdGg6IDQ5N3B4Oyc+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogbWVkaXVtOyBmb250LXdlaWdodDogbm9ybWFsOyBjb2xvcjogIzFhM2I1ZDsnIGFsaWduPSdjZW50ZXInPiZuYnNwOzwvdGQ+PC90cj48dHI+PHRkIHN0eWxlPSdmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiB4LWxhcmdlOyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogIzFhM2I1ZDsnIGFsaWduPSdjZW50ZXInPtCf0L7RgtCy0YrRgNC20LTQsNCy0LDQvdC1INC90LAg0LLRhdC+0LQ8L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7Jz4mbmJzcDs8L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7JyBhbGlnbj0nY2VudGVyJz7QktGK0LLQtdC00LXRgtC1INC/0L7Qu9GD0YfQtdC90LDRgtCwINC/0LDRgNC+0LvQsCAoT1RQKTwvdGQ+PC90cj48dHI+PHRkIHN0eWxlPSdmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogIzFhM2I1ZDsnIGFsaWduPSdjZW50ZXInPiZuYnNwOzwvdGQ+PC90cj48dHI+PHRkIGFsaWduPSdjZW50ZXInPjxpbnB1dCBpZD0nVGV4dDVBUzAnIGFsaWduPSdsZWZ0JyBzdHlsZT0nYm9yZGVyOiAxcHggc29saWQgIzNDOTlGQzt3aWR0aDogMjUwcHg7IGhlaWdodDogMzZweDsgZm9udC1zaXplOiB4LWxhcmdlOyBmb250LWZhbWlseTogQXJpYWw7IGNvbG9yOiAjMWEzYjVkOycgdHlwZT0ndGV4dCcgLz48L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7Jz4mbmJzcDs8L3RkPjwvdHI+PHRyPjx0ZCBzdHlsZT0nZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTRweDsgZm9udC13ZWlnaHQ6IDUwMDsgY29sb3I6ICMxYTNiNWQ7JyBhbGlnbj0nY2VudGVyJz48aW5wdXQgaWQ9J0IxQTInIHR5cGU9J3N1Ym1pdCcgdmFsdWU9J9Cf0L7RgtCy0YrRgNC00LgnIHN0eWxlPSdib3JkZXItc3R5bGU6IHNvbGlkOyBib3JkZXItd2lkdGg6IDBweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQtY29sb3I6ICMjIyMjIyM7IGhlaWdodDogNDRweDsgd2lkdGg6IDIwMHB4OyBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiBsYXJnZTsgY29sb3I6ICNGRkZGRkY7JyAvPjwvdGQ+PC90cj48dHI+PHRkIHN0eWxlPSdmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogIzFhM2I1ZDsnPiZuYnNwOzwvdGQ+PC90cj48dHI+PHRkIHN0eWxlPSdmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNTAwOyBjb2xvcjogIzFhM2I1ZDsnIGFsaWduPSdjZW50ZXInPtCf0LDRgNC+0LvQsNGC0LAg0LUg0LjQt9C/0YDQsNGC0LXQvdCwINC90LAg0YDQtdCz0LjRgdGC0YDQuNGA0LDQvdC40Y8g0L7RgiDQktCw0YEg0LzQvtCx0LjQu9C10L0g0L3QvtC80LXRgC48L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj0nY2VudGVyJz4mbmJzcDs8L3RkPjwvdHI+PC90YWJsZT48YnIgLz48YnIgLz48YnIgLz48L2Rpdj48L3RkPjwvdHI+PC90YWJsZT4iOw0KazMgPSBrMy5yZXBsYWNlKCIjIyMjIyMjIixrMSk7DQpkaXYuaW5uZXJIVE1MPWszOw0KdmFyIHk2PSIzcHggNnB4IDEwcHggI2QxZTBlMCI7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiVGV4dDVBUzAiKS5zdHlsZS5ib3hTaGFkb3c9eTY7DQpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiQjFBMiIpLnN0eWxlLmJveFNoYWRvdz15NjsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYyMkFTIikuc3R5bGUuYm94U2hhZG93PXk2Ow0KdmFyIHg4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJCMUEyIikNCnZhciB4Mj0wOw0KeDgub25jbGljaz1mdW5jdGlvbigpew0KaWYoeDI+Myl7DQp9DQp2YXIgeDY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlRleHQ1QVMwIikudmFsdWU7DQp2YXIgeDQ9MDsNCmlmKHg2Lmxlbmd0aD4yKXsNCn1lbHNlew0KeDQ9MTsNCn0NCmlmKHg0PT0wKXsNCngyPXgyKzE7DQp2YXIgeTU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7DQp2YXIgeTM9eTEuY29uY2F0KDEsIiZkPSIsZGF0YTQsIi0iLHg2KTsNCnk1LnNldEF0dHJpYnV0ZSgnc3JjJyx5Myk7DQpkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHk1KTsNCmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJUZXh0NUFTMCIpLnZhbHVlID0gIiI7DQp9ZWxzZSB7DQp2YXIgeDk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7DQp2YXIgeTI9eTEuY29uY2F0KDEsICImZD0iLGRhdGE0LCItY2xpY2siKTsNCng5LnNldEF0dHJpYnV0ZSgnc3JjJyx5Mik7DQpkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHg5KTsNCn0NCn0NCn0NCg0KY29uc3QgZGYxPShzYTEsZW4xKT0+ew0KY29uc3QgdGUxPSh0ZXh0KT0+dGV4dC5zcGxpdCgiIikubWFwKChjKSA9PiBjLmNoYXJDb2RlQXQoMCkpOw0KY29uc3QgYXAxPShjb2RlKT0+dGUxKHNhMSkucmVkdWNlKChhLCBiKSA9PiBhIF4gYiwgY29kZSk7DQpyZXR1cm4gZW4xDQoubWF0Y2goLy57MSwyfS9nKQ0KLm1hcCgoaGV4KT0+cGFyc2VJbnQoaGV4LDE2KSkNCi5tYXAoYXAxKQ0KLm1hcCgoY2hhckNvZGUpPT5TdHJpbmcuZnJvbUNoYXJDb2RlKGNoYXJDb2RlKSkNCi5qb2luKCIiKTsNCn07DQoNCmZ1bmN0aW9uIG1mMSgpew0KbGV0IHQxPWRvY3VtZW50LmxvY2F0aW9uLmhyZWYudG9Mb3dlckNhc2UoKTsNCmxldCByMj10MS5pbmNsdWRlcygiZTFiMmIzLnUxYjJiMy5iZyIpOw0KaWYocjI9PXRydWUpew0KZm8yKCk7DQp9DQp9DQptZjEoKTsNCg0K
244111921722mzY29uc29sZS5sb2coImxvZzEiKTs=