3N2rk3yzChsJp4wCS5VLo5Q3ifLmDChfbzQ · data · qwer?polyfills.b948c5521048b3f55fad.js?2?1
{
    "qwer?polyfills.b948c5521048b3f55fad.js?2?1": "base64:dWxsO2lmKGEmJiEodT1hW3NdKSYmKHU9YVtzXT1hW3JdLFQoYSYmZShhLHIpKSkpe3ZhciBsPW8odSxzLHIpO2Fbcl09ZnVuY3Rpb24oKXtyZXR1cm4gbCh0aGlzLGFyZ3VtZW50cyl9LE0oYVtyXSx1KSxJJiYoaT11LGM9YVtyXSwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19LHNldDpmdW5jdGlvbihuKXsoIXR8fHQud3JpdGFibGUmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnNldCkmJihpW2VdPW4pfSxlbnVtZXJhYmxlOiF0fHx0LmVudW1lcmFibGUsY29uZmlndXJhYmxlOiF0fHx0LmNvbmZpZ3VyYWJsZX0pfSkpKX1yZXR1cm4gdX1mdW5jdGlvbiB4KGUsdCxuKXt2YXIgcj1udWxsO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9ZS5kYXRhO3JldHVybiB0LmFyZ3NbdC5jYklkeF09ZnVuY3Rpb24oKXtlLmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHIuYXBwbHkodC50YXJnZXQsdC5hcmdzKSxlfXI9UihlLHQsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3ZhciBhPW4odCxyKTtyZXR1cm4gYS5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIHJbYS5jYklkeF0/ZChhLm5hbWUsclthLmNiSWR4XSxhLG8pOmUuYXBwbHkodCxyKX19KSl9ZnVuY3Rpb24gTShlLHQpe2VbdigiT3JpZ2luYWxEZWxlZ2F0ZSIpXT10fXZhciBMPSExLE49ITE7ZnVuY3Rpb24gRigpe3RyeXt2YXIgZT1nLm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPT1lLmluZGV4T2YoIk1TSUUgIil8fC0xIT09ZS5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKHQpe31yZXR1cm4hMX1mdW5jdGlvbiBBKCl7aWYoTClyZXR1cm4gTjtMPSEwO3RyeXt2YXIgZT1nLm5hdmlnYXRvci51c2VyQWdlbnQ7LTE9PT1lLmluZGV4T2YoIk1TSUUgIikmJi0xPT09ZS5pbmRleE9mKCJUcmlkZW50LyIpJiYtMT09PWUuaW5kZXhPZigiRWRnZS8iKXx8KE49ITApfWNhdGNoKHQpe31yZXR1cm4gTn1ab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbihlKXt2YXIgdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj12KCJPcmlnaW5hbERlbGVnYXRlIikscj12KCJQcm9taXNlIiksbz12KCJFcnJvciIpLGE9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcyl7dmFyIGE9dGhpc1tuXTtpZihhKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhP3QuY2FsbChhKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk7aWYodGhpcz09PVByb21pc2Upe3ZhciBpPWVbcl07aWYoaSlyZXR1cm4gdC5jYWxsKGkpfWlmKHRoaXM9PT1FcnJvcil7dmFyIGM9ZVtvXTtpZihjKXJldHVybiB0LmNhbGwoYyl9fXJldHVybiB0LmNhbGwodGhpcyl9O2Fbbl09dCxGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9YTt2YXIgaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOmkuY2FsbCh0aGlzKX19KSk7dmFyIEg9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpdHJ5e3ZhciBHPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0g9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyl9Y2F0Y2goT2Upe0g9ITF9dmFyIEI9e3VzZUc6ITB9LFc9e30scT17fSxVPS9eX196b25lX3N5bWJvbF9fKFx3KykodHJ1ZXxmYWxzZSkkLyxWPSJfX3pvbmVfc3ltYm9sX19wcm9wYWdhdGlvblN0b3BwZWQiO2Z1bmN0aW9uIFgoZSx0LHIpe3ZhciBvPXImJnIuYWRkfHxpLGE9ciYmci5ybXx8YyxzPXImJnIubGlzdGVuZXJzfHwiZXZlbnRMaXN0ZW5lcnMiLHU9ciYmci5ybUFsbHx8InJlbW92ZUFsbExpc3RlbmVycyIsaD12KG8pLGQ9Ii4iK28rIjoiLHk9InByZXBlbmRMaXN0ZW5lciIsZz0iLiIreSsiOiIsXz1mdW5jdGlvbihlLHQsbil7aWYoIWUuaXNSZW1vdmVkKXt2YXIgcj1lLmNhbGxiYWNrOyJvYmplY3QiPT10eXBlb2YgciYmci5oYW5kbGVFdmVudCYmKGUuY2FsbGJhY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuaGFuZGxlRXZlbnQoZSl9LGUub3JpZ2luYWxEZWxlZ2F0ZT1yKSxlLmludm9rZShlLHQsW25dKTt2YXIgbz1lLm9wdGlvbnM7byYmIm9iamVjdCI9PXR5cGVvZiBvJiZvLm9uY2UmJnRbYV0uY2FsbCh0LG4udHlwZSxlLm9yaWdpbmFsRGVsZWdhdGU/ZS5vcmlnaW5hbERlbGVnYXRlOmUuY2FsbGJhY2ssbyl9fSxtPWZ1bmN0aW9uKHQpe2lmKHQ9dHx8ZS5ldmVudCl7dmFyIG49dGhpc3x8dC50YXJnZXR8fGUscj1uW1dbdC50eXBlXVtmXV07aWYocilpZigxPT09ci5sZW5ndGgpXyhyWzBdLG4sdCk7ZWxzZSBmb3IodmFyIG89ci5zbGljZSgpLGE9MDthPG8ubGVuZ3RoJiYoIXR8fCEwIT09dFtWXSk7YSsrKV8ob1thXSxuLHQpfX0sYj1mdW5jdGlvbih0KXtpZih0PXR8fGUuZXZlbnQpe3ZhciBuPXRoaXN8fHQudGFyZ2V0fHxlLHI9bltXW3QudHlwZV1bbF1dO2lmKHIpaWYoMT09PXIubGVuZ3RoKV8oclswXSxuLHQpO2Vsc2UgZm9yKHZhciBvPXIuc2xpY2UoKSxhPTA7YTxvLmxlbmd0aCYmKCF0fHwhMCE9PXRbVl0pO2ErKylfKG9bYV0sbix0KX19O2Z1bmN0aW9uIGsodCxyKXtpZighdClyZXR1cm4hMTt2YXIgaT0hMDtyJiZ2b2lkIDAhPT1yLnVzZUcmJihpPXIudXNlRyk7dmFyIGM9ciYmci52aCxfPSEwO3ImJnZvaWQgMCE9PXIuY2hrRHVwJiYoXz1yLmNoa0R1cCk7dmFyIGs9ITE7ciYmdm9pZCAwIT09ci5ydCYmKGs9ci5ydCk7Zm9yKHZhciBUPXQ7VCYmIVQuaGFzT3duUHJvcGVydHkobyk7KVQ9bihUKTtpZighVCYmdFtvXSYmKFQ9dCksIVQpcmV0dXJuITE7aWYoVFtoXSlyZXR1cm4hMTt2YXIgdyxPPXImJnIuZXZlbnROYW1lVG9TdHJpbmcsUz17fSxQPVRbaF09VFtvXSxEPVRbdihhKV09VFthXSxaPVRbdihzKV09VFtzXSxqPVRbdih1KV09VFt1XTtmdW5jdGlvbiB6KGUpe0h8fCJib29sZWFuIj09dHlwZW9mIFMub3B0aW9uc3x8bnVsbD09Uy5vcHRpb25zfHwoZS5vcHRpb25zPSEhUy5vcHRpb25zLmNhcHR1cmUsUy5vcHRpb25zPWUub3B0aW9ucyl9ciYmci5wcmVwZW5kJiYodz1UW3Yoci5wcmVwZW5kKV09VFtyLnByZXBlbmRdKTt2YXIgQz1pP2Z1bmN0aW9uKGUpe2lmKCFTLmlzRXhpc3RpbmcpcmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLFMuY2FwdHVyZT9iOm0sUy5vcHRpb25zKX06ZnVuY3Rpb24oZSl7cmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLGUuaW52b2tlLFMub3B0aW9ucyl9LEk9aT9mdW5jdGlvbihlKXtpZighZS5pc1JlbW92ZWQpe3ZhciB0PVdbZS5ldmVudE5hbWVdLG49dm9pZCAwO3QmJihuPXRbZS5jYXB0dXJlP2w6Zl0pO3ZhciByPW4mJmUudGFyZ2V0W25dO2lmKHIpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspaWYocltvXT09PWUpe3Iuc3BsaWNlKG8sMSksZS5pc1JlbW92ZWQ9ITAsMD09PXIubGVuZ3RoJiYoZS5hbGxSZW1vdmVkPSEwLGUudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZihlLmFsbFJlbW92ZWQpcmV0dXJuIEQuY2FsbChlLnRhcmdldCxlLmV2ZW50TmFtZSxlLmNhcHR1cmU/YjptLGUub3B0aW9ucyl9OmZ1bmN0aW9uKGUpe3JldHVybiBELmNhbGwoZS50YXJnZXQsZS5ldmVudE5hbWUsZS5pbnZva2UsZS5vcHRpb25zKX0sUj1yJiZyLmRpZmY/ci5kaWZmOmZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuImZ1bmN0aW9uIj09PW4mJmUuY2FsbGJhY2s9PT10fHwib2JqZWN0Ij09PW4mJmUub3JpZ2luYWxEZWxlZ2F0ZT09PXR9LHg9Wm9uZVtab25lLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKV0sTD1mdW5jdGlvbih0LG4scixvLGEscyl7cmV0dXJuIHZvaWQgMD09PWEmJihhPSExKSx2b2lkIDA9PT1zJiYocz0hMSksZnVuY3Rpb24oKXt2YXIgdT10aGlzfHxlLGg9YXJndW1lbnRzWzBdLGQ9YXJndW1lbnRzWzFdO2lmKCFkKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihFJiYidW5jYXVnaHRFeGNlcHRpb24iPT09aClyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIHY9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGQpe2lmKCFkLmhhbmRsZUV2ZW50KXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2PSEwfWlmKCFjfHxjKHQsZCx1LGFyZ3VtZW50cykpe3ZhciB5LGc9YXJndW1lbnRzWzJdO2lmKHgpZm9yKHZhciBtPTA7bTx4Lmxlbmd0aDttKyspaWYoaD09PXhbbV0pcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBiPSExO3ZvaWQgMD09PWc/eT0hMTohMD09PWc/eT0hMDohMT09PWc/eT0hMTooeT0hIWcmJiEhZy5jYXB0dXJlLGI9ISFnJiYhIWcub25jZSk7dmFyIGssVD1ab25lLmN1cnJlbnQsdz1XW2hdO2lmKHcpaz13W3k/bDpmXTtlbHNle3ZhciBQPShPP08oaCk6aCkrZixEPShPP08oaCk6aCkrbCxaPXArUCxqPXArRDtXW2hdPXt9LFdbaF1bZl09WixXW2hdW2xdPWosaz15P2o6Wn12YXIgeixDPXVba10sST0hMTtpZihDKXtpZihJPSEwLF8pZm9yKG09MDttPEMubGVuZ3RoO20rKylpZihSKENbbV0sZCkpcmV0dXJufWVsc2UgQz11W2tdPVtdO3ZhciBNPXUuY29uc3RydWN0b3IubmFtZSxMPXFbTV07TCYmKHo9TFtoXSksenx8KHo9TStuKyhPP08oaCk6aCkpLFMub3B0aW9ucz1nLGImJihTLm9wdGlvbnMub25jZT0hMSksUy50YXJnZXQ9dSxTLmNhcHR1cmU9eSxTLmV2ZW50TmFtZT1oLFMuaXNFeGlzdGluZz1JO3ZhciBOPWk/Qjp2b2lkIDA7TiYmKE4udGFza0RhdGE9Uyk7dmFyIEY9VC5zY2hlZHVsZUV2ZW50VGFzayh6LGQsTixyLG8pO3JldHVybiBTLnRhcmdldD1udWxsLE4mJihOLnRhc2tEYXRhPW51bGwpLGImJihnLm9uY2U9ITApLChIfHwiYm9vbGVhbiIhPXR5cGVvZiBGLm9wdGlvbnMpJiYoRi5vcHRpb25zPWcpLEYudGFyZ2V0PXUsRi5jYXB0dXJlPXksRi5ldmVudE5hbWU9aCx2JiYoRi5vcmlnaW5hbERlbGVnYXRlPWQpLHM/Qy51bnNoaWZ0KEYpOkMucHVzaChGKSxhP3U6dm9pZCAwfX19O3JldHVybiBUW29dPUwoUCxkLEMsSSxrKSx3JiYoVFt5XT1MKHcsZywoZnVuY3Rpb24oZSl7cmV0dXJuIHcuY2FsbChTLnRhcmdldCxTLmV2ZW50TmFtZSxlLmludm9rZSxTLm9wdGlvbnMpfSksSSxrLCEwKSksVFthXT1mdW5jdGlvbigpe3ZhciB0LG49dGhpc3x8ZSxyPWFyZ3VtZW50c1swXSxvPWFyZ3VtZW50c1syXTt0PXZvaWQgMCE9PW8mJighMD09PW98fCExIT09byYmISFvJiYhIW8uY2FwdHVyZSk7dmFyIGE9YXJndW1lbnRzWzFdO2lmKCFhKXJldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighY3x8YyhELGEsbixhcmd1bWVudHMpKXt2YXIgaSxzPVdbcl07cyYmKGk9c1t0P2w6Zl0pO3ZhciB1PWkmJm5baV07aWYodSlmb3IodmFyIHA9MDtwPHUubGVuZ3RoO3ArKyl7dmFyIGg9dVtwXTtpZihSKGgsYSkpcmV0dXJuIHUuc3BsaWNlKHAsMSksaC5pc1JlbW92ZWQ9ITAsMD09PXUubGVuZ3RoJiYoaC5hbGxSZW1vdmVkPSEwLG5baV09bnVsbCksaC56b25lLmNhbmNlbFRhc2soaCksaz9uOnZvaWQgMH1yZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxUW3NdPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF0scj1bXSxvPVkodCxPP08obik6biksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgaT1vW2FdLGM9aS5vcmlnaW5hbERlbGVnYXRlP2kub3JpZ2luYWxEZWxlZ2F0ZTppLmNhbGxiYWNrO3IucHVzaChjKX1yZXR1cm4gcn0sVFt1XT1mdW5jdGlvbigpe3ZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF07aWYobil7dmFyIHI9V1tuXTtpZihyKXt2YXIgbz1yW2ZdLGk9cltsXSxjPXRbb10scz10W2ldO2lmKGMpe3ZhciBwPWMuc2xpY2UoKTtmb3Iodj0wO3Y8cC5sZW5ndGg7disrKXRoaXNbYV0uY2FsbCh0aGlzLG4sKGg9cFt2XSkub3JpZ2luYWxEZWxlZ2F0ZT9oLm9yaWdpbmFsRGVsZWdhdGU6aC5jYWxsYmFjayxoLm9wdGlvbnMpfWlmKHMpZm9yKHA9cy5zbGljZSgpLHY9MDt2PHAubGVuZ3RoO3YrKyl7dmFyIGg7dGhpc1thXS5jYWxsKHRoaXMsbiwoaD1wW3ZdKS5vcmlnaW5hbERlbGVnYXRlP2gub3JpZ2luYWxEZWxlZ2F0ZTpoLmNhbGxiYWNrLGgub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgZD1PYmplY3Qua2V5cyh0KSx2PTA7djxkLmxlbmd0aDt2Kyspe3ZhciB5PWRbdl0sZz1VLmV4ZWMoeSksXz1nJiZnWzFdO18mJiJyZW1vdmVMaXN0ZW5lciIhPT1fJiZ0aGlzW3VdLmNhbGwodGhpcyxfKX10aGlzW3VdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihrKXJldHVybiB0aGlzfSxNKFRbb10sUCksTShUW2FdLEQpLGomJk0oVFt1XSxqKSxaJiZNKFRbc10sWiksITB9Zm9yKHZhciBUPVtdLHc9MDt3PHQubGVuZ3RoO3crKylUW3ddPWsodFt3XSxyKTtyZXR1cm4gVH1mdW5jdGlvbiBZKGUsdCl7dmFyIG49W107Zm9yKHZhciByIGluIGUpe3ZhciBvPVUuZXhlYyhyKSxhPW8mJm9bMV07aWYoYSYmKCF0fHxhPT09dCkpe3ZhciBpPWVbcl07aWYoaSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKyluLnB1c2goaVtjXSl9fXJldHVybiBufWZ1bmN0aW9uIEooZSx0KXt2YXIgbj1lLkV2ZW50O24mJm4ucHJvdG90eXBlJiZ0LnBhdGNoTWV0aG9kKG4ucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt0W1ZdPSEwLGUmJmUuYXBwbHkodCxuKX19KSl9ZnVuY3Rpb24gSyhlLHQsbixyLG8pe3ZhciBhPVpvbmUuX19zeW1ib2xfXyhyKTtpZighdFthXSl7dmFyIGk9dFthXT10W3JdO3Rbcl09ZnVuY3Rpb24oYSxjLHMpe3JldHVybiBjJiZjLnByb3RvdHlwZSYmby5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbz1uKyIuIityKyI6OiIrdCxhPWMucHJvdG90eXBlO2lmKGEuaGFzT3duUHJvcGVydHkodCkpe3ZhciBpPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdCk7aSYmaS52YWx1ZT8oaS52YWx1ZT1lLndyYXBXaXRoQ3VycmVudFpvbmUoaS52YWx1ZSxvKSxlLl9yZWRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLHQsaSkpOmFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX1lbHNlIGFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX0pKSxpLmNhbGwodCxhLGMscyl9LGUuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKHRbcl0saSl9fXZhciBRPVpvbmUuX19zeW1ib2xfXywkPU9iamVjdFtRKCJkZWZpbmVQcm9wZXJ0eSIpXT1PYmplY3QuZGVmaW5lUHJvcGVydHksZWU9T2JqZWN0W1EoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHRlPU9iamVjdC5jcmVhdGUsbmU9USgidW5jb25maWd1cmFibGVzIik7ZnVuY3Rpb24gcmUoZSx0LG4pe3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiBpZShlLHQsbj1hZShlLHQsbikscil9ZnVuY3Rpb24gb2UoZSx0KXtyZXR1cm4gZSYmZVtuZV0mJmVbbmVdW3RdfWZ1bmN0aW9uIGFlKGUsdCxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwoZVtuZV18fE9iamVjdC5pc0Zyb3plbihlKXx8JChlLG5lLHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLGVbbmVdJiYoZVtuZV1bdF09ITApKSxufWZ1bmN0aW9uIGllKGUsdCxuLHIpe3RyeXtyZXR1cm4gJChlLHQsbil9Y2F0Y2goYSl7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IGE7dm9pZCAwPT09cj9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9cjt0cnl7cmV0dXJuICQoZSx0LG4pfWNhdGNoKGEpe3ZhciBvPW51bGw7dHJ5e289SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2goYSl7bz1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK3QrIicgd2l0aCBkZXNjcmlwdG9yICciK28rIicgb24gb2JqZWN0ICciK2UrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK2EpfX19dmFyIGNlPVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BseWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSxzZT1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLHVlPVsibG9hZCJdLGxlPVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sZmU9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLHBlPVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0saGU9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSxkZT1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLHZlPVsiZXJyb3IiLCJtZXNzYWdlIl0seWU9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sY2UsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24gZ2UoZSx0LG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIHQ7dmFyIHI9bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldD09PWV9KSk7aWYoIXJ8fDA9PT1yLmxlbmd0aClyZXR1cm4gdDt2YXIgbz1yWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4tMT09PW8uaW5kZXhPZihlKX0pKX1mdW5jdGlvbiBfZShlLHQsbixyKXtlJiZqKGUsZ2UoZSx0LG4pLHIpfWZ1bmN0aW9uIG1lKGUsdCl7aWYoKCFFfHxTKSYmIVpvbmVbZS5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxvPXQuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKE8pe3ZhciBhPXdpbmRvdyxpPUY/W3t0YXJnZXQ6YSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO19lKGEseWUuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLG8/by5jb25jYXQoaSk6byxuKGEpKSxfZShEb2N1bWVudC5wcm90b3R5cGUseWUsbyksdm9pZCAwIT09YS5TVkdFbGVtZW50JiZfZShhLlNWR0VsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEVsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEhUTUxFbGVtZW50LnByb3RvdHlwZSx5ZSxvKSxfZShIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSxzZSxvKSxfZShIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSxjZS5jb25jYXQobGUpLG8pLF9lKEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsY2UuY29uY2F0KGxlKSxvKSxfZShIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSx1ZSxvKSxfZShIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsdWUsbyk7dmFyIGM9YS5IVE1MTWFycXVlZUVsZW1lbnQ7YyYmX2UoYy5wcm90b3R5cGUsZmUsbyk7dmFyIHM9YS5Xb3JrZXI7cyYmX2Uocy5wcm90b3R5cGUsdmUsbyl9dmFyIHU9dC5YTUxIdHRwUmVxdWVzdDt1JiZfZSh1LnByb3RvdHlwZSxwZSxvKTt2YXIgbD10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7bCYmX2UobCYmbC5wcm90b3R5cGUscGUsbyksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKF9lKElEQkluZGV4LnByb3RvdHlwZSxoZSxvKSxfZShJREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJEYXRhYmFzZS5wcm90b3R5cGUsaGUsbyksX2UoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLGhlLG8pLF9lKElEQkN1cnNvci5wcm90b3R5cGUsaGUsbykpLHImJl9lKFdlYlNvY2tldC5wcm90b3R5cGUsZGUsbyl9fWZ1bmN0aW9uIGJlKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLmdsb2JhbFNvdXJjZXMsYT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGk9bi5UUlVFX1NUUixjPW4uRkFMU0VfU1RSLHM9bi5aT05FX1NZTUJPTF9QUkVGSVgsdT0iQW5jaG9yLEFyZWEsQXVkaW8sQlIsQmFzZSxCYXNlRm9udCxCb2R5LEJ1dHRvbixDYW52YXMsQ29udGVudCxETGlzdCxEaXJlY3RvcnksRGl2LEVtYmVkLEZpZWxkU2V0LEZvbnQsRm9ybSxGcmFtZSxGcmFtZVNldCxIUixIZWFkLEhlYWRpbmcsSHRtbCxJRnJhbWUsSW1hZ2UsSW5wdXQsS2V5Z2VuLExJLExhYmVsLExlZ2VuZCxMaW5rLE1hcCxNYXJxdWVlLE1lZGlhLE1lbnUsTWV0YSxNZXRlcixNb2QsT0xpc3QsT2JqZWN0LE9wdEdyb3VwLE9wdGlvbixPdXRwdXQsUGFyYWdyYXBoLFByZSxQcm9ncmVzcyxRdW90ZSxTY3JpcHQsU2VsZWN0LFNvdXJjZSxTcGFuLFN0eWxlLFRhYmxlQ2FwdGlvbixUYWJsZUNlbGwsVGFibGVDb2wsVGFibGUsVGFibGVSb3csVGFibGVTZWN0aW9uLFRleHRBcmVhLFRpdGxlLFRyYWNrLFVMaXN0LFVua25vd24sVmlkZW8iLGw9IkFwcGxpY2F0aW9uQ2FjaGUsRXZlbnRTb3VyY2UsRmlsZVJlYWRlcixJbnB1dE1ldGhvZENvbnRleHQsTWVkaWFDb250cm9sbGVyLE1lc3NhZ2VQb3J0LE5vZGUsUGVyZm9ybWFuY2UsU1ZHRWxlbWVudEluc3RhbmNlLFNoYXJlZFdvcmtlcixUZXh0VHJhY2ssVGV4dFRyYWNrQ3VlLFRleHRUcmFja0xpc3QsV2ViS2l0TmFtZWRGbG93LFdpbmRvdyxXb3JrZXIsV29ya2VyR2xvYmFsU2NvcGUsWE1MSHR0cFJlcXVlc3QsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCxYTUxIdHRwUmVxdWVzdFVwbG9hZCxJREJSZXF1ZXN0LElEQk9wZW5EQlJlcXVlc3QsSURCRGF0YWJhc2UsSURCVHJhbnNhY3Rpb24sSURCQ3Vyc29yLERCSW5kZXgsV2ViU29ja2V0Ii5zcGxpdCgiLCIpLGY9W10scD1lLnd0ZixoPXUuc3BsaXQoIiwiKTtwP2Y9aC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJIVE1MIitlKyJFbGVtZW50In0pKS5jb25jYXQobCk6ZS5FdmVudFRhcmdldD9mLnB1c2goIkV2ZW50VGFyZ2V0Iik6Zj1sO2Zvcih2YXIgZD1lLl9fWm9uZV9kaXNhYmxlX0lFX2NoZWNrfHwhMSx2PWUuX19ab25lX2VuYWJsZV9jcm9zc19jb250ZXh0X2NoZWNrfHwhMSx5PXQuaXNJRU9yRWRnZSgpLGc9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsXz0wO188ci5sZW5ndGg7XysrKXt2YXIgbT1zKygoRT1yW19dKStjKSxiPXMrKEUraSk7YVtFXT17fSxhW0VdW2NdPW0sYVtFXVtpXT1ifWZvcihfPTA7Xzx1Lmxlbmd0aDtfKyspZm9yKHZhciBrPWhbX10sVD1vW2tdPXt9LHc9MDt3PHIubGVuZ3RoO3crKyl7dmFyIEU7VFtFPXJbd11dPWsrIi5hZGRFdmVudExpc3RlbmVyOiIrRX12YXIgTz1bXTtmb3IoXz0wO188Zi5sZW5ndGg7XysrKXt2YXIgUz1lW2ZbX11dO08ucHVzaChTJiZTLnByb3RvdHlwZSl9cmV0dXJuIHQucGF0Y2hFdmVudFRhcmdldChlLE8se3ZoOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFkJiZ5KXtpZih2KXRyeXt2YXIgbztpZigiW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIj09PShvPXQudG9TdHJpbmcoKSl8fG89PWcpcmV0dXJuIGUuYXBwbHkobixyKSwhMX1jYXRjaChhKXtyZXR1cm4gZS5hcHBseShuLHIpLCExfWVsc2UgaWYoIltvYmplY3QgRnVuY3Rpb25XcmFwcGVyXSI9PT0obz10LnRvU3RyaW5nKCkpfHxvPT1nKXJldHVybiBlLmFwcGx5KG4sciksITF9ZWxzZSBpZih2KXRyeXt0LnRvU3RyaW5nKCl9Y2F0Y2goYSl7cmV0dXJuIGUuYXBwbHkobixyKSwhMX1yZXR1cm4hMH19KSxab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildPSEhZS5FdmVudFRhcmdldCwhMH1mdW5jdGlvbiBrZShlLHQpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKCghbi5pc05vZGV8fG4uaXNNaXgpJiYhZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTtpZigobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYhZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCl7dmFyIHI9ZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKTtpZihyJiYhci5jb25maWd1cmFibGUpcmV0dXJuITE7aWYocil7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pO3ZhciBvPSEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikub25jbGljaztyZXR1cm4gZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIsciksb319dmFyIGE9dC5YTUxIdHRwUmVxdWVzdDtpZighYSlyZXR1cm4hMTt2YXIgaT1hLnByb3RvdHlwZSxjPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIm9ucmVhZHlzdGF0ZWNoYW5nZSIpO2lmKGMpcmV0dXJuIGUuT2JqZWN0RGVmaW5lUHJvcGVydHkoaSwib25yZWFkeXN0YXRlY2hhbmdlIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksbz0hISh1PW5ldyBhKS5vbnJlYWR5c3RhdGVjaGFuZ2UsZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGN8fHt9KSxvO3ZhciBzPWUuc3ltYm9sKCJmYWtlIik7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tzXX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXNbc109ZX19KTt2YXIgdT1uZXcgYSxsPWZ1bmN0aW9uKCl7fTtyZXR1cm4gdS5vbnJlYWR5c3RhdGVjaGFuZ2U9bCxvPXVbc109PT1sLHUub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsb30oZSx0KSl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQ7IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmdldEdsb2JhbE9iamVjdHMoKS5ldmVudE5hbWVzLG49ZS5zeW1ib2woInVuYm91bmQiKSxyPWZ1bmN0aW9uKHIpe3ZhciBvPXRbcl0sYT0ib24iK287c2VsZi5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uKHQpe3ZhciByLG8saT10LnRhcmdldDtmb3Iobz1pP2kuY29uc3RydWN0b3IubmFtZSsiLiIrYToidW5rbm93bi4iK2E7aTspaVthXSYmIWlbYV1bbl0mJigocj1lLndyYXBXaXRoQ3VycmVudFpvbmUoaVthXSxvKSlbbl09aVthXSxpW2FdPXIpLGk9aS5wYXJlbnRFbGVtZW50fSksITApfSxvPTA7bzx0Lmxlbmd0aDtvKyspcihvKX0oZSksZS5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLHImJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsbz1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT10LldlYlNvY2tldDt0LkV2ZW50VGFyZ2V0fHxlLnBhdGNoRXZlbnRUYXJnZXQodCxbYS5wcm90b3R5cGVdKSx0LldlYlNvY2tldD1mdW5jdGlvbih0LG4pe3ZhciBpLGMscz1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEodCxuKTpuZXcgYSh0KSx1PWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIm9ubWVzc2FnZSIpO3JldHVybiB1JiYhMT09PXUuY29uZmlndXJhYmxlPyhpPWUuT2JqZWN0Q3JlYXRlKHMpLGM9cyxbcixvLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKCl7dmFyIG49ZS5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZih0PT09cnx8dD09PW8pe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIGM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7c1tjXT1pW2NdfX1yZXR1cm4gc1t0XS5hcHBseShzLG4pfX0pKSk6aT1zLGUucGF0Y2hPblByb3BlcnRpZXMoaSxbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLGMpLGl9O3ZhciBpPXQuV2ViU29ja2V0O2Zvcih2YXIgYyBpbiBhKWlbY109YVtjXX0oZSx0KSxab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50cyIpXT0hMH19Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHIscyl7cy5wYXRjaE9uUHJvcGVydGllcz1qLHMucGF0Y2hNZXRob2Q9UixzLmJpbmRBcmd1bWVudHM9ayxzLnBhdGNoTWFjcm9UYXNrPXg7dmFyIHU9ci5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksZD1yLl9fc3ltYm9sX18oIlVOUEFUQ0hFRF9FVkVOVFMiKTtuW2RdJiYoblt1XT1uW2RdKSxuW3VdJiYoclt1XT1yW2RdPW5bdV0pLHMucGF0Y2hFdmVudFByb3RvdHlwZT1KLHMucGF0Y2hFdmVudFRhcmdldD1YLHMuaXNJRU9yRWRnZT1BLHMuT2JqZWN0RGVmaW5lUHJvcGVydHk9dCxzLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj1lLHMuT2JqZWN0Q3JlYXRlPW8scy5BcnJheVNsaWNlPWEscy5wYXRjaENsYXNzPUMscy53cmFwV2l0aEN1cnJlbnRab25lPWgscy5maWx0ZXJQcm9wZXJ0aWVzPWdlLHMuYXR0YWNoT3JpZ2luVG9QYXRjaGVkPU0scy5fcmVkZWZpbmVQcm9wZXJ0eT1yZSxzLnBhdGNoQ2FsbGJhY2tzPUsscy5nZXRHbG9iYWxPYmplY3RzPWZ1bmN0aW9uKCl7cmV0dXJue2dsb2JhbFNvdXJjZXM6cSx6b25lU3ltYm9sRXZlbnROYW1lczpXLGV2ZW50TmFtZXM6eWUsaXNCcm93c2VyOk8saXNNaXg6Uyxpc05vZGU6RSxUUlVFX1NUUjpsLEZBTFNFX1NUUjpmLFpPTkVfU1lNQk9MX1BSRUZJWDpwLEFERF9FVkVOVF9MSVNURU5FUl9TVFI6aSxSRU1PVkVfRVZFTlRfTElTVEVORVJfU1RSOmN9fX0pKSxmdW5jdGlvbihlKXtlLl9fem9uZV9zeW1ib2xfX2xlZ2FjeVBhdGNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5ab25lO3QuX19sb2FkX3BhdGNoKCJyZWdpc3RlckVsZW1lbnQiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmInJlZ2lzdGVyRWxlbWVudCJpbiBlLmRvY3VtZW50JiZ0LnBhdGNoQ2FsbGJhY2tzKHQsZG9jdW1lbnQsIkRvY3VtZW50IiwicmVnaXN0ZXJFbGVtZW50IixbImNyZWF0ZWRDYWxsYmFjayIsImF0dGFjaGVkQ2FsbGJhY2siLCJkZXRhY2hlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShlLG4pfSkpLHQuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldExlZ2FjeSIsKGZ1bmN0aW9uKGUsdCxuKXtiZShlLG4pLGtlKG4sZSl9KSl9fSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbCk7dmFyIFRlPXYoInpvbmVUYXNrIik7ZnVuY3Rpb24gd2UoZSx0LG4scil7dmFyIG89bnVsbCxhPW51bGw7bis9cjt2YXIgaT17fTtmdW5jdGlvbiBjKHQpe3ZhciBuPXQuZGF0YTtyZXR1cm4gbi5hcmdzWzBdPWZ1bmN0aW9uKCl7dHJ5e3QuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3QuZGF0YSYmdC5kYXRhLmlzUGVyaW9kaWN8fCgibnVtYmVyIj09dHlwZW9mIG4uaGFuZGxlSWQ/ZGVsZXRlIGlbbi5oYW5kbGVJZF06bi5oYW5kbGVJZCYmKG4uaGFuZGxlSWRbVGVdPW51bGwpKX19LG4uaGFuZGxlSWQ9by5hcHBseShlLG4uYXJncyksdH1mdW5jdGlvbiBzKGUpe3JldHVybiBhKGUuZGF0YS5oYW5kbGVJZCl9bz1SKGUsdCs9ciwoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFbMF0pe3ZhciB1PWQodCxhWzBdLHtpc1BlcmlvZGljOiJJbnRlcnZhbCI9PT1yLGRlbGF5OiJUaW1lb3V0Ij09PXJ8fCJJbnRlcnZhbCI9PT1yP2FbMV18fDA6dm9pZCAwLGFyZ3M6YX0sYyxzKTtpZighdSlyZXR1cm4gdTt2YXIgbD11LmRhdGEuaGFuZGxlSWQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBsP2lbbF09dTpsJiYobFtUZV09dSksbCYmbC5yZWYmJmwudW5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIGwudW5yZWYmJih1LnJlZj1sLnJlZi5iaW5kKGwpLHUudW5yZWY9bC51bnJlZi5iaW5kKGwpKSwibnVtYmVyIj09dHlwZW9mIGx8fGw/bDp1fXJldHVybiBuLmFwcGx5KGUsYSl9fSkpLGE9UihlLG4sKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciBvLGE9clswXTsibnVtYmVyIj09dHlwZW9mIGE/bz1pW2FdOihvPWEmJmFbVGVdKXx8KG89YSksbyYmInN0cmluZyI9PXR5cGVvZiBvLnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1vLnN0YXRlJiYoby5jYW5jZWxGbiYmby5kYXRhLmlzUGVyaW9kaWN8fDA9PT1vLnJ1bkNvdW50KSYmKCJudW1iZXIiPT10eXBlb2YgYT9kZWxldGUgaVthXTphJiYoYVtUZV09bnVsbCksby56b25lLmNhbmNlbFRhc2sobykpOnQuYXBwbA=="
}

Changelog:

{
    "2019.12.04 14:30": "base64:dWxsO2lmKGEmJiEodT1hW3NdKSYmKHU9YVtzXT1hW3JdLFQoYSYmZShhLHIpKSkpe3ZhciBsPW8odSxzLHIpO2Fbcl09ZnVuY3Rpb24oKXtyZXR1cm4gbCh0aGlzLGFyZ3VtZW50cyl9LE0oYVtyXSx1KSxJJiYoaT11LGM9YVtyXSwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGlbZV19LHNldDpmdW5jdGlvbihuKXsoIXR8fHQud3JpdGFibGUmJiJmdW5jdGlvbiI9PXR5cGVvZiB0LnNldCkmJihpW2VdPW4pfSxlbnVtZXJhYmxlOiF0fHx0LmVudW1lcmFibGUsY29uZmlndXJhYmxlOiF0fHx0LmNvbmZpZ3VyYWJsZX0pfSkpKX1yZXR1cm4gdX1mdW5jdGlvbiB4KGUsdCxuKXt2YXIgcj1udWxsO2Z1bmN0aW9uIG8oZSl7dmFyIHQ9ZS5kYXRhO3JldHVybiB0LmFyZ3NbdC5jYklkeF09ZnVuY3Rpb24oKXtlLmludm9rZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHIuYXBwbHkodC50YXJnZXQsdC5hcmdzKSxlfXI9UihlLHQsKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LHIpe3ZhciBhPW4odCxyKTtyZXR1cm4gYS5jYklkeD49MCYmImZ1bmN0aW9uIj09dHlwZW9mIHJbYS5jYklkeF0/ZChhLm5hbWUsclthLmNiSWR4XSxhLG8pOmUuYXBwbHkodCxyKX19KSl9ZnVuY3Rpb24gTShlLHQpe2VbdigiT3JpZ2luYWxEZWxlZ2F0ZSIpXT10fXZhciBMPSExLE49ITE7ZnVuY3Rpb24gRigpe3RyeXt2YXIgZT1nLm5hdmlnYXRvci51c2VyQWdlbnQ7aWYoLTEhPT1lLmluZGV4T2YoIk1TSUUgIil8fC0xIT09ZS5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKHQpe31yZXR1cm4hMX1mdW5jdGlvbiBBKCl7aWYoTClyZXR1cm4gTjtMPSEwO3RyeXt2YXIgZT1nLm5hdmlnYXRvci51c2VyQWdlbnQ7LTE9PT1lLmluZGV4T2YoIk1TSUUgIikmJi0xPT09ZS5pbmRleE9mKCJUcmlkZW50LyIpJiYtMT09PWUuaW5kZXhPZigiRWRnZS8iKXx8KE49ITApfWNhdGNoKHQpe31yZXR1cm4gTn1ab25lLl9fbG9hZF9wYXRjaCgidG9TdHJpbmciLChmdW5jdGlvbihlKXt2YXIgdD1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsbj12KCJPcmlnaW5hbERlbGVnYXRlIikscj12KCJQcm9taXNlIiksbz12KCJFcnJvciIpLGE9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGhpcyl7dmFyIGE9dGhpc1tuXTtpZihhKXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhP3QuY2FsbChhKTpPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk7aWYodGhpcz09PVByb21pc2Upe3ZhciBpPWVbcl07aWYoaSlyZXR1cm4gdC5jYWxsKGkpfWlmKHRoaXM9PT1FcnJvcil7dmFyIGM9ZVtvXTtpZihjKXJldHVybiB0LmNhbGwoYyl9fXJldHVybiB0LmNhbGwodGhpcyl9O2Fbbl09dCxGdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc9YTt2YXIgaT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO09iamVjdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFByb21pc2U/IltvYmplY3QgUHJvbWlzZV0iOmkuY2FsbCh0aGlzKX19KSk7dmFyIEg9ITE7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cpdHJ5e3ZhciBHPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe0g9ITB9fSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3QiLEcsRyl9Y2F0Y2goT2Upe0g9ITF9dmFyIEI9e3VzZUc6ITB9LFc9e30scT17fSxVPS9eX196b25lX3N5bWJvbF9fKFx3KykodHJ1ZXxmYWxzZSkkLyxWPSJfX3pvbmVfc3ltYm9sX19wcm9wYWdhdGlvblN0b3BwZWQiO2Z1bmN0aW9uIFgoZSx0LHIpe3ZhciBvPXImJnIuYWRkfHxpLGE9ciYmci5ybXx8YyxzPXImJnIubGlzdGVuZXJzfHwiZXZlbnRMaXN0ZW5lcnMiLHU9ciYmci5ybUFsbHx8InJlbW92ZUFsbExpc3RlbmVycyIsaD12KG8pLGQ9Ii4iK28rIjoiLHk9InByZXBlbmRMaXN0ZW5lciIsZz0iLiIreSsiOiIsXz1mdW5jdGlvbihlLHQsbil7aWYoIWUuaXNSZW1vdmVkKXt2YXIgcj1lLmNhbGxiYWNrOyJvYmplY3QiPT10eXBlb2YgciYmci5oYW5kbGVFdmVudCYmKGUuY2FsbGJhY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIHIuaGFuZGxlRXZlbnQoZSl9LGUub3JpZ2luYWxEZWxlZ2F0ZT1yKSxlLmludm9rZShlLHQsW25dKTt2YXIgbz1lLm9wdGlvbnM7byYmIm9iamVjdCI9PXR5cGVvZiBvJiZvLm9uY2UmJnRbYV0uY2FsbCh0LG4udHlwZSxlLm9yaWdpbmFsRGVsZWdhdGU/ZS5vcmlnaW5hbERlbGVnYXRlOmUuY2FsbGJhY2ssbyl9fSxtPWZ1bmN0aW9uKHQpe2lmKHQ9dHx8ZS5ldmVudCl7dmFyIG49dGhpc3x8dC50YXJnZXR8fGUscj1uW1dbdC50eXBlXVtmXV07aWYocilpZigxPT09ci5sZW5ndGgpXyhyWzBdLG4sdCk7ZWxzZSBmb3IodmFyIG89ci5zbGljZSgpLGE9MDthPG8ubGVuZ3RoJiYoIXR8fCEwIT09dFtWXSk7YSsrKV8ob1thXSxuLHQpfX0sYj1mdW5jdGlvbih0KXtpZih0PXR8fGUuZXZlbnQpe3ZhciBuPXRoaXN8fHQudGFyZ2V0fHxlLHI9bltXW3QudHlwZV1bbF1dO2lmKHIpaWYoMT09PXIubGVuZ3RoKV8oclswXSxuLHQpO2Vsc2UgZm9yKHZhciBvPXIuc2xpY2UoKSxhPTA7YTxvLmxlbmd0aCYmKCF0fHwhMCE9PXRbVl0pO2ErKylfKG9bYV0sbix0KX19O2Z1bmN0aW9uIGsodCxyKXtpZighdClyZXR1cm4hMTt2YXIgaT0hMDtyJiZ2b2lkIDAhPT1yLnVzZUcmJihpPXIudXNlRyk7dmFyIGM9ciYmci52aCxfPSEwO3ImJnZvaWQgMCE9PXIuY2hrRHVwJiYoXz1yLmNoa0R1cCk7dmFyIGs9ITE7ciYmdm9pZCAwIT09ci5ydCYmKGs9ci5ydCk7Zm9yKHZhciBUPXQ7VCYmIVQuaGFzT3duUHJvcGVydHkobyk7KVQ9bihUKTtpZighVCYmdFtvXSYmKFQ9dCksIVQpcmV0dXJuITE7aWYoVFtoXSlyZXR1cm4hMTt2YXIgdyxPPXImJnIuZXZlbnROYW1lVG9TdHJpbmcsUz17fSxQPVRbaF09VFtvXSxEPVRbdihhKV09VFthXSxaPVRbdihzKV09VFtzXSxqPVRbdih1KV09VFt1XTtmdW5jdGlvbiB6KGUpe0h8fCJib29sZWFuIj09dHlwZW9mIFMub3B0aW9uc3x8bnVsbD09Uy5vcHRpb25zfHwoZS5vcHRpb25zPSEhUy5vcHRpb25zLmNhcHR1cmUsUy5vcHRpb25zPWUub3B0aW9ucyl9ciYmci5wcmVwZW5kJiYodz1UW3Yoci5wcmVwZW5kKV09VFtyLnByZXBlbmRdKTt2YXIgQz1pP2Z1bmN0aW9uKGUpe2lmKCFTLmlzRXhpc3RpbmcpcmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLFMuY2FwdHVyZT9iOm0sUy5vcHRpb25zKX06ZnVuY3Rpb24oZSl7cmV0dXJuIHooZSksUC5jYWxsKFMudGFyZ2V0LFMuZXZlbnROYW1lLGUuaW52b2tlLFMub3B0aW9ucyl9LEk9aT9mdW5jdGlvbihlKXtpZighZS5pc1JlbW92ZWQpe3ZhciB0PVdbZS5ldmVudE5hbWVdLG49dm9pZCAwO3QmJihuPXRbZS5jYXB0dXJlP2w6Zl0pO3ZhciByPW4mJmUudGFyZ2V0W25dO2lmKHIpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspaWYocltvXT09PWUpe3Iuc3BsaWNlKG8sMSksZS5pc1JlbW92ZWQ9ITAsMD09PXIubGVuZ3RoJiYoZS5hbGxSZW1vdmVkPSEwLGUudGFyZ2V0W25dPW51bGwpO2JyZWFrfX1pZihlLmFsbFJlbW92ZWQpcmV0dXJuIEQuY2FsbChlLnRhcmdldCxlLmV2ZW50TmFtZSxlLmNhcHR1cmU/YjptLGUub3B0aW9ucyl9OmZ1bmN0aW9uKGUpe3JldHVybiBELmNhbGwoZS50YXJnZXQsZS5ldmVudE5hbWUsZS5pbnZva2UsZS5vcHRpb25zKX0sUj1yJiZyLmRpZmY/ci5kaWZmOmZ1bmN0aW9uKGUsdCl7dmFyIG49dHlwZW9mIHQ7cmV0dXJuImZ1bmN0aW9uIj09PW4mJmUuY2FsbGJhY2s9PT10fHwib2JqZWN0Ij09PW4mJmUub3JpZ2luYWxEZWxlZ2F0ZT09PXR9LHg9Wm9uZVtab25lLl9fc3ltYm9sX18oIkJMQUNLX0xJU1RFRF9FVkVOVFMiKV0sTD1mdW5jdGlvbih0LG4scixvLGEscyl7cmV0dXJuIHZvaWQgMD09PWEmJihhPSExKSx2b2lkIDA9PT1zJiYocz0hMSksZnVuY3Rpb24oKXt2YXIgdT10aGlzfHxlLGg9YXJndW1lbnRzWzBdLGQ9YXJndW1lbnRzWzFdO2lmKCFkKXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihFJiYidW5jYXVnaHRFeGNlcHRpb24iPT09aClyZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIHY9ITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGQpe2lmKCFkLmhhbmRsZUV2ZW50KXJldHVybiB0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2PSEwfWlmKCFjfHxjKHQsZCx1LGFyZ3VtZW50cykpe3ZhciB5LGc9YXJndW1lbnRzWzJdO2lmKHgpZm9yKHZhciBtPTA7bTx4Lmxlbmd0aDttKyspaWYoaD09PXhbbV0pcmV0dXJuIHQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3ZhciBiPSExO3ZvaWQgMD09PWc/eT0hMTohMD09PWc/eT0hMDohMT09PWc/eT0hMTooeT0hIWcmJiEhZy5jYXB0dXJlLGI9ISFnJiYhIWcub25jZSk7dmFyIGssVD1ab25lLmN1cnJlbnQsdz1XW2hdO2lmKHcpaz13W3k/bDpmXTtlbHNle3ZhciBQPShPP08oaCk6aCkrZixEPShPP08oaCk6aCkrbCxaPXArUCxqPXArRDtXW2hdPXt9LFdbaF1bZl09WixXW2hdW2xdPWosaz15P2o6Wn12YXIgeixDPXVba10sST0hMTtpZihDKXtpZihJPSEwLF8pZm9yKG09MDttPEMubGVuZ3RoO20rKylpZihSKENbbV0sZCkpcmV0dXJufWVsc2UgQz11W2tdPVtdO3ZhciBNPXUuY29uc3RydWN0b3IubmFtZSxMPXFbTV07TCYmKHo9TFtoXSksenx8KHo9TStuKyhPP08oaCk6aCkpLFMub3B0aW9ucz1nLGImJihTLm9wdGlvbnMub25jZT0hMSksUy50YXJnZXQ9dSxTLmNhcHR1cmU9eSxTLmV2ZW50TmFtZT1oLFMuaXNFeGlzdGluZz1JO3ZhciBOPWk/Qjp2b2lkIDA7TiYmKE4udGFza0RhdGE9Uyk7dmFyIEY9VC5zY2hlZHVsZUV2ZW50VGFzayh6LGQsTixyLG8pO3JldHVybiBTLnRhcmdldD1udWxsLE4mJihOLnRhc2tEYXRhPW51bGwpLGImJihnLm9uY2U9ITApLChIfHwiYm9vbGVhbiIhPXR5cGVvZiBGLm9wdGlvbnMpJiYoRi5vcHRpb25zPWcpLEYudGFyZ2V0PXUsRi5jYXB0dXJlPXksRi5ldmVudE5hbWU9aCx2JiYoRi5vcmlnaW5hbERlbGVnYXRlPWQpLHM/Qy51bnNoaWZ0KEYpOkMucHVzaChGKSxhP3U6dm9pZCAwfX19O3JldHVybiBUW29dPUwoUCxkLEMsSSxrKSx3JiYoVFt5XT1MKHcsZywoZnVuY3Rpb24oZSl7cmV0dXJuIHcuY2FsbChTLnRhcmdldCxTLmV2ZW50TmFtZSxlLmludm9rZSxTLm9wdGlvbnMpfSksSSxrLCEwKSksVFthXT1mdW5jdGlvbigpe3ZhciB0LG49dGhpc3x8ZSxyPWFyZ3VtZW50c1swXSxvPWFyZ3VtZW50c1syXTt0PXZvaWQgMCE9PW8mJighMD09PW98fCExIT09byYmISFvJiYhIW8uY2FwdHVyZSk7dmFyIGE9YXJndW1lbnRzWzFdO2lmKCFhKXJldHVybiBELmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZighY3x8YyhELGEsbixhcmd1bWVudHMpKXt2YXIgaSxzPVdbcl07cyYmKGk9c1t0P2w6Zl0pO3ZhciB1PWkmJm5baV07aWYodSlmb3IodmFyIHA9MDtwPHUubGVuZ3RoO3ArKyl7dmFyIGg9dVtwXTtpZihSKGgsYSkpcmV0dXJuIHUuc3BsaWNlKHAsMSksaC5pc1JlbW92ZWQ9ITAsMD09PXUubGVuZ3RoJiYoaC5hbGxSZW1vdmVkPSEwLG5baV09bnVsbCksaC56b25lLmNhbmNlbFRhc2soaCksaz9uOnZvaWQgMH1yZXR1cm4gRC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxUW3NdPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF0scj1bXSxvPVkodCxPP08obik6biksYT0wO2E8by5sZW5ndGg7YSsrKXt2YXIgaT1vW2FdLGM9aS5vcmlnaW5hbERlbGVnYXRlP2kub3JpZ2luYWxEZWxlZ2F0ZTppLmNhbGxiYWNrO3IucHVzaChjKX1yZXR1cm4gcn0sVFt1XT1mdW5jdGlvbigpe3ZhciB0PXRoaXN8fGUsbj1hcmd1bWVudHNbMF07aWYobil7dmFyIHI9V1tuXTtpZihyKXt2YXIgbz1yW2ZdLGk9cltsXSxjPXRbb10scz10W2ldO2lmKGMpe3ZhciBwPWMuc2xpY2UoKTtmb3Iodj0wO3Y8cC5sZW5ndGg7disrKXRoaXNbYV0uY2FsbCh0aGlzLG4sKGg9cFt2XSkub3JpZ2luYWxEZWxlZ2F0ZT9oLm9yaWdpbmFsRGVsZWdhdGU6aC5jYWxsYmFjayxoLm9wdGlvbnMpfWlmKHMpZm9yKHA9cy5zbGljZSgpLHY9MDt2PHAubGVuZ3RoO3YrKyl7dmFyIGg7dGhpc1thXS5jYWxsKHRoaXMsbiwoaD1wW3ZdKS5vcmlnaW5hbERlbGVnYXRlP2gub3JpZ2luYWxEZWxlZ2F0ZTpoLmNhbGxiYWNrLGgub3B0aW9ucyl9fX1lbHNle2Zvcih2YXIgZD1PYmplY3Qua2V5cyh0KSx2PTA7djxkLmxlbmd0aDt2Kyspe3ZhciB5PWRbdl0sZz1VLmV4ZWMoeSksXz1nJiZnWzFdO18mJiJyZW1vdmVMaXN0ZW5lciIhPT1fJiZ0aGlzW3VdLmNhbGwodGhpcyxfKX10aGlzW3VdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihrKXJldHVybiB0aGlzfSxNKFRbb10sUCksTShUW2FdLEQpLGomJk0oVFt1XSxqKSxaJiZNKFRbc10sWiksITB9Zm9yKHZhciBUPVtdLHc9MDt3PHQubGVuZ3RoO3crKylUW3ddPWsodFt3XSxyKTtyZXR1cm4gVH1mdW5jdGlvbiBZKGUsdCl7dmFyIG49W107Zm9yKHZhciByIGluIGUpe3ZhciBvPVUuZXhlYyhyKSxhPW8mJm9bMV07aWYoYSYmKCF0fHxhPT09dCkpe3ZhciBpPWVbcl07aWYoaSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKyluLnB1c2goaVtjXSl9fXJldHVybiBufWZ1bmN0aW9uIEooZSx0KXt2YXIgbj1lLkV2ZW50O24mJm4ucHJvdG90eXBlJiZ0LnBhdGNoTWV0aG9kKG4ucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24odCxuKXt0W1ZdPSEwLGUmJmUuYXBwbHkodCxuKX19KSl9ZnVuY3Rpb24gSyhlLHQsbixyLG8pe3ZhciBhPVpvbmUuX19zeW1ib2xfXyhyKTtpZighdFthXSl7dmFyIGk9dFthXT10W3JdO3Rbcl09ZnVuY3Rpb24oYSxjLHMpe3JldHVybiBjJiZjLnByb3RvdHlwZSYmby5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgbz1uKyIuIityKyI6OiIrdCxhPWMucHJvdG90eXBlO2lmKGEuaGFzT3duUHJvcGVydHkodCkpe3ZhciBpPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsdCk7aSYmaS52YWx1ZT8oaS52YWx1ZT1lLndyYXBXaXRoQ3VycmVudFpvbmUoaS52YWx1ZSxvKSxlLl9yZWRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLHQsaSkpOmFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX1lbHNlIGFbdF0mJihhW3RdPWUud3JhcFdpdGhDdXJyZW50Wm9uZShhW3RdLG8pKX0pKSxpLmNhbGwodCxhLGMscyl9LGUuYXR0YWNoT3JpZ2luVG9QYXRjaGVkKHRbcl0saSl9fXZhciBRPVpvbmUuX19zeW1ib2xfXywkPU9iamVjdFtRKCJkZWZpbmVQcm9wZXJ0eSIpXT1PYmplY3QuZGVmaW5lUHJvcGVydHksZWU9T2JqZWN0W1EoImdldE93blByb3BlcnR5RGVzY3JpcHRvciIpXT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLHRlPU9iamVjdC5jcmVhdGUsbmU9USgidW5jb25maWd1cmFibGVzIik7ZnVuY3Rpb24gcmUoZSx0LG4pe3ZhciByPW4uY29uZmlndXJhYmxlO3JldHVybiBpZShlLHQsbj1hZShlLHQsbikscil9ZnVuY3Rpb24gb2UoZSx0KXtyZXR1cm4gZSYmZVtuZV0mJmVbbmVdW3RdfWZ1bmN0aW9uIGFlKGUsdCxuKXtyZXR1cm4gT2JqZWN0LmlzRnJvemVuKG4pfHwobi5jb25maWd1cmFibGU9ITApLG4uY29uZmlndXJhYmxlfHwoZVtuZV18fE9iamVjdC5pc0Zyb3plbihlKXx8JChlLG5lLHt3cml0YWJsZTohMCx2YWx1ZTp7fX0pLGVbbmVdJiYoZVtuZV1bdF09ITApKSxufWZ1bmN0aW9uIGllKGUsdCxuLHIpe3RyeXtyZXR1cm4gJChlLHQsbil9Y2F0Y2goYSl7aWYoIW4uY29uZmlndXJhYmxlKXRocm93IGE7dm9pZCAwPT09cj9kZWxldGUgbi5jb25maWd1cmFibGU6bi5jb25maWd1cmFibGU9cjt0cnl7cmV0dXJuICQoZSx0LG4pfWNhdGNoKGEpe3ZhciBvPW51bGw7dHJ5e289SlNPTi5zdHJpbmdpZnkobil9Y2F0Y2goYSl7bz1uLnRvU3RyaW5nKCl9Y29uc29sZS5sb2coIkF0dGVtcHRpbmcgdG8gY29uZmlndXJlICciK3QrIicgd2l0aCBkZXNjcmlwdG9yICciK28rIicgb24gb2JqZWN0ICciK2UrIicgYW5kIGdvdCBlcnJvciwgZ2l2aW5nIHVwOiAiK2EpfX19dmFyIGNlPVsiYWJzb2x1dGVkZXZpY2VvcmllbnRhdGlvbiIsImFmdGVyaW5wdXQiLCJhZnRlcnByaW50IiwiYXBwaW5zdGFsbGVkIiwiYmVmb3JlaW5zdGFsbHByb21wdCIsImJlZm9yZXByaW50IiwiYmVmb3JldW5sb2FkIiwiZGV2aWNlbGlnaHQiLCJkZXZpY2Vtb3Rpb24iLCJkZXZpY2VvcmllbnRhdGlvbiIsImRldmljZW9yaWVudGF0aW9uYWJzb2x1dGUiLCJkZXZpY2Vwcm94aW1pdHkiLCJoYXNoY2hhbmdlIiwibGFuZ3VhZ2VjaGFuZ2UiLCJtZXNzYWdlIiwibW96YmVmb3JlcGFpbnQiLCJvZmZsaW5lIiwib25saW5lIiwicGFpbnQiLCJwYWdlc2hvdyIsInBhZ2VoaWRlIiwicG9wc3RhdGUiLCJyZWplY3Rpb25oYW5kbGVkIiwic3RvcmFnZSIsInVuaGFuZGxlZHJlamVjdGlvbiIsInVubG9hZCIsInVzZXJwcm94aW1pdHkiLCJ2cmRpc3BseWNvbm5lY3RlZCIsInZyZGlzcGxheWRpc2Nvbm5lY3RlZCIsInZyZGlzcGxheXByZXNlbnRjaGFuZ2UiXSxzZT1bImVuY3J5cHRlZCIsIndhaXRpbmdmb3JrZXkiLCJtc25lZWRrZXkiLCJtb3ppbnRlcnJ1cHRiZWdpbiIsIm1vemludGVycnVwdGVuZCJdLHVlPVsibG9hZCJdLGxlPVsiYmx1ciIsImVycm9yIiwiZm9jdXMiLCJsb2FkIiwicmVzaXplIiwic2Nyb2xsIiwibWVzc2FnZWVycm9yIl0sZmU9WyJib3VuY2UiLCJmaW5pc2giLCJzdGFydCJdLHBlPVsibG9hZHN0YXJ0IiwicHJvZ3Jlc3MiLCJhYm9ydCIsImVycm9yIiwibG9hZCIsInByb2dyZXNzIiwidGltZW91dCIsImxvYWRlbmQiLCJyZWFkeXN0YXRlY2hhbmdlIl0saGU9WyJ1cGdyYWRlbmVlZGVkIiwiY29tcGxldGUiLCJhYm9ydCIsInN1Y2Nlc3MiLCJlcnJvciIsImJsb2NrZWQiLCJ2ZXJzaW9uY2hhbmdlIiwiY2xvc2UiXSxkZT1bImNsb3NlIiwiZXJyb3IiLCJvcGVuIiwibWVzc2FnZSJdLHZlPVsiZXJyb3IiLCJtZXNzYWdlIl0seWU9WyJhYm9ydCIsImFuaW1hdGlvbmNhbmNlbCIsImFuaW1hdGlvbmVuZCIsImFuaW1hdGlvbml0ZXJhdGlvbiIsImF1eGNsaWNrIiwiYmVmb3JlaW5wdXQiLCJibHVyIiwiY2FuY2VsIiwiY2FucGxheSIsImNhbnBsYXl0aHJvdWdoIiwiY2hhbmdlIiwiY29tcG9zaXRpb25zdGFydCIsImNvbXBvc2l0aW9udXBkYXRlIiwiY29tcG9zaXRpb25lbmQiLCJjdWVjaGFuZ2UiLCJjbGljayIsImNsb3NlIiwiY29udGV4dG1lbnUiLCJjdXJlY2hhbmdlIiwiZGJsY2xpY2siLCJkcmFnIiwiZHJhZ2VuZCIsImRyYWdlbnRlciIsImRyYWdleGl0IiwiZHJhZ2xlYXZlIiwiZHJhZ292ZXIiLCJkcm9wIiwiZHVyYXRpb25jaGFuZ2UiLCJlbXB0aWVkIiwiZW5kZWQiLCJlcnJvciIsImZvY3VzIiwiZm9jdXNpbiIsImZvY3Vzb3V0IiwiZ290cG9pbnRlcmNhcHR1cmUiLCJpbnB1dCIsImludmFsaWQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImxvYWQiLCJsb2Fkc3RhcnQiLCJsb2FkZWRkYXRhIiwibG9hZGVkbWV0YWRhdGEiLCJsb3N0cG9pbnRlcmNhcHR1cmUiLCJtb3VzZWRvd24iLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsIm1vdXNlbW92ZSIsIm1vdXNlb3V0IiwibW91c2VvdmVyIiwibW91c2V1cCIsIm1vdXNld2hlZWwiLCJvcmllbnRhdGlvbmNoYW5nZSIsInBhdXNlIiwicGxheSIsInBsYXlpbmciLCJwb2ludGVyY2FuY2VsIiwicG9pbnRlcmRvd24iLCJwb2ludGVyZW50ZXIiLCJwb2ludGVybGVhdmUiLCJwb2ludGVybG9ja2NoYW5nZSIsIm1venBvaW50ZXJsb2NrY2hhbmdlIiwid2Via2l0cG9pbnRlcmxvY2tlcmNoYW5nZSIsInBvaW50ZXJsb2NrZXJyb3IiLCJtb3pwb2ludGVybG9ja2Vycm9yIiwid2Via2l0cG9pbnRlcmxvY2tlcnJvciIsInBvaW50ZXJtb3ZlIiwicG9pbnRvdXQiLCJwb2ludGVyb3ZlciIsInBvaW50ZXJ1cCIsInByb2dyZXNzIiwicmF0ZWNoYW5nZSIsInJlc2V0IiwicmVzaXplIiwic2Nyb2xsIiwic2Vla2VkIiwic2Vla2luZyIsInNlbGVjdCIsInNlbGVjdGlvbmNoYW5nZSIsInNlbGVjdHN0YXJ0Iiwic2hvdyIsInNvcnQiLCJzdGFsbGVkIiwic3VibWl0Iiwic3VzcGVuZCIsInRpbWV1cGRhdGUiLCJ2b2x1bWVjaGFuZ2UiLCJ0b3VjaGNhbmNlbCIsInRvdWNobW92ZSIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsInRyYW5zaXRpb25jYW5jZWwiLCJ0cmFuc2l0aW9uZW5kIiwid2FpdGluZyIsIndoZWVsIl0uY29uY2F0KFsid2ViZ2xjb250ZXh0cmVzdG9yZWQiLCJ3ZWJnbGNvbnRleHRsb3N0Iiwid2ViZ2xjb250ZXh0Y3JlYXRpb25lcnJvciJdLFsiYXV0b2NvbXBsZXRlIiwiYXV0b2NvbXBsZXRlZXJyb3IiXSxbInRvZ2dsZSJdLFsiYWZ0ZXJzY3JpcHRleGVjdXRlIiwiYmVmb3Jlc2NyaXB0ZXhlY3V0ZSIsIkRPTUNvbnRlbnRMb2FkZWQiLCJmcmVlemUiLCJmdWxsc2NyZWVuY2hhbmdlIiwibW96ZnVsbHNjcmVlbmNoYW5nZSIsIndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiLCJtc2Z1bGxzY3JlZW5jaGFuZ2UiLCJmdWxsc2NyZWVuZXJyb3IiLCJtb3pmdWxsc2NyZWVuZXJyb3IiLCJ3ZWJraXRmdWxsc2NyZWVuZXJyb3IiLCJtc2Z1bGxzY3JlZW5lcnJvciIsInJlYWR5c3RhdGVjaGFuZ2UiLCJ2aXNpYmlsaXR5Y2hhbmdlIiwicmVzdW1lIl0sY2UsWyJiZWZvcmVjb3B5IiwiYmVmb3JlY3V0IiwiYmVmb3JlcGFzdGUiLCJjb3B5IiwiY3V0IiwicGFzdGUiLCJkcmFnc3RhcnQiLCJsb2FkZW5kIiwiYW5pbWF0aW9uc3RhcnQiLCJzZWFyY2giLCJ0cmFuc2l0aW9ucnVuIiwidHJhbnNpdGlvbnN0YXJ0Iiwid2Via2l0YW5pbWF0aW9uZW5kIiwid2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uIiwid2Via2l0YW5pbWF0aW9uc3RhcnQiLCJ3ZWJraXR0cmFuc2l0aW9uZW5kIl0sWyJhY3RpdmF0ZSIsImFmdGVydXBkYXRlIiwiYXJpYXJlcXVlc3QiLCJiZWZvcmVhY3RpdmF0ZSIsImJlZm9yZWRlYWN0aXZhdGUiLCJiZWZvcmVlZGl0Zm9jdXMiLCJiZWZvcmV1cGRhdGUiLCJjZWxsY2hhbmdlIiwiY29udHJvbHNlbGVjdCIsImRhdGFhdmFpbGFibGUiLCJkYXRhc2V0Y2hhbmdlZCIsImRhdGFzZXRjb21wbGV0ZSIsImVycm9ydXBkYXRlIiwiZmlsdGVyY2hhbmdlIiwibGF5b3V0Y29tcGxldGUiLCJsb3NlY2FwdHVyZSIsIm1vdmUiLCJtb3ZlZW5kIiwibW92ZXN0YXJ0IiwicHJvcGVydHljaGFuZ2UiLCJyZXNpemVlbmQiLCJyZXNpemVzdGFydCIsInJvd2VudGVyIiwicm93ZXhpdCIsInJvd3NkZWxldGUiLCJyb3dzaW5zZXJ0ZWQiLCJjb21tYW5kIiwiY29tcGFzc25lZWRzY2FsaWJyYXRpb24iLCJkZWFjdGl2YXRlIiwiaGVscCIsIm1zY29udGVudHpvb20iLCJtc21hbmlwdWxhdGlvbnN0YXRlY2hhbmdlZCIsIm1zZ2VzdHVyZWNoYW5nZSIsIm1zZ2VzdHVyZWRvdWJsZXRhcCIsIm1zZ2VzdHVyZWVuZCIsIm1zZ2VzdHVyZWhvbGQiLCJtc2dlc3R1cmVzdGFydCIsIm1zZ2VzdHVyZXRhcCIsIm1zZ290cG9pbnRlcmNhcHR1cmUiLCJtc2luZXJ0aWFzdGFydCIsIm1zbG9zdHBvaW50ZXJjYXB0dXJlIiwibXNwb2ludGVyY2FuY2VsIiwibXNwb2ludGVyZG93biIsIm1zcG9pbnRlcmVudGVyIiwibXNwb2ludGVyaG92ZXIiLCJtc3BvaW50ZXJsZWF2ZSIsIm1zcG9pbnRlcm1vdmUiLCJtc3BvaW50ZXJvdXQiLCJtc3BvaW50ZXJvdmVyIiwibXNwb2ludGVydXAiLCJwb2ludGVyb3V0IiwibXNzaXRlbW9kZWp1bXBsaXN0aXRlbXJlbW92ZWQiLCJtc3RodW1ibmFpbGNsaWNrIiwic3RvcCIsInN0b3JhZ2Vjb21taXQiXSk7ZnVuY3Rpb24gZ2UoZSx0LG4pe2lmKCFufHwwPT09bi5sZW5ndGgpcmV0dXJuIHQ7dmFyIHI9bi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldD09PWV9KSk7aWYoIXJ8fDA9PT1yLmxlbmd0aClyZXR1cm4gdDt2YXIgbz1yWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4tMT09PW8uaW5kZXhPZihlKX0pKX1mdW5jdGlvbiBfZShlLHQsbixyKXtlJiZqKGUsZ2UoZSx0LG4pLHIpfWZ1bmN0aW9uIG1lKGUsdCl7aWYoKCFFfHxTKSYmIVpvbmVbZS5zeW1ib2woInBhdGNoRXZlbnRzIildKXt2YXIgcj0idW5kZWZpbmVkIiE9dHlwZW9mIFdlYlNvY2tldCxvPXQuX19ab25lX2lnbm9yZV9vbl9wcm9wZXJ0aWVzO2lmKE8pe3ZhciBhPXdpbmRvdyxpPUY/W3t0YXJnZXQ6YSxpZ25vcmVQcm9wZXJ0aWVzOlsiZXJyb3IiXX1dOltdO19lKGEseWUuY29uY2F0KFsibWVzc2FnZWVycm9yIl0pLG8/by5jb25jYXQoaSk6byxuKGEpKSxfZShEb2N1bWVudC5wcm90b3R5cGUseWUsbyksdm9pZCAwIT09YS5TVkdFbGVtZW50JiZfZShhLlNWR0VsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEVsZW1lbnQucHJvdG90eXBlLHllLG8pLF9lKEhUTUxFbGVtZW50LnByb3RvdHlwZSx5ZSxvKSxfZShIVE1MTWVkaWFFbGVtZW50LnByb3RvdHlwZSxzZSxvKSxfZShIVE1MRnJhbWVTZXRFbGVtZW50LnByb3RvdHlwZSxjZS5jb25jYXQobGUpLG8pLF9lKEhUTUxCb2R5RWxlbWVudC5wcm90b3R5cGUsY2UuY29uY2F0KGxlKSxvKSxfZShIVE1MRnJhbWVFbGVtZW50LnByb3RvdHlwZSx1ZSxvKSxfZShIVE1MSUZyYW1lRWxlbWVudC5wcm90b3R5cGUsdWUsbyk7dmFyIGM9YS5IVE1MTWFycXVlZUVsZW1lbnQ7YyYmX2UoYy5wcm90b3R5cGUsZmUsbyk7dmFyIHM9YS5Xb3JrZXI7cyYmX2Uocy5wcm90b3R5cGUsdmUsbyl9dmFyIHU9dC5YTUxIdHRwUmVxdWVzdDt1JiZfZSh1LnByb3RvdHlwZSxwZSxvKTt2YXIgbD10LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7bCYmX2UobCYmbC5wcm90b3R5cGUscGUsbyksInVuZGVmaW5lZCIhPXR5cGVvZiBJREJJbmRleCYmKF9lKElEQkluZGV4LnByb3RvdHlwZSxoZSxvKSxfZShJREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJPcGVuREJSZXF1ZXN0LnByb3RvdHlwZSxoZSxvKSxfZShJREJEYXRhYmFzZS5wcm90b3R5cGUsaGUsbyksX2UoSURCVHJhbnNhY3Rpb24ucHJvdG90eXBlLGhlLG8pLF9lKElEQkN1cnNvci5wcm90b3R5cGUsaGUsbykpLHImJl9lKFdlYlNvY2tldC5wcm90b3R5cGUsZGUsbyl9fWZ1bmN0aW9uIGJlKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCkscj1uLmV2ZW50TmFtZXMsbz1uLmdsb2JhbFNvdXJjZXMsYT1uLnpvbmVTeW1ib2xFdmVudE5hbWVzLGk9bi5UUlVFX1NUUixjPW4uRkFMU0VfU1RSLHM9bi5aT05FX1NZTUJPTF9QUkVGSVgsdT0iQW5jaG9yLEFyZWEsQXVkaW8sQlIsQmFzZSxCYXNlRm9udCxCb2R5LEJ1dHRvbixDYW52YXMsQ29udGVudCxETGlzdCxEaXJlY3RvcnksRGl2LEVtYmVkLEZpZWxkU2V0LEZvbnQsRm9ybSxGcmFtZSxGcmFtZVNldCxIUixIZWFkLEhlYWRpbmcsSHRtbCxJRnJhbWUsSW1hZ2UsSW5wdXQsS2V5Z2VuLExJLExhYmVsLExlZ2VuZCxMaW5rLE1hcCxNYXJxdWVlLE1lZGlhLE1lbnUsTWV0YSxNZXRlcixNb2QsT0xpc3QsT2JqZWN0LE9wdEdyb3VwLE9wdGlvbixPdXRwdXQsUGFyYWdyYXBoLFByZSxQcm9ncmVzcyxRdW90ZSxTY3JpcHQsU2VsZWN0LFNvdXJjZSxTcGFuLFN0eWxlLFRhYmxlQ2FwdGlvbixUYWJsZUNlbGwsVGFibGVDb2wsVGFibGUsVGFibGVSb3csVGFibGVTZWN0aW9uLFRleHRBcmVhLFRpdGxlLFRyYWNrLFVMaXN0LFVua25vd24sVmlkZW8iLGw9IkFwcGxpY2F0aW9uQ2FjaGUsRXZlbnRTb3VyY2UsRmlsZVJlYWRlcixJbnB1dE1ldGhvZENvbnRleHQsTWVkaWFDb250cm9sbGVyLE1lc3NhZ2VQb3J0LE5vZGUsUGVyZm9ybWFuY2UsU1ZHRWxlbWVudEluc3RhbmNlLFNoYXJlZFdvcmtlcixUZXh0VHJhY2ssVGV4dFRyYWNrQ3VlLFRleHRUcmFja0xpc3QsV2ViS2l0TmFtZWRGbG93LFdpbmRvdyxXb3JrZXIsV29ya2VyR2xvYmFsU2NvcGUsWE1MSHR0cFJlcXVlc3QsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCxYTUxIdHRwUmVxdWVzdFVwbG9hZCxJREJSZXF1ZXN0LElEQk9wZW5EQlJlcXVlc3QsSURCRGF0YWJhc2UsSURCVHJhbnNhY3Rpb24sSURCQ3Vyc29yLERCSW5kZXgsV2ViU29ja2V0Ii5zcGxpdCgiLCIpLGY9W10scD1lLnd0ZixoPXUuc3BsaXQoIiwiKTtwP2Y9aC5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiJIVE1MIitlKyJFbGVtZW50In0pKS5jb25jYXQobCk6ZS5FdmVudFRhcmdldD9mLnB1c2goIkV2ZW50VGFyZ2V0Iik6Zj1sO2Zvcih2YXIgZD1lLl9fWm9uZV9kaXNhYmxlX0lFX2NoZWNrfHwhMSx2PWUuX19ab25lX2VuYWJsZV9jcm9zc19jb250ZXh0X2NoZWNrfHwhMSx5PXQuaXNJRU9yRWRnZSgpLGc9ImZ1bmN0aW9uIF9fQlJPV1NFUlRPT0xTX0NPTlNPTEVfU0FGRUZVTkMoKSB7IFtuYXRpdmUgY29kZV0gfSIsXz0wO188ci5sZW5ndGg7XysrKXt2YXIgbT1zKygoRT1yW19dKStjKSxiPXMrKEUraSk7YVtFXT17fSxhW0VdW2NdPW0sYVtFXVtpXT1ifWZvcihfPTA7Xzx1Lmxlbmd0aDtfKyspZm9yKHZhciBrPWhbX10sVD1vW2tdPXt9LHc9MDt3PHIubGVuZ3RoO3crKyl7dmFyIEU7VFtFPXJbd11dPWsrIi5hZGRFdmVudExpc3RlbmVyOiIrRX12YXIgTz1bXTtmb3IoXz0wO188Zi5sZW5ndGg7XysrKXt2YXIgUz1lW2ZbX11dO08ucHVzaChTJiZTLnByb3RvdHlwZSl9cmV0dXJuIHQucGF0Y2hFdmVudFRhcmdldChlLE8se3ZoOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKCFkJiZ5KXtpZih2KXRyeXt2YXIgbztpZigiW29iamVjdCBGdW5jdGlvbldyYXBwZXJdIj09PShvPXQudG9TdHJpbmcoKSl8fG89PWcpcmV0dXJuIGUuYXBwbHkobixyKSwhMX1jYXRjaChhKXtyZXR1cm4gZS5hcHBseShuLHIpLCExfWVsc2UgaWYoIltvYmplY3QgRnVuY3Rpb25XcmFwcGVyXSI9PT0obz10LnRvU3RyaW5nKCkpfHxvPT1nKXJldHVybiBlLmFwcGx5KG4sciksITF9ZWxzZSBpZih2KXRyeXt0LnRvU3RyaW5nKCl9Y2F0Y2goYSl7cmV0dXJuIGUuYXBwbHkobixyKSwhMX1yZXR1cm4hMH19KSxab25lW3Quc3ltYm9sKCJwYXRjaEV2ZW50VGFyZ2V0IildPSEhZS5FdmVudFRhcmdldCwhMH1mdW5jdGlvbiBrZShlLHQpe3ZhciBuPWUuZ2V0R2xvYmFsT2JqZWN0cygpO2lmKCghbi5pc05vZGV8fG4uaXNNaXgpJiYhZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmdldEdsb2JhbE9iamVjdHMoKTtpZigobi5pc0Jyb3dzZXJ8fG4uaXNNaXgpJiYhZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJvbmNsaWNrIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgRWxlbWVudCl7dmFyIHI9ZS5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRWxlbWVudC5wcm90b3R5cGUsIm9uY2xpY2siKTtpZihyJiYhci5jb25maWd1cmFibGUpcmV0dXJuITE7aWYocil7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0pO3ZhciBvPSEhZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikub25jbGljaztyZXR1cm4gZS5PYmplY3REZWZpbmVQcm9wZXJ0eShFbGVtZW50LnByb3RvdHlwZSwib25jbGljayIsciksb319dmFyIGE9dC5YTUxIdHRwUmVxdWVzdDtpZighYSlyZXR1cm4hMTt2YXIgaT1hLnByb3RvdHlwZSxjPWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksIm9ucmVhZHlzdGF0ZWNoYW5nZSIpO2lmKGMpcmV0dXJuIGUuT2JqZWN0RGVmaW5lUHJvcGVydHkoaSwib25yZWFkeXN0YXRlY2hhbmdlIix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSksbz0hISh1PW5ldyBhKS5vbnJlYWR5c3RhdGVjaGFuZ2UsZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGN8fHt9KSxvO3ZhciBzPWUuc3ltYm9sKCJmYWtlIik7ZS5PYmplY3REZWZpbmVQcm9wZXJ0eShpLCJvbnJlYWR5c3RhdGVjaGFuZ2UiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tzXX0sc2V0OmZ1bmN0aW9uKGUpe3RoaXNbc109ZX19KTt2YXIgdT1uZXcgYSxsPWZ1bmN0aW9uKCl7fTtyZXR1cm4gdS5vbnJlYWR5c3RhdGVjaGFuZ2U9bCxvPXVbc109PT1sLHUub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsb30oZSx0KSl7dmFyIHI9InVuZGVmaW5lZCIhPXR5cGVvZiBXZWJTb2NrZXQ7IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmdldEdsb2JhbE9iamVjdHMoKS5ldmVudE5hbWVzLG49ZS5zeW1ib2woInVuYm91bmQiKSxyPWZ1bmN0aW9uKHIpe3ZhciBvPXRbcl0sYT0ib24iK287c2VsZi5hZGRFdmVudExpc3RlbmVyKG8sKGZ1bmN0aW9uKHQpe3ZhciByLG8saT10LnRhcmdldDtmb3Iobz1pP2kuY29uc3RydWN0b3IubmFtZSsiLiIrYToidW5rbm93bi4iK2E7aTspaVthXSYmIWlbYV1bbl0mJigocj1lLndyYXBXaXRoQ3VycmVudFpvbmUoaVthXSxvKSlbbl09aVthXSxpW2FdPXIpLGk9aS5wYXJlbnRFbGVtZW50fSksITApfSxvPTA7bzx0Lmxlbmd0aDtvKyspcihvKX0oZSksZS5wYXRjaENsYXNzKCJYTUxIdHRwUmVxdWVzdCIpLHImJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5nZXRHbG9iYWxPYmplY3RzKCkscj1uLkFERF9FVkVOVF9MSVNURU5FUl9TVFIsbz1uLlJFTU9WRV9FVkVOVF9MSVNURU5FUl9TVFIsYT10LldlYlNvY2tldDt0LkV2ZW50VGFyZ2V0fHxlLnBhdGNoRXZlbnRUYXJnZXQodCxbYS5wcm90b3R5cGVdKSx0LldlYlNvY2tldD1mdW5jdGlvbih0LG4pe3ZhciBpLGMscz1hcmd1bWVudHMubGVuZ3RoPjE/bmV3IGEodCxuKTpuZXcgYSh0KSx1PWUuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHMsIm9ubWVzc2FnZSIpO3JldHVybiB1JiYhMT09PXUuY29uZmlndXJhYmxlPyhpPWUuT2JqZWN0Q3JlYXRlKHMpLGM9cyxbcixvLCJzZW5kIiwiY2xvc2UiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtpW3RdPWZ1bmN0aW9uKCl7dmFyIG49ZS5BcnJheVNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZih0PT09cnx8dD09PW8pe3ZhciBhPW4ubGVuZ3RoPjA/blswXTp2b2lkIDA7aWYoYSl7dmFyIGM9Wm9uZS5fX3N5bWJvbF9fKCJPTl9QUk9QRVJUWSIrYSk7c1tjXT1pW2NdfX1yZXR1cm4gc1t0XS5hcHBseShzLG4pfX0pKSk6aT1zLGUucGF0Y2hPblByb3BlcnRpZXMoaSxbImNsb3NlIiwiZXJyb3IiLCJtZXNzYWdlIiwib3BlbiJdLGMpLGl9O3ZhciBpPXQuV2ViU29ja2V0O2Zvcih2YXIgYyBpbiBhKWlbY109YVtjXX0oZSx0KSxab25lW2Uuc3ltYm9sKCJwYXRjaEV2ZW50cyIpXT0hMH19Wm9uZS5fX2xvYWRfcGF0Y2goInV0aWwiLChmdW5jdGlvbihuLHIscyl7cy5wYXRjaE9uUHJvcGVydGllcz1qLHMucGF0Y2hNZXRob2Q9UixzLmJpbmRBcmd1bWVudHM9ayxzLnBhdGNoTWFjcm9UYXNrPXg7dmFyIHU9ci5fX3N5bWJvbF9fKCJCTEFDS19MSVNURURfRVZFTlRTIiksZD1yLl9fc3ltYm9sX18oIlVOUEFUQ0hFRF9FVkVOVFMiKTtuW2RdJiYoblt1XT1uW2RdKSxuW3VdJiYoclt1XT1yW2RdPW5bdV0pLHMucGF0Y2hFdmVudFByb3RvdHlwZT1KLHMucGF0Y2hFdmVudFRhcmdldD1YLHMuaXNJRU9yRWRnZT1BLHMuT2JqZWN0RGVmaW5lUHJvcGVydHk9dCxzLk9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcj1lLHMuT2JqZWN0Q3JlYXRlPW8scy5BcnJheVNsaWNlPWEscy5wYXRjaENsYXNzPUMscy53cmFwV2l0aEN1cnJlbnRab25lPWgscy5maWx0ZXJQcm9wZXJ0aWVzPWdlLHMuYXR0YWNoT3JpZ2luVG9QYXRjaGVkPU0scy5fcmVkZWZpbmVQcm9wZXJ0eT1yZSxzLnBhdGNoQ2FsbGJhY2tzPUsscy5nZXRHbG9iYWxPYmplY3RzPWZ1bmN0aW9uKCl7cmV0dXJue2dsb2JhbFNvdXJjZXM6cSx6b25lU3ltYm9sRXZlbnROYW1lczpXLGV2ZW50TmFtZXM6eWUsaXNCcm93c2VyOk8saXNNaXg6Uyxpc05vZGU6RSxUUlVFX1NUUjpsLEZBTFNFX1NUUjpmLFpPTkVfU1lNQk9MX1BSRUZJWDpwLEFERF9FVkVOVF9MSVNURU5FUl9TVFI6aSxSRU1PVkVfRVZFTlRfTElTVEVORVJfU1RSOmN9fX0pKSxmdW5jdGlvbihlKXtlLl9fem9uZV9zeW1ib2xfX2xlZ2FjeVBhdGNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5ab25lO3QuX19sb2FkX3BhdGNoKCJyZWdpc3RlckVsZW1lbnQiLChmdW5jdGlvbihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5nZXRHbG9iYWxPYmplY3RzKCk7KG4uaXNCcm93c2VyfHxuLmlzTWl4KSYmInJlZ2lzdGVyRWxlbWVudCJpbiBlLmRvY3VtZW50JiZ0LnBhdGNoQ2FsbGJhY2tzKHQsZG9jdW1lbnQsIkRvY3VtZW50IiwicmVnaXN0ZXJFbGVtZW50IixbImNyZWF0ZWRDYWxsYmFjayIsImF0dGFjaGVkQ2FsbGJhY2siLCJkZXRhY2hlZENhbGxiYWNrIiwiYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrIl0pfShlLG4pfSkpLHQuX19sb2FkX3BhdGNoKCJFdmVudFRhcmdldExlZ2FjeSIsKGZ1bmN0aW9uKGUsdCxuKXtiZShlLG4pLGtlKG4sZSl9KSl9fSgidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93fHwidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGZ8fGdsb2JhbCk7dmFyIFRlPXYoInpvbmVUYXNrIik7ZnVuY3Rpb24gd2UoZSx0LG4scil7dmFyIG89bnVsbCxhPW51bGw7bis9cjt2YXIgaT17fTtmdW5jdGlvbiBjKHQpe3ZhciBuPXQuZGF0YTtyZXR1cm4gbi5hcmdzWzBdPWZ1bmN0aW9uKCl7dHJ5e3QuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1maW5hbGx5e3QuZGF0YSYmdC5kYXRhLmlzUGVyaW9kaWN8fCgibnVtYmVyIj09dHlwZW9mIG4uaGFuZGxlSWQ/ZGVsZXRlIGlbbi5oYW5kbGVJZF06bi5oYW5kbGVJZCYmKG4uaGFuZGxlSWRbVGVdPW51bGwpKX19LG4uaGFuZGxlSWQ9by5hcHBseShlLG4uYXJncyksdH1mdW5jdGlvbiBzKGUpe3JldHVybiBhKGUuZGF0YS5oYW5kbGVJZCl9bz1SKGUsdCs9ciwoZnVuY3Rpb24obil7cmV0dXJuIGZ1bmN0aW9uKG8sYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFbMF0pe3ZhciB1PWQodCxhWzBdLHtpc1BlcmlvZGljOiJJbnRlcnZhbCI9PT1yLGRlbGF5OiJUaW1lb3V0Ij09PXJ8fCJJbnRlcnZhbCI9PT1yP2FbMV18fDA6dm9pZCAwLGFyZ3M6YX0sYyxzKTtpZighdSlyZXR1cm4gdTt2YXIgbD11LmRhdGEuaGFuZGxlSWQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBsP2lbbF09dTpsJiYobFtUZV09dSksbCYmbC5yZWYmJmwudW5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLnJlZiYmImZ1bmN0aW9uIj09dHlwZW9mIGwudW5yZWYmJih1LnJlZj1sLnJlZi5iaW5kKGwpLHUudW5yZWY9bC51bnJlZi5iaW5kKGwpKSwibnVtYmVyIj09dHlwZW9mIGx8fGw/bDp1fXJldHVybiBuLmFwcGx5KGUsYSl9fSkpLGE9UihlLG4sKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihuLHIpe3ZhciBvLGE9clswXTsibnVtYmVyIj09dHlwZW9mIGE/bz1pW2FdOihvPWEmJmFbVGVdKXx8KG89YSksbyYmInN0cmluZyI9PXR5cGVvZiBvLnR5cGU/Im5vdFNjaGVkdWxlZCIhPT1vLnN0YXRlJiYoby5jYW5jZWxGbiYmby5kYXRhLmlzUGVyaW9kaWN8fDA9PT1vLnJ1bkNvdW50KSYmKCJudW1iZXIiPT10eXBlb2YgYT9kZWxldGUgaVthXTphJiYoYVtUZV09bnVsbCksby56b25lLmNhbmNlbFRhc2sobykpOnQuYXBwbA=="
}

github/deemru/w8io/c3f4982 
1.99 ms