0 | witness #0utf8f"O�Y��8�9���dܐk��À8�ʟK�qi��t�
�KF��8ӕ�G�g[�髉Y� �f"O�Y��8�9���dܐk��À8�ʟK�qi��t�
�KF��8ӕ�G�g[�髉Y� �asciif"OYkI8Q9 ^Cd\k!aC 8/JK2qi9Ltf
+KFdv8SGwg[4i+ Y f"OYkI8Q9 ^Cd\k!aC 8/JK2qi9Ltf
+KFdv8SGwg[4i+ Y hex66224f8559ebc93804d1123980dec364dc906b19a1e1c38038af06ca9f4bb2711669b9cc74e60a09ab4b46e4f638d3959047f7675b03b419e9ab895981099e1c66224f8559ebc93804d1123980dec364dc906b19a1e1c38038af06ca9f4bb2711669b9cc74e60a09ab4b46e4f638d3959047f7675b03b419e9ab895981099e1c #1utf8 6g�����$jx,+��&y��m�o����v� cordtext/html;charset=utf-8 M<!DOCTYPE html>
<html>
<head>
<title>Tickle Beach Ordinals</title>
<style>
body {
margin: 0;
padding: 0;
}
iframe {
border: none;
width: 100%;
height: 100vh;
}
</style>
</head>
<body>
<!-- HTML code to display the button and iframe -->
<button onclick="previousTokenID();">Prev</button>
<input type="text" id="formValue" value="42" />
<button onclick="nextTokenID();">Next</button>
<button onclick="renderIframe()">Render</button>
<iframe id="html-iframe" style="display:none"></iframeM>
<!-- Base64-encoded HTML template with a placeholder for the token ID -->
<script id="html-template" type="text/plain">
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3JpcHQgZGVmZXI9ImRlZmVyIj4oKCk9PnsidXNlIHN0cmljdCI7dmFyIG49e307ZnVuY3Rpb24gcihuLHIsdCl7cmV0dXJue3g6bix5OnIsejp0fX1mdW5jdGlvbiB0KG4pe3JldHVybiByKG4oIngiKSxuKCJ5IiksbigieiIpKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuLmhhc093blByb3BlcnR5KCJ4Iil9ZnVuY3Rpb24gZShuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKX1mdW5jdGlvbiBpKG4scil7cmV0dXJuIHUocik/dCgodD0+blt0XS1yW3RdKSk6dCgodD0+blt0XS1yKSl9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gTWF0aC5zcXJ0KG4ueCpuLngrbi55Km4ueStuLnoqbi56KX1mdW5jdGlvbiBhKG4scil7cmV0dXJuIHUobik/dShyKT90KCh0PT5NYXRoLm1pbMihuW3RdLHJbdF0pKSk6dCgodD0+TWF0aC5taW4oblt0XSxyKSkpOk1hdGgubWluKG4scil9ZnVuY3Rpb24gYyhuLHIpe3JldHVybiB1KG4pP3Uocik/dCgodD0+TWF0aC5tYXgoblt0XSxyW3RdKSkpOnQoKHQ9Pk1hdGgubWF4KG5bdF0scikpKTpNYXRoLm1heChuLHIpfWZ1bmN0aW9uIGYobixyKXtyZXR1cm4gdCgodD0+blt0XS9yKSl9ZnVuY3Rpb24gbShuKXtyZXR1cm5bbi54LG4ueSxuLnpdfW4uZD0ocix0KT0+e2Zvcih2YXIgdSBpbiB0KW4ubyh0LHUpJiYhbi5vKHIsdSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHUse2VudW1lcmFibGU6ITAsZ2V0OnRbdV19KX0sbi5vPShuLHIpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKTtsZXQgeD13aW5kbM3c7eC52ZWM9cix4LnN1Yj1pLHguZGl2PWYseC5hZGQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gdShyKT90KCh0PT5uW3RdK3JbdF0pKTp0KCh0PT5uW3RdK3IpKX0seC5tdWw9ZnVuY3Rpb24obixpKXtpZihlKG4pKXtpZihlKGkpKXtsZXQ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9Im4iPT09aFtlXSYmMH0pKSwiYMXR0YWNoIj09PWM/dT17Li4udSxwYXJ0TmFtZTp0LGF0dGFjaDp7cGFydDpzW2EocildLHNpZGU6ZVthKHIpXX0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOlswLDAsMF0sc2l6ZTpbMSwxLDFdLGJsZW5kOmEociksbWF0ZXJpYWw6MH06KHU9ey4uLnUscGFydE5hbWU6dCxtb2RlOm5bYShyKV0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOnAociwzKSxzaXplOnAociwzKX0sbC5mb3JFYWNoKCgodCxlKT0+eyJfIiE9PWRbY11bZV0mJih1W3RdPSgibiI9PT1oW2VdP2E6bykocikpfSkpLHUubWF0ZXJpYWw8MCYmKHUubWF0ZXJpYWw9MWU0LXUubWF0ZXJpYWwpLHUubWF0ZXJpYWwrPTEpLHV9O2Z1bmN0aW9uIGYodCl7Y29uc3Qgbj17fTtyZXR1cm4gdC5zcGxpdCgiOyIpLmZvckVhY2goKMHQ9Pntjb25zdCByPXtzdHJpbmc6dCxpbmRleDowfSxvPXNbYShyKV0saT1lW2EocildLHA9YShyKSxsPVtbYShyKSxhKHIpLGEocildLFthKHIpLGEociksYShyKV1dLGQ9KGg9byxyLnN0cmluZy5zdWJzdHJpbmcoci5pbmRleCkuc3BsaXQoIiwiKS5tYXAoKHQ9Pntjb25zdCBlPXtzdHJpbmc6dCxpbmRleDowfSxzPVtdO2Zvcig7ZS5pbmRleDxlLnN0cmluZy5sZW5ndGg7KXMucHVzaChtKGgsZSkpO3JldHVybntzdWJwYXJ0czpzfX0pKSk7dmFyIGg7bltvXT1uW29dfHxbXSxuW29dW3BdPW5bb11bcF18fHt9LG5bb11bcF1baV09e3BhcnQ6byxzaWRlOmksaW5kZXg6cCxsYXllcnM6ZCxib3VuZHM6bH19KSksbn1mdW5jdGlvbiBiKHQpe2NvbnN0IGU9e3N0cmluZzp0LGluZGV4OjB9LMHM9W107Zm9yKDtlLmluZGV4PGUuc3RyaW5nLmxlbmd0aDspcy5wdXNoKHtyb3VnaG5lc3M6YShlKSxtZXRhbG5lc3M6YShlKX0pO3JldHVybiBzfWZ1bmN0aW9uIF8odCl7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byk7fXRvdCs9Y29sb3I7fXRvdC89ZmxvYXQoQUEqQUEpO3RvdD1wb3codG90LHZlYzMoMS4vMi4yKSk7ZnJhZ0NvbG9yPXZlYzQodG90LDEuKTt9In07PC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iZGVmZXIiPigoKT0+e3ZhciBlPXs4MjU6KGUsdCk9PntsZXQgbz1bWzEwMDAxLDEwMDExLDEwMDIxXSxbMTAwMzEsMTAwNDEsMTAwNTFdLFsxMDA2MSwxMDA3MSwxMDA4MV0sWzEwMDkxLDEwMTAxLDEwMTExXSxbMTAxMjEsMTAxMzEsMTAxNDFdLFsxMDE1MSwxMDE2MSwxMDE3MV0sWzEwMTgxLDEwMTkxLDEwMjAxXSxbMTAyMTEsMTAyMjEsMTAyMzFdLFsxMDI0MSwxMDI1MSwxMDI2MV0sWzEwMjcxLMDEwMjgxLDEwMjkxXSxbMTAzMDEsMTAzMTEsMTAzMjFdLFsxMDMzMSwxMDM0MSwxMDM1MV0sWzEwMzkxLDEwNDAxLDEwNDExXV0sbj1bW1suNiwuODA1LDFdLFsuNiwuODA1LDFdXSxbWy44MjgsLjg0OCwuOTQyXSxbLjgyOCwuODQ4LC45NDJdXSxbWy42MTQsLjkyNiwuOTk4XSxbLjYxNCwuOTI2LC45OThdXSxbWy45NjEsLjkxNCwuOTc2XSxbLjk2MSwuOTE0LC45NzZdXV07Y29uc3Qgcj1bImJvZHkiLCJmbG9vciIsImdsYXNzZXMiLCJzaGlydCIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNob2VzIl0sYT1bImZsb29yIiwiZ2xhc3NlcyIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNoaXJ0Iiwic2hvZXMiXSxzPVsiaGFuZCIsImdsYXNzZXMiLCJncMm91bmQiLCJoZWFkdG9wIiwic2hpcnQiLCJuZWNrIl07dC5ybD1yLHQuUG89byx0LllzPW4sdC5nbj1lPT57bGV0IHQ9e307Zm9yKGxldCBvIG9mIHIpdFtvXT1lW29dLmZpbHRlcigoZT0+ISFlKSkubWFwKChlPT5lLnRoZS5pbmRleCkpLnNvcnQoKChlLHQpPT5lLXQpKTtyZXR1cm4gdH0sdC51OT0oZS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ZXtmb3IoZj1oPW1bZF0saT0xO2g+PTEwO2gvPTEwLGkrKyk7Zz0ocz0obyU9YyktYytpKTwwPzA6Zi95W2ktcy0xXSUxMHwwfWlmKG49bnx8ZTwwfHxudWxsIT1tW2QrMV18fChzPDA/ZjpmJXlbaS1zLTFdKSxuPXI8ND8oZ3x8bikmJigwPT1yfHxyPT0odC5zPDA/MzoyKSk6Zz41fHw1PT1nJiYoND09cnx8bnx8Nj09ciYmKG8+MD9zPjA/Zi95W2ktc106MDptW2QtMV0pJTEwJjF8fHI9PSh0LnM8MD84OjcpKSxlPDF8fCFtWzBdKXJldHVybiBtLmxlbmd0aD0wLG4/KGUtPXQuZSsxLG1bMF09eVsoYy1lJWMpJWNdLHQuZT0tZXx8MCk6bVswXT10LmU9MCx0O2lmKDA9PW8/KG0ubGVuZ3RoPWQsaD0xLGQtLSk6KG0ubGVuZ3RoPWQrMSxoPXlbYy1vXSxtW2RdPXM+MD91KGYveMVtpLXNdJXlbc10pKmg6MCksbilmb3IoOzspe2lmKDA9PWQpe2ZvcihvPTEscz1tWzBdO3M+PTEwO3MvPTEwLG8rKyk7Zm9yKHM9bVswXSs9aCxoPTE7cz49MTA7cy89MTAsaCsrKTtvIT1oJiYodC5lKyssbVswXT09bCYmKG1bMF09MSkpO2JyZWFrfWlmKG1bZF0rPWgsbVtkXSE9bClicmVhazttW2QtLV09MCxoPTF9Zm9yKG89bS5sZW5ndGg7MD09PW1bLS1vXTttLnBvcCgpKTt9dC5lPlA/dC5jPXQuZT1udWxsOnQuZTxVJiYodC5jPVt0LmU9MF0pfXJldHVybiB0fWZ1bmN0aW9uIFkodCl7dmFyIGUscj10LmU7cmV0dXJuIG51bGw9PT1yP3QudG9TdHJpbmcoKTooZT13KHQuYyksZT1yPD1JfHxyPj1DP18oZSxyKTpFKGUsciwiMCIpLHQuczwwPyItIitlOmUpfXJldHVybiAkLmNsb25lPMXQsJC5ST1VORF9VUD0wLCQuUk9VTkRfRE9XTj0xLCQuUk9VTkRfQ0VJTD0yLCQuUk9VTkRfRkxPT1I9MywkLlJPVU5EX0hBTEZfVVA9NCwkLlJPVU5EX0hBTEZfRE9XTj01LCQuUk9VTkRfSEFMRl9FVkVOPTYsJC5ST1VORF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cMiBmPXU+Pj4yNixsPTY3MTA4ODYzJnUsYz1NYXRoLm1pbihoLGUubGVuZ3RoLTEpLGQ9TWF0aC5tYXgoMCxoLXQubGVuZ3RoKzEpO2Q8PWM7ZCsrKXt2YXIgcD1oLWR8MDtmKz0ocz0oaT0wfHQud29yZHNbcF0pKihvPTB8ZS53b3Jkc1tkXSkrbCkvNjcxMDg4NjR8MCxsPTY3MTA4ODYzJnN9ci53b3Jkc1toXT0wfGwsdT0wfGZ9cmV0dXJuIDAhPT11P3Iud29yZHNbaF09MHx1OnIubGVuZ3RoLS0sci5fc3RyaXAoKX1vLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LGUscil7dGhpcy5fc3RyaXAoKTt2YXIgaT10aGlzLmJ5dGVMZW5ndGgoKSxvPXJ8fE1hdGgubWF4KDEsaSk7bihpPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbihvPjAsIlJlcMXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYWxsb2NVbnNhZmU/dC5hbGxvY1Vuc2FmZShlKTpuZXcgdChlKX0odCxvKTtyZXR1cm4gdGhpc1siX3RvQXJyYXlMaWtlIisoImxlIj09PWU/IkxFIjoiQkUiKV0ocyxpKSxzfSxvLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPTAsbz0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgcz10aGlzLndvcmRzW2ldPDxvfG47dFtyKytdPTI1NSZzLHI8dC5sZW5ndGgmJih0W3IrK109cz4+OCYyNTUpLHI8dC5sZW5ndGgmJih0W3IrK109cz4+MTYmMjU1KSw2PT09bz8ocjx0Lmxlbmd0aCYmKHRbcisrXT1zPj4yNCYyNTUpLG49MCxvPTApOihuPMXM+Pj4yNCxvKz0yKX1pZihyPHQubGVuZ3RoKWZvcih0W3IrK109bjtyPHQubGVuZ3RoOyl0W3IrK109MH0sby5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZ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W9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbMih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mdC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh0KX0sby5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh0KTp0LmNsb25lKCkuaWFuZCh0aGlzKX0sby5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dMGhpcy5jbG9uZSgpLml1YW5kKHQpOnQuY2xvbmUoKS5pdWFuZCh0aGlzKX0sby5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLmxlbmd0aD50Lmxlbmd0aD8oZT10aGlzLHI9dCk6KGU9dCxyPXRoaXMpO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXV5yLndvcmRzW25dO2lmKHRoaXMhPT1lKWZvcig7bjxlLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxvLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1eG9yKHQpfSxvLnByb3RvdHlwZS54bM3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaX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SkrTWF0aC5pbXVsKE0sRil8MCxvPU1hdGguaW11bChNLHopLG49bitNYXRoLmltdWwoeSwkKXwwLGk9KGk9aStNYXRoLmltdWwoeSxIKXwwKStNYXRoLmltdWwodywkKXwwLG89bytNYXRoLmltdWwodyxIKXwwLG49bitNYXRoLmltdWwocCxaKXwwLGk9KGk9aStNYXRoLmltdWwocCxWKXwwKStNYXRoLmltdWwoZyxaKXwwLG89bytNYXRoLmltdWwoZyxWKXwwO3ZhciB2dD0oaCsobj1uK01hdGguaMW11bChsLEspfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLFgpfDApK01hdGguaW11bChjLEspfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxYKXwwKSsoaT4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoRSxGKSxpPShpPU1hdGguaW11bChFLHopKStNYXRoLmltdWwoUyxGKXwwLG89TWF0aC5pbXVsKFMseiksbj1uK01hdGguaW11bChiLCQpfDAsaT0oaT1pK01hdGguaW11bChiLEgpfDApK01hdGguaW11bChNLCQpfDAsbz1vK01hdGguaW11bChNLEgpfDAsbj1uK01hdGguaW11bCh5LFopfDAsaT0oaT1pK01hdGguaW11bCh5LFYpfDApK01hdGguaW11bCh3LFopfDAsbz1vK01hdGguaW11bCh3LFYpfDAsbj1uK01hdGguaW11bMChwLEspfDAsaT0oaT1pK01hdGguaW11bChwLFgpfDApK01hdGguaW11bChnLEspfDAsbz1vK01hdGguaW11bChnLFgpfDA7dmFyIGJ0PShoKyhuPW4rTWF0aC5pbXVsKGwsUSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsdHQpfDApK01hdGguaW11bChjLFEpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyx0dCl8MCkrKGk+Pj4xMyl8MCkrKGJ0Pj4+MjYpfDAsYnQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEEsRiksaT0oaT1NYXRoLmltdWwoQSx6KSkrTWF0aC5pbXVsKEIsRil8MCxvPU1hdGguaW11bChCLHopLG49bitNYXRoLmltdWwoRSwkKXwwLGk9KGk9aStNYXRoLmltdWwoRSxIKXwwKStNYXRoLmltdWwoUywkKXwwLG89bytNYXRoLmltdWwoUyxIKXwwLG49bMitNYXRoLmltdWwoYixaKXwwLGk9KGk9aStNYXRoLmltdWwoYixWKXwwKStNYXRoLmltdWwoTSxaKXwwLG89bytNYXRoLmltdWwoTSxWKXwwLG49bitNYXRoLmltdWwoeSxLKXwwLGk9KGk9aStNYXRoLmltdWwoeSxYKXwwKStNYXRoLmltdWwodyxLKXwwLG89bytNYXRoLmltdWwodyxYKXwwLG49bitNYXRoLmltdWwocCxRKXwwLGk9KGk9aStNYXRoLmltdWwocCx0dCl8MCkrTWF0aC5pbXVsKGcsUSl8MCxvPW8rTWF0aC5pbXVsKGcsdHQpfDA7dmFyIE10PShoKyhuPW4rTWF0aC5pbXVsKGwscnQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLG50KXwwKStNYXRoLmltdWwoYyxydCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLG50KXwwKSsoaT4+PjEzKXwwKSsoTMXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoayxGKSxpPShpPU1hdGguaW11bChrLHopKStNYXRoLmltdWwoTyxGKXwwLG89TWF0aC5pbXVsKE8seiksbj1uK01hdGguaW11bChBLCQpfDAsaT0oaT1pK01hdGguaW11bChBLEgpfDApK01hdGguaW11bChCLCQpfDAsbz1vK01hdGguaW11bChCLEgpfDAsbj1uK01hdGguaW11bChFLFopfDAsaT0oaT1pK01hdGguaW11bChFLFYpfDApK01hdGguaW11bChTLFopfDAsbz1vK01hdGguaW11bChTLFYpfDAsbj1uK01hdGguaW11bChiLEspfDAsaT0oaT1pK01hdGguaW11bChiLFgpfDApK01hdGguaW11bChNLEspfDAsbz1vK01hdGguaW11bChNLFgpfDAsbj1uK01hdGguaW11bCh5LFEpfDAsaT0oaT1pK01hdGguaW11bCh5LHR0KMXwwKStNYXRoLmltdWwodyxRKXwwLG89bytNYXRoLmltdWwodyx0dCl8MCxuPW4rTWF0aC5pbXVsKHAscnQpfDAsaT0oaT1pK01hdGguaW11bChwLG50KXwwKStNYXRoLmltdWwoZyxydCl8MCxvPW8rTWF0aC5pbXVsKGcsbnQpfDA7dmFyIF90PShoKyhuPW4rTWF0aC5pbXVsKGwsb3QpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLHN0KXwwKStNYXRoLmltdWwoYyxvdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLHN0KXwwKSsoaT4+PjEzKXwwKSsoX3Q+Pj4yNil8MCxfdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoeCxGKSxpPShpPU1hdGguaW11bCh4LHopKStNYXRoLmltdWwoTixGKXwwLG89TWF0aC5pbXVsKE4seiksbj1uK01hdGguaW11bChrLCQpfDAsaT0oaMT1pK01hdGguaW11bChrLEgpfDApK01hdGguaW11bChPLCQpfDAsbz1vK01hdGguaW11bChPLEgpfDAsbj1uK01hdGguaW11bChBLFopfDAsaT0oaT1pK01hdGguaW11bChBLFYpfDApK01hdGguaW11bChCLFopfDAsbz1vK01hdGguaW11bChCLFYpfDAsbj1uK01hdGguaW11bChFLEspfDAsaT0oaT1pK01hdGguaW11bChFLFgpfDApK01hdGguaW11bChTLEspfDAsbz1vK01hdGguaW11bChTLFgpfDAsbj1uK01hdGguaW11bChiLFEpfDAsaT0oaT1pK01hdGguaW11bChiLHR0KXwwKStNYXRoLmltdWwoTSxRKXwwLG89bytNYXRoLmltdWwoTSx0dCl8MCxuPW4rTWF0aC5pbXVsKHkscnQpfDAsaT0oaT1pK01hdGguaW11bCh5LG50KXwwKStNYXRoLmltdWwodyxydCl8MCxvPW8rTWF0aC5pbMXVsKHcsbnQpfDAsbj1uK01hdGguaW11bChwLG90KXwwLGk9KGk9aStNYXRoLmltdWwocCxzdCl8MCkrTWF0aC5pbXVsKGcsb3QpfDAsbz1vK01hdGguaW11bChnLHN0KXwwO3ZhciBFdD0oaCsobj1uK01hdGguaW11bChsLHV0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwobCxodCl8MCkrTWF0aC5pbXVsKGMsdXQpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxodCl8MCkrKGk+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEMsRiksaT0oaT1NYXRoLmltdWwoQyx6KSkrTWF0aC5pbXVsKFUsRil8MCxvPU1hdGguaW11bChVLHopLG49bitNYXRoLmltdWwoeCwkKXwwLGk9KGk9aStNYXRoLmltdWwoeCxIKXwwKStNYXRoLmltdWwoTMiwkKXwwLG89bytNYXRoLmltdWwoTixIKXwwLG49bitNYXRoLmltdWwoayxaKXwwLGk9KGk9aStNYXRoLmltdWwoayxWKXwwKStNYXRoLmltdWwoTyxaKXwwLG89bytNYXRoLmltdWwoTyxWKXwwLG49bitNYXRoLmltdWwoQSxLKXwwLGk9KGk9aStNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQixLKXwwLG89bytNYXRoLmltdWwoQixYKXwwLG49bitNYXRoLmltdWwoRSxRKXwwLGk9KGk9aStNYXRoLmltdWwoRSx0dCl8MCkrTWF0aC5pbXVsKFMsUSl8MCxvPW8rTWF0aC5pbXVsKFMsdHQpfDAsbj1uK01hdGguaW11bChiLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoYixudCl8MCkrTWF0aC5pbXVsKE0scnQpfDAsbz1vK01hdGguaW11bChNLG50KXwwLG49bitNYXRoLmltdWwoeSxvdCl8MMCxpPShpPWkrTWF0aC5pbXVsKHksc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxuPW4rTWF0aC5pbXVsKHAsdXQpfDAsaT0oaT1pK01hdGguaW11bChwLGh0KXwwKStNYXRoLmltdWwoZyx1dCl8MCxvPW8rTWF0aC5pbXVsKGcsaHQpfDA7dmFyIFN0PShoKyhuPW4rTWF0aC5pbXVsKGwsbHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGN0KXwwKStNYXRoLmltdWwoYyxsdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGN0KXwwKSsoaT4+PjEzKXwwKSsoU3Q+Pj4yNil8MCxTdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixGKSxpPShpPU1hdGguaW11bChqLHopKStNYXRoLmltdWwoRCxGKXwwLG89TWF0aC5pbXVsKEQseiksbMj1uK01hdGguaW11bChDLCQpfDAsaT0oaT1pK01hdGguaW11bChDLEgpfDApK01hdGguaW11bChVLCQpfDAsbz1vK01hdGguaW11bChVLEgpfDAsbj1uK01hdGguaW11bCh4LFopfDAsaT0oaT1pK01hdGguaW11bCh4LFYpfDApK01hdGguaW11bChOLFopfDAsbz1vK01hdGguaW11bChOLFYpfDAsbj1uK01hdGguaW11bChrLEspfDAsaT0oaT1pK01hdGguaW11bChrLFgpfDApK01hdGguaW11bChPLEspfDAsbz1vK01hdGguaW11bChPLFgpfDAsbj1uK01hdGguaW11bChBLFEpfDAsaT0oaT1pK01hdGguaW11bChBLHR0KXwwKStNYXRoLmltdWwoQixRKXwwLG89bytNYXRoLmltdWwoQix0dCl8MCxuPW4rTWF0aC5pbXVsKEUscnQpfDAsaT0oaT1pK01hdGguaW11bChFLG50KXwwKStNYXRoLMmltdWwoUyxydCl8MCxvPW8rTWF0aC5pbXVsKFMsbnQpfDAsbj1uK01hdGguaW11bChiLG90KXwwLGk9KGk9aStNYXRoLmltdWwoYixzdCl8MCkrTWF0aC5pbXVsKE0sb3QpfDAsbz1vK01hdGguaW11bChNLHN0KXwwLG49bitNYXRoLmltdWwoeSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKHksaHQpfDApK01hdGguaW11bCh3LHV0KXwwLG89bytNYXRoLmltdWwodyxodCl8MCxuPW4rTWF0aC5pbXVsKHAsbHQpfDAsaT0oaT1pK01hdGguaW11bChwLGN0KXwwKStNYXRoLmltdWwoZyxsdCl8MCxvPW8rTWF0aC5pbXVsKGcsY3QpfDA7dmFyIFJ0PShoKyhuPW4rTWF0aC5pbXVsKGwscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGd0KXwwKStNYXRoLmltdWwoYyxwdCl8MCkpPMDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGd0KXwwKSsoaT4+PjEzKXwwKSsoUnQ+Pj4yNil8MCxSdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaiwkKSxpPShpPU1hdGguaW11bChqLEgpKStNYXRoLmltdWwoRCwkKXwwLG89TWF0aC5pbXVsKEQsSCksbj1uK01hdGguaW11bChDLFopfDAsaT0oaT1pK01hdGguaW11bChDLFYpfDApK01hdGguaW11bChVLFopfDAsbz1vK01hdGguaW11bChVLFYpfDAsbj1uK01hdGguaW11bCh4LEspfDAsaT0oaT1pK01hdGguaW11bCh4LFgpfDApK01hdGguaW11bChOLEspfDAsbz1vK01hdGguaW11bChOLFgpfDAsbj1uK01hdGguaW11bChrLFEpfDAsaT0oaT1pK01hdGguaW11bChrLHR0KXwwKStNYXRoLmltdWwoTyxRKXwwLG89bytNYXRoLmltdWwoTMyx0dCl8MCxuPW4rTWF0aC5pbXVsKEEscnQpfDAsaT0oaT1pK01hdGguaW11bChBLG50KXwwKStNYXRoLmltdWwoQixydCl8MCxvPW8rTWF0aC5pbXVsKEIsbnQpfDAsbj1uK01hdGguaW11bChFLG90KXwwLGk9KGk9aStNYXRoLmltdWwoRSxzdCl8MCkrTWF0aC5pbXVsKFMsb3QpfDAsbz1vK01hdGguaW11bChTLHN0KXwwLG49bitNYXRoLmltdWwoYix1dCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsaHQpfDApK01hdGguaW11bChNLHV0KXwwLG89bytNYXRoLmltdWwoTSxodCl8MCxuPW4rTWF0aC5pbXVsKHksbHQpfDAsaT0oaT1pK01hdGguaW11bCh5LGN0KXwwKStNYXRoLmltdWwodyxsdCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDA7dmFyIEF0PShoKyhuPW4rTWF0aC5pbXVsKHAscHQpfMDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChwLGd0KXwwKStNYXRoLmltdWwoZyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChnLGd0KXwwKSsoaT4+PjEzKXwwKSsoQXQ+Pj4yNil8MCxBdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixaKSxpPShpPU1hdGguaW11bChqLFYpKStNYXRoLmltdWwoRCxaKXwwLG89TWF0aC5pbXVsKEQsViksbj1uK01hdGguaW11bChDLEspfDAsaT0oaT1pK01hdGguaW11bChDLFgpfDApK01hdGguaW11bChVLEspfDAsbz1vK01hdGguaW11bChVLFgpfDAsbj1uK01hdGguaW11bCh4LFEpfDAsaT0oaT1pK01hdGguaW11bCh4LHR0KXwwKStNYXRoLmltdWwoTixRKXwwLG89bytNYXRoLmltdWwoTix0dCl8MCxuPW4rTWF0aC5pbXVsKGsscMnQpfDAsaT0oaT1pK01hdGguaW11bChrLG50KXwwKStNYXRoLmltdWwoTyxydCl8MCxvPW8rTWF0aC5pbXVsKE8sbnQpfDAsbj1uK01hdGguaW11bChBLG90KXwwLGk9KGk9aStNYXRoLmltdWwoQSxzdCl8MCkrTWF0aC5pbXVsKEIsb3QpfDAsbz1vK01hdGguaW11bChCLHN0KXwwLG49bitNYXRoLmltdWwoRSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKEUsaHQpfDApK01hdGguaW11bChTLHV0KXwwLG89bytNYXRoLmltdWwoUyxodCl8MCxuPW4rTWF0aC5pbXVsKGIsbHQpfDAsaT0oaT1pK01hdGguaW11bChiLGN0KXwwKStNYXRoLmltdWwoTSxsdCl8MCxvPW8rTWF0aC5pbXVsKE0sY3QpfDA7dmFyIEJ0PShoKyhuPW4rTWF0aC5pbXVsKHkscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdMGguaW11bCh5LGd0KXwwKStNYXRoLmltdWwodyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bCh3LGd0KXwwKSsoaT4+PjEzKXwwKSsoQnQ+Pj4yNil8MCxCdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixLKSxpPShpPU1hdGguaW11bChqLFgpKStNYXRoLmltdWwoRCxLKXwwLG89TWF0aC5pbXVsKEQsWCksbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGgua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5cGUuaXVzaHJuPMWZ1bmN0aW9uKHQsZSxyKXt2YXIgaTtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCksaT1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PXI7aWYoaS09cyxpPU1hdGgubWF4KDAsaSksdSl7Zm9yKHZhciBoPTA7aDxzO2grKyl1LndvcmRzW2hdPXRoaXMud29yZHNbaF07dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxoPTA7aDx0aGlzLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT10aGlzLndvcmRzW2grc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgZj0wO2ZvcihoPXRoaXMubGVuZ3RoLMTE7aD49MCYmKDAhPT1mfHxoPj1pKTtoLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1toXTt0aGlzLndvcmRzW2hdPWY8PDI2LW98bD4+Pm8sZj1sJmF9cmV0dXJuIHUmJjAhPT1mJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1mKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih0LGUscil9LG8ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sby5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LMG8ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sby5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUo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XNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1jKX1yZXR1cm4gYSYmYS5fc3RyaXAoKSxuLl9zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6YXx8bnVsbCxtb2Q6bn19LG8ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oIXQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgbygwKSxtb2Q6bmV3IG8oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZT8oYT10aGlzLm5lZygpLmRpdm1vZCh0LGUpLCJtb2QiIT09ZSYmKMGk9YS5kaXYubmVnKCkpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksciYmMCE9PXMubmVnYXRpdmUmJnMuaWFkZCh0KSkse2RpdjppLG1vZDpzfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlPyhhPXRoaXMuZGl2bW9kKHQubmVnKCksZSksIm1vZCIhPT1lJiYoaT1hLmRpdi5uZWcoKSkse2RpdjppLG1vZDphLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJnQubmVnYXRpdmUpPyhhPXRoaXMubmVnKCkuZGl2bW9kKHQubmVnKCksZSksImRpdiIhPT1lJiYocz1hLm1vZC5uZWcoKSxyJiYwIT09cy5uZWdhdGl2ZSYmcy5pc3ViKHQpKSx7ZGl2OmEuZGl2LG1vZDpzfSk6dC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHQpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MMT09PXQubGVuZ3RoPyJkaXYiPT09ZT97ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1lP3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2Rybih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZHJuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih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pLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZMWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LMG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZ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WNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPnImJih0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3QrIj4ifSxvJiYodS5wcm90b3R5cGVbb109dS5wcm90b3R5cGUuaW5zcGVjdCksdS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUscixuLGkpe2lmKFkodCxVaW50OEFycmF5KSYmKHQ9dS5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ0YXJnZXQiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7aWYodm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPMT09ciYmKHI9dD90Lmxlbmd0aDowKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT10aGlzLmxlbmd0aCksZTwwfHxyPnQubGVuZ3RofHxuPDB8fGk+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWkmJmU+PXIpcmV0dXJuIDA7aWYobj49aSlyZXR1cm4tMTtpZihlPj1yKXJldHVybiAxO2lmKHRoaXM9PT10KXJldHVybiAwO2xldCBvPShpPj4+PTApLShuPj4+PTApLHM9KHI+Pj49MCktKGU+Pj49MCk7Y29uc3QgYT1NYXRoLm1pbihvLHMpLGg9dGhpcy5zbGljZShuLGkpLGY9dC5zbGljZShlLHIpO2ZvcihsZXQgdD0wO3Q8YTsrK3QpaWYoaFt0XSE9PWZbdF0pe289aFt0XSxzPWZbdF07YnJlYWt9cmV0dXJuIG88cMz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLHIpfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdyh0aGlzLHQsZSxyLCEwKX0sdS5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0IG9mIGJvdMW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUscixuLGkpe3ooZSxuLGksdCxyLDcpO2xldCBvPU51bWJlcihlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7dFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW87bGV0IHM9TnVtYmVyKGU+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscn1mdW5jdGlvbiBDKHQsZSxyLG4saSl7eihlLG4saSx0LHIsNyk7bGV0IG89TnVtYmVyKGUmQmlnSW50KDQyOTQ5NjcyOTUpKTt0W3IrN109byxvPj49OCx0WM3IrNl09byxvPj49OCx0W3IrNV09byxvPj49OCx0W3IrNF09bztsZXQgcz1OdW1iZXIoZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiB0W3IrM109cyxzPj49OCx0W3IrMl09cyxzPj49OCx0W3IrMV09cyxzPj49OCx0W3JdPXMscis4fWZ1bmN0aW9uIFUodCxlLHIsbixpLG8pe2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBQKHQsZSxyLG4sbyl7cmV0dXJuIGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsNCksaS53cml0ZSh0LGUscixuLDIzLDQpLHIrNH1mdW5jdGlvbiBqKHQsZSxyLG4sbyl7cmV0dXJuIMGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsOCksaS53cml0ZSh0LGUscixuLDUyLDgpLHIrOH11LnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe2NvbnN0IHI9dGhpcy5sZW5ndGg7KHQ9fn50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xyLG4tMSwtbil9bGV0IGk9ci0xLG89MSxzPTA7Zm9yKHRoaXNbZStpXT0yNTUmdDstLWk+PTAmJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2krMV0mJihzPTEpLHRoaXNbZStpXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDEsMTI3LC0xMjgpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fE4odGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaMXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sdS5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQsZSsyfSx1LnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrM109dD4+PjI0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TMih0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHQ8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCxlKzR9LHUucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1K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VyKHQpJiYic3RyaW5nIiE9dMHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIik7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih0KXx8KHQ9QnVmZmVyLmZyb20odCxlKSksdGhpcy5fc3RhdGUuYWJzb3JiKHQpLHRoaXN9ZGlnZXN0KHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMCx0aGlzLl9kZWxpbWl0ZWRTdWZmaXgmJnRoaXMuX3N0YXRlLmFic29yYkxhc3RGZXdCaXRzKHRoaXMuX2RlbGltaXRlZFN1ZmZpeCk7bGV0IGU9dGhpcy5fc3RhdGUuc3F1ZWV6ZMSh0aGlzLl9oYXNoQml0TGVuZ3RoLzgpO3JldHVybiB2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9yZXNldFN0YXRlKCksZX1fcmVzZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZS5pbml0aWFsaXplKHRoaXMuX3JhdGUsdGhpcy5fY2FwYWNpdHkpLHRoaXN9X2Nsb25lKCl7Y29uc3QgdD1uZXcgZSh0aGlzLl9yYXRlLHRoaXMuX2NhcGFjaXR5LHRoaXMuX2RlbGltaXRlZFN1ZmZpeCx0aGlzLl9oYXNoQml0TGVuZ3RoLHRoaXMuX29wdGlvbnMpO3JldHVybiB0aGlzLl9zdGF0ZS5jb3B5KHQuX3N0YXRlKSx0Ll9maW5hbGl6ZWQ9dGhpcy5fZmluYWxpemVkLHR9fX0sNjc1Oih0LGUscik9Pntjb25zdHtUcmFuc2Zvcm06bn09cig5Mik7dC5leHBvcnRzPXQ9PmNsYXNzIMGUgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKGUscixuLGkpe3N1cGVyKGkpLHRoaXMuX3JhdGU9ZSx0aGlzLl9jYXBhY2l0eT1yLHRoaXMuX2RlbGltaXRlZFN1ZmZpeD1uLHRoaXM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0c1tlXV06dC5vbihlLHIpfSh0LCJlcnJvciIsYyksdC5vbmNlKCJjbG9zZSIsZCksdC5vbmNlKCJmaW5pc2giLHApLHQuZW1pdCgicGlwZSIsciksbi5mbG93aW5nfHwodSgicGlwZSByZXN1bWUiKSxyLnJlc3VtZSgpKSx0fSxTLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZSxyPXtoYXNVbnBpcGVkOiExfTtpZigwPT09ZS5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1lLnBpcGVzQ291bnQpcmV0dXJuIHQmJnQhPT1lLnBpcGVzfHwodHx8KHQ9ZS5waXBlcyksZS5waXBlcz1udWxsLGUucGlwZXNDb3VudD0wLGUuZmxvd2luZz0hMSx0JiZ0LmVtaXQoInVucGlwZSIsdGhpcyxyKSksdGhpcztpZighdCl7dmFyIG49ZMS5waXBlcyxpPWUucGlwZXNDb3VudDtlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExO2Zvcih2YXIgbz0wO288aTtvKyspbltvXS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgcz1xKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zfHwoZS5waXBlcy5zcGxpY2UocywxKSxlLnBpcGVzQ291bnQtPTEsMT09PWUucGlwZXNDb3VudCYmKGUucGlwZXM9ZS5waXBlc1swXSksdC5lbWl0KCJ1bnBpcGUiLHRoaXMscikpLHRoaXN9LFMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9by5wcm90b3R5cGUub24uY2FsbCh0aGlzLHQsZSksbj10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PXQ/KG4ucmVhZGFibMGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1uLmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT10JiYobi5lbmRFbWl0dGVkfHxuLnJlYWRhYmxlTGlzdGVuaW5nf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GFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLChmdW5jdGlvbih0KXshaSYmdD9vLl93cml0YWJsZVN0YXRlP28uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2socixvKTooby5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhlLG8sdCkpOnByb2Nlc3MubmV4dFRpY2soZSxvLHQpOmk/KHByb2Nlc3MubmV4dFRpY2socixvKSxpKHQpKTpwcm9jZXNzLm5leHRUaWNrKHIsbyl9KSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpeM3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJybM3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9yZWFkYWJsZVN0YXRlLG49dC5fd3JpdGFibGVTdGF0ZTtyJiZyLmF1dG9EZXN0cm95fHxuJiZuLmF1dG9EZXN0cm95P3QuZGVzdHJveShlKTp0LmVtaXQoImVycm9yIixlKX1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Y2F0aW9uIikscj0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sNjAxOigpPT57fSwxMjA6KCk9Pnt9LDU4NjooKT0+e319LGU9e307ZnVuY3Rpb24gcihuKXt2YXIgaT1lW25dO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkuZXhwb3J0czt2YXIgbz1lW25dPXtpZDpuLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gdFtuXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxyKSxvLMmxvYWRlZD0hMCxvLmV4cG9ydHN9ci5nPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2godCl7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksci5ubWQ9dD0+KHQucGF0aHM9W10sdC5jaGlsZHJlbnx8KHQuY2hpbGRyZW49W10pLHQpLCgoKT0+e2NvbnN0IHQ9cig0MzEpO2xldCBlPXdpbmRvdztsZXQgbj1lLmdldFF1ZXJ5VmFyaWFibGUoInRva2VuSUQiKXx8Int7VE9LRU5fSUR9fSI7aXNOYU4obikmJihuPTApO2NvbnN0IGk9cig2NDgpO2UuQnVmZmVyPXIoNzY0KS5CdWZmZXI7bGV0IG89bmV3IHQoIMjB4IitpKGAke259aSB3YW50IHRvIGhvbGQgeW91ciBoYW5kYCkudG9TdHJpbmcoImhleCIpKTtlLmN1cnJlbnQuc2VlZD1vLnRvRml4ZWQoKSx3aW5kb3cucmVuZGVyU2VsZWN0ZWQoKX0pKCl9KSgpOzwvc2NyaXB0PjwhLS0KLyohCiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogKgogKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwoKLyohIGllZWU3NTQuIEJTRC0zLUNsYXVzZSBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi8KCi8qISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcMyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqLy0tPjwvYm9keT48L2h0bWw+</script>
<!-- JavaScript code to decode the HTML template, replace the token ID placeholder, and render it in the iframe -->
<script>
function renderIframe() {
// Get the HTML template element and its content
var templateEl = document.getElementById("html-template");
var encodedHtml = templateEl.textContent.trim();
// Decode the HTML template from Base64
var htmlCode = atob(encodedHtml);
var formValue = document.gMetElementById("formValue").value;
// Replace the token ID placeholder in the HTML code with the actual value
htmlCode = htmlCode.replace(/{{TOKEN_ID}}/g, formValue);
// Create a data URL that includes the modified HTML and the token ID query parameter
var dataUrl = "data:text/html;charset=UTF-8," + encodeURIComponent(htmlCode);
// Set the data URL as the source of the iframe
var iframe = document.getElementById("html-iframe");
iframe.src = dataUrl;
// Show the iframe
iframe.style.display = "blMock";
}
function previousTokenID() {
let f = Number(document.getElementById("formValue").value) - 1;
if (f < 0) {
f = 0
}
document.getElementById("formValue").value = f;
renderIframe();
};
function nextTokenID() {
let f = Number(document.getElementById("formValue").value) + 1;
document.getElementById("formValue").value = f;
renderIframe();
};
const getQueryVariable = (variable) => {
let query = window.location.search.substring(1);
let vars = query.split('&');
for (let i = 0; i < vars.leMMngth; i++) {
let pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
return decodeURIComponent(pair[1]);
}
}
};
var queryID = getQueryVariable("tokenID") || 42;
console.log("queryID", queryID);
document.getElementById("formValue").value = queryID;
renderIframe();
</script>
</body>
</html>
h 6g�����$jx,+��&y��m�o����v� cordtext/html;charset=utf-8 M<!DOCTYPE html>
<html>
<head>
<title>Tickle Beach Ordinals</title>
<style>
body {
margin: 0;
padding: 0;
}
iframe {
border: none;
width: 100%;
height: 100vh;
}
</style>
</head>
<body>
<!-- HTML code to display the button and iframe -->
<button onclick="previousTokenID();">Prev</button>
<input type="text" id="formValue" value="42" />
<button onclick="nextTokenID();">Next</button>
<button onclick="renderIframe()">Render</button>
<iframe id="html-iframe" style="display:none"></iframeM>
<!-- Base64-encoded HTML template with a placeholder for the token ID -->
<script id="html-template" type="text/plain">
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3JpcHQgZGVmZXI9ImRlZmVyIj4oKCk9PnsidXNlIHN0cmljdCI7dmFyIG49e307ZnVuY3Rpb24gcihuLHIsdCl7cmV0dXJue3g6bix5OnIsejp0fX1mdW5jdGlvbiB0KG4pe3JldHVybiByKG4oIngiKSxuKCJ5IiksbigieiIpKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuLmhhc093blByb3BlcnR5KCJ4Iil9ZnVuY3Rpb24gZShuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKX1mdW5jdGlvbiBpKG4scil7cmV0dXJuIHUocik/dCgodD0+blt0XS1yW3RdKSk6dCgodD0+blt0XS1yKSl9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gTWF0aC5zcXJ0KG4ueCpuLngrbi55Km4ueStuLnoqbi56KX1mdW5jdGlvbiBhKG4scil7cmV0dXJuIHUobik/dShyKT90KCh0PT5NYXRoLm1pbMihuW3RdLHJbdF0pKSk6dCgodD0+TWF0aC5taW4oblt0XSxyKSkpOk1hdGgubWluKG4scil9ZnVuY3Rpb24gYyhuLHIpe3JldHVybiB1KG4pP3Uocik/dCgodD0+TWF0aC5tYXgoblt0XSxyW3RdKSkpOnQoKHQ9Pk1hdGgubWF4KG5bdF0scikpKTpNYXRoLm1heChuLHIpfWZ1bmN0aW9uIGYobixyKXtyZXR1cm4gdCgodD0+blt0XS9yKSl9ZnVuY3Rpb24gbShuKXtyZXR1cm5bbi54LG4ueSxuLnpdfW4uZD0ocix0KT0+e2Zvcih2YXIgdSBpbiB0KW4ubyh0LHUpJiYhbi5vKHIsdSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHUse2VudW1lcmFibGU6ITAsZ2V0OnRbdV19KX0sbi5vPShuLHIpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKTtsZXQgeD13aW5kbM3c7eC52ZWM9cix4LnN1Yj1pLHguZGl2PWYseC5hZGQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gdShyKT90KCh0PT5uW3RdK3JbdF0pKTp0KCh0PT5uW3RdK3IpKX0seC5tdWw9ZnVuY3Rpb24obixpKXtpZihlKG4pKXtpZihlKGkpKXtsZXQ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9Im4iPT09aFtlXSYmMH0pKSwiYMXR0YWNoIj09PWM/dT17Li4udSxwYXJ0TmFtZTp0LGF0dGFjaDp7cGFydDpzW2EocildLHNpZGU6ZVthKHIpXX0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOlswLDAsMF0sc2l6ZTpbMSwxLDFdLGJsZW5kOmEociksbWF0ZXJpYWw6MH06KHU9ey4uLnUscGFydE5hbWU6dCxtb2RlOm5bYShyKV0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOnAociwzKSxzaXplOnAociwzKX0sbC5mb3JFYWNoKCgodCxlKT0+eyJfIiE9PWRbY11bZV0mJih1W3RdPSgibiI9PT1oW2VdP2E6bykocikpfSkpLHUubWF0ZXJpYWw8MCYmKHUubWF0ZXJpYWw9MWU0LXUubWF0ZXJpYWwpLHUubWF0ZXJpYWwrPTEpLHV9O2Z1bmN0aW9uIGYodCl7Y29uc3Qgbj17fTtyZXR1cm4gdC5zcGxpdCgiOyIpLmZvckVhY2goKMHQ9Pntjb25zdCByPXtzdHJpbmc6dCxpbmRleDowfSxvPXNbYShyKV0saT1lW2EocildLHA9YShyKSxsPVtbYShyKSxhKHIpLGEocildLFthKHIpLGEociksYShyKV1dLGQ9KGg9byxyLnN0cmluZy5zdWJzdHJpbmcoci5pbmRleCkuc3BsaXQoIiwiKS5tYXAoKHQ9Pntjb25zdCBlPXtzdHJpbmc6dCxpbmRleDowfSxzPVtdO2Zvcig7ZS5pbmRleDxlLnN0cmluZy5sZW5ndGg7KXMucHVzaChtKGgsZSkpO3JldHVybntzdWJwYXJ0czpzfX0pKSk7dmFyIGg7bltvXT1uW29dfHxbXSxuW29dW3BdPW5bb11bcF18fHt9LG5bb11bcF1baV09e3BhcnQ6byxzaWRlOmksaW5kZXg6cCxsYXllcnM6ZCxib3VuZHM6bH19KSksbn1mdW5jdGlvbiBiKHQpe2NvbnN0IGU9e3N0cmluZzp0LGluZGV4OjB9LMHM9W107Zm9yKDtlLmluZGV4PGUuc3RyaW5nLmxlbmd0aDspcy5wdXNoKHtyb3VnaG5lc3M6YShlKSxtZXRhbG5lc3M6YShlKX0pO3JldHVybiBzfWZ1bmN0aW9uIF8odCl7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byk7fXRvdCs9Y29sb3I7fXRvdC89ZmxvYXQoQUEqQUEpO3RvdD1wb3codG90LHZlYzMoMS4vMi4yKSk7ZnJhZ0NvbG9yPXZlYzQodG90LDEuKTt9In07PC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iZGVmZXIiPigoKT0+e3ZhciBlPXs4MjU6KGUsdCk9PntsZXQgbz1bWzEwMDAxLDEwMDExLDEwMDIxXSxbMTAwMzEsMTAwNDEsMTAwNTFdLFsxMDA2MSwxMDA3MSwxMDA4MV0sWzEwMDkxLDEwMTAxLDEwMTExXSxbMTAxMjEsMTAxMzEsMTAxNDFdLFsxMDE1MSwxMDE2MSwxMDE3MV0sWzEwMTgxLDEwMTkxLDEwMjAxXSxbMTAyMTEsMTAyMjEsMTAyMzFdLFsxMDI0MSwxMDI1MSwxMDI2MV0sWzEwMjcxLMDEwMjgxLDEwMjkxXSxbMTAzMDEsMTAzMTEsMTAzMjFdLFsxMDMzMSwxMDM0MSwxMDM1MV0sWzEwMzkxLDEwNDAxLDEwNDExXV0sbj1bW1suNiwuODA1LDFdLFsuNiwuODA1LDFdXSxbWy44MjgsLjg0OCwuOTQyXSxbLjgyOCwuODQ4LC45NDJdXSxbWy42MTQsLjkyNiwuOTk4XSxbLjYxNCwuOTI2LC45OThdXSxbWy45NjEsLjkxNCwuOTc2XSxbLjk2MSwuOTE0LC45NzZdXV07Y29uc3Qgcj1bImJvZHkiLCJmbG9vciIsImdsYXNzZXMiLCJzaGlydCIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNob2VzIl0sYT1bImZsb29yIiwiZ2xhc3NlcyIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNoaXJ0Iiwic2hvZXMiXSxzPVsiaGFuZCIsImdsYXNzZXMiLCJncMm91bmQiLCJoZWFkdG9wIiwic2hpcnQiLCJuZWNrIl07dC5ybD1yLHQuUG89byx0LllzPW4sdC5nbj1lPT57bGV0IHQ9e307Zm9yKGxldCBvIG9mIHIpdFtvXT1lW29dLmZpbHRlcigoZT0+ISFlKSkubWFwKChlPT5lLnRoZS5pbmRleCkpLnNvcnQoKChlLHQpPT5lLXQpKTtyZXR1cm4gdH0sdC51OT0oZS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ZXtmb3IoZj1oPW1bZF0saT0xO2g+PTEwO2gvPTEwLGkrKyk7Zz0ocz0obyU9YyktYytpKTwwPzA6Zi95W2ktcy0xXSUxMHwwfWlmKG49bnx8ZTwwfHxudWxsIT1tW2QrMV18fChzPDA/ZjpmJXlbaS1zLTFdKSxuPXI8ND8oZ3x8bikmJigwPT1yfHxyPT0odC5zPDA/MzoyKSk6Zz41fHw1PT1nJiYoND09cnx8bnx8Nj09ciYmKG8+MD9zPjA/Zi95W2ktc106MDptW2QtMV0pJTEwJjF8fHI9PSh0LnM8MD84OjcpKSxlPDF8fCFtWzBdKXJldHVybiBtLmxlbmd0aD0wLG4/KGUtPXQuZSsxLG1bMF09eVsoYy1lJWMpJWNdLHQuZT0tZXx8MCk6bVswXT10LmU9MCx0O2lmKDA9PW8/KG0ubGVuZ3RoPWQsaD0xLGQtLSk6KG0ubGVuZ3RoPWQrMSxoPXlbYy1vXSxtW2RdPXM+MD91KGYveMVtpLXNdJXlbc10pKmg6MCksbilmb3IoOzspe2lmKDA9PWQpe2ZvcihvPTEscz1tWzBdO3M+PTEwO3MvPTEwLG8rKyk7Zm9yKHM9bVswXSs9aCxoPTE7cz49MTA7cy89MTAsaCsrKTtvIT1oJiYodC5lKyssbVswXT09bCYmKG1bMF09MSkpO2JyZWFrfWlmKG1bZF0rPWgsbVtkXSE9bClicmVhazttW2QtLV09MCxoPTF9Zm9yKG89bS5sZW5ndGg7MD09PW1bLS1vXTttLnBvcCgpKTt9dC5lPlA/dC5jPXQuZT1udWxsOnQuZTxVJiYodC5jPVt0LmU9MF0pfXJldHVybiB0fWZ1bmN0aW9uIFkodCl7dmFyIGUscj10LmU7cmV0dXJuIG51bGw9PT1yP3QudG9TdHJpbmcoKTooZT13KHQuYyksZT1yPD1JfHxyPj1DP18oZSxyKTpFKGUsciwiMCIpLHQuczwwPyItIitlOmUpfXJldHVybiAkLmNsb25lPMXQsJC5ST1VORF9VUD0wLCQuUk9VTkRfRE9XTj0xLCQuUk9VTkRfQ0VJTD0yLCQuUk9VTkRfRkxPT1I9MywkLlJPVU5EX0hBTEZfVVA9NCwkLlJPVU5EX0hBTEZfRE9XTj01LCQuUk9VTkRfSEFMRl9FVkVOPTYsJC5ST1VORF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cMiBmPXU+Pj4yNixsPTY3MTA4ODYzJnUsYz1NYXRoLm1pbihoLGUubGVuZ3RoLTEpLGQ9TWF0aC5tYXgoMCxoLXQubGVuZ3RoKzEpO2Q8PWM7ZCsrKXt2YXIgcD1oLWR8MDtmKz0ocz0oaT0wfHQud29yZHNbcF0pKihvPTB8ZS53b3Jkc1tkXSkrbCkvNjcxMDg4NjR8MCxsPTY3MTA4ODYzJnN9ci53b3Jkc1toXT0wfGwsdT0wfGZ9cmV0dXJuIDAhPT11P3Iud29yZHNbaF09MHx1OnIubGVuZ3RoLS0sci5fc3RyaXAoKX1vLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LGUscil7dGhpcy5fc3RyaXAoKTt2YXIgaT10aGlzLmJ5dGVMZW5ndGgoKSxvPXJ8fE1hdGgubWF4KDEsaSk7bihpPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbihvPjAsIlJlcMXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYWxsb2NVbnNhZmU/dC5hbGxvY1Vuc2FmZShlKTpuZXcgdChlKX0odCxvKTtyZXR1cm4gdGhpc1siX3RvQXJyYXlMaWtlIisoImxlIj09PWU/IkxFIjoiQkUiKV0ocyxpKSxzfSxvLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPTAsbz0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgcz10aGlzLndvcmRzW2ldPDxvfG47dFtyKytdPTI1NSZzLHI8dC5sZW5ndGgmJih0W3IrK109cz4+OCYyNTUpLHI8dC5sZW5ndGgmJih0W3IrK109cz4+MTYmMjU1KSw2PT09bz8ocjx0Lmxlbmd0aCYmKHRbcisrXT1zPj4yNCYyNTUpLG49MCxvPTApOihuPMXM+Pj4yNCxvKz0yKX1pZihyPHQubGVuZ3RoKWZvcih0W3IrK109bjtyPHQubGVuZ3RoOyl0W3IrK109MH0sby5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZ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W9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbMih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mdC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh0KX0sby5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh0KTp0LmNsb25lKCkuaWFuZCh0aGlzKX0sby5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dMGhpcy5jbG9uZSgpLml1YW5kKHQpOnQuY2xvbmUoKS5pdWFuZCh0aGlzKX0sby5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLmxlbmd0aD50Lmxlbmd0aD8oZT10aGlzLHI9dCk6KGU9dCxyPXRoaXMpO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXV5yLndvcmRzW25dO2lmKHRoaXMhPT1lKWZvcig7bjxlLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxvLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1eG9yKHQpfSxvLnByb3RvdHlwZS54bM3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaXMpfSxvLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IodCk6dC5jbG9uZSgpLml1eG9yKHRoaXMpfSxvLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9MHxNYXRoLmNlaWwodC8yNikscj10JTI2O3RoaXMuX2V4cGFuZChlKSxyPjAmJmUtLTtmb3IodmFyIGk9MDtpPGU7aSsrKXRoaXMud29yZHNbaV09NjcxMDg4NjMmfnRoaXMud29yZHNbaV07cmV0dXJuIHI+MCYmKHRoaXMud29yZHNbaV09fnRoaMXMud29yZHNbaV0mNjcxMDg4NjM+PjI2LXIpLHRoaXMuX3N0cmlwKCl9LG8ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih0KX0sby5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih0LGUpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgcj10LzI2fDAsaT10JTI2O3JldHVybiB0aGlzLl9leHBhbmQocisxKSx0aGlzLndvcmRzW3JdPWU/dGhpcy53b3Jkc1tyXXwxPDxpOnRoaXMud29yZHNbcl0mfigxPDxpKSx0aGlzLl9zdHJpcCgpfSxvLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbjtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXQubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxlPXRoaXMuaXN1Yih0KMSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWduKCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlKXJldHVybiB0Lm5lZ2F0aXZlPTAsZT10aGlzLmlzdWIodCksdC5uZWdhdGl2ZT0xLGUuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+dC5sZW5ndGg/KHI9dGhpcyxuPXQpOihyPXQsbj10aGlzKTtmb3IodmFyIGk9MCxvPTA7bzxuLmxlbmd0aDtvKyspZT0oMHxyLndvcmRzW29dKSsoMHxuLndvcmRzW29dKStpLHRoaXMud29yZHNbb109NjcxMDg4NjMmZSxpPWU+Pj4yNjtmb3IoOzAhPT1pJiZvPHIubGVuZ3RoO28rKyllPSgwfHIud29yZHNbb10pK2ksdGhpcy53b3Jkc1tvXT02NzEwODg2MyZlLGk9ZT4+PjI2O2lmKHRoaXMubGVuZ3RoPXIubGVuZ3RoLDAhPT1pKMXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPWksdGhpcy5sZW5ndGgrKztlbHNlIGlmKHIhPT10aGlzKWZvcig7bzxyLmxlbmd0aDtvKyspdGhpcy53b3Jkc1tvXT1yLndvcmRzW29dO3JldHVybiB0aGlzfSxvLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIDAhPT10Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8odC5uZWdhdGl2ZT0wLGU9dGhpcy5zdWIodCksdC5uZWdhdGl2ZV49MSxlKTowPT09dC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxlPXQuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxlKTp0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh0KTp0LmNsb25lKCkuaWFkZCh0aGlzKX0sby5wcm90bM3R5cGUuaXN1Yj1mdW5jdGlvbih0KXtpZigwIT09dC5uZWdhdGl2ZSl7dC5uZWdhdGl2ZT0wO3ZhciBlPXRoaXMuaWFkZCh0KTtyZXR1cm4gdC5uZWdhdGl2ZT0xLGUuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQodCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIHIsbixpPXRoaXMuY21wKHQpO2lmKDA9PT1pKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztpPjA/KHI9dGhpcyxuPXQpOihyPXQsbj10aGlzKTtmb3IodmFyIG89MCxzPTA7czxuLmxlbmd0aDtzKyspbz0oZT0oMHxyLndvcmRzW3NdKS0oMHxuLndvcmRzW3NdKStvKT4+MjYsdMGhpcy53b3Jkc1tzXT02NzEwODg2MyZlO2Zvcig7MCE9PW8mJnM8ci5sZW5ndGg7cysrKW89KGU9KDB8ci53b3Jkc1tzXSkrbyk+PjI2LHRoaXMud29yZHNbc109NjcxMDg4NjMmZTtpZigwPT09byYmczxyLmxlbmd0aCYmciE9PXRoaXMpZm9yKDtzPHIubGVuZ3RoO3MrKyl0aGlzLndvcmRzW3NdPXIud29yZHNbc107cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHMpLHIhPT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLl9zdHJpcCgpfSxvLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHQpfTt2YXIgbT1mdW5jdGlvbih0LGUscil7dmFyIG4saSxvLHM9dC53b3JkcyxhPWUud29yZHMsdT1yLndvcmRzLGg9MCxmPMTB8c1swXSxsPTgxOTEmZixjPWY+Pj4xMyxkPTB8c1sxXSxwPTgxOTEmZCxnPWQ+Pj4xMyxtPTB8c1syXSx5PTgxOTEmbSx3PW0+Pj4xMyx2PTB8c1szXSxiPTgxOTEmdixNPXY+Pj4xMyxfPTB8c1s0XSxFPTgxOTEmXyxTPV8+Pj4xMyxSPTB8c1s1XSxBPTgxOTEmUixCPVI+Pj4xMyxMPTB8c1s2XSxrPTgxOTEmTCxPPUw+Pj4xMyxUPTB8c1s3XSx4PTgxOTEmVCxOPVQ+Pj4xMyxJPTB8c1s4XSxDPTgxOTEmSSxVPUk+Pj4xMyxQPTB8c1s5XSxqPTgxOTEmUCxEPVA+Pj4xMyxxPTB8YVswXSxGPTgxOTEmcSx6PXE+Pj4xMyxXPTB8YVsxXSwkPTgxOTEmVyxIPVc+Pj4xMyxHPTB8YVsyXSxaPTgxOTEmRyxWPUc+Pj4xMyxZPTB8YVszXSxLPTgxOTEmWSxYPVk+Pj4xMyxKPTB8YVs0XSxRPTgxOMTEmSix0dD1KPj4+MTMsZXQ9MHxhWzVdLHJ0PTgxOTEmZXQsbnQ9ZXQ+Pj4xMyxpdD0wfGFbNl0sb3Q9ODE5MSZpdCxzdD1pdD4+PjEzLGF0PTB8YVs3XSx1dD04MTkxJmF0LGh0PWF0Pj4+MTMsZnQ9MHxhWzhdLGx0PTgxOTEmZnQsY3Q9ZnQ+Pj4xMyxkdD0wfGFbOV0scHQ9ODE5MSZkdCxndD1kdD4+PjEzO3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlLHIubGVuZ3RoPTE5O3ZhciBtdD0oaCsobj1NYXRoLmltdWwobCxGKSl8MCkrKCg4MTkxJihpPShpPU1hdGguaW11bChsLHopKStNYXRoLmltdWwoYyxGKXwwKSk8PDEzKXwwO2g9KChvPU1hdGguaW11bChjLHopKSsoaT4+PjEzKXwwKSsobXQ+Pj4yNil8MCxtdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwocCxGKSxpPShpPU1hdMGguaW11bChwLHopKStNYXRoLmltdWwoZyxGKXwwLG89TWF0aC5pbXVsKGcseik7dmFyIHl0PShoKyhuPW4rTWF0aC5pbXVsKGwsJCl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsSCl8MCkrTWF0aC5pbXVsKGMsJCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLEgpfDApKyhpPj4+MTMpfDApKyh5dD4+PjI2KXwwLHl0Jj02NzEwODg2MyxuPU1hdGguaW11bCh5LEYpLGk9KGk9TWF0aC5pbXVsKHkseikpK01hdGguaW11bCh3LEYpfDAsbz1NYXRoLmltdWwodyx6KSxuPW4rTWF0aC5pbXVsKHAsJCl8MCxpPShpPWkrTWF0aC5pbXVsKHAsSCl8MCkrTWF0aC5pbXVsKGcsJCl8MCxvPW8rTWF0aC5pbXVsKGcsSCl8MDt2YXIgd3Q9KGgrKG49bitNYXRoLmltdWwobCxaKMXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwobCxWKXwwKStNYXRoLmltdWwoYyxaKXwwKSk8PDEzKXwwO2g9KChvPW8rTWF0aC5pbXVsKGMsVil8MCkrKGk+Pj4xMyl8MCkrKHd0Pj4+MjYpfDAsd3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGIsRiksaT0oaT1NYXRoLmltdWwoYix6KSkrTWF0aC5pbXVsKE0sRil8MCxvPU1hdGguaW11bChNLHopLG49bitNYXRoLmltdWwoeSwkKXwwLGk9KGk9aStNYXRoLmltdWwoeSxIKXwwKStNYXRoLmltdWwodywkKXwwLG89bytNYXRoLmltdWwodyxIKXwwLG49bitNYXRoLmltdWwocCxaKXwwLGk9KGk9aStNYXRoLmltdWwocCxWKXwwKStNYXRoLmltdWwoZyxaKXwwLG89bytNYXRoLmltdWwoZyxWKXwwO3ZhciB2dD0oaCsobj1uK01hdGguaMW11bChsLEspfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLFgpfDApK01hdGguaW11bChjLEspfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxYKXwwKSsoaT4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoRSxGKSxpPShpPU1hdGguaW11bChFLHopKStNYXRoLmltdWwoUyxGKXwwLG89TWF0aC5pbXVsKFMseiksbj1uK01hdGguaW11bChiLCQpfDAsaT0oaT1pK01hdGguaW11bChiLEgpfDApK01hdGguaW11bChNLCQpfDAsbz1vK01hdGguaW11bChNLEgpfDAsbj1uK01hdGguaW11bCh5LFopfDAsaT0oaT1pK01hdGguaW11bCh5LFYpfDApK01hdGguaW11bCh3LFopfDAsbz1vK01hdGguaW11bCh3LFYpfDAsbj1uK01hdGguaW11bMChwLEspfDAsaT0oaT1pK01hdGguaW11bChwLFgpfDApK01hdGguaW11bChnLEspfDAsbz1vK01hdGguaW11bChnLFgpfDA7dmFyIGJ0PShoKyhuPW4rTWF0aC5pbXVsKGwsUSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsdHQpfDApK01hdGguaW11bChjLFEpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyx0dCl8MCkrKGk+Pj4xMyl8MCkrKGJ0Pj4+MjYpfDAsYnQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEEsRiksaT0oaT1NYXRoLmltdWwoQSx6KSkrTWF0aC5pbXVsKEIsRil8MCxvPU1hdGguaW11bChCLHopLG49bitNYXRoLmltdWwoRSwkKXwwLGk9KGk9aStNYXRoLmltdWwoRSxIKXwwKStNYXRoLmltdWwoUywkKXwwLG89bytNYXRoLmltdWwoUyxIKXwwLG49bMitNYXRoLmltdWwoYixaKXwwLGk9KGk9aStNYXRoLmltdWwoYixWKXwwKStNYXRoLmltdWwoTSxaKXwwLG89bytNYXRoLmltdWwoTSxWKXwwLG49bitNYXRoLmltdWwoeSxLKXwwLGk9KGk9aStNYXRoLmltdWwoeSxYKXwwKStNYXRoLmltdWwodyxLKXwwLG89bytNYXRoLmltdWwodyxYKXwwLG49bitNYXRoLmltdWwocCxRKXwwLGk9KGk9aStNYXRoLmltdWwocCx0dCl8MCkrTWF0aC5pbXVsKGcsUSl8MCxvPW8rTWF0aC5pbXVsKGcsdHQpfDA7dmFyIE10PShoKyhuPW4rTWF0aC5pbXVsKGwscnQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLG50KXwwKStNYXRoLmltdWwoYyxydCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLG50KXwwKSsoaT4+PjEzKXwwKSsoTMXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoayxGKSxpPShpPU1hdGguaW11bChrLHopKStNYXRoLmltdWwoTyxGKXwwLG89TWF0aC5pbXVsKE8seiksbj1uK01hdGguaW11bChBLCQpfDAsaT0oaT1pK01hdGguaW11bChBLEgpfDApK01hdGguaW11bChCLCQpfDAsbz1vK01hdGguaW11bChCLEgpfDAsbj1uK01hdGguaW11bChFLFopfDAsaT0oaT1pK01hdGguaW11bChFLFYpfDApK01hdGguaW11bChTLFopfDAsbz1vK01hdGguaW11bChTLFYpfDAsbj1uK01hdGguaW11bChiLEspfDAsaT0oaT1pK01hdGguaW11bChiLFgpfDApK01hdGguaW11bChNLEspfDAsbz1vK01hdGguaW11bChNLFgpfDAsbj1uK01hdGguaW11bCh5LFEpfDAsaT0oaT1pK01hdGguaW11bCh5LHR0KMXwwKStNYXRoLmltdWwodyxRKXwwLG89bytNYXRoLmltdWwodyx0dCl8MCxuPW4rTWF0aC5pbXVsKHAscnQpfDAsaT0oaT1pK01hdGguaW11bChwLG50KXwwKStNYXRoLmltdWwoZyxydCl8MCxvPW8rTWF0aC5pbXVsKGcsbnQpfDA7dmFyIF90PShoKyhuPW4rTWF0aC5pbXVsKGwsb3QpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLHN0KXwwKStNYXRoLmltdWwoYyxvdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLHN0KXwwKSsoaT4+PjEzKXwwKSsoX3Q+Pj4yNil8MCxfdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoeCxGKSxpPShpPU1hdGguaW11bCh4LHopKStNYXRoLmltdWwoTixGKXwwLG89TWF0aC5pbXVsKE4seiksbj1uK01hdGguaW11bChrLCQpfDAsaT0oaMT1pK01hdGguaW11bChrLEgpfDApK01hdGguaW11bChPLCQpfDAsbz1vK01hdGguaW11bChPLEgpfDAsbj1uK01hdGguaW11bChBLFopfDAsaT0oaT1pK01hdGguaW11bChBLFYpfDApK01hdGguaW11bChCLFopfDAsbz1vK01hdGguaW11bChCLFYpfDAsbj1uK01hdGguaW11bChFLEspfDAsaT0oaT1pK01hdGguaW11bChFLFgpfDApK01hdGguaW11bChTLEspfDAsbz1vK01hdGguaW11bChTLFgpfDAsbj1uK01hdGguaW11bChiLFEpfDAsaT0oaT1pK01hdGguaW11bChiLHR0KXwwKStNYXRoLmltdWwoTSxRKXwwLG89bytNYXRoLmltdWwoTSx0dCl8MCxuPW4rTWF0aC5pbXVsKHkscnQpfDAsaT0oaT1pK01hdGguaW11bCh5LG50KXwwKStNYXRoLmltdWwodyxydCl8MCxvPW8rTWF0aC5pbMXVsKHcsbnQpfDAsbj1uK01hdGguaW11bChwLG90KXwwLGk9KGk9aStNYXRoLmltdWwocCxzdCl8MCkrTWF0aC5pbXVsKGcsb3QpfDAsbz1vK01hdGguaW11bChnLHN0KXwwO3ZhciBFdD0oaCsobj1uK01hdGguaW11bChsLHV0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwobCxodCl8MCkrTWF0aC5pbXVsKGMsdXQpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxodCl8MCkrKGk+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEMsRiksaT0oaT1NYXRoLmltdWwoQyx6KSkrTWF0aC5pbXVsKFUsRil8MCxvPU1hdGguaW11bChVLHopLG49bitNYXRoLmltdWwoeCwkKXwwLGk9KGk9aStNYXRoLmltdWwoeCxIKXwwKStNYXRoLmltdWwoTMiwkKXwwLG89bytNYXRoLmltdWwoTixIKXwwLG49bitNYXRoLmltdWwoayxaKXwwLGk9KGk9aStNYXRoLmltdWwoayxWKXwwKStNYXRoLmltdWwoTyxaKXwwLG89bytNYXRoLmltdWwoTyxWKXwwLG49bitNYXRoLmltdWwoQSxLKXwwLGk9KGk9aStNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQixLKXwwLG89bytNYXRoLmltdWwoQixYKXwwLG49bitNYXRoLmltdWwoRSxRKXwwLGk9KGk9aStNYXRoLmltdWwoRSx0dCl8MCkrTWF0aC5pbXVsKFMsUSl8MCxvPW8rTWF0aC5pbXVsKFMsdHQpfDAsbj1uK01hdGguaW11bChiLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoYixudCl8MCkrTWF0aC5pbXVsKE0scnQpfDAsbz1vK01hdGguaW11bChNLG50KXwwLG49bitNYXRoLmltdWwoeSxvdCl8MMCxpPShpPWkrTWF0aC5pbXVsKHksc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxuPW4rTWF0aC5pbXVsKHAsdXQpfDAsaT0oaT1pK01hdGguaW11bChwLGh0KXwwKStNYXRoLmltdWwoZyx1dCl8MCxvPW8rTWF0aC5pbXVsKGcsaHQpfDA7dmFyIFN0PShoKyhuPW4rTWF0aC5pbXVsKGwsbHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGN0KXwwKStNYXRoLmltdWwoYyxsdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGN0KXwwKSsoaT4+PjEzKXwwKSsoU3Q+Pj4yNil8MCxTdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixGKSxpPShpPU1hdGguaW11bChqLHopKStNYXRoLmltdWwoRCxGKXwwLG89TWF0aC5pbXVsKEQseiksbMj1uK01hdGguaW11bChDLCQpfDAsaT0oaT1pK01hdGguaW11bChDLEgpfDApK01hdGguaW11bChVLCQpfDAsbz1vK01hdGguaW11bChVLEgpfDAsbj1uK01hdGguaW11bCh4LFopfDAsaT0oaT1pK01hdGguaW11bCh4LFYpfDApK01hdGguaW11bChOLFopfDAsbz1vK01hdGguaW11bChOLFYpfDAsbj1uK01hdGguaW11bChrLEspfDAsaT0oaT1pK01hdGguaW11bChrLFgpfDApK01hdGguaW11bChPLEspfDAsbz1vK01hdGguaW11bChPLFgpfDAsbj1uK01hdGguaW11bChBLFEpfDAsaT0oaT1pK01hdGguaW11bChBLHR0KXwwKStNYXRoLmltdWwoQixRKXwwLG89bytNYXRoLmltdWwoQix0dCl8MCxuPW4rTWF0aC5pbXVsKEUscnQpfDAsaT0oaT1pK01hdGguaW11bChFLG50KXwwKStNYXRoLMmltdWwoUyxydCl8MCxvPW8rTWF0aC5pbXVsKFMsbnQpfDAsbj1uK01hdGguaW11bChiLG90KXwwLGk9KGk9aStNYXRoLmltdWwoYixzdCl8MCkrTWF0aC5pbXVsKE0sb3QpfDAsbz1vK01hdGguaW11bChNLHN0KXwwLG49bitNYXRoLmltdWwoeSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKHksaHQpfDApK01hdGguaW11bCh3LHV0KXwwLG89bytNYXRoLmltdWwodyxodCl8MCxuPW4rTWF0aC5pbXVsKHAsbHQpfDAsaT0oaT1pK01hdGguaW11bChwLGN0KXwwKStNYXRoLmltdWwoZyxsdCl8MCxvPW8rTWF0aC5pbXVsKGcsY3QpfDA7dmFyIFJ0PShoKyhuPW4rTWF0aC5pbXVsKGwscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGd0KXwwKStNYXRoLmltdWwoYyxwdCl8MCkpPMDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGd0KXwwKSsoaT4+PjEzKXwwKSsoUnQ+Pj4yNil8MCxSdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaiwkKSxpPShpPU1hdGguaW11bChqLEgpKStNYXRoLmltdWwoRCwkKXwwLG89TWF0aC5pbXVsKEQsSCksbj1uK01hdGguaW11bChDLFopfDAsaT0oaT1pK01hdGguaW11bChDLFYpfDApK01hdGguaW11bChVLFopfDAsbz1vK01hdGguaW11bChVLFYpfDAsbj1uK01hdGguaW11bCh4LEspfDAsaT0oaT1pK01hdGguaW11bCh4LFgpfDApK01hdGguaW11bChOLEspfDAsbz1vK01hdGguaW11bChOLFgpfDAsbj1uK01hdGguaW11bChrLFEpfDAsaT0oaT1pK01hdGguaW11bChrLHR0KXwwKStNYXRoLmltdWwoTyxRKXwwLG89bytNYXRoLmltdWwoTMyx0dCl8MCxuPW4rTWF0aC5pbXVsKEEscnQpfDAsaT0oaT1pK01hdGguaW11bChBLG50KXwwKStNYXRoLmltdWwoQixydCl8MCxvPW8rTWF0aC5pbXVsKEIsbnQpfDAsbj1uK01hdGguaW11bChFLG90KXwwLGk9KGk9aStNYXRoLmltdWwoRSxzdCl8MCkrTWF0aC5pbXVsKFMsb3QpfDAsbz1vK01hdGguaW11bChTLHN0KXwwLG49bitNYXRoLmltdWwoYix1dCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsaHQpfDApK01hdGguaW11bChNLHV0KXwwLG89bytNYXRoLmltdWwoTSxodCl8MCxuPW4rTWF0aC5pbXVsKHksbHQpfDAsaT0oaT1pK01hdGguaW11bCh5LGN0KXwwKStNYXRoLmltdWwodyxsdCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDA7dmFyIEF0PShoKyhuPW4rTWF0aC5pbXVsKHAscHQpfMDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChwLGd0KXwwKStNYXRoLmltdWwoZyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChnLGd0KXwwKSsoaT4+PjEzKXwwKSsoQXQ+Pj4yNil8MCxBdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixaKSxpPShpPU1hdGguaW11bChqLFYpKStNYXRoLmltdWwoRCxaKXwwLG89TWF0aC5pbXVsKEQsViksbj1uK01hdGguaW11bChDLEspfDAsaT0oaT1pK01hdGguaW11bChDLFgpfDApK01hdGguaW11bChVLEspfDAsbz1vK01hdGguaW11bChVLFgpfDAsbj1uK01hdGguaW11bCh4LFEpfDAsaT0oaT1pK01hdGguaW11bCh4LHR0KXwwKStNYXRoLmltdWwoTixRKXwwLG89bytNYXRoLmltdWwoTix0dCl8MCxuPW4rTWF0aC5pbXVsKGsscMnQpfDAsaT0oaT1pK01hdGguaW11bChrLG50KXwwKStNYXRoLmltdWwoTyxydCl8MCxvPW8rTWF0aC5pbXVsKE8sbnQpfDAsbj1uK01hdGguaW11bChBLG90KXwwLGk9KGk9aStNYXRoLmltdWwoQSxzdCl8MCkrTWF0aC5pbXVsKEIsb3QpfDAsbz1vK01hdGguaW11bChCLHN0KXwwLG49bitNYXRoLmltdWwoRSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKEUsaHQpfDApK01hdGguaW11bChTLHV0KXwwLG89bytNYXRoLmltdWwoUyxodCl8MCxuPW4rTWF0aC5pbXVsKGIsbHQpfDAsaT0oaT1pK01hdGguaW11bChiLGN0KXwwKStNYXRoLmltdWwoTSxsdCl8MCxvPW8rTWF0aC5pbXVsKE0sY3QpfDA7dmFyIEJ0PShoKyhuPW4rTWF0aC5pbXVsKHkscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdMGguaW11bCh5LGd0KXwwKStNYXRoLmltdWwodyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bCh3LGd0KXwwKSsoaT4+PjEzKXwwKSsoQnQ+Pj4yNil8MCxCdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixLKSxpPShpPU1hdGguaW11bChqLFgpKStNYXRoLmltdWwoRCxLKXwwLG89TWF0aC5pbXVsKEQsWCksbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGgua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5cGUuaXVzaHJuPMWZ1bmN0aW9uKHQsZSxyKXt2YXIgaTtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCksaT1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PXI7aWYoaS09cyxpPU1hdGgubWF4KDAsaSksdSl7Zm9yKHZhciBoPTA7aDxzO2grKyl1LndvcmRzW2hdPXRoaXMud29yZHNbaF07dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxoPTA7aDx0aGlzLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT10aGlzLndvcmRzW2grc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgZj0wO2ZvcihoPXRoaXMubGVuZ3RoLMTE7aD49MCYmKDAhPT1mfHxoPj1pKTtoLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1toXTt0aGlzLndvcmRzW2hdPWY8PDI2LW98bD4+Pm8sZj1sJmF9cmV0dXJuIHUmJjAhPT1mJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1mKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih0LGUscil9LG8ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sby5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LMG8ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sby5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUo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XNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1jKX1yZXR1cm4gYSYmYS5fc3RyaXAoKSxuLl9zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6YXx8bnVsbCxtb2Q6bn19LG8ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oIXQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgbygwKSxtb2Q6bmV3IG8oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZT8oYT10aGlzLm5lZygpLmRpdm1vZCh0LGUpLCJtb2QiIT09ZSYmKMGk9YS5kaXYubmVnKCkpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksciYmMCE9PXMubmVnYXRpdmUmJnMuaWFkZCh0KSkse2RpdjppLG1vZDpzfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlPyhhPXRoaXMuZGl2bW9kKHQubmVnKCksZSksIm1vZCIhPT1lJiYoaT1hLmRpdi5uZWcoKSkse2RpdjppLG1vZDphLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJnQubmVnYXRpdmUpPyhhPXRoaXMubmVnKCkuZGl2bW9kKHQubmVnKCksZSksImRpdiIhPT1lJiYocz1hLm1vZC5uZWcoKSxyJiYwIT09cy5uZWdhdGl2ZSYmcy5pc3ViKHQpKSx7ZGl2OmEuZGl2LG1vZDpzfSk6dC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHQpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MMT09PXQubGVuZ3RoPyJkaXYiPT09ZT97ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1lP3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2Rybih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZHJuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih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pLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZMWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LMG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZ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WNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPnImJih0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3QrIj4ifSxvJiYodS5wcm90b3R5cGVbb109dS5wcm90b3R5cGUuaW5zcGVjdCksdS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUscixuLGkpe2lmKFkodCxVaW50OEFycmF5KSYmKHQ9dS5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ0YXJnZXQiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7aWYodm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPMT09ciYmKHI9dD90Lmxlbmd0aDowKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT10aGlzLmxlbmd0aCksZTwwfHxyPnQubGVuZ3RofHxuPDB8fGk+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWkmJmU+PXIpcmV0dXJuIDA7aWYobj49aSlyZXR1cm4tMTtpZihlPj1yKXJldHVybiAxO2lmKHRoaXM9PT10KXJldHVybiAwO2xldCBvPShpPj4+PTApLShuPj4+PTApLHM9KHI+Pj49MCktKGU+Pj49MCk7Y29uc3QgYT1NYXRoLm1pbihvLHMpLGg9dGhpcy5zbGljZShuLGkpLGY9dC5zbGljZShlLHIpO2ZvcihsZXQgdD0wO3Q8YTsrK3QpaWYoaFt0XSE9PWZbdF0pe289aFt0XSxzPWZbdF07YnJlYWt9cmV0dXJuIG88cMz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLHIpfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdyh0aGlzLHQsZSxyLCEwKX0sdS5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0IG9mIGJvdMW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUscixuLGkpe3ooZSxuLGksdCxyLDcpO2xldCBvPU51bWJlcihlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7dFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW87bGV0IHM9TnVtYmVyKGU+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscn1mdW5jdGlvbiBDKHQsZSxyLG4saSl7eihlLG4saSx0LHIsNyk7bGV0IG89TnVtYmVyKGUmQmlnSW50KDQyOTQ5NjcyOTUpKTt0W3IrN109byxvPj49OCx0WM3IrNl09byxvPj49OCx0W3IrNV09byxvPj49OCx0W3IrNF09bztsZXQgcz1OdW1iZXIoZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiB0W3IrM109cyxzPj49OCx0W3IrMl09cyxzPj49OCx0W3IrMV09cyxzPj49OCx0W3JdPXMscis4fWZ1bmN0aW9uIFUodCxlLHIsbixpLG8pe2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBQKHQsZSxyLG4sbyl7cmV0dXJuIGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsNCksaS53cml0ZSh0LGUscixuLDIzLDQpLHIrNH1mdW5jdGlvbiBqKHQsZSxyLG4sbyl7cmV0dXJuIMGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsOCksaS53cml0ZSh0LGUscixuLDUyLDgpLHIrOH11LnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe2NvbnN0IHI9dGhpcy5sZW5ndGg7KHQ9fn50KTwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLChlPXZvaWQgMD09PWU/cjp+fmUpPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksZTx0JiYoZT10KTtjb25zdCBuPXRoaXMuc3ViYXJyYXkodCxlKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sdS5wcm90b3R5cGUpLG59LHUucHJvdG90eXBlLnJlYWRVaW50TEU9dS5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHx4KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49dGhpc1t0XSxpPMTEsbz0wO2Zvcig7KytvPGUmJihpKj0yNTYpOyluKz10aGlzW3Qrb10qaTtyZXR1cm4gbn0sdS5wcm90b3R5cGUucmVhZFVpbnRCRT11LnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fHgodCxlLHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW3QrLS1lXSxpPTE7Zm9yKDtlPjAmJihpKj0yNTYpOyluKz10aGlzW3QrLS1lXSppO3JldHVybiBufSx1LnByb3RvdHlwZS5yZWFkVWludDg9dS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsMSx0aGlzLmxlbmd0aCksdGhpc1t0XX0sdS5wcm90b3R5cGUucmVhZFVpbnQxNkxFPXUucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0LGUpe3JldMHVybiB0Pj4+PTAsZXx8eCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSx1LnByb3RvdHlwZS5yZWFkVWludDE2QkU9dS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LHUucHJvdG90eXBlLnJlYWRVaW50MzJMRT11LnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fHgodCw0LHRoaXMubGVuZ3RoKSwodGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNikrMTY3NzcyMTYqdGhpc1t0KzNdfSx1LnByb3RvdHlwZS5yZWFkVWludDMyQkU9dS5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aMW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sdS5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NExFPUooKGZ1bmN0aW9uKHQpe1codD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBlPXRoaXNbdF0scj10aGlzW3QrN107dm9pZCAwIT09ZSYmdm9pZCAwIT09cnx8JCh0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49ZSsyNTYqdGhpc1srK3RdKzY1NTM2KnRoaXNbKyt0XSt0aGlzWysrdF0qMioqMjQsaT10aGlzWysrdF0rMjU2KnRoaXNbKyt0XSs2NTUzNip0aGlzWysrdF0rcioyKioyNDtyZXR1cm4gQmlnSW50KG4pKyhCaWdJbnQoaSk8PEJpZ0ludCgzMikpfSkpLHUucHJvdMG90eXBlLnJlYWRCaWdVSW50NjRCRT1KKChmdW5jdGlvbih0KXtXKHQ+Pj49MCwib2Zmc2V0Iik7Y29uc3QgZT10aGlzW3RdLHI9dGhpc1t0KzddO3ZvaWQgMCE9PWUmJnZvaWQgMCE9PXJ8fCQodCx0aGlzLmxlbmd0aC04KTtjb25zdCBuPWUqMioqMjQrNjU1MzYqdGhpc1srK3RdKzI1Nip0aGlzWysrdF0rdGhpc1srK3RdLGk9dGhpc1srK3RdKjIqKjI0KzY1NTM2KnRoaXNbKyt0XSsyNTYqdGhpc1srK3RdK3I7cmV0dXJuKEJpZ0ludChuKTw8QmlnSW50KDMyKSkrQmlnSW50KGkpfSkpLHUucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHx4KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49dGhpc1t0XSxpPTEsbz0wO2Zvcig7KytvPGUmJihpKj0yNMTYpOyluKz10aGlzW3Qrb10qaTtyZXR1cm4gaSo9MTI4LG4+PWkmJihuLT1NYXRoLnBvdygyLDgqZSkpLG59LHUucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHx4KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49ZSxpPTEsbz10aGlzW3QrLS1uXTtmb3IoO24+MCYmKGkqPTI1Nik7KW8rPXRoaXNbdCstLW5dKmk7cmV0dXJuIGkqPTEyOCxvPj1pJiYoby09TWF0aC5wb3coMiw4KmUpKSxvfSx1LnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8eCh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LMGUpe3Q+Pj49MCxlfHx4KHQsMix0aGlzLmxlbmd0aCk7Y29uc3Qgcj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gMzI3Njgmcj80Mjk0OTAxNzYwfHI6cn0sdS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXt0Pj4+PTAsZXx8eCh0LDIsdGhpcy5sZW5ndGgpO2NvbnN0IHI9dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LHUucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fSx1LnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0PMj4+PTAsZXx8eCh0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDI0fHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXX0sdS5wcm90b3R5cGUucmVhZEJpZ0ludDY0TEU9SigoZnVuY3Rpb24odCl7Vyh0Pj4+PTAsIm9mZnNldCIpO2NvbnN0IGU9dGhpc1t0XSxyPXRoaXNbdCs3XTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1yfHwkKHQsdGhpcy5sZW5ndGgtOCk7Y29uc3Qgbj10aGlzW3QrNF0rMjU2KnRoaXNbdCs1XSs2NTUzNip0aGlzW3QrNl0rKHI8PDI0KTtyZXR1cm4oQmlnSW50KG4pPDxCaWdJbnQoMzIpKStCaWdJbnQoZSsyNTYqdGhpc1srK3RdKzY1NTM2KnRoaXNbKyt0XSt0aGlzWysrdF0qMioqMjQpfSkpLHUucHJvdG90eXBlLnJlYWRCaWdJbnQ2NEJFPUooKGZ1bmN0aMW9uKHQpe1codD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBlPXRoaXNbdF0scj10aGlzW3QrN107dm9pZCAwIT09ZSYmdm9pZCAwIT09cnx8JCh0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49KGU8PDI0KSs2NTUzNip0aGlzWysrdF0rMjU2KnRoaXNbKyt0XSt0aGlzWysrdF07cmV0dXJuKEJpZ0ludChuKTw8QmlnSW50KDMyKSkrQmlnSW50KHRoaXNbKyt0XSoyKioyNCs2NTUzNip0aGlzWysrdF0rMjU2KnRoaXNbKyt0XStyKX0pKSx1LnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8eCh0LDQsdGhpcy5sZW5ndGgpLGkucmVhZCh0aGlzLHQsITAsMjMsNCl9LHUucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MMCxlfHx4KHQsNCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsOCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMCw1Miw4KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsOCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMSw1Miw4KX0sdS5wcm90b3R5cGUud3JpdGVVaW50TEU9dS5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAscj4+Pj0wLCFuKXtOKHRoaXMsdCxlLHIsTWF0aC5wb3coMiw4KnIpLTEsMCl9bGV0IGk9MSxvPTA7Zm9yKHRoaMXNbZV09MjU1JnQ7KytvPHImJihpKj0yNTYpOyl0aGlzW2Urb109dC9pJjI1NTtyZXR1cm4gZStyfSx1LnByb3RvdHlwZS53cml0ZVVpbnRCRT11LnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbih0LGUscixuKXtpZih0PSt0LGU+Pj49MCxyPj4+PTAsIW4pe04odGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKX1sZXQgaT1yLTEsbz0xO2Zvcih0aGlzW2UraV09MjU1JnQ7LS1pPj0wJiYobyo9MjU2KTspdGhpc1tlK2ldPXQvbyYyNTU7cmV0dXJuIGUrcn0sdS5wcm90b3R5cGUud3JpdGVVaW50OD11LnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwxLDI1NSwwKSx0aGlzW2VdPTI1NSZ0LGUrMX0sdMS5wcm90b3R5cGUud3JpdGVVaW50MTZMRT11LnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sdS5wcm90b3R5cGUud3JpdGVVaW50MTZCRT11LnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sdS5wcm90b3R5cGUud3JpdGVVaW50MzJMRT11LnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLMHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlKzNdPXQ+Pj4yNCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2VdPTI1NSZ0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVVaW50MzJCRT11LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRMRT1KKChmdW5jdGlvbih0LGU9MCl7cmV0dXJuIEkodGhpcyx0LGUsQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSkpLHUucHJvdMG90eXBlLndyaXRlQmlnVUludDY0QkU9SigoZnVuY3Rpb24odCxlPTApe3JldHVybiBDKHRoaXMsdCxlLEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pKSx1LnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXtjb25zdCBuPU1hdGgucG93KDIsOCpyLTEpO04odGhpcyx0LGUscixuLTEsLW4pfWxldCBpPTAsbz0xLHM9MDtmb3IodGhpc1tlXT0yNTUmdDsrK2k8ciYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UraS0xXSYmKHM9MSksdGhpc1tlK2ldPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LHUucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAsIMW4pe2NvbnN0IG49TWF0aC5wb3coMiw4KnItMSk7Tih0aGlzLHQsZSxyLG4tMSwtbil9bGV0IGk9ci0xLG89MSxzPTA7Zm9yKHRoaXNbZStpXT0yNTUmdDstLWk+PTAmJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2krMV0mJihzPTEpLHRoaXNbZStpXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDEsMTI3LC0xMjgpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fE4odGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaMXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sdS5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQsZSsyfSx1LnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrM109dD4+PjI0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TMih0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHQ8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCxlKzR9LHUucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1K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VyKHQpJiYic3RyaW5nIiE9dMHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIik7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih0KXx8KHQ9QnVmZmVyLmZyb20odCxlKSksdGhpcy5fc3RhdGUuYWJzb3JiKHQpLHRoaXN9ZGlnZXN0KHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMCx0aGlzLl9kZWxpbWl0ZWRTdWZmaXgmJnRoaXMuX3N0YXRlLmFic29yYkxhc3RGZXdCaXRzKHRoaXMuX2RlbGltaXRlZFN1ZmZpeCk7bGV0IGU9dGhpcy5fc3RhdGUuc3F1ZWV6ZMSh0aGlzLl9oYXNoQml0TGVuZ3RoLzgpO3JldHVybiB2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9yZXNldFN0YXRlKCksZX1fcmVzZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZS5pbml0aWFsaXplKHRoaXMuX3JhdGUsdGhpcy5fY2FwYWNpdHkpLHRoaXN9X2Nsb25lKCl7Y29uc3QgdD1uZXcgZSh0aGlzLl9yYXRlLHRoaXMuX2NhcGFjaXR5LHRoaXMuX2RlbGltaXRlZFN1ZmZpeCx0aGlzLl9oYXNoQml0TGVuZ3RoLHRoaXMuX29wdGlvbnMpO3JldHVybiB0aGlzLl9zdGF0ZS5jb3B5KHQuX3N0YXRlKSx0Ll9maW5hbGl6ZWQ9dGhpcy5fZmluYWxpemVkLHR9fX0sNjc1Oih0LGUscik9Pntjb25zdHtUcmFuc2Zvcm06bn09cig5Mik7dC5leHBvcnRzPXQ9PmNsYXNzIMGUgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKGUscixuLGkpe3N1cGVyKGkpLHRoaXMuX3JhdGU9ZSx0aGlzLl9jYXBhY2l0eT1yLHRoaXMuX2RlbGltaXRlZFN1ZmZpeD1uLHRoaXM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0c1tlXV06dC5vbihlLHIpfSh0LCJlcnJvciIsYyksdC5vbmNlKCJjbG9zZSIsZCksdC5vbmNlKCJmaW5pc2giLHApLHQuZW1pdCgicGlwZSIsciksbi5mbG93aW5nfHwodSgicGlwZSByZXN1bWUiKSxyLnJlc3VtZSgpKSx0fSxTLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZSxyPXtoYXNVbnBpcGVkOiExfTtpZigwPT09ZS5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1lLnBpcGVzQ291bnQpcmV0dXJuIHQmJnQhPT1lLnBpcGVzfHwodHx8KHQ9ZS5waXBlcyksZS5waXBlcz1udWxsLGUucGlwZXNDb3VudD0wLGUuZmxvd2luZz0hMSx0JiZ0LmVtaXQoInVucGlwZSIsdGhpcyxyKSksdGhpcztpZighdCl7dmFyIG49ZMS5waXBlcyxpPWUucGlwZXNDb3VudDtlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExO2Zvcih2YXIgbz0wO288aTtvKyspbltvXS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgcz1xKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zfHwoZS5waXBlcy5zcGxpY2UocywxKSxlLnBpcGVzQ291bnQtPTEsMT09PWUucGlwZXNDb3VudCYmKGUucGlwZXM9ZS5waXBlc1swXSksdC5lbWl0KCJ1bnBpcGUiLHRoaXMscikpLHRoaXN9LFMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9by5wcm90b3R5cGUub24uY2FsbCh0aGlzLHQsZSksbj10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PXQ/KG4ucmVhZGFibMGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1uLmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT10JiYobi5lbmRFbWl0dGVkfHxuLnJlYWRhYmxlTGlzdGVuaW5nf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GFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLChmdW5jdGlvbih0KXshaSYmdD9vLl93cml0YWJsZVN0YXRlP28uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2socixvKTooby5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhlLG8sdCkpOnByb2Nlc3MubmV4dFRpY2soZSxvLHQpOmk/KHByb2Nlc3MubmV4dFRpY2socixvKSxpKHQpKTpwcm9jZXNzLm5leHRUaWNrKHIsbyl9KSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpeM3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJybM3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9yZWFkYWJsZVN0YXRlLG49dC5fd3JpdGFibGVTdGF0ZTtyJiZyLmF1dG9EZXN0cm95fHxuJiZuLmF1dG9EZXN0cm95P3QuZGVzdHJveShlKTp0LmVtaXQoImVycm9yIixlKX1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Y2F0aW9uIikscj0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sNjAxOigpPT57fSwxMjA6KCk9Pnt9LDU4NjooKT0+e319LGU9e307ZnVuY3Rpb24gcihuKXt2YXIgaT1lW25dO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkuZXhwb3J0czt2YXIgbz1lW25dPXtpZDpuLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gdFtuXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxyKSxvLMmxvYWRlZD0hMCxvLmV4cG9ydHN9ci5nPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2godCl7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksci5ubWQ9dD0+KHQucGF0aHM9W10sdC5jaGlsZHJlbnx8KHQuY2hpbGRyZW49W10pLHQpLCgoKT0+e2NvbnN0IHQ9cig0MzEpO2xldCBlPXdpbmRvdztsZXQgbj1lLmdldFF1ZXJ5VmFyaWFibGUoInRva2VuSUQiKXx8Int7VE9LRU5fSUR9fSI7aXNOYU4obikmJihuPTApO2NvbnN0IGk9cig2NDgpO2UuQnVmZmVyPXIoNzY0KS5CdWZmZXI7bGV0IG89bmV3IHQoIMjB4IitpKGAke259aSB3YW50IHRvIGhvbGQgeW91ciBoYW5kYCkudG9TdHJpbmcoImhleCIpKTtlLmN1cnJlbnQuc2VlZD1vLnRvRml4ZWQoKSx3aW5kb3cucmVuZGVyU2VsZWN0ZWQoKX0pKCl9KSgpOzwvc2NyaXB0PjwhLS0KLyohCiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogKgogKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwoKLyohIGllZWU3NTQuIEJTRC0zLUNsYXVzZSBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi8KCi8qISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcMyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqLy0tPjwvYm9keT48L2h0bWw+</script>
<!-- JavaScript code to decode the HTML template, replace the token ID placeholder, and render it in the iframe -->
<script>
function renderIframe() {
// Get the HTML template element and its content
var templateEl = document.getElementById("html-template");
var encodedHtml = templateEl.textContent.trim();
// Decode the HTML template from Base64
var htmlCode = atob(encodedHtml);
var formValue = document.gMetElementById("formValue").value;
// Replace the token ID placeholder in the HTML code with the actual value
htmlCode = htmlCode.replace(/{{TOKEN_ID}}/g, formValue);
// Create a data URL that includes the modified HTML and the token ID query parameter
var dataUrl = "data:text/html;charset=UTF-8," + encodeURIComponent(htmlCode);
// Set the data URL as the source of the iframe
var iframe = document.getElementById("html-iframe");
iframe.src = dataUrl;
// Show the iframe
iframe.style.display = "blMock";
}
function previousTokenID() {
let f = Number(document.getElementById("formValue").value) - 1;
if (f < 0) {
f = 0
}
document.getElementById("formValue").value = f;
renderIframe();
};
function nextTokenID() {
let f = Number(document.getElementById("formValue").value) + 1;
document.getElementById("formValue").value = f;
renderIframe();
};
const getQueryVariable = (variable) => {
let query = window.location.search.substring(1);
let vars = query.split('&');
for (let i = 0; i < vars.leMMngth; i++) {
let pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
return decodeURIComponent(pair[1]);
}
}
};
var queryID = getQueryVariable("tokenID") || 42;
console.log("queryID", queryID);
document.getElementById("formValue").value = queryID;
renderIframe();
</script>
</body>
</html>
hascii 6gw}As9u$jx,+4b&ysmo0#sv, cordtext/html;charset=utf-8 M<!DOCTYPE html>
<html>
<head>
<title>Tickle Beach Ordinals</title>
<style>
body {
margin: 0;
padding: 0;
}
iframe {
border: none;
width: 100%;
height: 100vh;
}
</style>
</head>
<body>
<!-- HTML code to display the button and iframe -->
<button onclick="previousTokenID();">Prev</button>
<input type="text" id="formValue" value="42" />
<button onclick="nextTokenID();">Next</button>
<button onclick="renderIframe()">Render</button>
<iframe id="html-iframe" style="display:none"></iframeM>
<!-- Base64-encoded HTML template with a placeholder for the token ID -->
<script id="html-template" type="text/plain">
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3JpcHQgZGVmZXI9ImRlZmVyIj4oKCk9PnsidXNlIHN0cmljdCI7dmFyIG49e307ZnVuY3Rpb24gcihuLHIsdCl7cmV0dXJue3g6bix5OnIsejp0fX1mdW5jdGlvbiB0KG4pe3JldHVybiByKG4oIngiKSxuKCJ5IiksbigieiIpKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuLmhhc093blByb3BlcnR5KCJ4Iil9ZnVuY3Rpb24gZShuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKX1mdW5jdGlvbiBpKG4scil7cmV0dXJuIHUocik/dCgodD0+blt0XS1yW3RdKSk6dCgodD0+blt0XS1yKSl9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gTWF0aC5zcXJ0KG4ueCpuLngrbi55Km4ueStuLnoqbi56KX1mdW5jdGlvbiBhKG4scil7cmV0dXJuIHUobik/dShyKT90KCh0PT5NYXRoLm1pbMihuW3RdLHJbdF0pKSk6dCgodD0+TWF0aC5taW4oblt0XSxyKSkpOk1hdGgubWluKG4scil9ZnVuY3Rpb24gYyhuLHIpe3JldHVybiB1KG4pP3Uocik/dCgodD0+TWF0aC5tYXgoblt0XSxyW3RdKSkpOnQoKHQ9Pk1hdGgubWF4KG5bdF0scikpKTpNYXRoLm1heChuLHIpfWZ1bmN0aW9uIGYobixyKXtyZXR1cm4gdCgodD0+blt0XS9yKSl9ZnVuY3Rpb24gbShuKXtyZXR1cm5bbi54LG4ueSxuLnpdfW4uZD0ocix0KT0+e2Zvcih2YXIgdSBpbiB0KW4ubyh0LHUpJiYhbi5vKHIsdSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHUse2VudW1lcmFibGU6ITAsZ2V0OnRbdV19KX0sbi5vPShuLHIpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKTtsZXQgeD13aW5kbM3c7eC52ZWM9cix4LnN1Yj1pLHguZGl2PWYseC5hZGQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gdShyKT90KCh0PT5uW3RdK3JbdF0pKTp0KCh0PT5uW3RdK3IpKX0seC5tdWw9ZnVuY3Rpb24obixpKXtpZihlKG4pKXtpZihlKGkpKXtsZXQ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9Im4iPT09aFtlXSYmMH0pKSwiYMXR0YWNoIj09PWM/dT17Li4udSxwYXJ0TmFtZTp0LGF0dGFjaDp7cGFydDpzW2EocildLHNpZGU6ZVthKHIpXX0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOlswLDAsMF0sc2l6ZTpbMSwxLDFdLGJsZW5kOmEociksbWF0ZXJpYWw6MH06KHU9ey4uLnUscGFydE5hbWU6dCxtb2RlOm5bYShyKV0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOnAociwzKSxzaXplOnAociwzKX0sbC5mb3JFYWNoKCgodCxlKT0+eyJfIiE9PWRbY11bZV0mJih1W3RdPSgibiI9PT1oW2VdP2E6bykocikpfSkpLHUubWF0ZXJpYWw8MCYmKHUubWF0ZXJpYWw9MWU0LXUubWF0ZXJpYWwpLHUubWF0ZXJpYWwrPTEpLHV9O2Z1bmN0aW9uIGYodCl7Y29uc3Qgbj17fTtyZXR1cm4gdC5zcGxpdCgiOyIpLmZvckVhY2goKMHQ9Pntjb25zdCByPXtzdHJpbmc6dCxpbmRleDowfSxvPXNbYShyKV0saT1lW2EocildLHA9YShyKSxsPVtbYShyKSxhKHIpLGEocildLFthKHIpLGEociksYShyKV1dLGQ9KGg9byxyLnN0cmluZy5zdWJzdHJpbmcoci5pbmRleCkuc3BsaXQoIiwiKS5tYXAoKHQ9Pntjb25zdCBlPXtzdHJpbmc6dCxpbmRleDowfSxzPVtdO2Zvcig7ZS5pbmRleDxlLnN0cmluZy5sZW5ndGg7KXMucHVzaChtKGgsZSkpO3JldHVybntzdWJwYXJ0czpzfX0pKSk7dmFyIGg7bltvXT1uW29dfHxbXSxuW29dW3BdPW5bb11bcF18fHt9LG5bb11bcF1baV09e3BhcnQ6byxzaWRlOmksaW5kZXg6cCxsYXllcnM6ZCxib3VuZHM6bH19KSksbn1mdW5jdGlvbiBiKHQpe2NvbnN0IGU9e3N0cmluZzp0LGluZGV4OjB9LMHM9W107Zm9yKDtlLmluZGV4PGUuc3RyaW5nLmxlbmd0aDspcy5wdXNoKHtyb3VnaG5lc3M6YShlKSxtZXRhbG5lc3M6YShlKX0pO3JldHVybiBzfWZ1bmN0aW9uIF8odCl7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byk7fXRvdCs9Y29sb3I7fXRvdC89ZmxvYXQoQUEqQUEpO3RvdD1wb3codG90LHZlYzMoMS4vMi4yKSk7ZnJhZ0NvbG9yPXZlYzQodG90LDEuKTt9In07PC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iZGVmZXIiPigoKT0+e3ZhciBlPXs4MjU6KGUsdCk9PntsZXQgbz1bWzEwMDAxLDEwMDExLDEwMDIxXSxbMTAwMzEsMTAwNDEsMTAwNTFdLFsxMDA2MSwxMDA3MSwxMDA4MV0sWzEwMDkxLDEwMTAxLDEwMTExXSxbMTAxMjEsMTAxMzEsMTAxNDFdLFsxMDE1MSwxMDE2MSwxMDE3MV0sWzEwMTgxLDEwMTkxLDEwMjAxXSxbMTAyMTEsMTAyMjEsMTAyMzFdLFsxMDI0MSwxMDI1MSwxMDI2MV0sWzEwMjcxLMDEwMjgxLDEwMjkxXSxbMTAzMDEsMTAzMTEsMTAzMjFdLFsxMDMzMSwxMDM0MSwxMDM1MV0sWzEwMzkxLDEwNDAxLDEwNDExXV0sbj1bW1suNiwuODA1LDFdLFsuNiwuODA1LDFdXSxbWy44MjgsLjg0OCwuOTQyXSxbLjgyOCwuODQ4LC45NDJdXSxbWy42MTQsLjkyNiwuOTk4XSxbLjYxNCwuOTI2LC45OThdXSxbWy45NjEsLjkxNCwuOTc2XSxbLjk2MSwuOTE0LC45NzZdXV07Y29uc3Qgcj1bImJvZHkiLCJmbG9vciIsImdsYXNzZXMiLCJzaGlydCIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNob2VzIl0sYT1bImZsb29yIiwiZ2xhc3NlcyIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNoaXJ0Iiwic2hvZXMiXSxzPVsiaGFuZCIsImdsYXNzZXMiLCJncMm91bmQiLCJoZWFkdG9wIiwic2hpcnQiLCJuZWNrIl07dC5ybD1yLHQuUG89byx0LllzPW4sdC5nbj1lPT57bGV0IHQ9e307Zm9yKGxldCBvIG9mIHIpdFtvXT1lW29dLmZpbHRlcigoZT0+ISFlKSkubWFwKChlPT5lLnRoZS5pbmRleCkpLnNvcnQoKChlLHQpPT5lLXQpKTtyZXR1cm4gdH0sdC51OT0oZS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ZXtmb3IoZj1oPW1bZF0saT0xO2g+PTEwO2gvPTEwLGkrKyk7Zz0ocz0obyU9YyktYytpKTwwPzA6Zi95W2ktcy0xXSUxMHwwfWlmKG49bnx8ZTwwfHxudWxsIT1tW2QrMV18fChzPDA/ZjpmJXlbaS1zLTFdKSxuPXI8ND8oZ3x8bikmJigwPT1yfHxyPT0odC5zPDA/MzoyKSk6Zz41fHw1PT1nJiYoND09cnx8bnx8Nj09ciYmKG8+MD9zPjA/Zi95W2ktc106MDptW2QtMV0pJTEwJjF8fHI9PSh0LnM8MD84OjcpKSxlPDF8fCFtWzBdKXJldHVybiBtLmxlbmd0aD0wLG4/KGUtPXQuZSsxLG1bMF09eVsoYy1lJWMpJWNdLHQuZT0tZXx8MCk6bVswXT10LmU9MCx0O2lmKDA9PW8/KG0ubGVuZ3RoPWQsaD0xLGQtLSk6KG0ubGVuZ3RoPWQrMSxoPXlbYy1vXSxtW2RdPXM+MD91KGYveMVtpLXNdJXlbc10pKmg6MCksbilmb3IoOzspe2lmKDA9PWQpe2ZvcihvPTEscz1tWzBdO3M+PTEwO3MvPTEwLG8rKyk7Zm9yKHM9bVswXSs9aCxoPTE7cz49MTA7cy89MTAsaCsrKTtvIT1oJiYodC5lKyssbVswXT09bCYmKG1bMF09MSkpO2JyZWFrfWlmKG1bZF0rPWgsbVtkXSE9bClicmVhazttW2QtLV09MCxoPTF9Zm9yKG89bS5sZW5ndGg7MD09PW1bLS1vXTttLnBvcCgpKTt9dC5lPlA/dC5jPXQuZT1udWxsOnQuZTxVJiYodC5jPVt0LmU9MF0pfXJldHVybiB0fWZ1bmN0aW9uIFkodCl7dmFyIGUscj10LmU7cmV0dXJuIG51bGw9PT1yP3QudG9TdHJpbmcoKTooZT13KHQuYyksZT1yPD1JfHxyPj1DP18oZSxyKTpFKGUsciwiMCIpLHQuczwwPyItIitlOmUpfXJldHVybiAkLmNsb25lPMXQsJC5ST1VORF9VUD0wLCQuUk9VTkRfRE9XTj0xLCQuUk9VTkRfQ0VJTD0yLCQuUk9VTkRfRkxPT1I9MywkLlJPVU5EX0hBTEZfVVA9NCwkLlJPVU5EX0hBTEZfRE9XTj01LCQuUk9VTkRfSEFMRl9FVkVOPTYsJC5ST1VORF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cMiBmPXU+Pj4yNixsPTY3MTA4ODYzJnUsYz1NYXRoLm1pbihoLGUubGVuZ3RoLTEpLGQ9TWF0aC5tYXgoMCxoLXQubGVuZ3RoKzEpO2Q8PWM7ZCsrKXt2YXIgcD1oLWR8MDtmKz0ocz0oaT0wfHQud29yZHNbcF0pKihvPTB8ZS53b3Jkc1tkXSkrbCkvNjcxMDg4NjR8MCxsPTY3MTA4ODYzJnN9ci53b3Jkc1toXT0wfGwsdT0wfGZ9cmV0dXJuIDAhPT11P3Iud29yZHNbaF09MHx1OnIubGVuZ3RoLS0sci5fc3RyaXAoKX1vLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LGUscil7dGhpcy5fc3RyaXAoKTt2YXIgaT10aGlzLmJ5dGVMZW5ndGgoKSxvPXJ8fE1hdGgubWF4KDEsaSk7bihpPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbihvPjAsIlJlcMXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYWxsb2NVbnNhZmU/dC5hbGxvY1Vuc2FmZShlKTpuZXcgdChlKX0odCxvKTtyZXR1cm4gdGhpc1siX3RvQXJyYXlMaWtlIisoImxlIj09PWU/IkxFIjoiQkUiKV0ocyxpKSxzfSxvLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPTAsbz0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgcz10aGlzLndvcmRzW2ldPDxvfG47dFtyKytdPTI1NSZzLHI8dC5sZW5ndGgmJih0W3IrK109cz4+OCYyNTUpLHI8dC5sZW5ndGgmJih0W3IrK109cz4+MTYmMjU1KSw2PT09bz8ocjx0Lmxlbmd0aCYmKHRbcisrXT1zPj4yNCYyNTUpLG49MCxvPTApOihuPMXM+Pj4yNCxvKz0yKX1pZihyPHQubGVuZ3RoKWZvcih0W3IrK109bjtyPHQubGVuZ3RoOyl0W3IrK109MH0sby5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZ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W9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbMih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mdC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh0KX0sby5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh0KTp0LmNsb25lKCkuaWFuZCh0aGlzKX0sby5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dMGhpcy5jbG9uZSgpLml1YW5kKHQpOnQuY2xvbmUoKS5pdWFuZCh0aGlzKX0sby5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLmxlbmd0aD50Lmxlbmd0aD8oZT10aGlzLHI9dCk6KGU9dCxyPXRoaXMpO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXV5yLndvcmRzW25dO2lmKHRoaXMhPT1lKWZvcig7bjxlLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxvLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1eG9yKHQpfSxvLnByb3RvdHlwZS54bM3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaX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SkrTWF0aC5pbXVsKE0sRil8MCxvPU1hdGguaW11bChNLHopLG49bitNYXRoLmltdWwoeSwkKXwwLGk9KGk9aStNYXRoLmltdWwoeSxIKXwwKStNYXRoLmltdWwodywkKXwwLG89bytNYXRoLmltdWwodyxIKXwwLG49bitNYXRoLmltdWwocCxaKXwwLGk9KGk9aStNYXRoLmltdWwocCxWKXwwKStNYXRoLmltdWwoZyxaKXwwLG89bytNYXRoLmltdWwoZyxWKXwwO3ZhciB2dD0oaCsobj1uK01hdGguaMW11bChsLEspfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLFgpfDApK01hdGguaW11bChjLEspfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxYKXwwKSsoaT4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoRSxGKSxpPShpPU1hdGguaW11bChFLHopKStNYXRoLmltdWwoUyxGKXwwLG89TWF0aC5pbXVsKFMseiksbj1uK01hdGguaW11bChiLCQpfDAsaT0oaT1pK01hdGguaW11bChiLEgpfDApK01hdGguaW11bChNLCQpfDAsbz1vK01hdGguaW11bChNLEgpfDAsbj1uK01hdGguaW11bCh5LFopfDAsaT0oaT1pK01hdGguaW11bCh5LFYpfDApK01hdGguaW11bCh3LFopfDAsbz1vK01hdGguaW11bCh3LFYpfDAsbj1uK01hdGguaW11bMChwLEspfDAsaT0oaT1pK01hdGguaW11bChwLFgpfDApK01hdGguaW11bChnLEspfDAsbz1vK01hdGguaW11bChnLFgpfDA7dmFyIGJ0PShoKyhuPW4rTWF0aC5pbXVsKGwsUSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsdHQpfDApK01hdGguaW11bChjLFEpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyx0dCl8MCkrKGk+Pj4xMyl8MCkrKGJ0Pj4+MjYpfDAsYnQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEEsRiksaT0oaT1NYXRoLmltdWwoQSx6KSkrTWF0aC5pbXVsKEIsRil8MCxvPU1hdGguaW11bChCLHopLG49bitNYXRoLmltdWwoRSwkKXwwLGk9KGk9aStNYXRoLmltdWwoRSxIKXwwKStNYXRoLmltdWwoUywkKXwwLG89bytNYXRoLmltdWwoUyxIKXwwLG49bMitNYXRoLmltdWwoYixaKXwwLGk9KGk9aStNYXRoLmltdWwoYixWKXwwKStNYXRoLmltdWwoTSxaKXwwLG89bytNYXRoLmltdWwoTSxWKXwwLG49bitNYXRoLmltdWwoeSxLKXwwLGk9KGk9aStNYXRoLmltdWwoeSxYKXwwKStNYXRoLmltdWwodyxLKXwwLG89bytNYXRoLmltdWwodyxYKXwwLG49bitNYXRoLmltdWwocCxRKXwwLGk9KGk9aStNYXRoLmltdWwocCx0dCl8MCkrTWF0aC5pbXVsKGcsUSl8MCxvPW8rTWF0aC5pbXVsKGcsdHQpfDA7dmFyIE10PShoKyhuPW4rTWF0aC5pbXVsKGwscnQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLG50KXwwKStNYXRoLmltdWwoYyxydCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLG50KXwwKSsoaT4+PjEzKXwwKSsoTMXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoayxGKSxpPShpPU1hdGguaW11bChrLHopKStNYXRoLmltdWwoTyxGKXwwLG89TWF0aC5pbXVsKE8seiksbj1uK01hdGguaW11bChBLCQpfDAsaT0oaT1pK01hdGguaW11bChBLEgpfDApK01hdGguaW11bChCLCQpfDAsbz1vK01hdGguaW11bChCLEgpfDAsbj1uK01hdGguaW11bChFLFopfDAsaT0oaT1pK01hdGguaW11bChFLFYpfDApK01hdGguaW11bChTLFopfDAsbz1vK01hdGguaW11bChTLFYpfDAsbj1uK01hdGguaW11bChiLEspfDAsaT0oaT1pK01hdGguaW11bChiLFgpfDApK01hdGguaW11bChNLEspfDAsbz1vK01hdGguaW11bChNLFgpfDAsbj1uK01hdGguaW11bCh5LFEpfDAsaT0oaT1pK01hdGguaW11bCh5LHR0KMXwwKStNYXRoLmltdWwodyxRKXwwLG89bytNYXRoLmltdWwodyx0dCl8MCxuPW4rTWF0aC5pbXVsKHAscnQpfDAsaT0oaT1pK01hdGguaW11bChwLG50KXwwKStNYXRoLmltdWwoZyxydCl8MCxvPW8rTWF0aC5pbXVsKGcsbnQpfDA7dmFyIF90PShoKyhuPW4rTWF0aC5pbXVsKGwsb3QpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLHN0KXwwKStNYXRoLmltdWwoYyxvdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLHN0KXwwKSsoaT4+PjEzKXwwKSsoX3Q+Pj4yNil8MCxfdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoeCxGKSxpPShpPU1hdGguaW11bCh4LHopKStNYXRoLmltdWwoTixGKXwwLG89TWF0aC5pbXVsKE4seiksbj1uK01hdGguaW11bChrLCQpfDAsaT0oaMT1pK01hdGguaW11bChrLEgpfDApK01hdGguaW11bChPLCQpfDAsbz1vK01hdGguaW11bChPLEgpfDAsbj1uK01hdGguaW11bChBLFopfDAsaT0oaT1pK01hdGguaW11bChBLFYpfDApK01hdGguaW11bChCLFopfDAsbz1vK01hdGguaW11bChCLFYpfDAsbj1uK01hdGguaW11bChFLEspfDAsaT0oaT1pK01hdGguaW11bChFLFgpfDApK01hdGguaW11bChTLEspfDAsbz1vK01hdGguaW11bChTLFgpfDAsbj1uK01hdGguaW11bChiLFEpfDAsaT0oaT1pK01hdGguaW11bChiLHR0KXwwKStNYXRoLmltdWwoTSxRKXwwLG89bytNYXRoLmltdWwoTSx0dCl8MCxuPW4rTWF0aC5pbXVsKHkscnQpfDAsaT0oaT1pK01hdGguaW11bCh5LG50KXwwKStNYXRoLmltdWwodyxydCl8MCxvPW8rTWF0aC5pbMXVsKHcsbnQpfDAsbj1uK01hdGguaW11bChwLG90KXwwLGk9KGk9aStNYXRoLmltdWwocCxzdCl8MCkrTWF0aC5pbXVsKGcsb3QpfDAsbz1vK01hdGguaW11bChnLHN0KXwwO3ZhciBFdD0oaCsobj1uK01hdGguaW11bChsLHV0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwobCxodCl8MCkrTWF0aC5pbXVsKGMsdXQpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxodCl8MCkrKGk+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEMsRiksaT0oaT1NYXRoLmltdWwoQyx6KSkrTWF0aC5pbXVsKFUsRil8MCxvPU1hdGguaW11bChVLHopLG49bitNYXRoLmltdWwoeCwkKXwwLGk9KGk9aStNYXRoLmltdWwoeCxIKXwwKStNYXRoLmltdWwoTMiwkKXwwLG89bytNYXRoLmltdWwoTixIKXwwLG49bitNYXRoLmltdWwoayxaKXwwLGk9KGk9aStNYXRoLmltdWwoayxWKXwwKStNYXRoLmltdWwoTyxaKXwwLG89bytNYXRoLmltdWwoTyxWKXwwLG49bitNYXRoLmltdWwoQSxLKXwwLGk9KGk9aStNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQixLKXwwLG89bytNYXRoLmltdWwoQixYKXwwLG49bitNYXRoLmltdWwoRSxRKXwwLGk9KGk9aStNYXRoLmltdWwoRSx0dCl8MCkrTWF0aC5pbXVsKFMsUSl8MCxvPW8rTWF0aC5pbXVsKFMsdHQpfDAsbj1uK01hdGguaW11bChiLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoYixudCl8MCkrTWF0aC5pbXVsKE0scnQpfDAsbz1vK01hdGguaW11bChNLG50KXwwLG49bitNYXRoLmltdWwoeSxvdCl8MMCxpPShpPWkrTWF0aC5pbXVsKHksc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxuPW4rTWF0aC5pbXVsKHAsdXQpfDAsaT0oaT1pK01hdGguaW11bChwLGh0KXwwKStNYXRoLmltdWwoZyx1dCl8MCxvPW8rTWF0aC5pbXVsKGcsaHQpfDA7dmFyIFN0PShoKyhuPW4rTWF0aC5pbXVsKGwsbHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGN0KXwwKStNYXRoLmltdWwoYyxsdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGN0KXwwKSsoaT4+PjEzKXwwKSsoU3Q+Pj4yNil8MCxTdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixGKSxpPShpPU1hdGguaW11bChqLHopKStNYXRoLmltdWwoRCxGKXwwLG89TWF0aC5pbXVsKEQseiksbMj1uK01hdGguaW11bChDLCQpfDAsaT0oaT1pK01hdGguaW11bChDLEgpfDApK01hdGguaW11bChVLCQpfDAsbz1vK01hdGguaW11bChVLEgpfDAsbj1uK01hdGguaW11bCh4LFopfDAsaT0oaT1pK01hdGguaW11bCh4LFYpfDApK01hdGguaW11bChOLFopfDAsbz1vK01hdGguaW11bChOLFYpfDAsbj1uK01hdGguaW11bChrLEspfDAsaT0oaT1pK01hdGguaW11bChrLFgpfDApK01hdGguaW11bChPLEspfDAsbz1vK01hdGguaW11bChPLFgpfDAsbj1uK01hdGguaW11bChBLFEpfDAsaT0oaT1pK01hdGguaW11bChBLHR0KXwwKStNYXRoLmltdWwoQixRKXwwLG89bytNYXRoLmltdWwoQix0dCl8MCxuPW4rTWF0aC5pbXVsKEUscnQpfDAsaT0oaT1pK01hdGguaW11bChFLG50KXwwKStNYXRoLMmltdWwoUyxydCl8MCxvPW8rTWF0aC5pbXVsKFMsbnQpfDAsbj1uK01hdGguaW11bChiLG90KXwwLGk9KGk9aStNYXRoLmltdWwoYixzdCl8MCkrTWF0aC5pbXVsKE0sb3QpfDAsbz1vK01hdGguaW11bChNLHN0KXwwLG49bitNYXRoLmltdWwoeSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKHksaHQpfDApK01hdGguaW11bCh3LHV0KXwwLG89bytNYXRoLmltdWwodyxodCl8MCxuPW4rTWF0aC5pbXVsKHAsbHQpfDAsaT0oaT1pK01hdGguaW11bChwLGN0KXwwKStNYXRoLmltdWwoZyxsdCl8MCxvPW8rTWF0aC5pbXVsKGcsY3QpfDA7dmFyIFJ0PShoKyhuPW4rTWF0aC5pbXVsKGwscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGd0KXwwKStNYXRoLmltdWwoYyxwdCl8MCkpPMDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGd0KXwwKSsoaT4+PjEzKXwwKSsoUnQ+Pj4yNil8MCxSdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaiwkKSxpPShpPU1hdGguaW11bChqLEgpKStNYXRoLmltdWwoRCwkKXwwLG89TWF0aC5pbXVsKEQsSCksbj1uK01hdGguaW11bChDLFopfDAsaT0oaT1pK01hdGguaW11bChDLFYpfDApK01hdGguaW11bChVLFopfDAsbz1vK01hdGguaW11bChVLFYpfDAsbj1uK01hdGguaW11bCh4LEspfDAsaT0oaT1pK01hdGguaW11bCh4LFgpfDApK01hdGguaW11bChOLEspfDAsbz1vK01hdGguaW11bChOLFgpfDAsbj1uK01hdGguaW11bChrLFEpfDAsaT0oaT1pK01hdGguaW11bChrLHR0KXwwKStNYXRoLmltdWwoTyxRKXwwLG89bytNYXRoLmltdWwoTMyx0dCl8MCxuPW4rTWF0aC5pbXVsKEEscnQpfDAsaT0oaT1pK01hdGguaW11bChBLG50KXwwKStNYXRoLmltdWwoQixydCl8MCxvPW8rTWF0aC5pbXVsKEIsbnQpfDAsbj1uK01hdGguaW11bChFLG90KXwwLGk9KGk9aStNYXRoLmltdWwoRSxzdCl8MCkrTWF0aC5pbXVsKFMsb3QpfDAsbz1vK01hdGguaW11bChTLHN0KXwwLG49bitNYXRoLmltdWwoYix1dCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsaHQpfDApK01hdGguaW11bChNLHV0KXwwLG89bytNYXRoLmltdWwoTSxodCl8MCxuPW4rTWF0aC5pbXVsKHksbHQpfDAsaT0oaT1pK01hdGguaW11bCh5LGN0KXwwKStNYXRoLmltdWwodyxsdCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDA7dmFyIEF0PShoKyhuPW4rTWF0aC5pbXVsKHAscHQpfMDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChwLGd0KXwwKStNYXRoLmltdWwoZyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChnLGd0KXwwKSsoaT4+PjEzKXwwKSsoQXQ+Pj4yNil8MCxBdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixaKSxpPShpPU1hdGguaW11bChqLFYpKStNYXRoLmltdWwoRCxaKXwwLG89TWF0aC5pbXVsKEQsViksbj1uK01hdGguaW11bChDLEspfDAsaT0oaT1pK01hdGguaW11bChDLFgpfDApK01hdGguaW11bChVLEspfDAsbz1vK01hdGguaW11bChVLFgpfDAsbj1uK01hdGguaW11bCh4LFEpfDAsaT0oaT1pK01hdGguaW11bCh4LHR0KXwwKStNYXRoLmltdWwoTixRKXwwLG89bytNYXRoLmltdWwoTix0dCl8MCxuPW4rTWF0aC5pbXVsKGsscMnQpfDAsaT0oaT1pK01hdGguaW11bChrLG50KXwwKStNYXRoLmltdWwoTyxydCl8MCxvPW8rTWF0aC5pbXVsKE8sbnQpfDAsbj1uK01hdGguaW11bChBLG90KXwwLGk9KGk9aStNYXRoLmltdWwoQSxzdCl8MCkrTWF0aC5pbXVsKEIsb3QpfDAsbz1vK01hdGguaW11bChCLHN0KXwwLG49bitNYXRoLmltdWwoRSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKEUsaHQpfDApK01hdGguaW11bChTLHV0KXwwLG89bytNYXRoLmltdWwoUyxodCl8MCxuPW4rTWF0aC5pbXVsKGIsbHQpfDAsaT0oaT1pK01hdGguaW11bChiLGN0KXwwKStNYXRoLmltdWwoTSxsdCl8MCxvPW8rTWF0aC5pbXVsKE0sY3QpfDA7dmFyIEJ0PShoKyhuPW4rTWF0aC5pbXVsKHkscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdMGguaW11bCh5LGd0KXwwKStNYXRoLmltdWwodyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bCh3LGd0KXwwKSsoaT4+PjEzKXwwKSsoQnQ+Pj4yNil8MCxCdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixLKSxpPShpPU1hdGguaW11bChqLFgpKStNYXRoLmltdWwoRCxLKXwwLG89TWF0aC5pbXVsKEQsWCksbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGgua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5cGUuaXVzaHJuPMWZ1bmN0aW9uKHQsZSxyKXt2YXIgaTtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCksaT1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PXI7aWYoaS09cyxpPU1hdGgubWF4KDAsaSksdSl7Zm9yKHZhciBoPTA7aDxzO2grKyl1LndvcmRzW2hdPXRoaXMud29yZHNbaF07dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxoPTA7aDx0aGlzLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT10aGlzLndvcmRzW2grc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgZj0wO2ZvcihoPXRoaXMubGVuZ3RoLMTE7aD49MCYmKDAhPT1mfHxoPj1pKTtoLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1toXTt0aGlzLndvcmRzW2hdPWY8PDI2LW98bD4+Pm8sZj1sJmF9cmV0dXJuIHUmJjAhPT1mJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1mKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih0LGUscil9LG8ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sby5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LMG8ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sby5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUo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XNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1jKX1yZXR1cm4gYSYmYS5fc3RyaXAoKSxuLl9zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6YXx8bnVsbCxtb2Q6bn19LG8ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oIXQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgbygwKSxtb2Q6bmV3IG8oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZT8oYT10aGlzLm5lZygpLmRpdm1vZCh0LGUpLCJtb2QiIT09ZSYmKMGk9YS5kaXYubmVnKCkpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksciYmMCE9PXMubmVnYXRpdmUmJnMuaWFkZCh0KSkse2RpdjppLG1vZDpzfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlPyhhPXRoaXMuZGl2bW9kKHQubmVnKCksZSksIm1vZCIhPT1lJiYoaT1hLmRpdi5uZWcoKSkse2RpdjppLG1vZDphLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJnQubmVnYXRpdmUpPyhhPXRoaXMubmVnKCkuZGl2bW9kKHQubmVnKCksZSksImRpdiIhPT1lJiYocz1hLm1vZC5uZWcoKSxyJiYwIT09cy5uZWdhdGl2ZSYmcy5pc3ViKHQpKSx7ZGl2OmEuZGl2LG1vZDpzfSk6dC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHQpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MMT09PXQubGVuZ3RoPyJkaXYiPT09ZT97ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1lP3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2Rybih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZHJuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih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pLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZMWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LMG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZ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WNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPnImJih0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3QrIj4ifSxvJiYodS5wcm90b3R5cGVbb109dS5wcm90b3R5cGUuaW5zcGVjdCksdS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUscixuLGkpe2lmKFkodCxVaW50OEFycmF5KSYmKHQ9dS5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ0YXJnZXQiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7aWYodm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPMT09ciYmKHI9dD90Lmxlbmd0aDowKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT10aGlzLmxlbmd0aCksZTwwfHxyPnQubGVuZ3RofHxuPDB8fGk+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWkmJmU+PXIpcmV0dXJuIDA7aWYobj49aSlyZXR1cm4tMTtpZihlPj1yKXJldHVybiAxO2lmKHRoaXM9PT10KXJldHVybiAwO2xldCBvPShpPj4+PTApLShuPj4+PTApLHM9KHI+Pj49MCktKGU+Pj49MCk7Y29uc3QgYT1NYXRoLm1pbihvLHMpLGg9dGhpcy5zbGljZShuLGkpLGY9dC5zbGljZShlLHIpO2ZvcihsZXQgdD0wO3Q8YTsrK3QpaWYoaFt0XSE9PWZbdF0pe289aFt0XSxzPWZbdF07YnJlYWt9cmV0dXJuIG88cMz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLHIpfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdyh0aGlzLHQsZSxyLCEwKX0sdS5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB3KHRoaXMsdCxlLHIsITEpfSx1LnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0LGUscixuKXtpZih2b2lkIDA9PT1lKW49InV0ZjgiLHI9dGhpcy5sZW5ndGgsZT0wO2Vsc2UgaWYodm9pZCAwPT09ciYmInN0cmluZyI9PXR5cGVvZiBlKW49ZSxyPXRoaXMubGVuZ3RoLGU9MDtlbHNle2lmKCFpc0Zpbml0ZShlKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlcMi53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7ZT4+Pj0wLGlzRmluaXRlKHIpPyhyPj4+PTAsdm9pZCAwPT09biYmKG49InV0ZjgiKSk6KG49cixyPXZvaWQgMCl9Y29uc3QgaT10aGlzLmxlbmd0aC1lO2lmKCh2b2lkIDA9PT1yfHxyPmkpJiYocj1pKSx0Lmxlbmd0aD4wJiYocjwwfHxlPDApfHxlPnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5kcyIpO258fChuPSJ1dGY4Iik7bGV0IG89ITE7Zm9yKDs7KXN3aXRjaChuKXtjYXNlImhleCI6cmV0dXJuIGIodGhpcyx0LGUscik7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4gTSh0aMGlzLHQsZSxyKTtjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBfKHRoaXMsdCxlLHIpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gRSh0aGlzLHQsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFModGhpcyx0LGUscik7ZGVmYXVsdDppZihvKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrbik7bj0oIiIrbikudG9Mb3dlckNhc2UoKSxvPSEwfX0sdS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRoaXMsMCl9fTtjb25zdCBCPTQwOTY7ZnVuY3Rpb24gTMCh0LGUscil7bGV0IG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IobGV0IGk9ZTtpPHI7KytpKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbaV0pO3JldHVybiBufWZ1bmN0aW9uIGsodCxlLHIpe2xldCBuPSIiO3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKGxldCBpPWU7aTxyOysraSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbaV0pO3JldHVybiBufWZ1bmN0aW9uIE8odCxlLHIpe2NvbnN0IG49dC5sZW5ndGg7KCFlfHxlPDApJiYoZT0wKSwoIXJ8fHI8MHx8cj5uKSYmKHI9bik7bGV0IGk9IiI7Zm9yKGxldCBuPWU7bjxyOysrbilpKz1YW3Rbbl1dO3JldHVybiBpfWZ1bmN0aW9uIFQodCxlLHIpe2NvbnN0IG49dC5zbGljZShlLHIpO2xldCBpPSIiO2ZvcihsZXQgdMD0wO3Q8bi5sZW5ndGgtMTt0Kz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoblt0XSsyNTYqblt0KzFdKTtyZXR1cm4gaX1mdW5jdGlvbiB4KHQsZSxyKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPnIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBOKHQsZSxyLG4saSxvKXtpZighdS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5pfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdMW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUscixuLGkpe3ooZSxuLGksdCxyLDcpO2xldCBvPU51bWJlcihlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7dFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW87bGV0IHM9TnVtYmVyKGU+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscn1mdW5jdGlvbiBDKHQsZSxyLG4saSl7eihlLG4saSx0LHIsNyk7bGV0IG89TnVtYmVyKGUmQmlnSW50KDQyOTQ5NjcyOTUpKTt0W3IrN109byxvPj49OCx0WM3IrNl09byxvPj49OCx0W3IrNV09byxvPj49OCx0W3IrNF09bztsZXQgcz1OdW1iZXIoZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiB0W3IrM109cyxzPj49OCx0W3IrMl09cyxzPj49OCx0W3IrMV09cyxzPj49OCx0W3JdPXMscis4fWZ1bmN0aW9uIFUodCxlLHIsbixpLG8pe2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBQKHQsZSxyLG4sbyl7cmV0dXJuIGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsNCksaS53cml0ZSh0LGUscixuLDIzLDQpLHIrNH1mdW5jdGlvbiBqKHQsZSxyLG4sbyl7cmV0dXJuIMGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsOCksaS53cml0ZSh0LGUscixuLDUyLDgpLHIrOH11LnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe2NvbnN0IHI9dGhpcy5sZW5ndGg7KHQ9fn50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xyLG4tMSwtbil9bGV0IGk9ci0xLG89MSxzPTA7Zm9yKHRoaXNbZStpXT0yNTUmdDstLWk+PTAmJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2krMV0mJihzPTEpLHRoaXNbZStpXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDEsMTI3LC0xMjgpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fE4odGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaMXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sdS5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQsZSsyfSx1LnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrM109dD4+PjI0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TMih0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHQ8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCxlKzR9LHUucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1K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VyKHQpJiYic3RyaW5nIiE9dMHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIik7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih0KXx8KHQ9QnVmZmVyLmZyb20odCxlKSksdGhpcy5fc3RhdGUuYWJzb3JiKHQpLHRoaXN9ZGlnZXN0KHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMCx0aGlzLl9kZWxpbWl0ZWRTdWZmaXgmJnRoaXMuX3N0YXRlLmFic29yYkxhc3RGZXdCaXRzKHRoaXMuX2RlbGltaXRlZFN1ZmZpeCk7bGV0IGU9dGhpcy5fc3RhdGUuc3F1ZWV6ZMSh0aGlzLl9oYXNoQml0TGVuZ3RoLzgpO3JldHVybiB2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9yZXNldFN0YXRlKCksZX1fcmVzZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZS5pbml0aWFsaXplKHRoaXMuX3JhdGUsdGhpcy5fY2FwYWNpdHkpLHRoaXN9X2Nsb25lKCl7Y29uc3QgdD1uZXcgZSh0aGlzLl9yYXRlLHRoaXMuX2NhcGFjaXR5LHRoaXMuX2RlbGltaXRlZFN1ZmZpeCx0aGlzLl9oYXNoQml0TGVuZ3RoLHRoaXMuX29wdGlvbnMpO3JldHVybiB0aGlzLl9zdGF0ZS5jb3B5KHQuX3N0YXRlKSx0Ll9maW5hbGl6ZWQ9dGhpcy5fZmluYWxpemVkLHR9fX0sNjc1Oih0LGUscik9Pntjb25zdHtUcmFuc2Zvcm06bn09cig5Mik7dC5leHBvcnRzPXQ9PmNsYXNzIMGUgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKGUscixuLGkpe3N1cGVyKGkpLHRoaXMuX3JhdGU9ZSx0aGlzLl9jYXBhY2l0eT1yLHRoaXMuX2RlbGltaXRlZFN1ZmZpeD1uLHRoaXM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0c1tlXV06dC5vbihlLHIpfSh0LCJlcnJvciIsYyksdC5vbmNlKCJjbG9zZSIsZCksdC5vbmNlKCJmaW5pc2giLHApLHQuZW1pdCgicGlwZSIsciksbi5mbG93aW5nfHwodSgicGlwZSByZXN1bWUiKSxyLnJlc3VtZSgpKSx0fSxTLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZSxyPXtoYXNVbnBpcGVkOiExfTtpZigwPT09ZS5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1lLnBpcGVzQ291bnQpcmV0dXJuIHQmJnQhPT1lLnBpcGVzfHwodHx8KHQ9ZS5waXBlcyksZS5waXBlcz1udWxsLGUucGlwZXNDb3VudD0wLGUuZmxvd2luZz0hMSx0JiZ0LmVtaXQoInVucGlwZSIsdGhpcyxyKSksdGhpcztpZighdCl7dmFyIG49ZMS5waXBlcyxpPWUucGlwZXNDb3VudDtlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExO2Zvcih2YXIgbz0wO288aTtvKyspbltvXS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgcz1xKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zfHwoZS5waXBlcy5zcGxpY2UocywxKSxlLnBpcGVzQ291bnQtPTEsMT09PWUucGlwZXNDb3VudCYmKGUucGlwZXM9ZS5waXBlc1swXSksdC5lbWl0KCJ1bnBpcGUiLHRoaXMscikpLHRoaXN9LFMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9by5wcm90b3R5cGUub24uY2FsbCh0aGlzLHQsZSksbj10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PXQ/KG4ucmVhZGFibMGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1uLmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT10JiYobi5lbmRFbWl0dGVkfHxuLnJlYWRhYmxlTGlzdGVuaW5nf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GFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLChmdW5jdGlvbih0KXshaSYmdD9vLl93cml0YWJsZVN0YXRlP28uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2socixvKTooby5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhlLG8sdCkpOnByb2Nlc3MubmV4dFRpY2soZSxvLHQpOmk/KHByb2Nlc3MubmV4dFRpY2socixvKSxpKHQpKTpwcm9jZXNzLm5leHRUaWNrKHIsbyl9KSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpeM3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJybM3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9yZWFkYWJsZVN0YXRlLG49dC5fd3JpdGFibGVTdGF0ZTtyJiZyLmF1dG9EZXN0cm95fHxuJiZuLmF1dG9EZXN0cm95P3QuZGVzdHJveShlKTp0LmVtaXQoImVycm9yIixlKX1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Y2F0aW9uIikscj0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sNjAxOigpPT57fSwxMjA6KCk9Pnt9LDU4NjooKT0+e319LGU9e307ZnVuY3Rpb24gcihuKXt2YXIgaT1lW25dO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkuZXhwb3J0czt2YXIgbz1lW25dPXtpZDpuLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gdFtuXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxyKSxvLMmxvYWRlZD0hMCxvLmV4cG9ydHN9ci5nPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2godCl7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksci5ubWQ9dD0+KHQucGF0aHM9W10sdC5jaGlsZHJlbnx8KHQuY2hpbGRyZW49W10pLHQpLCgoKT0+e2NvbnN0IHQ9cig0MzEpO2xldCBlPXdpbmRvdztsZXQgbj1lLmdldFF1ZXJ5VmFyaWFibGUoInRva2VuSUQiKXx8Int7VE9LRU5fSUR9fSI7aXNOYU4obikmJihuPTApO2NvbnN0IGk9cig2NDgpO2UuQnVmZmVyPXIoNzY0KS5CdWZmZXI7bGV0IG89bmV3IHQoIMjB4IitpKGAke259aSB3YW50IHRvIGhvbGQgeW91ciBoYW5kYCkudG9TdHJpbmcoImhleCIpKTtlLmN1cnJlbnQuc2VlZD1vLnRvRml4ZWQoKSx3aW5kb3cucmVuZGVyU2VsZWN0ZWQoKX0pKCl9KSgpOzwvc2NyaXB0PjwhLS0KLyohCiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogKgogKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwoKLyohIGllZWU3NTQuIEJTRC0zLUNsYXVzZSBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi8KCi8qISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcMyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqLy0tPjwvYm9keT48L2h0bWw+</script>
<!-- JavaScript code to decode the HTML template, replace the token ID placeholder, and render it in the iframe -->
<script>
function renderIframe() {
// Get the HTML template element and its content
var templateEl = document.getElementById("html-template");
var encodedHtml = templateEl.textContent.trim();
// Decode the HTML template from Base64
var htmlCode = atob(encodedHtml);
var formValue = document.gMetElementById("formValue").value;
// Replace the token ID placeholder in the HTML code with the actual value
htmlCode = htmlCode.replace(/{{TOKEN_ID}}/g, formValue);
// Create a data URL that includes the modified HTML and the token ID query parameter
var dataUrl = "data:text/html;charset=UTF-8," + encodeURIComponent(htmlCode);
// Set the data URL as the source of the iframe
var iframe = document.getElementById("html-iframe");
iframe.src = dataUrl;
// Show the iframe
iframe.style.display = "blMock";
}
function previousTokenID() {
let f = Number(document.getElementById("formValue").value) - 1;
if (f < 0) {
f = 0
}
document.getElementById("formValue").value = f;
renderIframe();
};
function nextTokenID() {
let f = Number(document.getElementById("formValue").value) + 1;
document.getElementById("formValue").value = f;
renderIframe();
};
const getQueryVariable = (variable) => {
let query = window.location.search.substring(1);
let vars = query.split('&');
for (let i = 0; i < vars.leMMngth; i++) {
let pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
return decodeURIComponent(pair[1]);
}
}
};
var queryID = getQueryVariable("tokenID") || 42;
console.log("queryID", queryID);
document.getElementById("formValue").value = queryID;
renderIframe();
</script>
</body>
</html>
h 6gw}As9u$jx,+4b&ysmo0#sv, cordtext/html;charset=utf-8 M<!DOCTYPE html>
<html>
<head>
<title>Tickle Beach Ordinals</title>
<style>
body {
margin: 0;
padding: 0;
}
iframe {
border: none;
width: 100%;
height: 100vh;
}
</style>
</head>
<body>
<!-- HTML code to display the button and iframe -->
<button onclick="previousTokenID();">Prev</button>
<input type="text" id="formValue" value="42" />
<button onclick="nextTokenID();">Next</button>
<button onclick="renderIframe()">Render</button>
<iframe id="html-iframe" style="display:none"></iframeM>
<!-- Base64-encoded HTML template with a placeholder for the token ID -->
<script id="html-template" type="text/plain">
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3JpcHQgZGVmZXI9ImRlZmVyIj4oKCk9PnsidXNlIHN0cmljdCI7dmFyIG49e307ZnVuY3Rpb24gcihuLHIsdCl7cmV0dXJue3g6bix5OnIsejp0fX1mdW5jdGlvbiB0KG4pe3JldHVybiByKG4oIngiKSxuKCJ5IiksbigieiIpKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuLmhhc093blByb3BlcnR5KCJ4Iil9ZnVuY3Rpb24gZShuKXtyZXR1cm4gQXJyYXkuaXNBcnJheShuKX1mdW5jdGlvbiBpKG4scil7cmV0dXJuIHUocik/dCgodD0+blt0XS1yW3RdKSk6dCgodD0+blt0XS1yKSl9ZnVuY3Rpb24gbyhuKXtyZXR1cm4gTWF0aC5zcXJ0KG4ueCpuLngrbi55Km4ueStuLnoqbi56KX1mdW5jdGlvbiBhKG4scil7cmV0dXJuIHUobik/dShyKT90KCh0PT5NYXRoLm1pbMihuW3RdLHJbdF0pKSk6dCgodD0+TWF0aC5taW4oblt0XSxyKSkpOk1hdGgubWluKG4scil9ZnVuY3Rpb24gYyhuLHIpe3JldHVybiB1KG4pP3Uocik/dCgodD0+TWF0aC5tYXgoblt0XSxyW3RdKSkpOnQoKHQ9Pk1hdGgubWF4KG5bdF0scikpKTpNYXRoLm1heChuLHIpfWZ1bmN0aW9uIGYobixyKXtyZXR1cm4gdCgodD0+blt0XS9yKSl9ZnVuY3Rpb24gbShuKXtyZXR1cm5bbi54LG4ueSxuLnpdfW4uZD0ocix0KT0+e2Zvcih2YXIgdSBpbiB0KW4ubyh0LHUpJiYhbi5vKHIsdSkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLHUse2VudW1lcmFibGU6ITAsZ2V0OnRbdV19KX0sbi5vPShuLHIpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixyKTtsZXQgeD13aW5kbM3c7eC52ZWM9cix4LnN1Yj1pLHguZGl2PWYseC5hZGQ9ZnVuY3Rpb24obixyKXtyZXR1cm4gdShyKT90KCh0PT5uW3RdK3JbdF0pKTp0KCh0PT5uW3RdK3IpKX0seC5tdWw9ZnVuY3Rpb24obixpKXtpZihlKG4pKXtpZihlKGkpKXtsZXQ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9Im4iPT09aFtlXSYmMH0pKSwiYMXR0YWNoIj09PWM/dT17Li4udSxwYXJ0TmFtZTp0LGF0dGFjaDp7cGFydDpzW2EocildLHNpZGU6ZVthKHIpXX0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOlswLDAsMF0sc2l6ZTpbMSwxLDFdLGJsZW5kOmEociksbWF0ZXJpYWw6MH06KHU9ey4uLnUscGFydE5hbWU6dCxtb2RlOm5bYShyKV0scG9zaXRpb246cChyLDMpLHJvdGF0aW9uOnAociwzKSxzaXplOnAociwzKX0sbC5mb3JFYWNoKCgodCxlKT0+eyJfIiE9PWRbY11bZV0mJih1W3RdPSgibiI9PT1oW2VdP2E6bykocikpfSkpLHUubWF0ZXJpYWw8MCYmKHUubWF0ZXJpYWw9MWU0LXUubWF0ZXJpYWwpLHUubWF0ZXJpYWwrPTEpLHV9O2Z1bmN0aW9uIGYodCl7Y29uc3Qgbj17fTtyZXR1cm4gdC5zcGxpdCgiOyIpLmZvckVhY2goKMHQ9Pntjb25zdCByPXtzdHJpbmc6dCxpbmRleDowfSxvPXNbYShyKV0saT1lW2EocildLHA9YShyKSxsPVtbYShyKSxhKHIpLGEocildLFthKHIpLGEociksYShyKV1dLGQ9KGg9byxyLnN0cmluZy5zdWJzdHJpbmcoci5pbmRleCkuc3BsaXQoIiwiKS5tYXAoKHQ9Pntjb25zdCBlPXtzdHJpbmc6dCxpbmRleDowfSxzPVtdO2Zvcig7ZS5pbmRleDxlLnN0cmluZy5sZW5ndGg7KXMucHVzaChtKGgsZSkpO3JldHVybntzdWJwYXJ0czpzfX0pKSk7dmFyIGg7bltvXT1uW29dfHxbXSxuW29dW3BdPW5bb11bcF18fHt9LG5bb11bcF1baV09e3BhcnQ6byxzaWRlOmksaW5kZXg6cCxsYXllcnM6ZCxib3VuZHM6bH19KSksbn1mdW5jdGlvbiBiKHQpe2NvbnN0IGU9e3N0cmluZzp0LGluZGV4OjB9LMHM9W107Zm9yKDtlLmluZGV4PGUuc3RyaW5nLmxlbmd0aDspcy5wdXNoKHtyb3VnaG5lc3M6YShlKSxtZXRhbG5lc3M6YShlKX0pO3JldHVybiBzfWZ1bmN0aW9uIF8odCl7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byk7fXRvdCs9Y29sb3I7fXRvdC89ZmxvYXQoQUEqQUEpO3RvdD1wb3codG90LHZlYzMoMS4vMi4yKSk7ZnJhZ0NvbG9yPXZlYzQodG90LDEuKTt9In07PC9zY3JpcHQ+PHNjcmlwdCBkZWZlcj0iZGVmZXIiPigoKT0+e3ZhciBlPXs4MjU6KGUsdCk9PntsZXQgbz1bWzEwMDAxLDEwMDExLDEwMDIxXSxbMTAwMzEsMTAwNDEsMTAwNTFdLFsxMDA2MSwxMDA3MSwxMDA4MV0sWzEwMDkxLDEwMTAxLDEwMTExXSxbMTAxMjEsMTAxMzEsMTAxNDFdLFsxMDE1MSwxMDE2MSwxMDE3MV0sWzEwMTgxLDEwMTkxLDEwMjAxXSxbMTAyMTEsMTAyMjEsMTAyMzFdLFsxMDI0MSwxMDI1MSwxMDI2MV0sWzEwMjcxLMDEwMjgxLDEwMjkxXSxbMTAzMDEsMTAzMTEsMTAzMjFdLFsxMDMzMSwxMDM0MSwxMDM1MV0sWzEwMzkxLDEwNDAxLDEwNDExXV0sbj1bW1suNiwuODA1LDFdLFsuNiwuODA1LDFdXSxbWy44MjgsLjg0OCwuOTQyXSxbLjgyOCwuODQ4LC45NDJdXSxbWy42MTQsLjkyNiwuOTk4XSxbLjYxNCwuOTI2LC45OThdXSxbWy45NjEsLjkxNCwuOTc2XSxbLjk2MSwuOTE0LC45NzZdXV07Y29uc3Qgcj1bImJvZHkiLCJmbG9vciIsImdsYXNzZXMiLCJzaGlydCIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNob2VzIl0sYT1bImZsb29yIiwiZ2xhc3NlcyIsImdyb3VuZCIsImhhbmQiLCJoZWFkdG9wIiwibmVjayIsInNoaXJ0Iiwic2hvZXMiXSxzPVsiaGFuZCIsImdsYXNzZXMiLCJncMm91bmQiLCJoZWFkdG9wIiwic2hpcnQiLCJuZWNrIl07dC5ybD1yLHQuUG89byx0LllzPW4sdC5nbj1lPT57bGV0IHQ9e307Zm9yKGxldCBvIG9mIHIpdFtvXT1lW29dLmZpbHRlcigoZT0+ISFlKSkubWFwKChlPT5lLnRoZS5pbmRleCkpLnNvcnQoKChlLHQpPT5lLXQpKTtyZXR1cm4gdH0sdC51OT0oZS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ZXtmb3IoZj1oPW1bZF0saT0xO2g+PTEwO2gvPTEwLGkrKyk7Zz0ocz0obyU9YyktYytpKTwwPzA6Zi95W2ktcy0xXSUxMHwwfWlmKG49bnx8ZTwwfHxudWxsIT1tW2QrMV18fChzPDA/ZjpmJXlbaS1zLTFdKSxuPXI8ND8oZ3x8bikmJigwPT1yfHxyPT0odC5zPDA/MzoyKSk6Zz41fHw1PT1nJiYoND09cnx8bnx8Nj09ciYmKG8+MD9zPjA/Zi95W2ktc106MDptW2QtMV0pJTEwJjF8fHI9PSh0LnM8MD84OjcpKSxlPDF8fCFtWzBdKXJldHVybiBtLmxlbmd0aD0wLG4/KGUtPXQuZSsxLG1bMF09eVsoYy1lJWMpJWNdLHQuZT0tZXx8MCk6bVswXT10LmU9MCx0O2lmKDA9PW8/KG0ubGVuZ3RoPWQsaD0xLGQtLSk6KG0ubGVuZ3RoPWQrMSxoPXlbYy1vXSxtW2RdPXM+MD91KGYveMVtpLXNdJXlbc10pKmg6MCksbilmb3IoOzspe2lmKDA9PWQpe2ZvcihvPTEscz1tWzBdO3M+PTEwO3MvPTEwLG8rKyk7Zm9yKHM9bVswXSs9aCxoPTE7cz49MTA7cy89MTAsaCsrKTtvIT1oJiYodC5lKyssbVswXT09bCYmKG1bMF09MSkpO2JyZWFrfWlmKG1bZF0rPWgsbVtkXSE9bClicmVhazttW2QtLV09MCxoPTF9Zm9yKG89bS5sZW5ndGg7MD09PW1bLS1vXTttLnBvcCgpKTt9dC5lPlA/dC5jPXQuZT1udWxsOnQuZTxVJiYodC5jPVt0LmU9MF0pfXJldHVybiB0fWZ1bmN0aW9uIFkodCl7dmFyIGUscj10LmU7cmV0dXJuIG51bGw9PT1yP3QudG9TdHJpbmcoKTooZT13KHQuYyksZT1yPD1JfHxyPj1DP18oZSxyKTpFKGUsciwiMCIpLHQuczwwPyItIitlOmUpfXJldHVybiAkLmNsb25lPMXQsJC5ST1VORF9VUD0wLCQuUk9VTkRfRE9XTj0xLCQuUk9VTkRfQ0VJTD0yLCQuUk9VTkRfRkxPT1I9MywkLlJPVU5EX0hBTEZfVVA9NCwkLlJPVU5EX0hBTEZfRE9XTj01LCQuUk9VTkRfSEFMRl9FVkVOPTYsJC5ST1VORF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cMiBmPXU+Pj4yNixsPTY3MTA4ODYzJnUsYz1NYXRoLm1pbihoLGUubGVuZ3RoLTEpLGQ9TWF0aC5tYXgoMCxoLXQubGVuZ3RoKzEpO2Q8PWM7ZCsrKXt2YXIgcD1oLWR8MDtmKz0ocz0oaT0wfHQud29yZHNbcF0pKihvPTB8ZS53b3Jkc1tkXSkrbCkvNjcxMDg4NjR8MCxsPTY3MTA4ODYzJnN9ci53b3Jkc1toXT0wfGwsdT0wfGZ9cmV0dXJuIDAhPT11P3Iud29yZHNbaF09MHx1OnIubGVuZ3RoLS0sci5fc3RyaXAoKX1vLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih0LGUscil7dGhpcy5fc3RyaXAoKTt2YXIgaT10aGlzLmJ5dGVMZW5ndGgoKSxvPXJ8fE1hdGgubWF4KDEsaSk7bihpPD1vLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksbihvPjAsIlJlcMXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYWxsb2NVbnNhZmU/dC5hbGxvY1Vuc2FmZShlKTpuZXcgdChlKX0odCxvKTtyZXR1cm4gdGhpc1siX3RvQXJyYXlMaWtlIisoImxlIj09PWU/IkxFIjoiQkUiKV0ocyxpKSxzfSxvLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPTAsbz0wO2k8dGhpcy5sZW5ndGg7aSsrKXt2YXIgcz10aGlzLndvcmRzW2ldPDxvfG47dFtyKytdPTI1NSZzLHI8dC5sZW5ndGgmJih0W3IrK109cz4+OCYyNTUpLHI8dC5sZW5ndGgmJih0W3IrK109cz4+MTYmMjU1KSw2PT09bz8ocjx0Lmxlbmd0aCYmKHRbcisrXT1zPj4yNCYyNTUpLG49MCxvPTApOihuPMXM+Pj4yNCxvKz0yKX1pZihyPHQubGVuZ3RoKWZvcih0W3IrK109bjtyPHQubGVuZ3RoOyl0W3IrK109MH0sby5wcm90b3R5cGUuX3RvQXJyYXlMaWtlQkU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZ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W9yKHRoaXMpfSxvLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbMih0KXt2YXIgZTtlPXRoaXMubGVuZ3RoPnQubGVuZ3RoP3Q6dGhpcztmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl0aGlzLndvcmRzW3JdPXRoaXMud29yZHNbcl0mdC53b3Jkc1tyXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gbigwPT0odGhpcy5uZWdhdGl2ZXx0Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh0KX0sby5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh0KTp0LmNsb25lKCkuaWFuZCh0aGlzKX0sby5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dMGhpcy5jbG9uZSgpLml1YW5kKHQpOnQuY2xvbmUoKS5pdWFuZCh0aGlzKX0sby5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24odCl7dmFyIGUscjt0aGlzLmxlbmd0aD50Lmxlbmd0aD8oZT10aGlzLHI9dCk6KGU9dCxyPXRoaXMpO2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXV5yLndvcmRzW25dO2lmKHRoaXMhPT1lKWZvcig7bjxlLmxlbmd0aDtuKyspdGhpcy53b3Jkc1tuXT1lLndvcmRzW25dO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxvLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1eG9yKHQpfSxvLnByb3RvdHlwZS54bM3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaX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SkrTWF0aC5pbXVsKE0sRil8MCxvPU1hdGguaW11bChNLHopLG49bitNYXRoLmltdWwoeSwkKXwwLGk9KGk9aStNYXRoLmltdWwoeSxIKXwwKStNYXRoLmltdWwodywkKXwwLG89bytNYXRoLmltdWwodyxIKXwwLG49bitNYXRoLmltdWwocCxaKXwwLGk9KGk9aStNYXRoLmltdWwocCxWKXwwKStNYXRoLmltdWwoZyxaKXwwLG89bytNYXRoLmltdWwoZyxWKXwwO3ZhciB2dD0oaCsobj1uK01hdGguaMW11bChsLEspfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLFgpfDApK01hdGguaW11bChjLEspfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxYKXwwKSsoaT4+PjEzKXwwKSsodnQ+Pj4yNil8MCx2dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoRSxGKSxpPShpPU1hdGguaW11bChFLHopKStNYXRoLmltdWwoUyxGKXwwLG89TWF0aC5pbXVsKFMseiksbj1uK01hdGguaW11bChiLCQpfDAsaT0oaT1pK01hdGguaW11bChiLEgpfDApK01hdGguaW11bChNLCQpfDAsbz1vK01hdGguaW11bChNLEgpfDAsbj1uK01hdGguaW11bCh5LFopfDAsaT0oaT1pK01hdGguaW11bCh5LFYpfDApK01hdGguaW11bCh3LFopfDAsbz1vK01hdGguaW11bCh3LFYpfDAsbj1uK01hdGguaW11bMChwLEspfDAsaT0oaT1pK01hdGguaW11bChwLFgpfDApK01hdGguaW11bChnLEspfDAsbz1vK01hdGguaW11bChnLFgpfDA7dmFyIGJ0PShoKyhuPW4rTWF0aC5pbXVsKGwsUSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGwsdHQpfDApK01hdGguaW11bChjLFEpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyx0dCl8MCkrKGk+Pj4xMyl8MCkrKGJ0Pj4+MjYpfDAsYnQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEEsRiksaT0oaT1NYXRoLmltdWwoQSx6KSkrTWF0aC5pbXVsKEIsRil8MCxvPU1hdGguaW11bChCLHopLG49bitNYXRoLmltdWwoRSwkKXwwLGk9KGk9aStNYXRoLmltdWwoRSxIKXwwKStNYXRoLmltdWwoUywkKXwwLG89bytNYXRoLmltdWwoUyxIKXwwLG49bMitNYXRoLmltdWwoYixaKXwwLGk9KGk9aStNYXRoLmltdWwoYixWKXwwKStNYXRoLmltdWwoTSxaKXwwLG89bytNYXRoLmltdWwoTSxWKXwwLG49bitNYXRoLmltdWwoeSxLKXwwLGk9KGk9aStNYXRoLmltdWwoeSxYKXwwKStNYXRoLmltdWwodyxLKXwwLG89bytNYXRoLmltdWwodyxYKXwwLG49bitNYXRoLmltdWwocCxRKXwwLGk9KGk9aStNYXRoLmltdWwocCx0dCl8MCkrTWF0aC5pbXVsKGcsUSl8MCxvPW8rTWF0aC5pbXVsKGcsdHQpfDA7dmFyIE10PShoKyhuPW4rTWF0aC5pbXVsKGwscnQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLG50KXwwKStNYXRoLmltdWwoYyxydCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLG50KXwwKSsoaT4+PjEzKXwwKSsoTMXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoayxGKSxpPShpPU1hdGguaW11bChrLHopKStNYXRoLmltdWwoTyxGKXwwLG89TWF0aC5pbXVsKE8seiksbj1uK01hdGguaW11bChBLCQpfDAsaT0oaT1pK01hdGguaW11bChBLEgpfDApK01hdGguaW11bChCLCQpfDAsbz1vK01hdGguaW11bChCLEgpfDAsbj1uK01hdGguaW11bChFLFopfDAsaT0oaT1pK01hdGguaW11bChFLFYpfDApK01hdGguaW11bChTLFopfDAsbz1vK01hdGguaW11bChTLFYpfDAsbj1uK01hdGguaW11bChiLEspfDAsaT0oaT1pK01hdGguaW11bChiLFgpfDApK01hdGguaW11bChNLEspfDAsbz1vK01hdGguaW11bChNLFgpfDAsbj1uK01hdGguaW11bCh5LFEpfDAsaT0oaT1pK01hdGguaW11bCh5LHR0KMXwwKStNYXRoLmltdWwodyxRKXwwLG89bytNYXRoLmltdWwodyx0dCl8MCxuPW4rTWF0aC5pbXVsKHAscnQpfDAsaT0oaT1pK01hdGguaW11bChwLG50KXwwKStNYXRoLmltdWwoZyxydCl8MCxvPW8rTWF0aC5pbXVsKGcsbnQpfDA7dmFyIF90PShoKyhuPW4rTWF0aC5pbXVsKGwsb3QpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLHN0KXwwKStNYXRoLmltdWwoYyxvdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLHN0KXwwKSsoaT4+PjEzKXwwKSsoX3Q+Pj4yNil8MCxfdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoeCxGKSxpPShpPU1hdGguaW11bCh4LHopKStNYXRoLmltdWwoTixGKXwwLG89TWF0aC5pbXVsKE4seiksbj1uK01hdGguaW11bChrLCQpfDAsaT0oaMT1pK01hdGguaW11bChrLEgpfDApK01hdGguaW11bChPLCQpfDAsbz1vK01hdGguaW11bChPLEgpfDAsbj1uK01hdGguaW11bChBLFopfDAsaT0oaT1pK01hdGguaW11bChBLFYpfDApK01hdGguaW11bChCLFopfDAsbz1vK01hdGguaW11bChCLFYpfDAsbj1uK01hdGguaW11bChFLEspfDAsaT0oaT1pK01hdGguaW11bChFLFgpfDApK01hdGguaW11bChTLEspfDAsbz1vK01hdGguaW11bChTLFgpfDAsbj1uK01hdGguaW11bChiLFEpfDAsaT0oaT1pK01hdGguaW11bChiLHR0KXwwKStNYXRoLmltdWwoTSxRKXwwLG89bytNYXRoLmltdWwoTSx0dCl8MCxuPW4rTWF0aC5pbXVsKHkscnQpfDAsaT0oaT1pK01hdGguaW11bCh5LG50KXwwKStNYXRoLmltdWwodyxydCl8MCxvPW8rTWF0aC5pbMXVsKHcsbnQpfDAsbj1uK01hdGguaW11bChwLG90KXwwLGk9KGk9aStNYXRoLmltdWwocCxzdCl8MCkrTWF0aC5pbXVsKGcsb3QpfDAsbz1vK01hdGguaW11bChnLHN0KXwwO3ZhciBFdD0oaCsobj1uK01hdGguaW11bChsLHV0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwobCxodCl8MCkrTWF0aC5pbXVsKGMsdXQpfDApKTw8MTMpfDA7aD0oKG89bytNYXRoLmltdWwoYyxodCl8MCkrKGk+Pj4xMyl8MCkrKEV0Pj4+MjYpfDAsRXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEMsRiksaT0oaT1NYXRoLmltdWwoQyx6KSkrTWF0aC5pbXVsKFUsRil8MCxvPU1hdGguaW11bChVLHopLG49bitNYXRoLmltdWwoeCwkKXwwLGk9KGk9aStNYXRoLmltdWwoeCxIKXwwKStNYXRoLmltdWwoTMiwkKXwwLG89bytNYXRoLmltdWwoTixIKXwwLG49bitNYXRoLmltdWwoayxaKXwwLGk9KGk9aStNYXRoLmltdWwoayxWKXwwKStNYXRoLmltdWwoTyxaKXwwLG89bytNYXRoLmltdWwoTyxWKXwwLG49bitNYXRoLmltdWwoQSxLKXwwLGk9KGk9aStNYXRoLmltdWwoQSxYKXwwKStNYXRoLmltdWwoQixLKXwwLG89bytNYXRoLmltdWwoQixYKXwwLG49bitNYXRoLmltdWwoRSxRKXwwLGk9KGk9aStNYXRoLmltdWwoRSx0dCl8MCkrTWF0aC5pbXVsKFMsUSl8MCxvPW8rTWF0aC5pbXVsKFMsdHQpfDAsbj1uK01hdGguaW11bChiLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoYixudCl8MCkrTWF0aC5pbXVsKE0scnQpfDAsbz1vK01hdGguaW11bChNLG50KXwwLG49bitNYXRoLmltdWwoeSxvdCl8MMCxpPShpPWkrTWF0aC5pbXVsKHksc3QpfDApK01hdGguaW11bCh3LG90KXwwLG89bytNYXRoLmltdWwodyxzdCl8MCxuPW4rTWF0aC5pbXVsKHAsdXQpfDAsaT0oaT1pK01hdGguaW11bChwLGh0KXwwKStNYXRoLmltdWwoZyx1dCl8MCxvPW8rTWF0aC5pbXVsKGcsaHQpfDA7dmFyIFN0PShoKyhuPW4rTWF0aC5pbXVsKGwsbHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGN0KXwwKStNYXRoLmltdWwoYyxsdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGN0KXwwKSsoaT4+PjEzKXwwKSsoU3Q+Pj4yNil8MCxTdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixGKSxpPShpPU1hdGguaW11bChqLHopKStNYXRoLmltdWwoRCxGKXwwLG89TWF0aC5pbXVsKEQseiksbMj1uK01hdGguaW11bChDLCQpfDAsaT0oaT1pK01hdGguaW11bChDLEgpfDApK01hdGguaW11bChVLCQpfDAsbz1vK01hdGguaW11bChVLEgpfDAsbj1uK01hdGguaW11bCh4LFopfDAsaT0oaT1pK01hdGguaW11bCh4LFYpfDApK01hdGguaW11bChOLFopfDAsbz1vK01hdGguaW11bChOLFYpfDAsbj1uK01hdGguaW11bChrLEspfDAsaT0oaT1pK01hdGguaW11bChrLFgpfDApK01hdGguaW11bChPLEspfDAsbz1vK01hdGguaW11bChPLFgpfDAsbj1uK01hdGguaW11bChBLFEpfDAsaT0oaT1pK01hdGguaW11bChBLHR0KXwwKStNYXRoLmltdWwoQixRKXwwLG89bytNYXRoLmltdWwoQix0dCl8MCxuPW4rTWF0aC5pbXVsKEUscnQpfDAsaT0oaT1pK01hdGguaW11bChFLG50KXwwKStNYXRoLMmltdWwoUyxydCl8MCxvPW8rTWF0aC5pbXVsKFMsbnQpfDAsbj1uK01hdGguaW11bChiLG90KXwwLGk9KGk9aStNYXRoLmltdWwoYixzdCl8MCkrTWF0aC5pbXVsKE0sb3QpfDAsbz1vK01hdGguaW11bChNLHN0KXwwLG49bitNYXRoLmltdWwoeSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKHksaHQpfDApK01hdGguaW11bCh3LHV0KXwwLG89bytNYXRoLmltdWwodyxodCl8MCxuPW4rTWF0aC5pbXVsKHAsbHQpfDAsaT0oaT1pK01hdGguaW11bChwLGN0KXwwKStNYXRoLmltdWwoZyxsdCl8MCxvPW8rTWF0aC5pbXVsKGcsY3QpfDA7dmFyIFJ0PShoKyhuPW4rTWF0aC5pbXVsKGwscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChsLGd0KXwwKStNYXRoLmltdWwoYyxwdCl8MCkpPMDwxMyl8MDtoPSgobz1vK01hdGguaW11bChjLGd0KXwwKSsoaT4+PjEzKXwwKSsoUnQ+Pj4yNil8MCxSdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaiwkKSxpPShpPU1hdGguaW11bChqLEgpKStNYXRoLmltdWwoRCwkKXwwLG89TWF0aC5pbXVsKEQsSCksbj1uK01hdGguaW11bChDLFopfDAsaT0oaT1pK01hdGguaW11bChDLFYpfDApK01hdGguaW11bChVLFopfDAsbz1vK01hdGguaW11bChVLFYpfDAsbj1uK01hdGguaW11bCh4LEspfDAsaT0oaT1pK01hdGguaW11bCh4LFgpfDApK01hdGguaW11bChOLEspfDAsbz1vK01hdGguaW11bChOLFgpfDAsbj1uK01hdGguaW11bChrLFEpfDAsaT0oaT1pK01hdGguaW11bChrLHR0KXwwKStNYXRoLmltdWwoTyxRKXwwLG89bytNYXRoLmltdWwoTMyx0dCl8MCxuPW4rTWF0aC5pbXVsKEEscnQpfDAsaT0oaT1pK01hdGguaW11bChBLG50KXwwKStNYXRoLmltdWwoQixydCl8MCxvPW8rTWF0aC5pbXVsKEIsbnQpfDAsbj1uK01hdGguaW11bChFLG90KXwwLGk9KGk9aStNYXRoLmltdWwoRSxzdCl8MCkrTWF0aC5pbXVsKFMsb3QpfDAsbz1vK01hdGguaW11bChTLHN0KXwwLG49bitNYXRoLmltdWwoYix1dCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsaHQpfDApK01hdGguaW11bChNLHV0KXwwLG89bytNYXRoLmltdWwoTSxodCl8MCxuPW4rTWF0aC5pbXVsKHksbHQpfDAsaT0oaT1pK01hdGguaW11bCh5LGN0KXwwKStNYXRoLmltdWwodyxsdCl8MCxvPW8rTWF0aC5pbXVsKHcsY3QpfDA7dmFyIEF0PShoKyhuPW4rTWF0aC5pbXVsKHAscHQpfMDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChwLGd0KXwwKStNYXRoLmltdWwoZyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bChnLGd0KXwwKSsoaT4+PjEzKXwwKSsoQXQ+Pj4yNil8MCxBdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixaKSxpPShpPU1hdGguaW11bChqLFYpKStNYXRoLmltdWwoRCxaKXwwLG89TWF0aC5pbXVsKEQsViksbj1uK01hdGguaW11bChDLEspfDAsaT0oaT1pK01hdGguaW11bChDLFgpfDApK01hdGguaW11bChVLEspfDAsbz1vK01hdGguaW11bChVLFgpfDAsbj1uK01hdGguaW11bCh4LFEpfDAsaT0oaT1pK01hdGguaW11bCh4LHR0KXwwKStNYXRoLmltdWwoTixRKXwwLG89bytNYXRoLmltdWwoTix0dCl8MCxuPW4rTWF0aC5pbXVsKGsscMnQpfDAsaT0oaT1pK01hdGguaW11bChrLG50KXwwKStNYXRoLmltdWwoTyxydCl8MCxvPW8rTWF0aC5pbXVsKE8sbnQpfDAsbj1uK01hdGguaW11bChBLG90KXwwLGk9KGk9aStNYXRoLmltdWwoQSxzdCl8MCkrTWF0aC5pbXVsKEIsb3QpfDAsbz1vK01hdGguaW11bChCLHN0KXwwLG49bitNYXRoLmltdWwoRSx1dCl8MCxpPShpPWkrTWF0aC5pbXVsKEUsaHQpfDApK01hdGguaW11bChTLHV0KXwwLG89bytNYXRoLmltdWwoUyxodCl8MCxuPW4rTWF0aC5pbXVsKGIsbHQpfDAsaT0oaT1pK01hdGguaW11bChiLGN0KXwwKStNYXRoLmltdWwoTSxsdCl8MCxvPW8rTWF0aC5pbXVsKE0sY3QpfDA7dmFyIEJ0PShoKyhuPW4rTWF0aC5pbXVsKHkscHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdMGguaW11bCh5LGd0KXwwKStNYXRoLmltdWwodyxwdCl8MCkpPDwxMyl8MDtoPSgobz1vK01hdGguaW11bCh3LGd0KXwwKSsoaT4+PjEzKXwwKSsoQnQ+Pj4yNil8MCxCdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoaixLKSxpPShpPU1hdGguaW11bChqLFgpKStNYXRoLmltdWwoRCxLKXwwLG89TWF0aC5pbXVsKEQsWCksbj1uK01hdGguaW11bChDLFEpfDAsaT0oaT1pK01hdGgua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5cGUuaXVzaHJuPMWZ1bmN0aW9uKHQsZSxyKXt2YXIgaTtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCksaT1lPyhlLWUlMjYpLzI2OjA7dmFyIG89dCUyNixzPU1hdGgubWluKCh0LW8pLzI2LHRoaXMubGVuZ3RoKSxhPTY3MTA4ODYzXjY3MTA4ODYzPj4+bzw8byx1PXI7aWYoaS09cyxpPU1hdGgubWF4KDAsaSksdSl7Zm9yKHZhciBoPTA7aDxzO2grKyl1LndvcmRzW2hdPXRoaXMud29yZHNbaF07dS5sZW5ndGg9c31pZigwPT09cyk7ZWxzZSBpZih0aGlzLmxlbmd0aD5zKWZvcih0aGlzLmxlbmd0aC09cyxoPTA7aDx0aGlzLmxlbmd0aDtoKyspdGhpcy53b3Jkc1toXT10aGlzLndvcmRzW2grc107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgZj0wO2ZvcihoPXRoaXMubGVuZ3RoLMTE7aD49MCYmKDAhPT1mfHxoPj1pKTtoLS0pe3ZhciBsPTB8dGhpcy53b3Jkc1toXTt0aGlzLndvcmRzW2hdPWY8PDI2LW98bD4+Pm8sZj1sJmF9cmV0dXJuIHUmJjAhPT1mJiYodS53b3Jkc1t1Lmxlbmd0aCsrXT1mKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sby5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih0LGUscil9LG8ucHJvdG90eXBlLnNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih0KX0sby5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4odCl9LMG8ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih0KX0sby5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUo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XNobG5zdWJtdWwoaSwxLGwpLG4uaXNaZXJvKCl8fChuLm5lZ2F0aXZlXj0xKTthJiYoYS53b3Jkc1tsXT1jKX1yZXR1cm4gYSYmYS5fc3RyaXAoKSxuLl9zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6YXx8bnVsbCxtb2Q6bn19LG8ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oIXQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgbygwKSxtb2Q6bmV3IG8oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZT8oYT10aGlzLm5lZygpLmRpdm1vZCh0LGUpLCJtb2QiIT09ZSYmKMGk9YS5kaXYubmVnKCkpLCJkaXYiIT09ZSYmKHM9YS5tb2QubmVnKCksciYmMCE9PXMubmVnYXRpdmUmJnMuaWFkZCh0KSkse2RpdjppLG1vZDpzfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlPyhhPXRoaXMuZGl2bW9kKHQubmVnKCksZSksIm1vZCIhPT1lJiYoaT1hLmRpdi5uZWcoKSkse2RpdjppLG1vZDphLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJnQubmVnYXRpdmUpPyhhPXRoaXMubmVnKCkuZGl2bW9kKHQubmVnKCksZSksImRpdiIhPT1lJiYocz1hLm1vZC5uZWcoKSxyJiYwIT09cy5uZWdhdGl2ZSYmcy5pc3ViKHQpKSx7ZGl2OmEuZGl2LG1vZDpzfSk6dC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHQpPDA/e2RpdjpuZXcgbygwKSxtb2Q6dGhpc306MMT09PXQubGVuZ3RoPyJkaXYiPT09ZT97ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1lP3tkaXY6bnVsbCxtb2Q6bmV3IG8odGhpcy5tb2Rybih0LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHQud29yZHNbMF0pLG1vZDpuZXcgbyh0aGlzLm1vZHJuKHQud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih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pLHQuY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LG8ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZWQ9dCx0aGlzfSxvLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbighdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh0KX0sby5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZMWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsdCl9LG8ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx0KX0sby5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsdCl9LMG8ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLm11bCh0aGlzLHQpfSxvLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx0KSx0aGlzLnJlZC5pbXVsKHRoaXMsdCl9LG8ucHJvdG90eMXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxvLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sby5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LG8ucMHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxvLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sby5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkJiYhdC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsdCl9O3ZhciBiPMXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gTSh0LGUpe3RoaXMubmFtZT10LHRoaXMucD1uZXcgbyhlLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgbygxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gXygpe00uY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBFKCl7TS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bMmN0aW9uIFMoKXtNLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gUigpe00uY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBBKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9by5fcHJpbWUodCk7dGhpcy5tPWUucCx0aGlzLnByaW1lPWV9ZWxzZSBuKHQuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09dCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gQih0KXtBLmNhbGwodGhpcyx0KSx0aGlzLnNoaWZ0PXRoaXMubMS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBvKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfU0ucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgbyhudWxsKTtyZXR1cm4gdC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHR9LE0ucHJvdG90eXBlLmlyZMWR1Y2U9ZnVuY3Rpb24odCl7dmFyIGUscj10O2Rve3RoaXMuc3BsaXQocix0aGlzLnRtcCksZT0ocj0ocj10aGlzLmltdWxLKHIpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoZT50aGlzLm4pO3ZhciBuPWU8dGhpcy5uPy0xOnIudWNtcCh0aGlzLnApO3JldHVybiAwPT09bj8oci53b3Jkc1swXT0wLHIubGVuZ3RoPTEpOm4+MD9yLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1yLnN0cmlwP3Iuc3RyaXAoKTpyLl9zdHJpcCgpLHJ9LE0ucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHQsZSl7dC5pdXNocm4odGhpcy5uLDAsZSl9LE0ucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe3JldHVybiB0LmltdWwodGhpcy5rKX0saShfLE0pLF8ucHJvdG90eXBlLnNwbGl0PWZ1bmN0aMW9uKHQsZSl7Zm9yKHZhciByPTQxOTQzMDMsbj1NYXRoLm1pbih0Lmxlbmd0aCw5KSxpPTA7aTxuO2krKyllLndvcmRzW2ldPXQud29yZHNbaV07aWYoZS5sZW5ndGg9bix0Lmxlbmd0aDw9OSlyZXR1cm4gdC53b3Jkc1swXT0wLHZvaWQodC5sZW5ndGg9MSk7dmFyIG89dC53b3Jkc1s5XTtmb3IoZS53b3Jkc1tlLmxlbmd0aCsrXT1vJnIsaT0xMDtpPHQubGVuZ3RoO2krKyl7dmFyIHM9MHx0LndvcmRzW2ldO3Qud29yZHNbaS0xMF09KHMmcik8PDR8bz4+PjIyLG89c31vPj4+PTIyLHQud29yZHNbaS0xMF09bywwPT09byYmdC5sZW5ndGg+MTA/dC5sZW5ndGgtPTEwOnQubGVuZ3RoLT05fSxfLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXt0LndvcmRzW3QubGVuZ3RoXT0wLHQud29yZMHNbdC5sZW5ndGgrMV09MCx0Lmxlbmd0aCs9Mjtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPTB8dC53b3Jkc1tyXTtlKz05Nzcqbix0LndvcmRzW3JdPTY3MTA4ODYzJmUsZT02NCpuKyhlLzY3MTA4ODY0fDApfXJldHVybiAwPT09dC53b3Jkc1t0Lmxlbmd0aC0xXSYmKHQubGVuZ3RoLS0sMD09PXQud29yZHNbdC5sZW5ndGgtMV0mJnQubGVuZ3RoLS0pLHR9LGkoRSxNKSxpKFMsTSksaShSLE0pLFIucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49MTkqKDB8dC53b3Jkc1tyXSkrZSxpPTY3MTA4ODYzJm47bj4+Pj0yNix0LndvcmRzW3JdPWksZT1ufXJldHVybiAwIT09ZSYmKHQud29yZHNbdC5sZMW5ndGgrK109ZSksdH0sby5fcHJpbWU9ZnVuY3Rpb24odCl7aWYoYlt0XSlyZXR1cm4gYlt0XTt2YXIgZTtpZigiazI1NiI9PT10KWU9bmV3IF87ZWxzZSBpZigicDIyNCI9PT10KWU9bmV3IEU7ZWxzZSBpZigicDE5MiI9PT10KWU9bmV3IFM7ZWxzZXtpZigicDI1NTE5IiE9PXQpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrdCk7ZT1uZXcgUn1yZXR1cm4gYlt0XT1lLGV9LEEucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHQpe24oMD09PXQubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbih0LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxBLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbih0LGUpe24oMD09KHQubMmVnYXRpdmV8ZS5uZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbih0LnJlZCYmdC5yZWQ9PT1lLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxBLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh0KS5fZm9yY2VSZWQodGhpcyk6KGYodCx0LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcykpLHQpfSxBLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNaZXJvKCk/dC5jbG9uZSgpOnRoaXMubS5zdWIodCkuX2ZvcmNlUmVkKHRoaXMpfSxBLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5hZGQoZSk7cMmV0dXJuIHIuY21wKHRoaXMubSk+PTAmJnIuaXN1Yih0aGlzLm0pLHIuX2ZvcmNlUmVkKHRoaXMpfSxBLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciByPXQuaWFkZChlKTtyZXR1cm4gci5jbXAodGhpcy5tKT49MCYmci5pc3ViKHRoaXMubSkscn0sQS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciByPXQuc3ViKGUpO3JldHVybiByLmNtcG4oMCk8MCYmci5pYWRkKHRoaXMubSksci5fZm9yY2VSZWQodGhpcyl9LEEucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24odCxlKXt0aGlzLl92ZXJpZnkyKHQsZSk7dmFyIHI9dC5pc3ViKGUpO3JldHVybiByLmNtcG4oMCk8MCYmci5pYWRkKHRoaXMubSkscn0sQMS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEodCksdGhpcy5pbW9kKHQudXNobG4oZSkpfSxBLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIodCxlKSx0aGlzLmltb2QodC5pbXVsKGUpKX0sQS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIodCxlKSx0aGlzLmltb2QodC5tdWwoZSkpfSxBLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltdWwodCx0LmNsb25lKCkpfSxBLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubXVsKHQsdCl9LEEucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24odCl7aWYodC5pc1plcm8oKSlyZXR1cMm4gdC5jbG9uZSgpO3ZhciBlPXRoaXMubS5hbmRsbigzKTtpZihuKGUlMj09MSksMz09PWUpe3ZhciByPXRoaXMubS5hZGQobmV3IG8oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3codCxyKX1mb3IodmFyIGk9dGhpcy5tLnN1Ym4oMSkscz0wOyFpLmlzWmVybygpJiYwPT09aS5hbmRsbigxKTspcysrLGkuaXVzaHJuKDEpO24oIWkuaXNaZXJvKCkpO3ZhciBhPW5ldyBvKDEpLnRvUmVkKHRoaXMpLHU9YS5yZWROZWcoKSxoPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxmPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoZj1uZXcgbygyKmYqZikudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KGYsaCkuY21wKHUpOylmLnJlZElBZGQodSk7Zm9yKHZhciBsPXRoaXMucG93KGYsaSksYz10aGlzLMnBvdyh0LGkuYWRkbigxKS5pdXNocm4oMSkpLGQ9dGhpcy5wb3codCxpKSxwPXM7MCE9PWQuY21wKGEpOyl7Zm9yKHZhciBnPWQsbT0wOzAhPT1nLmNtcChhKTttKyspZz1nLnJlZFNxcigpO24obTxwKTt2YXIgeT10aGlzLnBvdyhsLG5ldyBvKDEpLml1c2hsbihwLW0tMSkpO2M9Yy5yZWRNdWwoeSksbD15LnJlZFNxcigpLGQ9ZC5yZWRNdWwobCkscD1tfXJldHVybiBjfSxBLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT1lLm5lZ2F0aXZlPyhlLm5lZ2F0aXZlPTAsdGhpcy5pbW9kKGUpLnJlZE5lZygpKTp0aGlzLmltb2QoZSl9LEEucHJvdG90eXBlLnBvdz1mdW5jdGlvbih0LGUpe2lmKGUuaXNaZXJvKCkpcmV0dXJuIG5ldMyBvKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1lLmNtcG4oMSkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgcj1uZXcgQXJyYXkoMTYpO3JbMF09bmV3IG8oMSkudG9SZWQodGhpcyksclsxXT10O2Zvcih2YXIgbj0yO248ci5sZW5ndGg7bisrKXJbbl09dGhpcy5tdWwocltuLTFdLHQpO3ZhciBpPXJbMF0scz0wLGE9MCx1PWUuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT11JiYodT0yNiksbj1lLmxlbmd0aC0xO24+PTA7bi0tKXtmb3IodmFyIGg9ZS53b3Jkc1tuXSxmPXUtMTtmPj0wO2YtLSl7dmFyIGw9aD4+ZiYxO2khPT1yWzBdJiYoaT10aGlzLnNxcihpKSksMCE9PWx8fDAhPT1zPyhzPDw9MSxzfD1sLCg0PT09KythfHwwPT09biYmMD09PWYpJiYoaT10aGlzLm11bChpLHJbc10pLGE9MCxzPTApKMTphPTB9dT0yNn1yZXR1cm4gaX0sQS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3ZhciBlPXQudW1vZCh0aGlzLm0pO3JldHVybiBlPT09dD9lLmNsb25lKCk6ZX0sQS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odCl7dmFyIGU9dC5jbG9uZSgpO3JldHVybiBlLnJlZD1udWxsLGV9LG8ubW9udD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEIodCl9LGkoQixBKSxCLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW1vZCh0LnVzaGxuKHRoaXMuc2hpZnQpKX0sQi5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbW9kKHQubXVsKHRoaXMucmludikpO3JldHVybiBlLnJlZD1udWxsLGV9LEIucHJvdG90eMXBlLmltdWw9ZnVuY3Rpb24odCxlKXtpZih0LmlzWmVybygpfHxlLmlzWmVybygpKXJldHVybiB0LndvcmRzWzBdPTAsdC5sZW5ndGg9MSx0O3ZhciByPXQuaW11bChlKSxuPXIubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLGk9ci5pc3ViKG4pLml1c2hybih0aGlzLnNoaWZ0KSxvPWk7cmV0dXJuIGkuY21wKHRoaXMubSk+PTA/bz1pLmlzdWIodGhpcy5tKTppLmNtcG4oMCk8MCYmKG89aS5pYWRkKHRoaXMubSkpLG8uX2ZvcmNlUmVkKHRoaXMpfSxCLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24odCxlKXtpZih0LmlzWmVybygpfHxlLmlzWmVybygpKXJldHVybiBuZXcgbygwKS5fZm9yY2VSZWQodGhpcyk7dmFyIHI9dC5tdMWwoZSksbj1yLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxpPXIuaXN1YihuKS5pdXNocm4odGhpcy5zaGlmdCkscz1pO3JldHVybiBpLmNtcCh0aGlzLm0pPj0wP3M9aS5pc3ViKHRoaXMubSk6aS5jbXBuKDApPDAmJihzPWkuaWFkZCh0aGlzLm0pKSxzLl9mb3JjZVJlZCh0aGlzKX0sQi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbW9kKHQuX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fSh0PXIubm1kKHQpLHRoaXMpfSw3NjQ6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBuPXIoNzQyKSxpPXIoNjQ1KSxvPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ibM2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtlLkJ1ZmZlcj11LGUuU2xvd0J1ZmZlcj1mdW5jdGlvbih0KXsrdCE9dCYmKHQ9MCk7cmV0dXJuIHUuYWxsb2MoK3QpfSxlLklOU1BFQ1RfTUFYX0JZVEVTPTUwO2NvbnN0IHM9MjE0NzQ4MzY0NztmdW5jdGlvbiBhKHQpe2lmKHQ+cyl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO2NvbnN0IGU9bmV3IFVpbnQ4QXJyYXkodCk7cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihlLHUucHJvdG90eXBlKSxlfWZ1bmN0aW9uIHUodCxlLHIpe2lmKCJudW1iZXIiPT10eXBlbM2YgdCl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3JldHVybiBsKHQpfXJldHVybiBoKHQsZSxyKX1mdW5jdGlvbiBoKHQsZSxyKXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7InN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWV8fChlPSJ1dGY4Iik7aWYoIXUuaXNFbmNvZGluZyhlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2UpO2NvbnN0IHI9MHxnKHQsZSk7bGV0IG49YShyKTtjb25zdCBpPW4ud3JpdGUodCxlKTtpIT09ciYmKG49bi5zbGljZSgwLGkpKTtyZXR1cm4gbMn0odCxlKTtpZihBcnJheUJ1ZmZlci5pc1ZpZXcodCkpcmV0dXJuIGZ1bmN0aW9uKHQpe2lmKFkodCxVaW50OEFycmF5KSl7Y29uc3QgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gZChlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKX1yZXR1cm4gYyh0KX0odCk7aWYobnVsbD09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiB0KTtpZihZKHQsQXJyYXlCdWZmZXIpfHx0JiZZKHQuYnVmZmVyLEFycmF5QnVmZmVyKSlyZXR1cm4gZCh0LGUscik7aWYoInVuZGVmaW5lZMCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKFkodCxTaGFyZWRBcnJheUJ1ZmZlcil8fHQmJlkodC5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gZCh0LGUscik7aWYoIm51bWJlciI9PXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO2NvbnN0IG49dC52YWx1ZU9mJiZ0LnZhbHVlT2YoKTtpZihudWxsIT1uJiZuIT09dClyZXR1cm4gdS5mcm9tKG4sZSxyKTtjb25zdCBpPWZ1bmN0aW9uKHQpe2lmKHUuaXNCdWZmZXIodCkpe2NvbnN0IGU9MHxwKHQubGVuZ3RoKSxyPWEoZSk7cmV0dXJuIDA9PT1yLmxlbmd0aHx8dC5jb3B5KHIsMCwwLMGUpLHJ9aWYodm9pZCAwIT09dC5sZW5ndGgpcmV0dXJuIm51bWJlciIhPXR5cGVvZiB0Lmxlbmd0aHx8Syh0Lmxlbmd0aCk/YSgwKTpjKHQpO2lmKCJCdWZmZXIiPT09dC50eXBlJiZBcnJheS5pc0FycmF5KHQuZGF0YSkpcmV0dXJuIGModC5kYXRhKX0odCk7aWYoaSlyZXR1cm4gaTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLnRvUHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgdFtTeW1ib2wudG9QcmltaXRpdmVdKXJldHVybiB1LmZyb20odFtTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSxlLHIpO3Rocm93IG5ldyBUeXBlRXJyb3IoIlRoZSBmaXJzdCBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBBcnJheMUJ1ZmZlciwgQXJyYXksIG9yIEFycmF5LWxpa2UgT2JqZWN0LiBSZWNlaXZlZCB0eXBlICIrdHlwZW9mIHQpfWZ1bmN0aW9uIGYodCl7aWYoIm51bWJlciIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7aWYodDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrdCsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZih0KSxhKHQ8MD8wOjB8cCh0KSl9ZnVuY3Rpb24gYyh0KXtjb25zdCBlPXQubGVuZ3RoPDA/MDowfHAodC5sZW5ndGgpLHI9YShlKTtmb3IobGV0IG49MDtuPGU7bis9MSlyW25dPTI1NSZ0W25dO3JldHVybiByfWZ1bmN0aW9uIMGQodCxlLHIpe2lmKGU8MHx8dC5ieXRlTGVuZ3RoPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJvZmZzZXQiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKHQuYnl0ZUxlbmd0aDxlKyhyfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignImxlbmd0aCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7bGV0IG47cmV0dXJuIG49dm9pZCAwPT09ZSYmdm9pZCAwPT09cj9uZXcgVWludDhBcnJheSh0KTp2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KHQsZSk6bmV3IFVpbnQ4QXJyYXkodCxlLHIpLE9iamVjdC5zZXRQcm90b3R5cGVPZihuLHUucHJvdG90eXBlKSxufWZ1bmN0aW9uIHAodCl7aWYodD49cyl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZMSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11bSBzaXplOiAweCIrcy50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfHR9ZnVuY3Rpb24gZyh0LGUpe2lmKHUuaXNCdWZmZXIodCkpcmV0dXJuIHQubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyh0KXx8WSh0LEFycmF5QnVmZmVyKSlyZXR1cm4gdC5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7Y29uc3Qgcj10Lmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmITA9PT1hcmd1bWVudHNbMl07aWYoIMW4mJjA9PT1yKXJldHVybiAwO2xldCBpPSExO2Zvcig7Oylzd2l0Y2goZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gcjtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBHKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqcjtjYXNlImhleCI6cmV0dXJuIHI+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gWih0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBuPy0xOkcodCkubGVuZ3RoO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksaT0hMH19ZnVuY3Rpb24gbSh0LGUscil7bGV0IG49ITE7aWYoKHZvaWQgMD09PWV8fGU8MCkmJihlPTApLGU+dGhpcy5sZW5ndGgpcmV0dMXJuIiI7aWYoKHZvaWQgMD09PXJ8fHI+dGhpcy5sZW5ndGgpJiYocj10aGlzLmxlbmd0aCkscjw9MClyZXR1cm4iIjtpZigocj4+Pj0wKTw9KGU+Pj49MCkpcmV0dXJuIiI7Zm9yKHR8fCh0PSJ1dGY4Iik7Oylzd2l0Y2godCl7Y2FzZSJoZXgiOnJldHVybiBPKHRoaXMsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBBKHRoaXMsZSxyKTtjYXNlImFzY2lpIjpyZXR1cm4gTCh0aGlzLGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gayh0aGlzLGUscik7Y2FzZSJiYXNlNjQiOnJldHVybiBSKHRoaXMsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFQodGhpcyxlLHIpO2RlZmF1bHQ6aWYobMil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3Q9KHQrIiIpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24geSh0LGUscil7Y29uc3Qgbj10W2VdO3RbZV09dFtyXSx0W3JdPW59ZnVuY3Rpb24gdyh0LGUscixuLGkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4tMTtpZigic3RyaW5nIj09dHlwZW9mIHI/KG49cixyPTApOnI+MjE0NzQ4MzY0Nz9yPTIxNDc0ODM2NDc6cjwtMjE0NzQ4MzY0OCYmKHI9LTIxNDc0ODM2NDgpLEsocj0rcikmJihyPWk/MDp0Lmxlbmd0aC0xKSxyPDAmJihyPXQubGVuZ3RoK3IpLHI+PXQubGVuZ3RoKXtpZihpKXJldHVybi0xO3I9dC5sZW5ndGgtMX1lbHNlIGlmKHI8MCl7aWYoIWkpcmV0dXJuLTE7cj0wfWlmKCJzdHJpbmciPMT10eXBlb2YgZSYmKGU9dS5mcm9tKGUsbikpLHUuaXNCdWZmZXIoZSkpcmV0dXJuIDA9PT1lLmxlbmd0aD8tMTp2KHQsZSxyLG4saSk7aWYoIm51bWJlciI9PXR5cGVvZiBlKXJldHVybiBlJj0yNTUsImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/aT9VaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwodCxlLHIpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwodCxlLHIpOnYodCxbZV0scixuLGkpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIpfWZ1bmN0aW9uIHYodCxlLHIsbixpKXtsZXQgbyxzPTEsYT10Lmxlbmd0aCx1PWUubGVuZ3RoO2lmKHZvaWQgMCE9PMW4mJigidWNzMiI9PT0obj1TdHJpbmcobikudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT1ufHwidXRmMTZsZSI9PT1ufHwidXRmLTE2bGUiPT09bikpe2lmKHQubGVuZ3RoPDJ8fGUubGVuZ3RoPDIpcmV0dXJuLTE7cz0yLGEvPTIsdS89MixyLz0yfWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gMT09PXM/dFtlXTp0LnJlYWRVSW50MTZCRShlKnMpfWlmKGkpe2xldCBuPS0xO2ZvcihvPXI7bzxhO28rKylpZihoKHQsbyk9PT1oKGUsLTE9PT1uPzA6by1uKSl7aWYoLTE9PT1uJiYobj1vKSxvLW4rMT09PXUpcmV0dXJuIG4qc31lbHNlLTEhPT1uJiYoby09by1uKSxuPS0xfWVsc2UgZm9yKHIrdT5hJiYocj1hLXUpLG89cjtvPj0wO28tLSl7bGV0IHI9ITA7Zm9yKGxldCBuPTA7bjx1O24rKylpZMihoKHQsbytuKSE9PWgoZSxuKSl7cj0hMTticmVha31pZihyKXJldHVybiBvfXJldHVybi0xfWZ1bmN0aW9uIGIodCxlLHIsbil7cj1OdW1iZXIocil8fDA7Y29uc3QgaT10Lmxlbmd0aC1yO24/KG49TnVtYmVyKG4pKT5pJiYobj1pKTpuPWk7Y29uc3Qgbz1lLmxlbmd0aDtsZXQgcztmb3Iobj5vLzImJihuPW8vMikscz0wO3M8bjsrK3Mpe2NvbnN0IG49cGFyc2VJbnQoZS5zdWJzdHIoMipzLDIpLDE2KTtpZihLKG4pKXJldHVybiBzO3RbcitzXT1ufXJldHVybiBzfWZ1bmN0aW9uIE0odCxlLHIsbil7cmV0dXJuIFYoRyhlLHQubGVuZ3RoLXIpLHQscixuKX1mdW5jdGlvbiBfKHQsZSxyLG4pe3JldHVybiBWKGZ1bmN0aW9uKHQpe2NvbnN0IGU9W107Zm9yKGxldCByPTA7cjx0Lmxlbmd0aMDsrK3IpZS5wdXNoKDI1NSZ0LmNoYXJDb2RlQXQocikpO3JldHVybiBlfShlKSx0LHIsbil9ZnVuY3Rpb24gRSh0LGUscixuKXtyZXR1cm4gVihaKGUpLHQscixuKX1mdW5jdGlvbiBTKHQsZSxyLG4pe3JldHVybiBWKGZ1bmN0aW9uKHQsZSl7bGV0IHIsbixpO2NvbnN0IG89W107Zm9yKGxldCBzPTA7czx0Lmxlbmd0aCYmISgoZS09Mik8MCk7KytzKXI9dC5jaGFyQ29kZUF0KHMpLG49cj4+OCxpPXIlMjU2LG8ucHVzaChpKSxvLnB1c2gobik7cmV0dXJuIG99KGUsdC5sZW5ndGgtciksdCxyLG4pfWZ1bmN0aW9uIFIodCxlLHIpe3JldHVybiAwPT09ZSYmcj09PXQubGVuZ3RoP24uZnJvbUJ5dGVBcnJheSh0KTpuLmZyb21CeXRlQXJyYXkodC5zbGljZShlLHIpKX1mdW5jdGlvbiBBKHQsZMSxyKXtyPU1hdGgubWluKHQubGVuZ3RoLHIpO2NvbnN0IG49W107bGV0IGk9ZTtmb3IoO2k8cjspe2NvbnN0IGU9dFtpXTtsZXQgbz1udWxsLHM9ZT4yMzk/NDplPjIyMz8zOmU+MTkxPzI6MTtpZihpK3M8PXIpe2xldCByLG4sYSx1O3N3aXRjaChzKXtjYXNlIDE6ZTwxMjgmJihvPWUpO2JyZWFrO2Nhc2UgMjpyPXRbaSsxXSwxMjg9PSgxOTImcikmJih1PSgzMSZlKTw8Nnw2MyZyLHU+MTI3JiYobz11KSk7YnJlYWs7Y2FzZSAzOnI9dFtpKzFdLG49dFtpKzJdLDEyOD09KDE5MiZyKSYmMTI4PT0oMTkyJm4pJiYodT0oMTUmZSk8PDEyfCg2MyZyKTw8Nnw2MyZuLHU+MjA0NyYmKHU8NTUyOTZ8fHU+NTczNDMpJiYobz11KSk7YnJlYWs7Y2FzZSA0OnI9dFtpKzFdLG49dFtpKzJdLGE9dFtpKMzNdLDEyOD09KDE5MiZyKSYmMTI4PT0oMTkyJm4pJiYxMjg9PSgxOTImYSkmJih1PSgxNSZlKTw8MTh8KDYzJnIpPDwxMnwoNjMmbik8PDZ8NjMmYSx1PjY1NTM1JiZ1PDExMTQxMTImJihvPXUpKX19bnVsbD09PW8/KG89NjU1MzMscz0xKTpvPjY1NTM1JiYoby09NjU1MzYsbi5wdXNoKG8+Pj4xMCYxMDIzfDU1Mjk2KSxvPTU2MzIwfDEwMjMmbyksbi5wdXNoKG8pLGkrPXN9cmV0dXJuIGZ1bmN0aW9uKHQpe2NvbnN0IGU9dC5sZW5ndGg7aWYoZTw9QilyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdCk7bGV0IHI9IiIsbj0wO2Zvcig7bjxlOylyKz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0LnNsaWNlKG4sbis9QikpO3JldHVybiByfShuKX1lLMmtNYXhMZW5ndGg9cyx1LlRZUEVEX0FSUkFZX1NVUFBPUlQ9ZnVuY3Rpb24oKXt0cnl7Y29uc3QgdD1uZXcgVWludDhBcnJheSgxKSxlPXtmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZih0LGUpLDQyPT09dC5mb28oKX1jYXRjaCh0KXtyZXR1cm4hMX19KCksIXUuVFlQRURfQVJSQVlfU1VQUE9SVCYmInVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLmVycm9yLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LnByb3RvdHlwZSwicGFyZW50Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZih1LmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aMGlzLmJ1ZmZlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodS5wcm90b3R5cGUsIm9mZnNldCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYodS5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5ieXRlT2Zmc2V0fX0pLHUucG9vbFNpemU9ODE5Mix1LmZyb209ZnVuY3Rpb24odCxlLHIpe3JldHVybiBoKHQsZSxyKX0sT2JqZWN0LnNldFByb3RvdHlwZU9mKHUucHJvdG90eXBlLFVpbnQ4QXJyYXkucHJvdG90eXBlKSxPYmplY3Quc2V0UHJvdG90eXBlT2YodSxVaW50OEFycmF5KSx1LmFsbG9jPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3JldHVybiBmKHQpLHQ8PTA/YSh0KTp2b2lkIDAhPT1lPyJzdHJpbmciPT10eXBlb2Ygcj9hKHQpLmZpbGwoZMSxyKTphKHQpLmZpbGwoZSk6YSh0KX0odCxlLHIpfSx1LmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQpfSx1LmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KX0sdS5pc0J1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmITA9PT10Ll9pc0J1ZmZlciYmdCE9PXUucHJvdG90eXBlfSx1LmNvbXBhcmU9ZnVuY3Rpb24odCxlKXtpZihZKHQsVWludDhBcnJheSkmJih0PXUuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLFkoZSxVaW50OEFycmF5KSYmKGU9dS5mcm9tKGUsZS5vZmZzZXQsZS5ieXRlTGVuZ3RoKSksIXUuaXNCdWZmZXIodCl8fCF1LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIMiBhcmd1bWVudHMgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKHQ9PT1lKXJldHVybiAwO2xldCByPXQubGVuZ3RoLG49ZS5sZW5ndGg7Zm9yKGxldCBpPTAsbz1NYXRoLm1pbihyLG4pO2k8bzsrK2kpaWYodFtpXSE9PWVbaV0pe3I9dFtpXSxuPWVbaV07YnJlYWt9cmV0dXJuIHI8bj8tMTpuPHI/MTowfSx1LmlzRW5jb2Rpbmc9ZnVuY3Rpb24odCl7c3dpdGNoKFN0cmluZyh0KS50b0xvd2VyQ2FzZSgpKXtjYXNlImhleCI6Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpjYXNlImFzY2lpIjpjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dMXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19LHUuY29uY2F0PWZ1bmN0aW9uKHQsZSl7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdS5hbGxvYygwKTtsZXQgcjtpZih2b2lkIDA9PT1lKWZvcihlPTAscj0wO3I8dC5sZW5ndGg7KytyKWUrPXRbcl0ubGVuZ3RoO2NvbnN0IG49dS5hbGxvY1Vuc2FmZShlKTtsZXQgaT0wO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3Ipe2xldCBlPXRbcl07aWYoWShlLFVpbnQ4QXJyYXkpKWkrZS5sZW5ndGg+bi5sZW5ndGg/KHUuaXNCdWZmZXIoZSl8fChlPXUuZnJvbShlKSksZS5jb3B5KG4saSkpOlVpbnQ4QXJyYMXkucHJvdG90eXBlLnNldC5jYWxsKG4sZSxpKTtlbHNle2lmKCF1LmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtlLmNvcHkobixpKX1pKz1lLmxlbmd0aH1yZXR1cm4gbn0sdS5ieXRlTGVuZ3RoPWcsdS5wcm90b3R5cGUuX2lzQnVmZmVyPSEwLHUucHJvdG90eXBlLnN3YXAxNj1mdW5jdGlvbigpe2NvbnN0IHQ9dGhpcy5sZW5ndGg7aWYodCUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2ZvcihsZXQgZT0wO2U8dDtlKz0yKXkodGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLnN3YXAzMj1mdW5jdMGlvbigpe2NvbnN0IHQ9dGhpcy5sZW5ndGg7aWYodCU0IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzItYml0cyIpO2ZvcihsZXQgZT0wO2U8dDtlKz00KXkodGhpcyxlLGUrMykseSh0aGlzLGUrMSxlKzIpO3JldHVybiB0aGlzfSx1LnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXtjb25zdCB0PXRoaXMubGVuZ3RoO2lmKHQlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IobGV0IGU9MDtlPHQ7ZSs9OCl5KHRoaXMsZSxlKzcpLHkodGhpcyxlKzEsZSs2KSx5KHRoaXMsZSsyLGUrNSkseSh0aGlzLGUrMyxlKzQpO3JldHVybiB0aGlzfSx1LMnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2NvbnN0IHQ9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT10PyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP0EodGhpcywwLHQpOm0uYXBwbHkodGhpcyxhcmd1bWVudHMpfSx1LnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz11LnByb3RvdHlwZS50b1N0cmluZyx1LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7aWYoIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dHx8MD09PXUuY29tcGFyZSh0aGlzLHQpfSx1LnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7bGV0IHQ9IiI7Y29uc3Qgcj1lLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiB0PXRoaMXMudG9TdHJpbmcoImhleCIsMCxyKS5yZXBsYWNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPnImJih0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3QrIj4ifSxvJiYodS5wcm90b3R5cGVbb109dS5wcm90b3R5cGUuaW5zcGVjdCksdS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUscixuLGkpe2lmKFkodCxVaW50OEFycmF5KSYmKHQ9dS5mcm9tKHQsdC5vZmZzZXQsdC5ieXRlTGVuZ3RoKSksIXUuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ0YXJnZXQiIGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXkuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7aWYodm9pZCAwPT09ZSYmKGU9MCksdm9pZCAwPMT09ciYmKHI9dD90Lmxlbmd0aDowKSx2b2lkIDA9PT1uJiYobj0wKSx2b2lkIDA9PT1pJiYoaT10aGlzLmxlbmd0aCksZTwwfHxyPnQubGVuZ3RofHxuPDB8fGk+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKG4+PWkmJmU+PXIpcmV0dXJuIDA7aWYobj49aSlyZXR1cm4tMTtpZihlPj1yKXJldHVybiAxO2lmKHRoaXM9PT10KXJldHVybiAwO2xldCBvPShpPj4+PTApLShuPj4+PTApLHM9KHI+Pj49MCktKGU+Pj49MCk7Y29uc3QgYT1NYXRoLm1pbihvLHMpLGg9dGhpcy5zbGljZShuLGkpLGY9dC5zbGljZShlLHIpO2ZvcihsZXQgdD0wO3Q8YTsrK3QpaWYoaFt0XSE9PWZbdF0pe289aFt0XSxzPWZbdF07YnJlYWt9cmV0dXJuIG88cMz8tMTpzPG8/MTowfSx1LnByb3RvdHlwZS5pbmNsdWRlcz1mdW5jdGlvbih0LGUscil7cmV0dXJuLTEhPT10aGlzLmluZGV4T2YodCxlLHIpfSx1LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdyh0aGlzLHQsZSxyLCEwKX0sdS5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0IG9mIGJvdMW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gSSh0LGUscixuLGkpe3ooZSxuLGksdCxyLDcpO2xldCBvPU51bWJlcihlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7dFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW8sbz4+PTgsdFtyKytdPW87bGV0IHM9TnVtYmVyKGU+PkJpZ0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscz4+PTgsdFtyKytdPXMscn1mdW5jdGlvbiBDKHQsZSxyLG4saSl7eihlLG4saSx0LHIsNyk7bGV0IG89TnVtYmVyKGUmQmlnSW50KDQyOTQ5NjcyOTUpKTt0W3IrN109byxvPj49OCx0WM3IrNl09byxvPj49OCx0W3IrNV09byxvPj49OCx0W3IrNF09bztsZXQgcz1OdW1iZXIoZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiB0W3IrM109cyxzPj49OCx0W3IrMl09cyxzPj49OCx0W3IrMV09cyxzPj49OCx0W3JdPXMscis4fWZ1bmN0aW9uIFUodCxlLHIsbixpLG8pe2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYocjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBQKHQsZSxyLG4sbyl7cmV0dXJuIGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsNCksaS53cml0ZSh0LGUscixuLDIzLDQpLHIrNH1mdW5jdGlvbiBqKHQsZSxyLG4sbyl7cmV0dXJuIMGU9K2Uscj4+Pj0wLG98fFUodCwwLHIsOCksaS53cml0ZSh0LGUscixuLDUyLDgpLHIrOH11LnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0LGUpe2NvbnN0IHI9dGhpcy5sZW5ndGg7KHQ9fn50KTwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLChlPXZvaWQgMD09PWU/cjp+fmUpPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksZTx0JiYoZT10KTtjb25zdCBuPXRoaXMuc3ViYXJyYXkodCxlKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKG4sdS5wcm90b3R5cGUpLG59LHUucHJvdG90eXBlLnJlYWRVaW50TEU9dS5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHx4KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49dGhpc1t0XSxpPMTEsbz0wO2Zvcig7KytvPGUmJihpKj0yNTYpOyluKz10aGlzW3Qrb10qaTtyZXR1cm4gbn0sdS5wcm90b3R5cGUucmVhZFVpbnRCRT11LnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fHgodCxlLHRoaXMubGVuZ3RoKTtsZXQgbj10aGlzW3QrLS1lXSxpPTE7Zm9yKDtlPjAmJihpKj0yNTYpOyluKz10aGlzW3QrLS1lXSppO3JldHVybiBufSx1LnByb3RvdHlwZS5yZWFkVWludDg9dS5wcm90b3R5cGUucmVhZFVJbnQ4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsMSx0aGlzLmxlbmd0aCksdGhpc1t0XX0sdS5wcm90b3R5cGUucmVhZFVpbnQxNkxFPXUucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbih0LGUpe3JldMHVybiB0Pj4+PTAsZXx8eCh0LDIsdGhpcy5sZW5ndGgpLHRoaXNbdF18dGhpc1t0KzFdPDw4fSx1LnByb3RvdHlwZS5yZWFkVWludDE2QkU9dS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LHUucHJvdG90eXBlLnJlYWRVaW50MzJMRT11LnByb3RvdHlwZS5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fHgodCw0LHRoaXMubGVuZ3RoKSwodGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNikrMTY3NzcyMTYqdGhpc1t0KzNdfSx1LnByb3RvdHlwZS5yZWFkVWludDMyQkU9dS5wcm90b3R5cGUucmVhZFVJbnQzMkJFPWZ1bmN0aMW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0XSsodGhpc1t0KzFdPDwxNnx0aGlzW3QrMl08PDh8dGhpc1t0KzNdKX0sdS5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NExFPUooKGZ1bmN0aW9uKHQpe1codD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBlPXRoaXNbdF0scj10aGlzW3QrN107dm9pZCAwIT09ZSYmdm9pZCAwIT09cnx8JCh0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49ZSsyNTYqdGhpc1srK3RdKzY1NTM2KnRoaXNbKyt0XSt0aGlzWysrdF0qMioqMjQsaT10aGlzWysrdF0rMjU2KnRoaXNbKyt0XSs2NTUzNip0aGlzWysrdF0rcioyKioyNDtyZXR1cm4gQmlnSW50KG4pKyhCaWdJbnQoaSk8PEJpZ0ludCgzMikpfSkpLHUucHJvdMG90eXBlLnJlYWRCaWdVSW50NjRCRT1KKChmdW5jdGlvbih0KXtXKHQ+Pj49MCwib2Zmc2V0Iik7Y29uc3QgZT10aGlzW3RdLHI9dGhpc1t0KzddO3ZvaWQgMCE9PWUmJnZvaWQgMCE9PXJ8fCQodCx0aGlzLmxlbmd0aC04KTtjb25zdCBuPWUqMioqMjQrNjU1MzYqdGhpc1srK3RdKzI1Nip0aGlzWysrdF0rdGhpc1srK3RdLGk9dGhpc1srK3RdKjIqKjI0KzY1NTM2KnRoaXNbKyt0XSsyNTYqdGhpc1srK3RdK3I7cmV0dXJuKEJpZ0ludChuKTw8QmlnSW50KDMyKSkrQmlnSW50KGkpfSkpLHUucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHx4KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49dGhpc1t0XSxpPTEsbz0wO2Zvcig7KytvPGUmJihpKj0yNMTYpOyluKz10aGlzW3Qrb10qaTtyZXR1cm4gaSo9MTI4LG4+PWkmJihuLT1NYXRoLnBvdygyLDgqZSkpLG59LHUucHJvdG90eXBlLnJlYWRJbnRCRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHx4KHQsZSx0aGlzLmxlbmd0aCk7bGV0IG49ZSxpPTEsbz10aGlzW3QrLS1uXTtmb3IoO24+MCYmKGkqPTI1Nik7KW8rPXRoaXNbdCstLW5dKmk7cmV0dXJuIGkqPTEyOCxvPj1pJiYoby09TWF0aC5wb3coMiw4KmUpKSxvfSx1LnByb3RvdHlwZS5yZWFkSW50OD1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8eCh0LDEsdGhpcy5sZW5ndGgpLDEyOCZ0aGlzW3RdPy0xKigyNTUtdGhpc1t0XSsxKTp0aGlzW3RdfSx1LnByb3RvdHlwZS5yZWFkSW50MTZMRT1mdW5jdGlvbih0LMGUpe3Q+Pj49MCxlfHx4KHQsMix0aGlzLmxlbmd0aCk7Y29uc3Qgcj10aGlzW3RdfHRoaXNbdCsxXTw8ODtyZXR1cm4gMzI3Njgmcj80Mjk0OTAxNzYwfHI6cn0sdS5wcm90b3R5cGUucmVhZEludDE2QkU9ZnVuY3Rpb24odCxlKXt0Pj4+PTAsZXx8eCh0LDIsdGhpcy5sZW5ndGgpO2NvbnN0IHI9dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LHUucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fSx1LnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0PMj4+PTAsZXx8eCh0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDI0fHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXX0sdS5wcm90b3R5cGUucmVhZEJpZ0ludDY0TEU9SigoZnVuY3Rpb24odCl7Vyh0Pj4+PTAsIm9mZnNldCIpO2NvbnN0IGU9dGhpc1t0XSxyPXRoaXNbdCs3XTt2b2lkIDAhPT1lJiZ2b2lkIDAhPT1yfHwkKHQsdGhpcy5sZW5ndGgtOCk7Y29uc3Qgbj10aGlzW3QrNF0rMjU2KnRoaXNbdCs1XSs2NTUzNip0aGlzW3QrNl0rKHI8PDI0KTtyZXR1cm4oQmlnSW50KG4pPDxCaWdJbnQoMzIpKStCaWdJbnQoZSsyNTYqdGhpc1srK3RdKzY1NTM2KnRoaXNbKyt0XSt0aGlzWysrdF0qMioqMjQpfSkpLHUucHJvdG90eXBlLnJlYWRCaWdJbnQ2NEJFPUooKGZ1bmN0aMW9uKHQpe1codD4+Pj0wLCJvZmZzZXQiKTtjb25zdCBlPXRoaXNbdF0scj10aGlzW3QrN107dm9pZCAwIT09ZSYmdm9pZCAwIT09cnx8JCh0LHRoaXMubGVuZ3RoLTgpO2NvbnN0IG49KGU8PDI0KSs2NTUzNip0aGlzWysrdF0rMjU2KnRoaXNbKyt0XSt0aGlzWysrdF07cmV0dXJuKEJpZ0ludChuKTw8QmlnSW50KDMyKSkrQmlnSW50KHRoaXNbKyt0XSoyKioyNCs2NTUzNip0aGlzWysrdF0rMjU2KnRoaXNbKyt0XStyKX0pKSx1LnByb3RvdHlwZS5yZWFkRmxvYXRMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8eCh0LDQsdGhpcy5sZW5ndGgpLGkucmVhZCh0aGlzLHQsITAsMjMsNCl9LHUucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MMCxlfHx4KHQsNCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMSwyMyw0KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsOCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMCw1Miw4KX0sdS5wcm90b3R5cGUucmVhZERvdWJsZUJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHx4KHQsOCx0aGlzLmxlbmd0aCksaS5yZWFkKHRoaXMsdCwhMSw1Miw4KX0sdS5wcm90b3R5cGUud3JpdGVVaW50TEU9dS5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAscj4+Pj0wLCFuKXtOKHRoaXMsdCxlLHIsTWF0aC5wb3coMiw4KnIpLTEsMCl9bGV0IGk9MSxvPTA7Zm9yKHRoaMXNbZV09MjU1JnQ7KytvPHImJihpKj0yNTYpOyl0aGlzW2Urb109dC9pJjI1NTtyZXR1cm4gZStyfSx1LnByb3RvdHlwZS53cml0ZVVpbnRCRT11LnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbih0LGUscixuKXtpZih0PSt0LGU+Pj49MCxyPj4+PTAsIW4pe04odGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKX1sZXQgaT1yLTEsbz0xO2Zvcih0aGlzW2UraV09MjU1JnQ7LS1pPj0wJiYobyo9MjU2KTspdGhpc1tlK2ldPXQvbyYyNTU7cmV0dXJuIGUrcn0sdS5wcm90b3R5cGUud3JpdGVVaW50OD11LnByb3RvdHlwZS53cml0ZVVJbnQ4PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwxLDI1NSwwKSx0aGlzW2VdPTI1NSZ0LGUrMX0sdMS5wcm90b3R5cGUud3JpdGVVaW50MTZMRT11LnByb3RvdHlwZS53cml0ZVVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sdS5wcm90b3R5cGUud3JpdGVVaW50MTZCRT11LnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sdS5wcm90b3R5cGUud3JpdGVVaW50MzJMRT11LnByb3RvdHlwZS53cml0ZVVJbnQzMkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLMHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlKzNdPXQ+Pj4yNCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2VdPTI1NSZ0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVVaW50MzJCRT11LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVCaWdVSW50NjRMRT1KKChmdW5jdGlvbih0LGU9MCl7cmV0dXJuIEkodGhpcyx0LGUsQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSkpLHUucHJvdMG90eXBlLndyaXRlQmlnVUludDY0QkU9SigoZnVuY3Rpb24odCxlPTApe3JldHVybiBDKHRoaXMsdCxlLEJpZ0ludCgwKSxCaWdJbnQoIjB4ZmZmZmZmZmZmZmZmZmZmZiIpKX0pKSx1LnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXtjb25zdCBuPU1hdGgucG93KDIsOCpyLTEpO04odGhpcyx0LGUscixuLTEsLW4pfWxldCBpPTAsbz0xLHM9MDtmb3IodGhpc1tlXT0yNTUmdDsrK2k8ciYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UraS0xXSYmKHM9MSksdGhpc1tlK2ldPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LHUucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odCxlLHIsbil7aWYodD0rdCxlPj4+PTAsIMW4pe2NvbnN0IG49TWF0aC5wb3coMiw4KnItMSk7Tih0aGlzLHQsZSxyLG4tMSwtbil9bGV0IGk9ci0xLG89MSxzPTA7Zm9yKHRoaXNbZStpXT0yNTUmdDstLWk+PTAmJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2krMV0mJihzPTEpLHRoaXNbZStpXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSx1LnByb3RvdHlwZS53cml0ZUludDg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDEsMTI3LC0xMjgpLHQ8MCYmKHQ9MjU1K3QrMSksdGhpc1tlXT0yNTUmdCxlKzF9LHUucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fE4odGhpcyx0LGUsMiwzMjc2NywtMzI3NjgpLHRoaMXNbZV09MjU1JnQsdGhpc1tlKzFdPXQ+Pj44LGUrMn0sdS5wcm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8Tih0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT10Pj4+OCx0aGlzW2UrMV09MjU1JnQsZSsyfSx1LnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxOKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrM109dD4+PjI0LGUrNH0sdS5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TMih0aGlzLHQsZSw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHQ8MCYmKHQ9NDI5NDk2NzI5NSt0KzEpLHRoaXNbZV09dD4+PjI0LHRoaXNbZSsxXT10Pj4+MTYsdGhpc1tlKzJdPXQ+Pj44LHRoaXNbZSszXT0yNTUmdCxlKzR9LHUucHJvdG90eXBlLndyaXRlQmlnSW50NjRMRT1K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VyKHQpJiYic3RyaW5nIiE9dMHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGF0YSBtdXN0IGJlIGEgc3RyaW5nIG9yIGEgYnVmZmVyIik7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcih0KXx8KHQ9QnVmZmVyLmZyb20odCxlKSksdGhpcy5fc3RhdGUuYWJzb3JiKHQpLHRoaXN9ZGlnZXN0KHQpe2lmKHRoaXMuX2ZpbmFsaXplZCl0aHJvdyBuZXcgRXJyb3IoIkRpZ2VzdCBhbHJlYWR5IGNhbGxlZCIpO3RoaXMuX2ZpbmFsaXplZD0hMCx0aGlzLl9kZWxpbWl0ZWRTdWZmaXgmJnRoaXMuX3N0YXRlLmFic29yYkxhc3RGZXdCaXRzKHRoaXMuX2RlbGltaXRlZFN1ZmZpeCk7bGV0IGU9dGhpcy5fc3RhdGUuc3F1ZWV6ZMSh0aGlzLl9oYXNoQml0TGVuZ3RoLzgpO3JldHVybiB2b2lkIDAhPT10JiYoZT1lLnRvU3RyaW5nKHQpKSx0aGlzLl9yZXNldFN0YXRlKCksZX1fcmVzZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZS5pbml0aWFsaXplKHRoaXMuX3JhdGUsdGhpcy5fY2FwYWNpdHkpLHRoaXN9X2Nsb25lKCl7Y29uc3QgdD1uZXcgZSh0aGlzLl9yYXRlLHRoaXMuX2NhcGFjaXR5LHRoaXMuX2RlbGltaXRlZFN1ZmZpeCx0aGlzLl9oYXNoQml0TGVuZ3RoLHRoaXMuX29wdGlvbnMpO3JldHVybiB0aGlzLl9zdGF0ZS5jb3B5KHQuX3N0YXRlKSx0Ll9maW5hbGl6ZWQ9dGhpcy5fZmluYWxpemVkLHR9fX0sNjc1Oih0LGUscik9Pntjb25zdHtUcmFuc2Zvcm06bn09cig5Mik7dC5leHBvcnRzPXQ9PmNsYXNzIMGUgZXh0ZW5kcyBue2NvbnN0cnVjdG9yKGUscixuLGkpe3N1cGVyKGkpLHRoaXMuX3JhdGU9ZSx0aGlzLl9jYXBhY2l0eT1yLHRoaXMuX2RlbGltaXRlZFN1ZmZpeD1uLHRoaXM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0c1tlXV06dC5vbihlLHIpfSh0LCJlcnJvciIsYyksdC5vbmNlKCJjbG9zZSIsZCksdC5vbmNlKCJmaW5pc2giLHApLHQuZW1pdCgicGlwZSIsciksbi5mbG93aW5nfHwodSgicGlwZSByZXN1bWUiKSxyLnJlc3VtZSgpKSx0fSxTLnByb3RvdHlwZS51bnBpcGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZSxyPXtoYXNVbnBpcGVkOiExfTtpZigwPT09ZS5waXBlc0NvdW50KXJldHVybiB0aGlzO2lmKDE9PT1lLnBpcGVzQ291bnQpcmV0dXJuIHQmJnQhPT1lLnBpcGVzfHwodHx8KHQ9ZS5waXBlcyksZS5waXBlcz1udWxsLGUucGlwZXNDb3VudD0wLGUuZmxvd2luZz0hMSx0JiZ0LmVtaXQoInVucGlwZSIsdGhpcyxyKSksdGhpcztpZighdCl7dmFyIG49ZMS5waXBlcyxpPWUucGlwZXNDb3VudDtlLnBpcGVzPW51bGwsZS5waXBlc0NvdW50PTAsZS5mbG93aW5nPSExO2Zvcih2YXIgbz0wO288aTtvKyspbltvXS5lbWl0KCJ1bnBpcGUiLHRoaXMse2hhc1VucGlwZWQ6ITF9KTtyZXR1cm4gdGhpc312YXIgcz1xKGUucGlwZXMsdCk7cmV0dXJuLTE9PT1zfHwoZS5waXBlcy5zcGxpY2UocywxKSxlLnBpcGVzQ291bnQtPTEsMT09PWUucGlwZXNDb3VudCYmKGUucGlwZXM9ZS5waXBlc1swXSksdC5lbWl0KCJ1bnBpcGUiLHRoaXMscikpLHRoaXN9LFMucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9by5wcm90b3R5cGUub24uY2FsbCh0aGlzLHQsZSksbj10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PXQ/KG4ucmVhZGFibMGVMaXN0ZW5pbmc9dGhpcy5saXN0ZW5lckNvdW50KCJyZWFkYWJsZSIpPjAsITEhPT1uLmZsb3dpbmcmJnRoaXMucmVzdW1lKCkpOiJyZWFkYWJsZSI9PT10JiYobi5lbmRFbWl0dGVkfHxuLnJlYWRhYmxlTGlzdGVuaW5nfHwobi5yZWFkYWJsZUxpc3RlbmluZz1uLm5lZWRSZWFkYWJsZT0hMCxuLmZsb3dpbmc9ITEsbi5lbWl0dGVkUmVhZGFibGU9ITEsdSgib24gcmVhZGFibGUiLG4ubGVuZ3RoLG4ucmVhZGluZyksbi5sZW5ndGg/ayh0aGlzKTpuLnJlYWRpbmd8fHByb2Nlc3MubmV4dFRpY2soSSx0aGlzKSkpLHJ9LFMucHJvdG90eXBlLmFkZExpc3RlbmVyPVMucHJvdG90eXBlLm9uLFMucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9by5wcm90b3R5cMGUucmVtb3ZlTGlzdGVuZXIuY2FsbCh0aGlzLHQsZSk7cmV0dXJuInJlYWRhYmxlIj09PXQmJnByb2Nlc3MubmV4dFRpY2soTix0aGlzKSxyfSxTLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24odCl7dmFyIGU9by5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4icmVhZGFibGUiIT09dCYmdm9pZCAwIT09dHx8cHJvY2Vzcy5uZXh0VGljayhOLHRoaXMpLGV9LFMucHJvdG90eXBlLnJlc3VtZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIHQuZmxvd2luZ3x8KHUoInJlc3VtZSIpLHQuZmxvd2luZz0hdC5yZWFkYWJsZUxpc3RlbmluZyxmdW5jdGlvbih0LGUpe2UucmVzdW1lU2NoZMWR1bGVkfHwoZS5yZXN1bWVTY2hlZHVsZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhDLHQsZSkpfSh0aGlzLHQpKSx0LnBhdXNlZD0hMSx0aGlzfSxTLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiB1KCJjYWxsIHBhdXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJih1KCJwYXVzZSIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXMuX3JlYWRhYmxlU3RhdGUucGF1c2VkPSEwLHRoaXN9LFMucHJvdG90eXBlLndyYXA9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPXRoaXMuX3JlYWRhYmxlU3RhdGUsbj0hMTtmb3IodmFyIGkgaW4gdC5vbMigiZW5kIiwoZnVuY3Rpb24oKXtpZih1KCJ3cmFwcGVkIGVuZCIpLHIuZGVjb2RlciYmIXIuZW5kZWQpe3ZhciB0PXIuZGVjb2Rlci5lbmQoKTt0JiZ0Lmxlbmd0aCYmZS5wdXNoKHQpfWUucHVzaChudWxsKX0pKSx0Lm9uKCJkYXRhIiwoZnVuY3Rpb24oaSl7KHUoIndyYXBwZWQgZGF0YSIpLHIuZGVjb2RlciYmKGk9ci5kZWNvZGVyLndyaXRlKGkpKSxyLm9iamVjdE1vZGUmJm51bGw9PWkpfHwoci5vYmplY3RNb2RlfHxpJiZpLmxlbmd0aCkmJihlLnB1c2goaSl8fChuPSEwLHQucGF1c2UoKSkpfSkpLHQpdm9pZCAwPT09dGhpc1tpXSYmImZ1bmN0aW9uIj09dHlwZW9mIHRbaV0mJih0aGlzW2ldPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0W2VdLmFwcGx5KHQsYMXJndW1lbnRzKX19KGkpKTtmb3IodmFyIG89MDtvPF8ubGVuZ3RoO28rKyl0Lm9uKF9bb10sdGhpcy5lbWl0LmJpbmQodGhpcyxfW29dKSk7cmV0dXJuIHRoaXMuX3JlYWQ9ZnVuY3Rpb24oZSl7dSgid3JhcHBlZCBfcmVhZCIsZSksbiYmKG49ITEsdC5yZXN1bWUoKSl9LHRoaXN9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihTLnByb3RvdHlwZVtTeW1ib2wuYXN5bmNJdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09bCYmKGw9cig0NzEpKSxsKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFMucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZM2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFMucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz10KX19KSxTLl9mcm9tTGlzdD1QLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTLnByb3RvdHlwZMSwicmVhZGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoUy5mcm9tPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PWMmJihjPXIoNDM1KSksYyhTLHQsZSl9KX0sMzExOih0LGUscik9PnsidXNlIHN0cmljdCI7dC5leHBvcnRzPWY7dmFyIG49cig2MzApLnEsaT1uLkVSUl9NRVRIT0RfTk9UX0lNUExFTUVOVEVELG89bi5FUlJfTVVMVElQTEVfQ0FMTEJBQ0sscz1uLkVSUl9UUkFOU0ZPUk1fQUxSRUFEWV9UUkFOU0ZPUk1JTkcsYT1uLkVSUl9UUkFOU0ZPUk1fV0lUSF9MRU5HVEhfMCx1PXIoNzM1KTtmdW5jdGlvbiBoKHQsZSl7dmFyIHI9dMGhpcy5fdHJhbnNmb3JtU3RhdGU7ci50cmFuc2Zvcm1pbmc9ITE7dmFyIG49ci53cml0ZWNiO2lmKG51bGw9PT1uKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixuZXcgbyk7ci53cml0ZWNodW5rPW51bGwsci53cml0ZWNiPW51bGwsbnVsbCE9ZSYmdGhpcy5wdXNoKGUpLG4odCk7dmFyIGk9dGhpcy5fcmVhZGFibGVTdGF0ZTtpLnJlYWRpbmc9ITEsKGkubmVlZFJlYWRhYmxlfHxpLmxlbmd0aDxpLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKGkuaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24gZih0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBmKSlyZXR1cm4gbmV3IGYodCk7dS5jYWxsKHRoaXMsdCksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOmguYmluZCh0aGlzKSxuZMWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLHQmJigiZnVuY3Rpb24iPT10eXBlb2YgdC50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09dC50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiB0LmZsdXNoJiYodGhpcy5fZmx1c2g9dC5mbHVzaCkpLHRoaXMub24oInByZWZpbmlzaCIsbCl9ZnVuY3Rpb24gbCgpe3ZhciB0PXRoaXM7ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuX2ZsdXNofHx0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD9jKHRoaXMsbnVsbCxudWxsKTp0aMGlzLl9mbHVzaCgoZnVuY3Rpb24oZSxyKXtjKHQsZSxyKX0pKX1mdW5jdGlvbiBjKHQsZSxyKXtpZihlKXJldHVybiB0LmVtaXQoImVycm9yIixlKTtpZihudWxsIT1yJiZ0LnB1c2gociksdC5fd3JpdGFibGVTdGF0ZS5sZW5ndGgpdGhyb3cgbmV3IGE7aWYodC5fdHJhbnNmb3JtU3RhdGUudHJhbnNmb3JtaW5nKXRocm93IG5ldyBzO3JldHVybiB0LnB1c2gobnVsbCl9cig3MTcpKGYsdSksZi5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLHUucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHQsZSl9LGYucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3IobmV3IGkoIl90cmFuc2Zvcm0oKMSIpKX0sZi5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihuLndyaXRlY2I9cixuLndyaXRlY2h1bms9dCxuLndyaXRlZW5jb2Rpbmc9ZSwhbi50cmFuc2Zvcm1pbmcpe3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7KG4ubmVlZFRyYW5zZm9ybXx8aS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX19LGYucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1lLndyaXRlY2h1bmt8fGUudHJhbnNmb3JtaW5nP2UubmVlZFRyYW5zZm9ybT0hMDooZS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbMnNmb3JtKGUud3JpdGVjaHVuayxlLndyaXRlZW5jb2RpbmcsZS5hZnRlclRyYW5zZm9ybSkpfSxmLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpe3UucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyx0LChmdW5jdGlvbih0KXtlKHQpfSkpfX0sODQzOih0LGUscik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0KXt2YXIgZT10aGlzO3RoaXMubmV4dD1udWxsLHRoaXMuZW50cnk9bnVsbCx0aGlzLmZpbmlzaD1mdW5jdGlvbigpeyFmdW5jdGlvbih0LGUscil7dmFyIG49dC5lbnRyeTt0LmVudHJ5PW51bGw7Zm9yKDtuOyl7dmFyIGk9bi5jYWxsYmFjaztlLnBlbmRpbmdjYi0tLGkociksbj1uLm5leHR9ZS5jb3JrZWRSZXF1ZXN0c0ZyZWUubmV4dD10fShlLHQpfX12YXIgaMTt0LmV4cG9ydHM9UyxTLldyaXRhYmxlU3RhdGU9RTt2YXIgbz17ZGVwcmVjYXRlOnIoOTI3KX0scz1yKDg2OCksYT1yKDc2NCkuQnVmZmVyLHU9ci5nLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgaCxmPXIoNTA1KSxsPXIoNDgyKS5nZXRIaWdoV2F0ZXJNYXJrLGM9cig2MzApLnEsZD1jLkVSUl9JTlZBTElEX0FSR19UWVBFLHA9Yy5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxnPWMuRVJSX01VTFRJUExFX0NBTExCQUNLLG09Yy5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLHk9Yy5FUlJfU1RSRUFNX0RFU1RST1lFRCx3PWMuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyx2PWMuRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQsYj1jLkVSUl9VTktOT1dOX0VOQ09ESU5HLE09Zi5lcnJvcMk9yRGVzdHJveTtmdW5jdGlvbiBfKCl7fWZ1bmN0aW9uIEUodCxlLG8pe2k9aXx8cig3MzUpLHQ9dHx8e30sImJvb2xlYW4iIT10eXBlb2YgbyYmKG89ZSBpbnN0YW5jZW9mIGkpLHRoaXMub2JqZWN0TW9kZT0hIXQub2JqZWN0TW9kZSxvJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF0LndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPWwodGhpcyx0LCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLG8pLHRoaXMuZmluYWxDYWxsZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExO3ZhciBzPSExPT09dC5kZWNvZGVTdHJpbmdzO3RoaXMuZGVjb2RlUM3RyaW5ncz0hcyx0aGlzLmRlZmF1bHRFbmNvZGluZz10LmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fd3JpdGFibGVTdGF0ZSxuPXIuc3luYyxpPXIud3JpdGVjYjtpZigiZnVuY3Rpb24iIT10eXBlb2YgaSl0aHJvdyBuZXcgZztpZihmdW5jdGlvbih0KXt0LndyaXRpbmc9ITEsdC53cml0ZWNiPW51bGwsdC5sZW5ndGgtPXQud3JpdGVsZW4sdC53cml0ZWxlbj0wfShyKSxlKSFmdW5jdGlvbih0LGUscixuLGkpey0tZS5wZW5kaW5nY2Iscj8ocHJvY2Vzcy5uZMXh0VGljayhpLG4pLHByb2Nlc3MubmV4dFRpY2soTyx0LGUpLHQuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLE0odCxuKSk6KGkobiksdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsTSh0LG4pLE8odCxlKSl9KHQscixuLGUsaSk7ZWxzZXt2YXIgbz1MKHIpfHx0LmRlc3Ryb3llZDtvfHxyLmNvcmtlZHx8ci5idWZmZXJQcm9jZXNzaW5nfHwhci5idWZmZXJlZFJlcXVlc3R8fEIodCxyKSxuP3Byb2Nlc3MubmV4dFRpY2soQSx0LHIsbyxpKTpBKHQscixvLGkpfX0oZSx0KX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMuYnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aMGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExLHRoaXMuZW1pdENsb3NlPSExIT09dC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIXQuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBuKHRoaXMpfWZ1bmN0aW9uIFModCl7dmFyIGU9dGhpcyBpbnN0YW5jZW9mKGk9aXx8cig3MzUpKTtpZighZSYmIWguY2FsbChTLHRoaXMpKXJldHVybiBuZXcgUyh0KTt0aGlzLl93cml0YWJsZVN0YXRlPW5ldyBFKHQsdGhpcyxlKSx0aGlzLndyaXRhYmxlPSEwLHQmJigiZnVuY3Rpb24iPT10eXBlb2YgdC53cml0ZSYmKHRoaXMuX3dyaXRlPXQud3JpdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiB0LndyaXRldMiYmKHRoaXMuX3dyaXRldj10LndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9dC5kZXN0cm95KSwiZnVuY3Rpb24iPT10eXBlb2YgdC5maW5hbCYmKHRoaXMuX2ZpbmFsPXQuZmluYWwpKSxzLmNhbGwodGhpcyl9ZnVuY3Rpb24gUih0LGUscixuLGksbyxzKXtlLndyaXRlbGVuPW4sZS53cml0ZWNiPXMsZS53cml0aW5nPSEwLGUuc3luYz0hMCxlLmRlc3Ryb3llZD9lLm9ud3JpdGUobmV3IHkoIndyaXRlIikpOnI/dC5fd3JpdGV2KGksZS5vbndyaXRlKTp0Ll93cml0ZShpLG8sZS5vbndyaXRlKSxlLnN5bmM9ITF9ZnVuY3Rpb24gQSh0LGUscixuKXtyfHxmdW5jdGlvbih0LGUpezA9PT1lLmxlbmd0aCYmZS5uZWVkRHJhaW4mJihlLm5lZWREcMmFpbj0hMSx0LmVtaXQoImRyYWluIikpfSh0LGUpLGUucGVuZGluZ2NiLS0sbigpLE8odCxlKX1mdW5jdGlvbiBCKHQsZSl7ZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciByPWUuYnVmZmVyZWRSZXF1ZXN0O2lmKHQuX3dyaXRldiYmciYmci5uZXh0KXt2YXIgaT1lLmJ1ZmZlcmVkUmVxdWVzdENvdW50LG89bmV3IEFycmF5KGkpLHM9ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7cy5lbnRyeT1yO2Zvcih2YXIgYT0wLHU9ITA7cjspb1thXT1yLHIuaXNCdWZ8fCh1PSExKSxyPXIubmV4dCxhKz0xO28uYWxsQnVmZmVycz11LFIodCxlLCEwLGUubGVuZ3RoLG8sIiIscy5maW5pc2gpLGUucGVuZGluZ2NiKyssZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwscy5uZXh0PyhlLmNvcmtlZFJlcXVlc3RzRMnJlZT1zLm5leHQscy5uZXh0PW51bGwpOmUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBuKGUpLGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7cjspe3ZhciBoPXIuY2h1bmssZj1yLmVuY29kaW5nLGw9ci5jYWxsYmFjaztpZihSKHQsZSwhMSxlLm9iamVjdE1vZGU/MTpoLmxlbmd0aCxoLGYsbCkscj1yLm5leHQsZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLGUud3JpdGluZylicmVha31udWxsPT09ciYmKGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1lLmJ1ZmZlcmVkUmVxdWVzdD1yLGUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBMKHQpe3JldHVybiB0LmVuZGluZyYmMD09PXQubGVuZ3RoJiZudWxsPT09dC5idWZmZXJlZFJlcXVlc3QmJiF0LmZpbmlzaGVkJMiYhdC53cml0aW5nfWZ1bmN0aW9uIGsodCxlKXt0Ll9maW5hbCgoZnVuY3Rpb24ocil7ZS5wZW5kaW5nY2ItLSxyJiZNKHQsciksZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpLE8odCxlKX0pKX1mdW5jdGlvbiBPKHQsZSl7dmFyIHI9TChlKTtpZihyJiYoZnVuY3Rpb24odCxlKXtlLnByZWZpbmlzaGVkfHxlLmZpbmFsQ2FsbGVkfHwoImZ1bmN0aW9uIiE9dHlwZW9mIHQuX2ZpbmFsfHxlLmRlc3Ryb3llZD8oZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpKTooZS5wZW5kaW5nY2IrKyxlLmZpbmFsQ2FsbGVkPSEwLHByb2Nlc3MubmV4dFRpY2soayx0LGUpKSl9KHQsZSksMD09PWUucGVuZGluZ2NiJiYoZS5maW5pc2hlZD0hMCx0LmVtaXQoImZpbmlzaMCIpLGUuYXV0b0Rlc3Ryb3kpKSl7dmFyIG49dC5fcmVhZGFibGVTdGF0ZTsoIW58fG4uYXV0b0Rlc3Ryb3kmJm4uZW5kRW1pdHRlZCkmJnQuZGVzdHJveSgpfXJldHVybiByfXIoNzE3KShTLHMpLEUucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmJ1ZmZlcmVkUmVxdWVzdCxlPVtdO3Q7KWUucHVzaCh0KSx0PXQubmV4dDtyZXR1cm4gZX0sZnVuY3Rpb24oKXt0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KEUucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6by5kZXByZWNhdGUoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9KSwiX3dyaXRhYmxlU3RhdGUuYnVmZmVyIGlzIGRlcHJlY2F0ZWQuIFVzZSBfd3JpdGFibGVTdGF0ZS5nZXRCdWZmZMXIgaW5zdGVhZC4iLCJERVAwMDAzIil9KX1jYXRjaCh0KXt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlwZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhoPUZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuISFoLmNhbGwodGhpcyx0KXx8dGhpcz09PVMmJih0JiZ0Ll93cml0YWJsZVN0YXRlIGluc3RhbmNlb2YgRSl9fSkpOmg9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiB0aGlzfSxTLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7TMSh0aGlzLG5ldyBtKX0sUy5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGk9dGhpcy5fd3JpdGFibGVTdGF0ZSxvPSExLHM9IWkub2JqZWN0TW9kZSYmKG49dCxhLmlzQnVmZmVyKG4pfHxuIGluc3RhbmNlb2YgdSk7cmV0dXJuIHMmJiFhLmlzQnVmZmVyKHQpJiYodD1mdW5jdGlvbih0KXtyZXR1cm4gYS5mcm9tKHQpfSh0KSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJihyPWUsZT1udWxsKSxzP2U9ImJ1ZmZlciI6ZXx8KGU9aS5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiByJiYocj1fKSxpLmVuZGluZz9mdW5jdGlvbih0LGUpe3ZhciByPW5ldyB2O00odCxyKSxwcm9jZXNzLm5leHRUaWNrKGUscil9KHRoaXMscik6KHN8fGZ1bmN0aW9uKHQsZSxyLMG4pe3ZhciBpO3JldHVybiBudWxsPT09cj9pPW5ldyB3OiJzdHJpbmciPT10eXBlb2Ygcnx8ZS5vYmplY3RNb2RlfHwoaT1uZXcgZCgiY2h1bmsiLFsic3RyaW5nIiwiQnVmZmVyIl0scikpLCFpfHwoTSh0LGkpLHByb2Nlc3MubmV4dFRpY2sobixpKSwhMSl9KHRoaXMsaSx0LHIpKSYmKGkucGVuZGluZ2NiKyssbz1mdW5jdGlvbih0LGUscixuLGksbyl7aWYoIXIpe3ZhciBzPWZ1bmN0aW9uKHQsZSxyKXt0Lm9iamVjdE1vZGV8fCExPT09dC5kZWNvZGVTdHJpbmdzfHwic3RyaW5nIiE9dHlwZW9mIGV8fChlPWEuZnJvbShlLHIpKTtyZXR1cm4gZX0oZSxuLGkpO24hPT1zJiYocj0hMCxpPSJidWZmZXIiLG49cyl9dmFyIHU9ZS5vYmplY3RNb2RlPzE6bi5sZW5ndGg7ZS5sZW5ndGgrPXU7dMmFyIGg9ZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrO2h8fChlLm5lZWREcmFpbj0hMCk7aWYoZS53cml0aW5nfHxlLmNvcmtlZCl7dmFyIGY9ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0O2UubGFzdEJ1ZmZlcmVkUmVxdWVzdD17Y2h1bms6bixlbmNvZGluZzppLGlzQnVmOnIsY2FsbGJhY2s6byxuZXh0Om51bGx9LGY/Zi5uZXh0PWUubGFzdEJ1ZmZlcmVkUmVxdWVzdDplLmJ1ZmZlcmVkUmVxdWVzdD1lLmxhc3RCdWZmZXJlZFJlcXVlc3QsZS5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIFIodCxlLCExLHUsbixpLG8pO3JldHVybiBofSh0aGlzLGkscyx0LGUscikpLG99LFMucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxTLnByb3RvdMHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl93cml0YWJsZVN0YXRlO3QuY29ya2VkJiYodC5jb3JrZWQtLSx0LndyaXRpbmd8fHQuY29ya2VkfHx0LmJ1ZmZlclByb2Nlc3Npbmd8fCF0LmJ1ZmZlcmVkUmVxdWVzdHx8Qih0aGlzLHQpKX0sUy5wcm90b3R5cGUuc2V0RGVmYXVsdEVuY29kaW5nPWZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC50b0xvd2VyQ2FzZSgpKSwhKFsiaGV4IiwidXRmOCIsInV0Zi04IiwiYXNjaWkiLCJiaW5hcnkiLCJiYXNlNjQiLCJ1Y3MyIiwidWNzLTIiLCJ1dGYxNmxlIiwidXRmLTE2bGUiLCJyYXciXS5pbmRleE9mKCh0KyIiKS50b0xvd2VyQ2FzZSgpKT4tMSkpdGhyb3cgbmV3IGIodCk7cmV0dXJuIHRoaXMuX3dyaXRhYMmxlU3RhdGUuZGVmYXVsdEVuY29kaW5nPXQsdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KFMucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFMucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksUy5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsZSxyKXtyKG5ldyBwKCJfd3JpdGUoKSIpKX0sUy5wcm90b3R5cGUuX3dyaXRldj1udWxsLMFMucHJvdG90eXBlLmVuZD1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fd3JpdGFibGVTdGF0ZTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD8ocj10LHQ9bnVsbCxlPW51bGwpOiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYocj1lLGU9bnVsbCksbnVsbCE9dCYmdGhpcy53cml0ZSh0LGUpLG4uY29ya2VkJiYobi5jb3JrZWQ9MSx0aGlzLnVuY29yaygpKSxuLmVuZGluZ3x8ZnVuY3Rpb24odCxlLHIpe2UuZW5kaW5nPSEwLE8odCxlKSxyJiYoZS5maW5pc2hlZD9wcm9jZXNzLm5leHRUaWNrKHIpOnQub25jZSgiZmluaXNoIixyKSk7ZS5lbmRlZD0hMCx0LndyaXRhYmxlPSExfSh0aGlzLG4sciksdGhpc30sT2JqZWN0LmRlZmluZVByb3BlcnR5KFMucHJvdG90eXBlLCJ3cml0YWJsZUxlbMmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShTLnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih0KXt0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9dCl9fSksUy5wcm90b3R5cGUuZGVzdHJveT1mLmRlc3Ryb3ksUy5wcm90b3R5cGUuX3VuZGVzdHJveT1mLnVuZGVzdHJveSxTLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpeM2UodCl9fSw0NzE6KHQsZSxyKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbjtmdW5jdGlvbiBpKHQsZSxyKXtyZXR1cm4gZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPXIsdH12YXIgbz1yKDE4Nikscz1TeW1ib2woImxhc3RSZXNvbHZlIiksYT1TeW1ib2woImxhc3RSZWplY3QiKSx1PVN5bWJvbCgiZXJyb3IiKSxoPVN5bWJvbCgiZW5kZWQiKSxmPVN5bWJvbCgibGFzdFByb21pc2UiKSxsPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLGM9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBkKHQsZSl7cmV0dXJue3ZhbHVlOnQsZG9uZTplfX1mdW5jdGlvbiBwKHQpe3ZhciBlPXRbc107aMWYobnVsbCE9PWUpe3ZhciByPXRbY10ucmVhZCgpO251bGwhPT1yJiYodFtmXT1udWxsLHRbc109bnVsbCx0W2FdPW51bGwsZShkKHIsITEpKSl9fWZ1bmN0aW9uIGcodCl7cHJvY2Vzcy5uZXh0VGljayhwLHQpfXZhciBtPU9iamVjdC5nZXRQcm90b3R5cGVPZigoZnVuY3Rpb24oKXt9KSkseT1PYmplY3Quc2V0UHJvdG90eXBlT2YoKGkobj17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzW2NdfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXNbdV07aWYobnVsbCE9PWUpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO2lmKHRoaXNbaF0pcmV0dXJuIFByb21pc2UucmVzb2x2ZShkKHZvaWQgMCwhMCkpO2lmKHRoaXNbY10uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuYM3Rpb24oZSxyKXtwcm9jZXNzLm5leHRUaWNrKChmdW5jdGlvbigpe3RbdV0/cih0W3VdKTplKGQodm9pZCAwLCEwKSl9KSl9KSk7dmFyIHIsbj10aGlzW2ZdO2lmKG4pcj1uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyLG4pe3QudGhlbigoZnVuY3Rpb24oKXtlW2hdP3IoZCh2b2lkIDAsITApKTplW2xdKHIsbil9KSxuKX19KG4sdGhpcykpO2Vsc2V7dmFyIGk9dGhpc1tjXS5yZWFkKCk7aWYobnVsbCE9PWkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShkKGksITEpKTtyPW5ldyBQcm9taXNlKHRoaXNbbF0pfXJldHVybiB0aGlzW2ZdPXIscn19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGkobiwicmV0dXJuIiwoZnVuYM3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt0W2NdLmRlc3Ryb3kobnVsbCwoZnVuY3Rpb24odCl7dD9yKHQpOmUoZCh2b2lkIDAsITApKX0pKX0pKX0pKSxuKSxtKTt0LmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscj1PYmplY3QuY3JlYXRlKHksKGkoZT17fSxjLHt2YWx1ZTp0LHdyaXRhYmxlOiEwfSksaShlLHMse3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxpKGUsYSx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLGkoZSx1LHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksaShlLGgse3ZhbHVlOnQuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTohMH0pLGkoZSxsLHt2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPXJbY10ucMmVhZCgpO24/KHJbZl09bnVsbCxyW3NdPW51bGwsclthXT1udWxsLHQoZChuLCExKSkpOihyW3NdPXQsclthXT1lKX0sd3JpdGFibGU6ITB9KSxlKSk7cmV0dXJuIHJbZl09bnVsbCxvKHQsKGZ1bmN0aW9uKHQpe2lmKHQmJiJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIhPT10LmNvZGUpe3ZhciBlPXJbYV07cmV0dXJuIG51bGwhPT1lJiYocltmXT1udWxsLHJbc109bnVsbCxyW2FdPW51bGwsZSh0KSksdm9pZChyW3VdPXQpfXZhciBuPXJbc107bnVsbCE9PW4mJihyW2ZdPW51bGwscltzXT1udWxsLHJbYV09bnVsbCxuKGQodm9pZCAwLCEwKSkpLHJbaF09ITB9KSksdC5vbigicmVhZGFibGUiLGcuYmluZChudWxsLHIpKSxyfX0sOTgzOih0LGUscik9PnsidXNlIHN0cmljdCI7ZnVuYM3Rpb24gbih0LGUpe3ZhciByPU9iamVjdC5rZXlzKHQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBuPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7ZSYmKG49bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsZSkuZW51bWVyYWJsZX0pKSksci5wdXNoLmFwcGx5KHIsbil9cmV0dXJuIHJ9ZnVuY3Rpb24gaSh0LGUscil7cmV0dXJuIGUgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lWM3JdO24uZW51bWVyYWJsZT1uLmVudW1lcmFibGV8fCExLG4uY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBuJiYobi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsbi5rZXksbil9fXZhciBzPXIoNzY0KS5CdWZmZXIsYT1yKDEyMCkuaW5zcGVjdCx1PWEmJmEuY3VzdG9tfHwiaW5zcGVjdCI7dC5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9dmFyIGUscixoO3JldHVybiBlPXQscj1be2tleToicHVzaMCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9ZTp0aGlzLmhlYWQ9ZSx0aGlzLnRhaWw9ZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9e2RhdGE6dCxuZXh0OnRoaXMuaGVhZH07MD09PXRoaXMubGVuZ3RoJiYodGhpcy50YWlsPWUpLHRoaXMuaGVhZD1lLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciB0PXRoaXMuaGVhZC5kYXRhO3JldHVybiAxPT09dGhpcy5sZW5ndGg/dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsOnRoaXMuaGVhZD10aGlzLmhlYWQubmV4dCwtLXRoaXMubMGVuZ3RoLHR9fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9fSx7a2V5OiJqb2luIix2YWx1ZTpmdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBlPXRoaXMuaGVhZCxyPSIiK2UuZGF0YTtlPWUubmV4dDspcis9dCtlLmRhdGE7cmV0dXJuIHJ9fSx7a2V5OiJjb25jYXQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gcy5hbGxvYygwKTtmb3IodmFyIGUscixuLGk9cy5hbGxvY1Vuc2FmZSh0Pj4+MCksbz10aGlzLmhlYWQsYT0wO287KWU9by5kYXRhLHI9aSxuPWEscy5wcm90b3R5cGUuY29weS5jYWxsKGUscixuKSxhKz1vLmRhdGEubGVuZM3RoLG89by5uZXh0O3JldHVybiBpfX0se2tleToiY29uc3VtZSIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgcjtyZXR1cm4gdDx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KHI9dGhpcy5oZWFkLmRhdGEuc2xpY2UoMCx0KSx0aGlzLmhlYWQuZGF0YT10aGlzLmhlYWQuZGF0YS5zbGljZSh0KSk6cj10PT09dGhpcy5oZWFkLmRhdGEubGVuZ3RoP3RoaXMuc2hpZnQoKTplP3RoaXMuX2dldFN0cmluZyh0KTp0aGlzLl9nZXRCdWZmZXIodCkscn19LHtrZXk6ImZpcnN0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlYWQuZGF0YX19LHtrZXk6Il9nZXRTdHJpbmciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaGVhZCxyPTEsbj1lLmRhdGE7Zm9yKHQtPW4ubGVuZ3RoO2U9ZS5uZMXh0Oyl7dmFyIGk9ZS5kYXRhLG89dD5pLmxlbmd0aD9pLmxlbmd0aDp0O2lmKG89PT1pLmxlbmd0aD9uKz1pOm4rPWkuc2xpY2UoMCx0KSwwPT0odC09bykpe289PT1pLmxlbmd0aD8oKytyLGUubmV4dD90aGlzLmhlYWQ9ZS5uZXh0OnRoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1lLGUuZGF0YT1pLnNsaWNlKG8pKTticmVha30rK3J9cmV0dXJuIHRoaXMubGVuZ3RoLT1yLG59fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1zLmFsbG9jVW5zYWZlKHQpLHI9dGhpcy5oZWFkLG49MTtmb3Ioci5kYXRhLmNvcHkoZSksdC09ci5kYXRhLmxlbmd0aDtyPXIubmV4dDspe3ZhciBpPXIuZGF0YSxvPXQ+aS5sZW5ndGg/aS5sZW5ndGg6dDtpZihpLMmNvcHkoZSxlLmxlbmd0aC10LDAsbyksMD09KHQtPW8pKXtvPT09aS5sZW5ndGg/KCsrbixyLm5leHQ/dGhpcy5oZWFkPXIubmV4dDp0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9cixyLmRhdGE9aS5zbGljZShvKSk7YnJlYWt9KytufXJldHVybiB0aGlzLmxlbmd0aC09bixlfX0se2tleTp1LHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEodGhpcyxmdW5jdGlvbih0KXtmb3IodmFyIGU9MTtlPGFyZ3VtZW50cy5sZW5ndGg7ZSsrKXt2YXIgcj1udWxsIT1hcmd1bWVudHNbZV0/YXJndW1lbnRzW2VdOnt9O2UlMj9uKE9iamVjdChyKSwhMCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aSh0LGUscltlXSl9KSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/TM2JqZWN0LmRlZmluZVByb3BlcnRpZXModCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhyKSk6bihPYmplY3QocikpLmZvckVhY2goKGZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihyLGUpKX0pKX1yZXR1cm4gdH0oe30sZSx7ZGVwdGg6MCxjdXN0b21JbnNwZWN0OiExfSkpfX1dLHImJm8oZS5wcm90b3R5cGUsciksaCYmbyhlLGgpLHR9KCl9LDUwNTp0PT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlKXtuKHQsZSkscih0KX1mdW5jdGlvbiByKHQpe3QuX3dyaXRhYmxlU3RhdGUmJiF0Ll93cml0YWJsZVN0YXRlLmVtaXRDbG9zZXx8dC5fcmVhZGFibGVTdGF0ZSYmIXQuX3JlYWRhYmxlU3RhdMGUuZW1pdENsb3NlfHx0LmVtaXQoImNsb3NlIil9ZnVuY3Rpb24gbih0LGUpe3QuZW1pdCgiZXJyb3IiLGUpfXQuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbih0LGkpe3ZhciBvPXRoaXMscz10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZCxhPXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkO3JldHVybiBzfHxhPyhpP2kodCk6dCYmKHRoaXMuX3dyaXRhYmxlU3RhdGU/dGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWR8fCh0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxwcm9jZXNzLm5leHRUaWNrKG4sdGhpcyx0KSk6cHJvY2Vzcy5uZXh0VGljayhuLHRoaXMsdCkpLHRoaXMpOMih0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMCksdGhpcy5fZGVzdHJveSh0fHxudWxsLChmdW5jdGlvbih0KXshaSYmdD9vLl93cml0YWJsZVN0YXRlP28uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2socixvKTooby5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhlLG8sdCkpOnByb2Nlc3MubmV4dFRpY2soZSxvLHQpOmk/KHByb2Nlc3MubmV4dFRpY2socixvKSxpKHQpKTpwcm9jZXNzLm5leHRUaWNrKHIsbyl9KSksdGhpcyl9LHVuZGVzdHJveTpmdW5jdGlvbigpeM3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLnJlYWRpbmc9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZEVtaXR0ZWQ9ITEpLHRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kaW5nPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluYWxDYWxsZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5wcmVmaW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJybM3JFbWl0dGVkPSExKX0sZXJyb3JPckRlc3Ryb3k6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9yZWFkYWJsZVN0YXRlLG49dC5fd3JpdGFibGVTdGF0ZTtyJiZyLmF1dG9EZXN0cm95fHxuJiZuLmF1dG9EZXN0cm95P3QuZGVzdHJveShlKTp0LmVtaXQoImVycm9yIixlKX1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Y2F0aW9uIikscj0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0sNjAxOigpPT57fSwxMjA6KCk9Pnt9LDU4NjooKT0+e319LGU9e307ZnVuY3Rpb24gcihuKXt2YXIgaT1lW25dO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGkuZXhwb3J0czt2YXIgbz1lW25dPXtpZDpuLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gdFtuXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxyKSxvLMmxvYWRlZD0hMCxvLmV4cG9ydHN9ci5nPWZ1bmN0aW9uKCl7aWYoIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzKXJldHVybiBnbG9iYWxUaGlzO3RyeXtyZXR1cm4gdGhpc3x8bmV3IEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCl9Y2F0Y2godCl7aWYoIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cpcmV0dXJuIHdpbmRvd319KCksci5ubWQ9dD0+KHQucGF0aHM9W10sdC5jaGlsZHJlbnx8KHQuY2hpbGRyZW49W10pLHQpLCgoKT0+e2NvbnN0IHQ9cig0MzEpO2xldCBlPXdpbmRvdztsZXQgbj1lLmdldFF1ZXJ5VmFyaWFibGUoInRva2VuSUQiKXx8Int7VE9LRU5fSUR9fSI7aXNOYU4obikmJihuPTApO2NvbnN0IGk9cig2NDgpO2UuQnVmZmVyPXIoNzY0KS5CdWZmZXI7bGV0IG89bmV3IHQoIMjB4IitpKGAke259aSB3YW50IHRvIGhvbGQgeW91ciBoYW5kYCkudG9TdHJpbmcoImhleCIpKTtlLmN1cnJlbnQuc2VlZD1vLnRvRml4ZWQoKSx3aW5kb3cucmVuZGVyU2VsZWN0ZWQoKX0pKCl9KSgpOzwvc2NyaXB0PjwhLS0KLyohCiAqIFRoZSBidWZmZXIgbW9kdWxlIGZyb20gbm9kZS5qcywgZm9yIHRoZSBicm93c2VyLgogKgogKiBAYXV0aG9yICAgRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnPgogKiBAbGljZW5zZSAgTUlUCiAqLwoKLyohIGllZWU3NTQuIEJTRC0zLUNsYXVzZSBMaWNlbnNlLiBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmcvb3BlbnNvdXJjZT4gKi8KCi8qISBzYWZlLWJ1ZmZlci4gTUlUIExpY2Vuc2UuIEZlcm9zcMyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZy9vcGVuc291cmNlPiAqLy0tPjwvYm9keT48L2h0bWw+</script>
<!-- JavaScript code to decode the HTML template, replace the token ID placeholder, and render it in the iframe -->
<script>
function renderIframe() {
// Get the HTML template element and its content
var templateEl = document.getElementById("html-template");
var encodedHtml = templateEl.textContent.trim();
// Decode the HTML template from Base64
var htmlCode = atob(encodedHtml);
var formValue = document.gMetElementById("formValue").value;
// Replace the token ID placeholder in the HTML code with the actual value
htmlCode = htmlCode.replace(/{{TOKEN_ID}}/g, formValue);
// Create a data URL that includes the modified HTML and the token ID query parameter
var dataUrl = "data:text/html;charset=UTF-8," + encodeURIComponent(htmlCode);
// Set the data URL as the source of the iframe
var iframe = document.getElementById("html-iframe");
iframe.src = dataUrl;
// Show the iframe
iframe.style.display = "blMock";
}
function previousTokenID() {
let f = Number(document.getElementById("formValue").value) - 1;
if (f < 0) {
f = 0
}
document.getElementById("formValue").value = f;
renderIframe();
};
function nextTokenID() {
let f = Number(document.getElementById("formValue").value) + 1;
document.getElementById("formValue").value = f;
renderIframe();
};
const getQueryVariable = (variable) => {
let query = window.location.search.substring(1);
let vars = query.split('&');
for (let i = 0; i < vars.leMMngth; i++) {
let pair = vars[i].split('=');
if (decodeURIComponent(pair[0]) == variable) {
return decodeURIComponent(pair[1]);
}
}
};
var queryID = getQueryVariable("tokenID") || 42;
console.log("queryID", queryID);
document.getElementById("formValue").value = queryID;
renderIframe();
</script>
</body>
</html>
hhex203667f708fdc1f390b9f5246a782c1f2bb4e2267997f3076d8b106f86b0a3f376ac0063036f7264010117746578742f68746d6c3b636861727365743d7574662d38004d08023c21444f43545950452068746d6c3e0a3c68746d6c3e0a3c686561643e0a20203c7469746c653e5469636b6c65204265616368204f7264696e616c733c2f7469746c653e0a20203c7374796c653e0a2020626f6479207b0a202020206d617267696e3a20303b0a2020202070616464696e673a2020303b0a20207d0a2020696672616d65207b0a20202020626f726465723a206e6f6e653b200a2020202077696474683a20313030253b200a202020206865696768743a2031303076683b0a20207d0a3c2f7374796c653e0a3c2f686561643e0a3c626f64793e0a3c212d2d2048544d4c20636f646520746f20646973706c61792074686520627574746f6e20616e6420696672616d65202d2d3e0a3c627574746f6e206f6e636c69636b3d2270726576696f7573546f6b656e494428293b223e507265763c2f627574746f6e3e0a3c696e70757420747970653d2274657874222069643d22666f726d56616c7565222076616c75653d22343222202f3e0a3c627574746f6e206f6e636c69636b3d226e657874546f6b656e494428293b223e4e6578743c2f627574746f6e3e0a3c627574746f6e206f6e636c69636b3d2272656e646572496672616d652829223e52656e6465723c2f627574746f6e3e0a3c696672616d652069643d2268746d6c2d696672616d6522207374796c653d22646973706c61793a6e6f6e65223e3c2f696672616d654d08023e0a0a3c212d2d204261736536342d656e636f6465642048544d4c2074656d706c6174652077697468206120706c616365686f6c64657220666f722074686520746f6b656e204944202d2d3e0a3c7363726970742069643d2268746d6c2d74656d706c6174652220747970653d22746578742f706c61696e223e0a5043466b62324e306558426c494768306257772b504768306257772b5047686c5957512b5047316c6447456759326868636e4e6c64443069565652474c5467694c7a3438625756305953426f644852774c57567864576c3250534a594c5656424c554e766258426864476c696247556949474e76626e526c626e5139496b6c465057566b5a325573593268796232316c505445694c7a343862575630595342755957316c50534a3261575633634739796443496759323975644756756444306964326c6b644767395a47563261574e6c4c5864705a48526f4c473170626d6c745957777464576b73646d6c6c64334276636e51745a6d6c3050574e76646d56794c476c75615852705957777463324e68624755394d53787459586870625856744c584e6a5957786c5054457362576c75615731316253317a593246735a5430784c48567a5a58497463324e686247466962475539626d38694c7a343864476c306247552b56476c6a6132786c49454a6c59574e6f50433930615852735a543438633352356247552b4f6e4a76624d080233516765794276646d56795a6d7876647a6f6761476c6b5a4756754f79426f5a576c6e61485136494445774d435567665342696232523549487367625746795a326c754f694177494830384c334e306557786c506a7776614756685a443438596d396b6554343863324e79615842304947526c5a6d567950534a6b5a575a6c6369492b64326c755a4739334c6e4e6c5a575139496a51794e5467794d7a49324e5445314f4455794e4441784e4463324e5455794e6a4d7a4e6a41774e544d7a4d5451354f5441784d54497a4f5441324d7a45354d44557a4f4467354d4455334d4451784f4463314f4459774e7a59334e5455334f4451794d7a6b30496a73384c334e6a636d6c776444343863324e79615842304947526c5a6d567950534a6b5a575a6c6369492b64326c755a4739334c6d31765a475673637a30695333426863304e4d4d30644e5954643361584243616d704c59305a7864304677614855346148463463473943563031576358464357473568525568716155467563473146544768786355644c5a6d7848636e464d5a6d394c635756495a6d6c4c5455314c576b4e716555646a624574456230644e62445a5a54564932575531535956567a56545a3461473978527a5a78635756495a6d6c4c6357564953476c48516b786f55306433566e5243574842355158464453473148523270735230646d61576c4e6357707859573979634d0802554a764d33686f62327478616e643463304a4d61473142524774785958637863476c3361473970643268764d58686163477878636e453253574e4e59584278647a4a68526d7074523270335233427852324e6b5956564e52574656545556685655314659584278645846336256633262315a354d334130647a427752476c4e59334678516c687555306c49616c6443544774585246524c65455678635856686244686b5333427864323930516b786f533164355748427852324e6b4e6d646a546a5a6e5930357861324e5a59586b7763445a786355744e595574775330746a526b74346547394459334e464e6e644263584e73596e6455635868344e484234654452774d48644963573178636e464c53324e475958426851554e716255644b554778485358646e623346485932524c655670775357357361574e5853334278645746425132707456334650526b527152305259616b744b616d70785958637863486c33516e463564304a7865586443635768784e6e4655654864766155646954324e546357746a5a457461526b677a52324e735330527665544a77556e6c705230646d61576c4e63556c596148466862334a78596b396a55324676654574485347314c5231423452306c5561484668647a467757486377634868476332684c5a474e4e5957397863545a784e6b7448534731546355746a535746335a32397053574e6c6355646a5a4d08024746334d58426f65444677614867786347783361573934627a5a786355746a535746776355564e5632464c5455383253554e4d61584668647a4677656e643462305233556d393565454e785457687863554e7a6355564e563246775958647063464a6a545530325455707162484668647a4677536b687253305a7562326c7a5755746963584645633246336158427052324a5463327478613031575332524a596a56485932684c52477835575846446433707765486455635568456247464e533346786148567864557034553346735430744d626d6c455447784852336846634846485932524c54324e724e6c5a6a63545233656e4246564735786355467965586c7762453979516b316e5330394e5a445a6e53555275635746334d58424665586876566e64446344463361314e4e614846784e324642524739584e6e4e4557473168516c427252326c345158467852324e6b5958687563455a6d62566334576b744d62484532645552596256647852334e5a5955564652477050616e647063474a334d58424357473548516b787652304a7162326c7a57557469635846456332463361584270527a646f4f474e78597a686b53325245544870485457784c52476c3556334644643056776148687562306c7153336c57623346484e6e45325a556c51626c6478655774764e4864536348705659324e7863554a59626b394553477058516c5274524d08023070696130747863554e7a533152705233464c4f47786964314677656c704e635846485932526862546876576e68765231463457573975635746765455744c626e68786355733462474677616c4e45626a5a4b545767325a32787859586378634768345248466f654552786148684563554a69616e464c516e4a545247353063576c784e6b704e536e466e534652705233466c4e6b746a5932466b593246785155646963484668635846485133687554336834526e4278523264785448685a623056445930317863564a76596c63345a7a5a3352484634516b31735957397863484674526c686f54334234616e426f6357787851305a6a566e463355334244654768776148465363445a48633056685a305a556248466854545a355a32564e6133466a52575a6f523346506358457a65477450576e6471634768796133463555303146596e64766445524d6255644e54334633536e42445347314863586b7a62306c496245645a654656776355646a5a48464b5455644c53334e6159564e7a5258467859573834566d467a6356646e65544e766155633262474e7359576334576b746b516d347a52324e735330527653324e5a59566c4e5632465a4f45704c6557397059305a78635768316358465965565a7861334655647a5677513068726255464561334668647a46776158646f62326c3361473878654670776248467963555a7656486331634d08024778505957787a526b7468545538325a306c45626e4668647a467752586c3462315a3351334178643274545457687863555a7a5957787a526b74776358645863554e4961307458655668776355646a5a445a6e593034325a324e4f6357746a575746354d484132635746436358645863577478626e686162306875616b7442655568315245527465566431516d4a7052306871626b6449616d355452475a76595846316356646e5a5564756146647854305671626b6448616d394c536d7071635746334d58423564304a786558644363586c33516e46346233465064334645654452776155646955324e76616e64776232745759324e6964315a785457644c596d3548536b78685754684b53336c7661574e476358466f64584631536e686f5232467a6158683662314e354d6e5243655656766355646a5a445a475457526859304a6962314e495347704863584678645846316158683662327478516d3574557a686a63556c44626d3578516c687552324e6b59566c6a5a47465a59325268536e4e4a59553178645846585a30646a5958467665473146564778505132706f5530683556335643574739355558424e625846424f474e68545468724e6e6852634564716158466862334a78596c4e4e566d4676616e6c536232393462556448654556776355646a5a47465754576878556b316a59565a7a63454a776355644c574731316357466e654d0802564a7662453979516e4e565332464e547a5a6e53555275635746334d58424665586876566e64446344463361314e4e61484678526e4e79516e4e56635739345a556c596130394353476c544d33643563304a5563486c6e62334e736355464e556d465a4f45704c6557397059305a78635768316358564965555a77615563325a3031584e6c55346231523351335534545846485932526865486c76526b787156305a6d5958427863584a784e6d644e5633467665464e4355473550526c413252584e6e5446427163554a59626c647a5457463465573957654735586358453263545a54516c4275527a5a76556c466a533074356247396f576e4e5a5330526f655739486330707856584e766148685763464e34656e427563584678636e464562314a5259307468623370486158685563576833523342535a474e775455564c616d46336257395465476c4c5156687253305a51626d5678635846316355393352326c34564846705232464652315268655842484d6e647164454a59626e5645534774586330566865464e7652486c7062304a556258467864584678556c6c4e63476c48596b6c42544735745933465362453154596e637863446433516e424754476858633055325a334e4a5958647263484678636e46695355464d626b3978527a684e4e31704e6357686e4f47784d616e6c485457526864336c7755336b7763455a5563586330634d0802454a766355647854334e765457633363556876516c4255636d687851325931523031564e6d4e48616e4678516c6875625570515956644e63554a565455633263484648533270706556707a6356646e537a687359584269643064784d6e6433634770564f46467863554a59626d46485348466b59315a78526d4e6b53305a786355647a596e64486357785063566c6a63564a6a5932787861305a514d486c6e655764485932684c654842765257357055324e4c6358453251584a4c5232354c634574714e6e68596344424b59324d3252324e6b4e6e6443634768345558426f654646776147746a536e464663315a786458466c5a336c7655334648564868466355686d6246646f65454e785330527054324e525955564e5532464654564e7859334e735955564e5233463553485278615764485648684663576878516b466a5757463362464e6e6547317a54584e6a61474a334d5842556545467761486857634446336247396f623346354d5841346132467a6357566e52304633614842735430744f59334675643056785647564e62484678516c68755230645162306448554739485231427652334e4f635846466330744f597a4a78533346786248687363476c6f6333426f6357357863566c7a6148464e516d4a6f63574678635731455647704c62336453623346485a33464d655735545358643462334648614856616545527852465272524d08023068335658466f63564a775330526864306c77516c644e566e46786547394c52484642633264785a304a45626b647859584678516b466a526b7443536d4a73523346586355745664315a775130787353305a6962456478543346784d33687255336434576e4653636d6c78516b787252314a3462557461654768485455397863586c34556d394465554a78513152756355747161586c4a63484a78536d3943544774796133463655303146596e64776330524d6255644e54334633536e4244524774486355644e555846334d3239435630315763584643574735685256426f61554e6962573146544768786355644c5a6d7848636e46435157463351584270527a5a7359334654643274545748633164454a5963486c4263554e4962556448616d784852325a70615531785356686f63574676636e453262474e786133467164304e78513068726255464561334668647a46776158646f62326c3361473878654670776248467963554a424e6b6c7a5a324677616c644b626d6870536c527554306c356433427852324e6b5332686a5457464763314668546b31775256527663574643636c644b626d68546355394e6230566d62307458655668776355646a5a445a6e593034325a324e4f6357746a575746354d484132635746425a30394e623274784d33684563556455626b7442655570775245687165566431516d4a7052306871626b6449614d08026d355452475a765958463163556442627a4e345248467363565234516e466f65466c7855336b30623346485932527854574e6e6355316a5a33464e593264685458467852484d3256574e6e63573934625552714e6c566a576b7461526b677a52324e735330527665544a77556e6c705230646d61576c4e63556c596148466862334a78596b394e63576848636c6c4e53545a4a4f4556695a303147635846435747356c516c52755231683352334577654868766148467863584a78636c6c4e53557477635864356345684561457470647a56775958637863454a59626b6448574735485231687556304e4d6155647163584a78526d39445447354c59584e4b65454a77564868566344426f6332786964305a785456564c616e424c51564275523052516347564e5658463462323978527a5a784e6d3146534774484e6d394e526b74746331466855556c4d61484668647a467756586c7463444634616e425665544e7761486378623346485331687464584648516d394e526d4677656c644b626d7470536c527554306c356433427852324e6b5332686a5457464763314668546b317752565276635746434e31644b626d744c59584e4965586c76656e64756344424f633031696431567854556c4c596e424c515652725230646d61576c4e63556c596148466862334a784e32687a545846766145394b53477850526c426f54304a4d4e486c36624d08023246334d5842475447705863303168566a6877624846786458467856486c5363476c4854455a4e57545a6a59314d3252584e6e5446427163554a59626c647a5457463465573957654735586358453263545a54516b5274527a5a76556c567a5357464659316c685755644d62586c5262303178516d4a7053305a4d59566c6a566e46564f474d32634846784e6e453251574646526b7870527a5a7a61466c4e5a32465663326468565568595330526f655739486330707856584e765133644763464e34656e427563584678636e46456332685a54576478623268486148685962326833566e426f546a685a596e637863446433516e424754476858633055325a334e4a5958647263484678636e46685255646d6145746863314a725932466853574e575956564b616a42485932513254324e525958685462305a4d6145394a54476c485456707863545a784e6b645365584277616e467a57574a484f47646854554a69626b744e64554a594d6b644e63464e354d484247564846334e484243623346486355397a6230316e4e33464562334e5a5958427153307059596c4a4e556d4652526b517a655764355a30646a6147466a5930646859324e4859574e6a527a5a334d5842785433647855336c73567a5a7a5258644b645552335758423453574e305457394e62304a596230744a616d394c5357707653306c7162316334576e467852484e4d514d08026d4e70595842366554567a6133644363464e464f47524d524574455958644763554a356145744b5647394853556868643146776355393364574e505958427159555a696545394653476c4862336779655764355a30646a6147465a6331466857584e5259566c7a55545a3351334278543364785633685862327478513364726232313351334243566b3157596e6378634746334d584248626d746859314e4c655870775245527363584a78614546785155314b533342795155316e6355707a555746565130513052324e6b6355646a5a484634536e4248626d74704f474d32643146774e6e46685358644c51555276557a5a4c5155527659554e4d6130644465477430516c687563554a59626d466a55334634536e424a55473550545656786458464851334e446430467861334644643274766258644463464a6a54553969647a467759586378634564756132466a55307435656e424552477878636e466f5158464254557030523346354e584e43596d6850626e6876635746334d58426165577074526d706851555a7161475678635768356232396a52334a78516b464c626d70584e6b396a556e464b5930593253555a5161334668647a46776258686f595568596247464357473554614846685358643152466872567a5a765533685263464a6a5455317861305a514d486c6e655764485932673265476477534552745a55315a63584532514d0802584a4c526b5273557a5a4854566b3265476c54626e643463474a334d58424553477448523052735230644562456454655778765533645863445a78595531335230315a53334268545552696157567a62315a5a633264786557647a5245687252304a7161306443616d744c53474a7752304a7161484534556e4a7865454668545552696155647852304633516e426a547a5a72536c523465586435526e564357473550526b5272523064596246644557476c486158464c574735355648463463545a4259554642534774584e6d38776433426c51315276553146345348427852324e6b59566b345a32465a4f4764685754686e595863796233465464334577643170794e6d39785a55527153307046616d68486355747863545233626e4270556d4e5859573832634846685355527653314a3555334278625846786146453463454e485932527863554a764e6c4e4e6130746f536d4a73635746464e6d31475547394c52575a71523068335658466f63564a774e6b647a5257466e526c52736357464e4e6e6c6e5230706d616b74496545707761484674635746505457564c526b4e59616b64785633464c5658645763454e4d62457447596d784864564e7855334a3365585243616a4e5063316c68647a52765131686f533031525957394d56476c58593246685a305a5562484668647a46775233686f63473933556d394b65464e766358466f654d080256687765484668555864356132397063556c33656e4134546b7457536b517a52324e7353305276523031734e6c6c4e556a5a5a54564a6856584e564e6e686f623346484e6e466855576470515642755333466c536d5a73625468775656704e52324a33566e464e5a3346336148426f65466c776148687562306c7153336c57623346484e6e46685657646c536d5a7355334650516c413053324e5259554e4e55584678516c687553304e496155744453476c58534735735633463163556446623152335248467363554a714d47464856473948616e64486348464859325268565531465956564e52574656545556686348464852584e6864306c7762453968624531465330746a556a5a6e53555275635746334d58424665586876566e64446344463361314e4e61484678516b4a795630704561464e7853324e7a51306872533164355748427852324e6b4e6d646a546a5a6e5930357861324e5a59586b7763445a785956466e53324e766133465a64316877524578785155684d6145394e5a3074694e5563346132466a545756685930316c53303434614846774e6e466855576470516d5a73563346485a33646f52306c556155644a643264766355646a5a457435576e424a626d78705931644c6348464852584e6851554e495958413255584e6e59556c7a63464e354e47397852324e6b6355316a5a33464e5932647854574e6e59573978524d080230567a4e6c467a5a334676654731465a6e466e63314a4c576b5a494d30646a6245744562336b7963464a35615564485a6d6c705458464a574768785957397963574a544f48426f52334a5a593074785654686e596d644e526e4678516c68755a554a55626b6459643064784d486834623268786358467963584a5a5930744c63474633656e424e6133464a5132357563554a59626b646a5a47465a5932526857574e6b5955707a5357464e6358567852305676516c42755633464c516b527762554a754e6b6c4454476c7859586378634870336547394564314a76655868446355316f6358466f516e4a4c516b5277563346356245646f6547685056486c5a634846485932526865554a775533684b63556c4d62586c7463545a42636e6c735332467a576e685263454e356247387761484e73596e6447635531565332707753304651626b64455548426c54565678654739766355633263545a74526b5273567a5a7a5457784c537a684a59566c46564774785958637863445233556e465965484270524642755530316b63584634516a64355658467354334a4354564e4c53324e534e6d644a5247357859586378634556356547395764304e774d5864725530316f63584643516a646851577072567a5a7a525642705955465561456470654546786355646a5a474634626e42475a6d31584f46704c54477878595646336455565161566478654d0802577848654864536233704a63316b3252324e6b5958637863464a335133465364306c7853557874655731784e6b46796557784c59584e59655868766158684a6344424f633031696431567854556c4c596e424c515652725230646d61576c4e63556c596148466862334a784e32786a5457467763586435634668355748463652574e7363584643574735545155787154304649614574495447396c6358466f516e4a4c63324e68623346335748564352477850626e6876635746334d58426165577074526d706851555a7161475678635768356232396a52334a78516b4a78643168786245394c546d4e78626e644663555258635846435747354852314276523064516230644855473948633035786355567a5330356a4d6e464c635846586430707855304e4e593246764e6e427856306875625574556431647663573178635768524f48425559324e5363584643627a5a545455644c61454649616e466852545a74526c4276547a686e59574e42564842486355647363574a3355323943563031576358463462307845636e644663586c5359315a686233467763573145616d3550634868716347687862484644526d4e576358645463464e345633426f635770784e6d524e634652484f466c684e4574775958524355444a5063324d3364304e77516d4a7253324e474e6e646e634768316330567864316876516c644e566e4678516c6875594d08025552456347564853476c745255786f6358464853325a7352334a78516b4e4d5447684c5957394965464e7855336453635442475932566964315a7854576478643268776148685a63476834626d394a616b7435566d3978527a5a78635756465448425463553942574731545932526851303152635846435747354c5130687053304e4961566449626d78586358567852306c765248647363477850595649345255747463316b325a306c45626e4668647a467752586c3462315a3351334178643274545457687863554a43636c64465547685463575647544446506332394457574e6f4e6e644263584e73596e6455635868344e484234654452774d48644963573178636e4643517a5a5763315668634746586333426f643264766547784e634846485932524c655670775357357361574e585333427852306c7a5956647a634778785648686e62314a355647393565466c776355646a5a48464e5932647852584e736355567a6232687859576433635652345a32397052324a74545842556546527761315a6a59324a33566e464e5a307469626b644b5447465a4f45704c6557397059305a786357683163585661655774484e6e4e475348426c53473577523064346248427852324e6b63564a6a6345683362453948554731485231686f63574676614856785230707a526b68775332467a4e48644a63487033566e4177546e4e4e596e6456634d080255314a53324a7753304655613064485a6d6c705458464a57476878595739796355785054564e6863484a3362584d7864306c784d45354e5a5846335648564e54574a335632394464323177526d4a7061574e6c635846785158643151324a70563346354d6b646e65456877656d786a566a643365486c3363304a6961457442596d3148516b787761574e6c63584678515864786333427264555a75656b643464327448616e637763454a59613346435747354c5256427153305651616c644953476c48525668786557397a6355644a63305a75616b633253334e6a53326c4e52545a5251326f3065554a775958637863466c335758427565465a76534864556355523457473978635768316355644a63304e4d626b6468633152334d6d3971643368485356526f635746334d584259647a427765455a7a6145746b59303168623346784e6e453254304a69616c633262336c344e58426f566a686b4e6b3149616a4a35516e4268647a4677556e645563464a335648425364315277634846785258647865586731634778506357644e5457465a526d5a75543370346233526a555846485932524c65586477535552756155316a5332706f63545a42636b744a524770584e6b73345a474a526330314c61456469626b646a53307845656b647a526e46566332747865456c78516e64616358467851304533537a686b59584269647a523053586471624d0802304a534f47394452444a355a334e43596d684852474a6f5630314a53336c6e623270786355463364554a71626c633252324e52596b4645564735485648685a63454e454d6e6c6e63304a696145644a5647315854556c4c65576476616e467851586431516b6872567a5a4859334e6f5754685a5955314b5747394c54566c4d52486c4863305a4c655564775255687355324e4e4e6d39785330467a596e646f5233464c4f477869515531684e6d4e48616e4678516c6875625570515956644e63554a565455633263484648533270706556707a6355644a62304e6d634663326556567a516c564e6345524f4f4763336433683564334e43596d684c51574a7452304a4d63476c6a5a584678635546336455314759584279643370745230527454304a3356485644626b74456555647a614846426331706852584e7253336b316348467851304533537a68766245394c546d4e786248644a634774426330707863554a59626b64485547394852314276523064516230647a546e467852584e4c546d4d796355747863554a4e6330357859305255595738326348466853475a7653304a35576e467862584678614645346346526a59314a7863554a764e6b6443626d68545358643462334648614856616545527852464276523068335658466f63564a774e6b647a5257466e526c52736357464e4e6e6c6e52304e516255744a647a4e7661484674634d080257465054574e4c546b5669614564785633464c5658645763454e4d62457447596d78486355397863564e336247397252574e6f5954524c63484630516d4a6964316c3152457874523031506358645762304e75613064786558707651324a7752316c345658427852324e6b6355704e526b744c6331706855334e4663584668627a685759584e7853304e764f45314c63445a465932513365476877536e6442634846485932527853574e4a63556c6a5357466b5931646863445a7863556c6e54304a59626c633262315a355532387a6544467652476c4e59334678516c687555306c49616c6443544774585246524c654556786358566862484e465333424c52324e54596e647662304e6a6330553264304678633278696431527865486730634868344e484177643068786258467963576c425330646a55324677595546445547464e545842435130314a63584643574735705931644c6556707753573573553346786155467952326433616c647854305655626d566a614846725455397863554a59626b74455347394c52456876533052496230647863576c42636b39465647354c59584e4b6547784c52474a715531643465485243574842355158467a5a4746726332396f654735765357704c65565a766355633263545a74525668686233684c52325a71533046514d30644a5647687859586378634668334d484234526e4e6f5332526a544d08025746766358453263545a4c52325a71553346485931704d6544567661556c6a5a58464859325268647a467761486778634768344d58427364326c7665473832635846485931707862336874525770735330525961464e4965566431516c687665564677545731785154686a59553034617a5a3455584248616d6c785957397963574a5454566468634870355533457a6547704857586447635846485932524c54324e724e6c5a6a63545233656e4246564735786355313364584e725958423659554669624756495747705053586c33634846485932524c61474e4e59555a7a5557464f54584246564739784e6e5648643164776245394d626d316852574a7052326c345158467852324e6b5958683363455a45626c644e5930744d6158467853586431593246786233686c5357357153304a7161564d7a64336c7a516c527765576476633278785155315359566b34536b743562326c6a526e467861485678645568354e57397163574a56525552755230643562323968647a4630516d357261557069634564435647707454553032634846486357314d52486c7863556c6e63577878636b3145564846465230773165564e30516b5272527a6857635546785158464263584678555864786445747862554a4d6257316a59557457516d497952324e6b6355633455545a724f455532617a684659566c4e566a5a3452334678527a5a7863556c6e624d0802554a4d625574786155527561457446544739545258677a63304a69626e6c5663554e556230744a5647314853575a6f6255315859586b78623346484e6e4678565764705247356f567a5a764d48683563484233616e4236546b314e5330526f65564676516d4a705630464562564e47596d3554516c42765a5468476358463551584a5453457875567a5a76535668706255466d4e6c6c45554731355557394e5257463362573947643364765658684863465633564842495a6e46786555467961574e4b59584271533056355633464356584e6e59574e47544768355557394e525746336257394865564e7653586c725a556c6d6155394e536e467865554679533056355633466f5233466e5247707656304e454d306444596d39355557394e5257463362573959647a427765455a7a6145746b59303168623346784e6e4678537a5233535846735430783562484249654731776147644e5a55744561486c5262304a6961564d3453557434616d394655476c35556e467853304e7a54486c73634778785133687361556871626b3971643168785455564c5247684863306f325a7a68564e6d4e6a55545a4e63315a4c596e467865554679533056595958424d65454678516b464e62545a56526c4275655646765455566864323176516e685a63465235566d3943647a5277616e467854586431525552765633463561473953597a68765645704e554d080255744561486c5262304a6961556443544739485346427661584e5a53324a786355527a53306870533346505256527052304a33616d397155574e775455564c5247684859303578647a46765247356864316c77516d357063574676636e46456230523461323973547a5a72593146685355466961553971647a5230516c67316556703059325668647a527752466870547a684659586472623346506433465565554a776245394c566a686f59555643626d78505533647263304a594e586c6164474e6c59586330634552596155383452574633613239785433647856586849635778504e6b464e5a57464a5157357054304a355258524357445635576e526a5a5746334e48424557476c504f4556686432747663553933635552334e48426f63554e6d4e55644e56545a6a5232707863554a59626d314b5547465854584643565531484e6e42785230747161586c616333464c513239445a6e42584e6d397165484277626e644663555258635846435747354852314276523064516230644855473948633035786355567a4e6c6c6a5958524c635564445747394c4f455932593064496255646a5a48465059314668515570716230643564327876566e684963477078533270756458464c5257396f64305a78624856435648705452556871543068355533464357473578524568726255706d6145646f65476477625864556231563355584279534d080230567a596e63774d4846506358457a6544427752476c4e62474676635739785a5570596357644956476c486357567863566433616e42436154684e63584677635746465255686f54336834526e42785232647854486859623056445930317863564a76596d6b34556d46564f474e68575570556155647852327878596e645462304a5854565a78635868765445526861324e5863574e485747394863574678635456334e4842555954685a5957396863484652516c687353334e566356567a566d45305333413264454a514e55646a6455524d6255644e61584633566d3944524739486355733462474a4e54556332593064716358464357473574536c426856303178516c564e527a5a776355644c616d6c35576e4e785330647651325a77527a5a485931553364314677516c4e4e62484678516c68755955566d626d6c44596d31745255786f6358464853325a7352334a7861554a6964314a776155644c5130315763566c4e5a30746b516d347a52324e735330527653324e5a59566c4e5632465a4f45704c6557397059305a78635768316358464a64315677613346716432397a516c52736255464561334668647a46776158646f62326c3361473878654670776248467963576c434e6b6c4e53324677616d4642564731745255687354306c356433427852324e6b5332686a5457464763314668546b31775256527663545a7852336472634d08024774785358647264455a4d63554648544778505457644c596a56484f4774685930316c59574e4e5a55744f4f47687863445a7863566c6e615546556256647852336433566e423464306878516b4e4e53584678516c687561574e5853336c6163456c7562464e7863576c43636b643364315a7762484655654735766548645463564e354e47397852324e6b6355316a5a33464e5932647854574e6e595739785330647a4e6c5534536e46766547314554477854515578725531643465485243574842355158467a5a4746726332396f654735765357704c65565a766355633263545a74524578735232467a5533684663577034576e5643655656766355646a5a445a475457526859304a6962314e4953477048635846786458463155336846635774785132703455324e5763556c44626d3578516c687552324e6b59566c6a5a47465a59325268536e4e4a59553178645846785132706f5332467a4e58647455304649616c4e4965566431516c687665564677545731785154686a59553034617a5a3455584248616d6c785957397963574a50633342735430747562575649596e424852336846634846485932524c54324e724e6c5a6a63545233656e4246564735786355313363574e68595842365630705559564e6a56545a6e53555275635746334d58424665586876566e64446344463361314e4e614846784e31644b56474677656b744e5a4d08025746574f4752685355644562334668647a4677526d5a74567a68615958687563484e56635845335330316c635739345a5568696230394a564774544d33643563304a5563486c6e62334e736355464e556d465a4f45704c6557397059305a78635768316358557a654564786158467665454631513368706346566b5932646964305a78545656686433707656486c55623152355647396f654656776358466f6458464c52323976654546786245394c6155316e596e6c77634656535932316964305a785456567864326c765533643462304e336232394a544842786355744963307470545763326233463352585253617a68776545314e5a307855596e647363454a51616c644a53473948516c527152304669626d567863576878516e63786557647a6355744862304e5561316332627a4633526e466164314e77656b5a4e526e4678516c687556306c556246644555476c545356426f62584678655546795630525962316332637a46336232396164314e77656c4a6a635846485932526861453157595534345355746f4f4556686358464c52484e69546b314c5333427864326c684f47787857555255626e4668647a46776158646f62326c3361473878654670776248467963576c4363586470567a5a7a5245687456305a45614564486557687859586378634564355532394a6557746c53575a7052305255635846355154645059316c68624d080233684c526d357454305651655564495a6d787859586378634668334d484234526e4e6f5332526a545746766358453263545a4c526d35745533464c4f45303365476c7665556c6a5533464859325268647a467761486778634768344d58425665554677556e45326358465a5a30733454574677656e6c59635564346558426f5754685763584643574735544f456c4c654770765256427065564a78635574486330786d634664785330566d61476c49554778505248633162334648593251325a7a68564e6d4e6a55545a4e63315a4c596e4678655546795330566d6146633262304a55626d6c475647315465586454623346485932526852584e6e4e6e685362326c4c6358464451334a48545752686347704854575268576a686e53317045534739785958637863464a335133464465557078516c42755333467851304e795230316b595842715231563362316334597a5a4e53474a75635746334d5842535255317751336c4b635556596130747863554e44636b6456643239584e6d396f57584e4b5958683663454e705456567865565277516c687552314a336130744a626d3950593252786233464c53584e68535564696156633262306c3356484e436432397752336857634846485932526852554a556357646a61557434526e42706358466e6433464a64315276624539796544467a52336b796232687359314e4d56477478516c6875524d08023046696245744a626d394c6357397853306c7a636e67786232785059586377644774344d4842565355315754474a7363554a59626b644755476c7463315a7864323576615846785a336478516c5275567a5a76516c517a56306c69626c4e586432393063315a7852324e6b5956553453545a724f46567865476c4c6358464451334a4854575268634870684f47526954554645616b643565454631516d703565564677516c687653305269626b394a616d3954593064786233464c53584e7965444e77624539696545703061465a68545568714d45744e613078456345646a5a48464e63325132617a68725333686162326c786357643364555a75613163326333683355584d3164316c7861465534576d4a3356584e4e61324633566e4635647a4a7752486c7355324e486357397853306c7a596b314e52574677595864586356703562584255546d4e6c635846435747354c5155687754304a59616d6c7a57557478635574456332463356334670547a5a6a5930646852556c4562303944643370766355646a5a484633523342465247314859303978623346484e6e453251545a6a5930647862327058516d357052314634614842715154684e635846435747354c63314a4c65476477516d3571533346786148567854326458516d3570537a5a7652586c7663464a4e4f47733254555a45635846435747354c63314a4c65476477516d3571534d0802334678614856785432645453577074563346485457526852556c4562303956655778766355646a5a47464663326468597a686e53336c7063484e776355393363554a55626c633262304a554d326c4b626d78545133647164484e576355646a5a4746564f456b32617a6856635868705333467851304e795230316b5958423653303174596b564356476c5056336c7763334e565330687152324e4b5956553453545a724f46567865476c4c63584644517a644c5457316863477054524642745a554e6d6155395a63484678516e685263454a345558424365464677516c52786355567a5330343457585278616e45325a4531775645633457574676635739785a5570456130733065477476614846756357466b5932467852556c6d635846776357464a525759325255685961334668515846315257706f55306c336547397852326831576e68456355525162306449643156786148465363445a68545556685a305a556248466854545a356431647a526e466e51574a7052334668635846766430687756476c7a624746765958427855554a596245747a5658465663315a684e457477595856455a6a42485457453364326c77516d707153324e4763586452635768315130686f59574e70595764475647787859586378634564346433425965566477536e68546233467861486c59634868786357743353324e465333413253574e4e596e6454624d08023070335158427852324e6b63556c6a5358464a59306c685a474e5859584132635846725a303944534770586355747a6445643561334243536a6872635846435747354853474a7552306869626b6449596d35505930567863564e44636b747a63477850595777345a457450545751325a306c45626e4668647a467752586c3462315a3351334178643274545457687863564e44636c644b5a6d35546355744e59574a33553239706244685763584643574735505356687154306c59616b744b53473174545752786458464c536d3944616d315463576c4457476854593031785155684d6145394e5a3074694e5563346132466a545756685930316c53303434614846774e6e4678613264705131686f563346485a33647663464a35564842435130314a63584643574735705931644c65567077535735735533467855304e7952326433623342736356523464323934647a467655336b30623346485932527854574e6e6355316a5a33464e593264686233464c536e4d325655314e63573934625552756130744b574735545633683464454a5963486c4263584e6b5957747a62326834626d394a616b7435566d3978527a5a784e6d3145626d744859584e70654768776158685563304a355657397852324e6b4e6b5a4e5a47466a516d4a7655306849616b64786358463163585670654768776133464453476c4854556c7853554e75626e4643574d08024735485932526857574e6b59566c6a5a47464b63306c68545846316355394262304e49615664785230685961576c4852445a4a51307870635746334d5842446557684c526c68725330524961336c5662334650516e4e6859324e4b635739346255564d6345744b5647785453486c5864554a5962336c5263453174635545345932464e4f477332654646775232707063574676636e466955334e725958427165586c774e4864546347685354564a7863554a59626c644b5a6d6c7051305276563070716130647263545a4a6433467a59324677656d4642524739705246527554306c356433427852324e6b5332686a5457464763314668546b3177525652766358467264335648643046786245383364327877563364456347685a5457647863554a59626c6334576d4634626e42475a6d3135553342785330707a4e33647363476c484e3267345933466a4f47524c5a45524d656b644e6245744561586c5863554e335258426f654735765357704c65565a766355633263545a6c53564275563346356132395a65465277656b314e55584678516c68755430567561564e4b53473950515642705a584678616b467965577476616e464865473576516d5a75563146355248566a5a324a335533424552476c6c534770745230647162453946616d464a6358466f635552344d586c346333464c536d394865473576624538325555314f53316334564d0802545a4652323570635746334d5842736433426852556875543070596132567863577042636b3946564770505957397564304a78524864776347785a63315a4d5344524863315532643368765258686f62304a3355323954643146785133467852334668544568366358466c513068765233464c4f47786964314677656c704e635846485932526862546876576e68765231463457573975635746765455744c626e68786357746e537a687359584271553052754e6b704e61445a6e62484668647a467761486845635768345248466f65455278516d4a7163557443636c4e45626e527861584678516d4e5a6357644956476c4863575678635446346348423552584e47635846776357464a525759325255685961334668515846315257706f55306c336547397852326831576e68456355525162306449643156786148465363445a48633056685a305a556248466854545a355a32316a5358466e516d35765233466863584531647a527756474534575746765958427855554a596245747a5658465663315a68627a5a766357564956457447526c5272523352586355647a5757464652577075543274336133427852324e6b4e6e687363464a3556323947616e42786355394563324633615842736455314b595546495a6d35505248647362324a334d584243616d394852574a685654686e4e6e637a6344686b63584645516a6435617a524c634d0802474642636e643563304a714d6b397a575746334e4739445747684c54564668623074755958685263554a5854565a7863554a59626d4647626d357051324a746255564d614846785230746d62456479635652435332354c63445a4a5930316964314e76536e6442634846485932527853574e4a63556c6a5357466b5931646863445a784e6c566e54304e49616b39786454523362334243536a68726355646a5a474a334d58417a6430687851336c5563564a3351584673635746765955566a6445314a4e334671516e46584e6d395765544e774e4863776345527054574e7863554a59626c4e4a53477058516b7872563052555333684663584650526e4e686244686b5333427864323930516b786f533164355748427852324e6b4e6d646a546a5a6e5930357861324e5a59586b7763445a784e6c566e533031685333424c53324e475333683462304e6a6330553264304678633278696431527865486730634868344e4841776430687862584679635652435330746a526d467759554644616d3148536c427352306c335a32397852324e6b53336c6163456c7562476c6a5630747763553947633246425132707456334650526b527152305259616b744b616d70785958637863486c33516e463564304a7865586443635768784e6c5633635652346432397052324a5059314e7861324e6b5331704753444e485932784c524739354d6e4253654d0802576c4852325a70615531785356686f63574676636e466954324e54595739345330644962557448554868485356526f635746334d584259647a427765455a7a6145746b59303168623346784e6e45325330644962564e7853324e4a5958646e62326c4a5932567852324e6b59586378634768344d58426f6544467762486470623368764e6e45325657644c59306c7862336874525578775330705562464e4965566431516c687665564677545731785154686a59553034617a5a3455584248616d6c785957397963574a5463327468634770356558413064314e775532747a61334678516c68755630706d61576c445247397452305270523274784e6d4e3363584e6a595842365955464562326c455647355053586c33634846485932524c61474e4e59555a7a5557464f54584246564739784e6c56336455643351584673547a6433624842586430527761466c4e5a334678516c6875567a68615958687563455a6d62586c5463484650526e4d3364327877615563336144686a63574d345a45746b524578365230317353305270655664785133644663476834626d394a616b7435566d3978527a5a784e6d564a554735586355396a576d464c4f46553253554a7563484668647a46774d58687063466833556d387864314a78516e646f6233465053484d3264327877616e464a65444a745456564c526b46594e55646a62457445656b746a574d0802545a6b54574668575531585331706a595846785957396859324e30593031796357704353314e7a634778506357526a5a545a4e4f4530325930687561334668647a467752586c5262315234634539485747356c6331467863555244636d4649626d35484e6e4e4e623052596145744554476c7863575649616d3158535578765530647562564e7063584678636e4671516b784559573971523270334d30646a6257466a5157356f655764764f47684c534735505155787556306c4d62303948534768546158467863584a78616b4a6854554e6d5957397864316831516b52735432353462334668647a4677576e6c7162555a7159554647616d686c6358466f65573976593064796356524363586459635778505330356a635735335258465559553173635846435747354852314276523064516230644855473948633035786355567a5330356a4d6e464c635846435a30316163574e45596e424863575678635446346348423552584e47635846776357464a525759325255685961334668515846315257706f55306c336547397852326831576e6845635552516230644964315678614846536348464c63306c685a305a556248466854545a355a30394e5658466a52574a725233466863584531647a52775647567a546d46765958427855554a596245747a5658465663315a68627a5a76635756495645744352307872523352586355647a574d0802574652535642765431563361484668647a467753466874523070696147567a565846784e6d743363554a4d62566332655774766547746a527a5a4e5157357464554a59626b644e61574652633342536545527852475a7565544e776355394b6330785561584a6f6232467a524642365330315a4e336457623052756146644e543074345133466f63554a335633413252324e6b4e6b646a5a4746725930564c546b5259626c64426233467853306732645574435a306442596d78584e6b633165454e78556d787a6247466e54576469647a4677596e637863455a7562466446616d35585257707563584a5451584e696130684d6231647852316c3352335235526b31685957746a54324a334d584269647a4677556e6c7063464e4a59324e7851554a69616d303263555642636b645a643064776145747853306475626c4e4a643264786356644262305a4259554a6e635846784e6e564c516d637963576c786355743455584230567a5a4c5648645463304e535457733261304e4d63486c5763324e465330687653326834616b74426546687651314534526d465263314932635656424e30745564314e766145647952555255596d64435247744c6233644563474e475445686f65554a7855304d3452584646526d5a765230643553584653654556776358453264545a4c654864725632467a6157644e56584a4a536d4a7354323134626e426a524d08026b784961486c4363554e565457394455546847635546465a6d684852574a7264545a316157644e56574676656b73776547703056474e6a5332464b5132707065565a7a5930564c534739585456707851556c4d62306331654656766358467864584a5451334e445a44685a5957393653315a35556e565561324e7259557042596d7435566e4e6a52574633574842475647314c52336c6f62314a6c54555a78635846784e33467251584a56536b6877527a5a7a55314a4e5954644a51325a7756314a35516e426a526b78496145744e526d46346133427061474e4a5957744956476878635845326455744b643074476547397761453979565564594d6b394365445676624530345930745965486c5363304e456246644e576e465a53556870527a56345657397863584631636c4e4463314e615931707862334a4e516d3478537a4633526e46545a474e6e5331427863555a6d6231633461484656523235735330316a635845326457465264307455643170776248563552574e584e30314955476c5856486452634468766357466a61484634526e46536430567851314273645746526433563552574e586357397954554a754d5574566433707655324e4e613074516358464b616d464654573178597a687363586455634846784e334643516e4a4e516d3573636d68764e6e4e4455444650593064796430707852565277537a68614e6e6455634d08025574786357564b554768584f453168636d68785645646a59324a35655842536544567a516c687564554a59626b64425a6d7854526d5a7755336c336248467863574e764e33457751545a72516b68755233464c575867305230464962556447626e70485932513252324e6b59554534566d465359315a4c536b52716233467863574e76636e45775158466e526d70686232466a516b513052304a4d62456447626e70485932513252324e6b59554534566d465359315a4c536b566d6148467863574e76636e45775157466a516b5276523346585232593062574e585956566a54324a334d584269647a4677516e645963455a34566e427254574e56635846786557683163564e456232783453484670635442425931564d526b527162557445596d31786356647a55574634513342475447747863586c6f645846545257387751574e5663573832575564514d564e34643239776558647463484678526b787256334e52595868446348467859323979635556434e6c6c485547784c6355395464306c305655314e5958464e6331707863574634513342475447745863314678635574494e6e464c556d64505533644a63476c785532684e5655784752477074533052696258467856334e525958684463455a4d613346786557683163564e4662314e6f5456567862334642526b517a553368336233423564323177635846475447745863314668654d0802454e776358466a62334a7852554a7851555a45626b74785231563365585256545531686355317a576e46785958684463455a4d6131647a5558467853306732635574535a30645664336c7761584661647a56305655314e5958464e6331707863574634513342475447745863314678635574494e6e464c556d6474516d35755333464c5355677a55336833623342356432317763584647544774586331466865454e776358466a62334a7852554a785a324e6a595739685455705165464e4565473548526b787763554a594d30646a5a4746424f465a6853584e4b4e6b4643596d35786358466a62334a7856554a68545570516145733262326c4f59316c79526b314c5957744e536e467863574e4e6157465354555668516d64486432397863584a7861304a785755524962557332623056435456566857556c69626b644b56476c7863557449616d39585255526f52304e596255643362334678636e4672516b745351555273537a5a76556b316a5458465a5345786f52307055615846785330687162316446524768485131687452336476635846796357744359555645534770484e6b39776432707a5355687452305a75656b646a5a445a48593252685154685753315a6a5a55744b513142756358467859323833635442424e32744455476c48635664485a6d3954536b7835543046454e45646a5a445a48593252685154685753304a43544d08024768544d33673062334678533067326355746b5a3164485a6d394c63564e4564314a775645394e5258464e6331707863574634513342475447745863314678635574494e6e464c556d64545248645363476c78616c6f3456545a725245526f533052696258467856334e525958684463455a4d613346786557683163564e46623270614f465678627a5a4a516d7072547a5633555739356432317763584647544774586331466865454e776358466a62334a785255493253554a716130747853305a3555584255543031466355317a576e46785958684463455a4d6131647a5558467853306732635574535a30744765564677615846445655316a4e6d74455247684c52474a74635846586331466865454e77526b78726358463561485678553056765131564e5933467659564643544735504e58645262336c336258427863555a4d6131647a555746345133427863574e76636e4646516d4652516b787553334674516d3575547a5633555739356432317763584647544774586331466865454e776358466a62334a7852554a6852324e6c635739785a324e6a4e6d74455247684c52474a74635846586331466865454e77526b787263584635614856785530567651336c344d584676636e68426456566e63325278535564756348464357473578534735775a574e7453314a485a6d78786358453363555643636e684263576c785130466a564d080255784753574a75595552596133464357473578534735775a574e7463553145524778786358467963555643635546425347784c6355637965466c7a5657647a5a4746525346527852324e6b6355644e556d463352584270546d4e4c63584678645846545257396f5a4531486357394c536b6c694e464e4365544a776146553462334678534735775a574e74595546485748467863585678553056766132647a6148467659566c4954486c54516e6b79634868425932787863545a34576e4649626e424864336457623346784e6e464c556d64484d6e68704e47464a63564e7965476c3052574931557a68566358687063455a71616c4d345a4846706358467854574e6c59584a6f635746565355527851574e54596e637863474a334d58425364323976526b464c62574e776358464c53445a315332686e63576831634868536331524f633031785455316b596e637863474a334d58425465476476526c644e5230744b52475a705230525562584678527a5a315332783362556449614563326255644961453973647a52765133645263304a59626e5643574735485355786f56316c3457573943565531705955314e576e46785957383363565644596d466a52574676615846706544567752554e4e62334678526b4668516d64585157397863584631636c6442623352584e6b637a64306430516d466a634442534f47647964326c7659303578644d08023146786548633163477833524846535255317453324a716457464764335634546e4e53595842345331523352585253556b314e53327843524735485930704c5748424c63334247596d354c52307868566d4e585331427064545a316555564e556d46776545644b65545248615868546347744f54576c68647a427654565a7864316477526d4a755330644d59565a6a563074516158553264564a705458467352324a5a515667786255466962314e4564306c77516b787565554a7751325a6865444a776158687056305a7562486c7162334a31596c6c425747785859584e6f57574e70596d687a623056464f474e6864336c7759314678643235586332527857584e76566e68616344684a4e6e453352326c34536e467352324a4e5357497953336c3465484177536a686a6358645a63554a49616b644e576d46344d6e427065476c58526d357365577076636e566954556c696256646863304a72593278696130684d62564e72654768775132707352324e4e5958647356334e6b63566c7a62315a34576e413453545a784e30645265565a786245644d61584e57596c6c4757476c5465586455634552456145646a53574633616e4247596d354c52307868566d4e585331427064545a3153586c5863477848636d524e6458684e63324e4c516b46516345394e5257463361473943554731586332527857584e76566e68616344684a4e6e4533594d080255687159584133525546694d306448655778586148645a63304a714d486c5963554a5162306445626d35585131427652314a335758467a546a5a78566b453354304a334d6e4273527a644e53466777533152345158425759324e50596e645663454a454d336c4463555a69626b7448544746575931644c55476c314e6e563659324e535958423454316434576e4e5354324e6c59554a4a5a6e6c484f45316864326c7a54584247596d354c52307868566d4e585331427064545a31616c5a6a5232467765464e6e6431527a516c5934525574735346527265576477516c5177527a68615958677963476c3461566447626d7835616d3979645578435131426f5632467a4d46566a5a474a425131524c6145685161336c6e63454a554d456334576d46344d6e427065476c58526d357365577076636e564d546b5a59626c646863314e7363314669555556696146646f65465a31516d4a766558687a5930316865444a776158687056305a7562486c7162334a31636c564b5447745859584e4462574e48596b4649534770586433685764454a6962336c5364474e4e5958677963476c3461566447626d7835616d397964584a6e536d356f5632467a616b6c7a566a646f4f47644c624570514d30647a624574454e486c3462305a69626b7448544746575931644c55476c314e6e567153584e575958423454315a34536e5256655564775655646a534d0802574a335633464e5a307849616c647a5a48465a63323957654670774f456b3263546450566e684b63477831556b397a576d4a6a52474a7556304e356430646a63446852595863316347683364323956654768766348683663474e574e6e4657515464484e58647463477848636c564757444e48576e645263455a6f5457567864326c3557573944574842545457317853574e615332686a6130744d626e553264564e57593252686348684c656e645963314a4f6332394761484e4a6358645263584e6b635864746345567163457444574731545355687765586c77636e56795455526d6146646863304e6e633170695155644d6156644665554e77516d35706556527751325a735530317463556c6a576b746f5932744c544735314e6e56445a334e6159584234523239344e584d7964317076526d686a62474633634738345658463357484246616e424c5131687455306c4963486c3563484a31596d6448626d705859584e6f556e4e5a636b5647524746435346673053334e6a5958645362324e685333685a63576c336248424665564a7863324d32635464485233687063477848596c46475a6a5248626e685a62305a6e4f4656796432704859306c4c626e42545457317853574e615332686a6130744d626e553264554a574f476868634868485248677763304a4354577868526b4a594d45746a5a3246335158464e6155743457584670644d080232787752586c5363584e6a4e6e4533523052344d47397352324a4a5245777752336433626e425755553174636e644363554a4562336c4a6355567163457444574731545355687765586c77636e56695355524d613163325231683363484e545a7a684a59565a49534870485930564c626d74484f465668515531724e6d4e4e553074445455744c5647313159555a3364586847593074686348684c655863305231703461334257576e4e77516d706f655870505455564c65476848535735705530465561586c3562334a31636b6c45616d46776545644b6431647a516b747a55574661525770725230315053306777543031465333686f52306c7561564e4256476c356557397964574a7251574a6f5632467a556b4a6a64576853633268685a455a4d5958633064484e7a5245526f55324e76516e6c77623056336132397a54545a784e3064476433425859584e535654684b596c464a554842585358685663554a714d336c35543031465333686f52306c7561564e4256476c356557397964574a46526d5a705632467a65454a6a536e4a5a513152735630563453484643564731486331467964306877525568685a324e4c53304a4e536b744d616e553264586843593070686348684856486b7864454e6b59306c68566b52516155644e6147463361584e445a6d315459323943655842765258647262334e4e4e6e4533523152354d584273524d0802324a465256683553314e3564334273526b31505958645563554a4d4e45747a5a4574346145644a626d6c545156527065586c76636e5669525556596156646863316c354d457443643231774d554a4e576d4633564846435444524c6332524c65476848535735705530465561586c3562334a315447314e634778316556707a546d4a6a52474a75563168344d58524354445235656d3943596d31485130527155305a496157314855473535566e427956304a7a636d4e48596d705859584e5556574e68636b3145564774584d58637964454e6d5958647252334e615333685a63576c336248424665564a7863324d3263546450556e6877634778484e306c425544524863486872563235344d484244616d35484f453178643270775257707753304e5962564e4a53484235655842796454644a515642765632467a616d4d34536d4a56516d4a72595546345a3342445548424854556c7864316c765257707753304e5962564e4a53484235655842796454644a53475a705632467a656c6c6a59574a465155527059554635625739445548424854556c7864316c765257707753304e5962564e4a53484235655842796454644e523235745632467a6155467a576d4a7252566868566b68714d55646a5755746961586c546230567163457444574731545355687765586c77636e5679535546696256646863326c6e63316c695655704d6246644a644d0802314e7a516b687465544a766330564c65466c786158647363455635556e467a597a5a784e30744465576c776245647955554a494e55645465576c584e58686164454a4961336b7863484e765257707753304e5962564e4a534842356558427964584a52516b68775632467a55315a4e53324a6c4f475278516b4e496545646a55557459626e6c705530317463556c6a576b746f5932744c544735314e6e5654566b314c5958426954554a51636c6c4b5448425452336c6e537a68575958643353334e4b5955316a5a57464b4f47646852554a7163486b7962334a58516e4e6954554a515958423452305635516e565359584e6b533278445747744854565a4d5747744c5931706865444a776158687056305a7562486c7162334a31596c464a5347395859584e436130316e636b5648574770546258686163554a514d486b7963454e556346647a5a48465a63323957654670774f456b326354644855586c4263577848636b4a6a526e4a4e53574a715531523462336c6164574e506358644463455a69626b7448544746575931644c55476c314e6e564864315a766245646957546857636c564957476c5464336877655670315930397864304e77526d4a755330644d59565a6a5630745161585532645768345748427352324a6a526b51315432683357573946537a68575958644b63484e726358637962305a69626b7448544746575931644c554d0802476c314e6e5634566b317259584234523152344d5852715a30316b53315a49616d78485930394c5447394c6330356865444a776158687056305a7562486c7162334a31596b31475747355859584d3165466c30656c5534566b744f526d5a6f52324e6c5331427253334e4b5958677963476c3461566447626d7835616d397964574a6c5456646863486858536d5a34543274335748425654553177516d35756555527751324a7056334e6b63566c7a62315a34576e413453545a784e31644b5a6d68584e6b3877654442306555466a5a3246435130683553324e30516b527665565a786548633163477833524846535255317453324a7164574647643356455a45316b5958423454304e354d484e455654687359555a43534442484f456c4c5744463552584647596d354c52307868566d4e585331427064545a31616d644e546d467765453958655564305130747a525574735245786964326c766332784d574774586332527857584e76566e68616344684a4e6e453354316435523342735230784b5157593153315a34566e4177516d4e745447356f655456304f47526865444a776158687056305a7562486c7162334a31544570425a6e425859584e72576b3158636b314457473554526e644b64574e485332347a65544e77526d4a755330644d59565a6a56307451615855326457746154566468634868505a33637952316c3561316444644d08027a56484f45354d55486c354d473947596d354c52307868566d4e585331427064545a3152456c7a634778484e314646534452485348643363455a4a545746696432357a4f45564d564770586332527857584e76566e68616344684a4e6e453354305634516e4673527a646e52475a6956557055626c4e5a654452484f465a4d55444e3552584247596d354c52307868566d4e585331427064545a31524538346347784854457045596a4a4856586c536232746f59317069643168304f474e4d564774586332527857584e76566e68616344684a4e6e453355336c336258427364554e444f4768795255646963464e5965454e3151324930655442765457564c65576876524864466346643455573834597a5a786245453353306c3353484673527a6442516b52795655467162314e4a65554e31516b68736556707a516b7875547a6876556e687062327033566d396a5a7a5a784e3039526432645859584e4561303172636b3147534778545233684864553174533234775230316f4e6e647152305a4d6155394457476835516e467964546442536b52775632467a5647746a55334a46523270725531523457485134535574714e55646a547a5a33616b644754476c505131686f65554a78636e5533525570756131646863337042545656795155467161314e526554527a4f456c4c616a56485930383264327048526b787054304e5961486c43634d0802584a314e3031425247785859584e54556b3130556d314e526b746f526b513153324e4653314234655731775246426856584e4a4e6b6c6a526b74496233553264564e535458427352334a5a5247347a52316c344d6d3972526d4e315130684c55486c354d6e42455547465663306b3253574e475330687664545a316155356a5a574677654574596547787a6546706a565574535157353453324e565330777a655664775246426856584e4a4e6b6c6a526b74496233553264586c57593070686348684c4e486871633268614f465a4c526b706d4d45746a5655744d4d336c58634552515956567a53545a4a59305a4c534739314e6e56445a54684a5958427954554e4d4d55744465444a774d464a4e62484a335358413456574a336147466a5a48465263315a68536e4e5753314132635778424e30747164314e7762456479525546594d6b7446654735765655644e63304a4d4e45646a53574a334d323944596d35485131427153306451616e6c5363484a31636b56425747315859584e4457546852636b3147616d685456336c5464474e48596e646f63304a556145747a5a47464a4f4531785754684e5330687364545a3151316b34555746776545744264326c306156564e576b74535132597965554e315932464d616d784c633252685354684e63566b34545574496248553264554e4263316c6863486848536e684664464e5a5455704c524d08026b7049544577306558423054566478647a4a776148643662326c34656d396a56545a784e30644b6545567762456479565564556545744365464e774d47773463304e5565586c4664554e696130747a5a47464a4f4531785754684e5330687364545a315531704e526d4677654574476431643151316c4e6145745753557835533031475446513153334e4f6358637963476833656d397065487076593155326354644c526e645863577848636c46445a6e4a42516b78715531523552335644564446354d484e44596d784c633252685354684e63566b34545574496248553264554e4b4f48427352334a4e52565131523342345a32397252553146636e64566445314f636e645863454e69626b64445547704c5231427165564a77636e5679545556556345383253305a3552585244516b315663574e45596a464859305a4c544446485457527856554e4d62457448596d7848526d5a71567a686b6358466f63554a344d586c3463334a5852484e546145315359573936533164345258523561334e4f63577446554868505456564d5248424854557332565531464e6c564e5257467661486777634846784e6e5668556e644c5633684663476850636c6c43626a4a4c656e686163464e5759324d33643146305457746864323976526e6877563056755333687562314e344e47397863545a3159564a33533164336348426f54334a5652564130534d0802315634516e4236575464335558524e6132463362323947654842585257354c6547357655336730623346784e6e5668556e644c526e684563576850636c4649616a424c566e64556345565659303833643146305457746864323976526e6877563056755333687562314e344e47397863545a3159564a33537a42345358426f54334a525247497a53315a3456473956516b314f4e336452644531725958647662305a3463466446626b7434626d395465445276635845326457465364307377647a4a7761453979575564494d457436643170785530466a556a64335558524e6132463362323947654842585257354c6547357655336730623346784e6e5668556e644c6258684363476850636c5642626a4e4c52586c456358704b59305933643146305457746864323976526e6877563056755333687562314e344e47397863545a3159564a3353305a334e58426f54334a6a516b773053314e35556d3953566e4e574e336452644531725958647662305a3463466446626b7434626d39546544527663584532645746536430745964304e786145397959305a516555745465486c77556b6c6a536a64335558524e6132463362323947654842585257354c6547357655336730623346784e6e5668556e644c574868716232783151316c4e526a645251565268536b46456345644e6355314b596e6449634868334e58427364305278556b564e624d0802557469616e5668526e643151316c4e526d46776545637964326c3065564a6a5432464b52474a4c5a6a4a484f47647864326877526d4a755330644d59565a6a56307451615855326457684f63316c6863486848624864526447704e54577868526b56455445677852303177516b787556334e6b63566c7a62315a34576e413453545a784e3064736431467762456469545564494e55397664326476526b6c4e55574a33555852435347743556484647596d354c52307868566d4e585331427064545a3165466c6a613246776545645464304a304d46464e56557473516b777952303156596e6443634468725958677963476c3461566447626d7835616d397964574a4a516b68725632467a6157687a5554644e516d5a71563152336245647a556b78596358647763455a69626b7448544746575931644c55476c314e6e567061484e5259584234537a46334d6b387a6545687762455534566d46335233526a526e463363484247596d354c52307868566d4e585331427064545a315530357a63477848636b3145616a52546148687162315a4a4f474e686431643054565a78647a5677526d4a755330644d59565a6a563074516158553264586c4e54576c686348684c6548647464465657593239475355317059586458644531576358633163455a69626b7448544746575931644c55476c314e6e565454584e61595841335155464965553955644d0802314e7756564e4e6248463365484e7a63304a59616b6445626d35585131427652314a335758467a546a5a78566b4533543046336147397352334a4a52325a3554314635556d39575254684a596e645264554a454d6e6c4263555a69626b7448544746575931644c55476c314e6e56705754684b595842345332743455334e4561446853533268485548684854574e4d626b78456256647a5a48465a63323957654670774f456b326354644c6133685462327848636c6c49616e68504e58677a634656575933524352444635566e524e565746344d6e427065476c58526d357365577076636e5679575568716146646863304e686331464d556b4a71626c4e356547397a516b517865565a305456566865444a776158687056305a7562486c7162334a31636d64485447745859584e45566b3146636d7444524774586148685463554e4d596e646f633052456246647a5a48465a63323957654670774f456b326354645056586852623278484e316c425444425056486459634656485455357864336c485931453364314677526d4a755330644d59565a6a56307451615855326457704363314668634868506258684b645770735456564c576b6c55616b746a61324a3364335245524731586332527857584e76566e68616344684a4e6e453354323134536e4673527a646a524651775532643453484246566e4e76513067315230316a4e33646e634d0802455a69626b7448544746575931644c55476c314e6e5636546b31536445397854323134616e5255536b316863565a7a526d4a33566e424352486c4854575268565468735957396f6558647663586c6f63576831636c4e4b623270614f466b32627a5a56536b6834543156356547394864315a76516d497965565276516d707152305a6d634564686230314e6358466a623246764e334656517a5a56536b686f54334650523368446446526f54565678566e4e30516c68735230314a596e643562314e336432396f52307445616e464c534846484e6e564c624764505233684463477078564559345354645253564275595568596130644e62474633516e4243596d394853475a7052324e4a5958646f623031526358466a623246764e334656517a5a56516c427054334650526e6454633370724f477878526d4e76516d597752334e6e6358644263486834626d394353476c4859306c4c5247747853306878527a5a315332786e54305a3355323971635552575931553355557069614746495a6d70485457786864304a77516d3570533052695958646f62304a4961586c42634846356148466f64584a54536d3945566d4e564e6d3969536a686b4e315649626d746851325a745230316b53323576527a6847595655346247467661486c33623346356148466f64584a54536e4e73647a4e77616e56736430523156454a6a6132466b54577478644d0802314a30516c527053303157595655346247467661486c33623346356148466f64584a54536e4e7364305278616e5647655552315647686a5933464b4f465a68647a427759326c68643342775533643362326848533052716355744963556332645574736431644a554739504e6c6446626a465061336471595552596255644e5a4578456145647a526d466a4f45706864326876516b68706555467763586c6f63576831636c4e4b63305a34576e427164544234566e56365a334e766248673063304a6d65486c5963304a51614564495a6d6c4859306c68643268765456467863574e7659573833635656445447526a62445a76596d687a556a644e5345786f59555251626b644e5a4578456145644e5633464e6333424353476c4859306c4c5247747853306878527a5a315332783356306c696130383254315a35553352345a324e5259554934536d4a335258426a54324a3352584653654668786145644c5247707853306878527a5a315332783354315a3555334271645770614f4670695455565962564e47626d68484f46704d54476c4854553968565468735957396f6558647663586c6f63576831636c4e4b633270614f466f32627a645a51573569555552556256644253444a4854564a4c626e7048633031785255314e5957396f6558647663586c6f63576831636c4e4b6332704359334671645870536330356954555a4963466444614d08026d35485931706864326c76516d5a6f5230686d6155646a535746336147394e5558467859323968627a647856554d3359305669616b3832543235346133526f57574e525332513462304a716555647a62304e45615564495a6d6c4859306c68643268765456467863574e7659573833635656444e324e48564731504e6b394a6432313065466c6a5a57464b54564e6864327877516b787052324e686355317a63454a496155646a535574456133464c534846484e6e564c624864505358647463477031616c464e617a5a6a5130687056306c49616b6334614746336145644e576d46564f477868623268356432397865576878614856795530707a616c464e617a5a764e306c47554842505358647063444633556e4643564452484f456c6864306478556e685963576848533052716355744963556332645574736430395465465278616e567161324e6b4e6d4e435347705853575a72527a686f5958646f527a68775533643362326848533052716355744963556332645574736430395465544677616e56715a3031724e6d64495447686851574a7052324e615330687152324e776548687562304a496155646a535574456133464c534846484e6e564c6248645051336c5263577031616b6c7a52545a7251325a7656305259596e645763303158596e644363486834626d394353476c4859306c4c5247747853306878527a5a3153327833544d0802326c33557a5268535846486546633457557834616e5248534774504f474e78643270584f47526862324a35535856566548707a54584e4357473531516c68755230704961464d77643146764d4767345458467863586c6f64584a58526e4e4b616d394c59584e55556d4e7a61316b346148464654584278635556736332644c546b7051616b644b626d7478635845336354645652556878627a64565255684d536b646d6231646a5758467853314a4b5447395456486c3662305671625846786354647862454933565556495957393555306c55616d464e5355746b5132353652324e6b4e6b646a5a4746435a3164426230566f63315a78635846784e334657516b786f5455356862336c7454576c4d566a684e4e6c4642596e6c485932513252324e6b4e6c5644626e42544d486452627a426f4f453178635846784e334657516d4a3553544a7861584678596e6473623352504e6b737a65476c76616d4e7a5458466e4f466c69647a467759306469647a4677556e6c536230566d6245744e55584678635846346557647a636c644763336c6b63306b3262334a6e515641325355567161556447616a46486330564c616a524854566468555531565333685963454e45613346786357467a54556b3363565a43636d644255445a76636d4e45554768505533645362305233526e42435a6d6c354d484243544735485255527352334e6a63586442634d08024846786355644d52486c3159565a33537a4e335647397163564e6154565a4d526b464d6357633457574a334d58426a59574a334d58425365564a7652575a735330315263584678635868355a334e7956305a765531704e566a5a7663565643574442546548644863454e35575852435348423563484e43616d394852555273557a685763586442634846786355644d52486c3159565a6e53315a33526e427163576c435455314d526b645961453942574774484f455a4c56476c4863326468555531565958643563454e45613346786357467a54556b3363565a4363566c42524770504e6b745564304a3156566c6a5258464e59306469647a4e765932786964336c77655868556230566d6245744e55584678635846346557647a636c644963336c465932633262334a4e5256417a55314e335558425465476830516c527465544a7a516c52715230564562464d34566e46335158427863584648544552356457466b6430744565487077616e567056584e6a544570425a6e424c52574a7152324e7053325a4c616e42485255527352334e6a63586442634846786355644d52486c315957523353314e3465584271645652614f45567857556c516130744a55444a485932526864336c30516c68755230704961464d34566e4633515842786358464854455235645746576430397365465276616e5671536b314e63566c485748424c53576f78654d080258424863334e445447684852555273557a685763586442634846786355644d52486c3159565a335432313364323971645652535456647857554a4d616b3942574774484f48426a52574633616d394365464677516b78755330315263584678635868355a334e7956305a7a56464a4e567a5a7653307044626d4a5252324a7753306c514d6b646a5a4574554d45646a5a4746725930564c65466877513052726358467859584e4e53546478566b4a4c536b4e754e6d394c536b46514d3064736432687651336c5a64454a5161586c7263304a6962306446524778544f465a7864304677635846785230784565585668566d645451336436634770786132746a57574a5651564274543046596130633462457475616b646a575746525456566864336c77513052726358467859584e4e53546478566b4a4c536b704962553832543156334d33523656574e766158647363454a4d6230647a55574633575846436546467752575a735330315263584678635868355a334e795630687a524559345a445a764e30314a5a6a4e504d48645863586c33614842435a6a4635566d3943544739485255527352334e6a63586442634846786355644d52486c3159575233543052354d7a464c63484a565131517a533152354d573936643364764e6b644e6157464e54584234643274485255527163545a3159564633533278334d48427364564e4763306c79564d0802554e4d62464e49626d6878596e644a63555a516256633457574634563238326355527a636c564354476c584e6b745665476c7a6157744e5930746f4f466c7864554a716231633457574634616e4247596d6878636b393364554e5763306c4c63484a4e5131677a53327434566e4577647a5276516c687552334e5a4e33644363455a716231644e615846344e58427864584a5853584e3553574e6b5333427959305259636b3144596e42485256517852324e6b596e6470634746466331466852584e5263553034613346784e334643516e4a6a5246687862334a5a5356523453304e334d47394365455677516c677a655652766357644e546a5a3457584643616d787863586c6f64584a4852584e70614531476357397961307049656b744465444677516e684a6455524565586c716344685259566c4e576a5a3457584643616d787863586c6f64584a4852584e5462574e4e63573979593064694d55745665456878516e684663454a594d336c556233466e5455343265466c78516d707363584635614856795230567a6556707a566e56486158464364455275656c4e7a59334a346132394555476c5063314a4c654864776148564a54444254526c4236655864485932513252324e6b5957746a5257465352474a6862455a556133467863574e764e334657516b783551334271527a644e52566731615564456257566a627a5a3552484634554d08026d4e6f63555a4e623064336557397863584668613356796458705259327732627a644e52566731615564454d6d464e553346314f47646859305659623246435247464a5456567863584678516c646a63446478566b4d33545556596345647863306c4d4d464e47554770546258637864454a59626e5643574735586158685663555a4259554a6e635846784e6e5668566e647063314668634846465356417854304634516e565364314a30516c687564554a59626c6449596d68485133677763454e525455316863584a58526e4e7852556c51624664785a556449596c6c425a6a5648516b677852324e6b54477069647a46774d586858623268525457527851555645616d303263565a43636d5648534852786233464c5a44686a596e6473623352504e6b73306545647852454a7a536e466e4f466c69647a467759306469647a4677556e6c536230566d6245744e55584678635846346557647a636c644763304e6c6332673262334a7251575a74543052355532395365466c30516b786f65556c31516d70735230564562464d34566e4633515842786358464854455235645746576430744b64323577616e5644547a686b4e6b314657445a4259314a68643235765457526864336c77516e685263454a4d626b744e55584678635846346557647a636c644763304e504f47513262334652526d3430543342345757394465577030516c6875654d0802584230516c68755230704961464d34566e4633515842786358464854455235645746575a30745665457078616e4644526b316e54454a425447784c53576f7852324e7253323535523031705956464e565574345748424452477478635846686330314a4e334657516e4652516b52765433464c56586b786445564e59306b3251574e53595864596230314b5958644463554a34555842435447354c545646786358467865486c6e63334a58526d394462474e6b4e6d38335755646d626b745a647a4e7651336c7164454a59626b647a59324a334d58425365564a7652575a735330315263584678635868355a334e7956305a7a616c6f345a445a764e324e445748466a536d357653306c714d586c7752334e7a5130786f5230564562464d34566e46335158427863584648544552356457465764303975643278504e6b39586546527665564a7a536a5a4259314a6864323535556d394355476c485255527352334e6a63586442634846786355644d52486c3159565a3354316434564739716356564a54564a69545552516357633457574a334d58424e556d4a334d58425365564a7652575a735330315263584678635868355a334e7956305a7656556c4e556a5a7653304a4b626e684852486b7a62304e355758524355476c3561334e43596d394852555273557a685763586442634846786355644d52486c3159565a6e55314635576d3971634d080256566e4f48523457574e6c4e6b466a556d46335748466a543246336148424365464677516b78755330315263584678635868355a334e7956305a76565763346347703155316c7a576b744b5355687453306c514d6b646a5a474633556e524357473548536b686f557a685763586442634846786355644d52486c3159565a33533268346258427164576c426330314c536b6459626b6447616a4648545656686433684c54564668555531565333685963454e45613346786357467a54556b3363565a43636b6c42544770504e6b7443654552776130567a5a7a5a4259314a68643168766330316864315276516e685263454a4d626b744e55584678635846346557647a636c644763314e524f4645326232464a51325978553268344d48424465577030516c687552334e7a516c68755230704961464d34566e4633515842786358464854455235645746575a30647064316877616e465359324e6a54455a4a596d6c4c53576f7852303176516b677753324e76516e68526345566d6245744e55584678635846346557647a636c644762314a6a59324d326232464a52575a3455336c336133424564305a77516d5a4c534739484f456c68555531565958643563454e45613346786357467a54556b3363565a4359556c465a6d68504e6b39336545647756454e6a5658466e4f466c69647a4677516c683552324e6b5957746a5255743457484244524d0802477478635846686330314a4e334657516a644253474a72547a5a50654864746230527454564e785a30315854457870527a6852636e646162304a34555842465a6d784c545646786358467865486c6e63334a58526e4e5554584e4b4e6d383351556875624539766433425051566872527a68305931466864327077516e685263454a4d626b744e55584678635846346557647a636c64476330526a59316332627a5a5253555235533146335a33424465577030516c687565556431516c68755230704961464d34566e4633515842786358464854455235645746575a30394665576476616e4645556e4e56636b46475a6d684c53576f7852334e6e53324979527a68575956464e565574345748424452477478635846686330314a4e334657516a5a5252557873543346504d586435533264346547394564305a77516d5a7265566478516b7871523056456245647a59334633515842786358464854455235645746575a30387864326c504e6b7476654735505156427859324e52596e637863454a4d4d30646a5a4574575458425364336c7752577073635846486355644d52486c3159565a3353323934626b383254304633616b74485347744c5356424d626d46336555747a52545a4e4f466c6852584e6a5333685a63484678614846346557647a636c6447633052424f47397164554e50633146685455314b4e6b6b3453574633626e6c53624d0802304a51615539455547315054556c4c65466c776358466f635868355a334e7956305a7a5130397a55545a764e316c475248424c51316874533068496130646a5a4574456345646a5a4574575458425364336c7752577073635846486355644d52486c3159565a335431643455584671645770614f4530325754684b6357633462304a5161336c5263554a596345394555473148516b787555303158635846686232467a54556b3363565a434e316c48554770504e6b3976643270766158644863577033616e4e4456445248545852445a6d6850524642745430314a5333685a63484678614846346557647a636c64476330524c4f456b326230784b5256426f52305a4d62307449554735485930354d554739485457684c566b3177556e6435634556716248467852334648544552356457465764314e4465465276616e56565255314c63556c6a5933466a4f47746864336435536e4643524774505246427452304a4d626c4e4e56334678595739686330314a4e334657516b7847516d7070547a5a545248644963465233556d3936643364486332784d55486c484f4659325454685a4e6e646e623056716248467852334648544552356457465764314e4564306877616e5645557a6830576e6b7762314e3352484243574870355248464356473954526c526852584e6a5333685a63484678614846346557647a636c6447633052544f484271644d08025652485930314d54334e776158673164454a694e586c7163304a6d624539455547315054556c4c65466c776358466f635868355a334e7956305a7a5645646a54545a764e324e44544868745131687253304a516255644e63324e705958644263487033616e425364336c7752577073635846486355644d52486c3159565a3354323533557a426862324a42526c67795533643361323943526e4e7663586c6e62326c53593164686130524d62457436654452766358464c56476c31636d464263304a565931706862334a6b59303179525556716146644353484278533052705a5570496247464754484268513152705432787863586c5763446478523046795a474e4e5957396853556c454e55397365464676566e6876634846355a32395965564a775633685463544a34515846356233467859315932645846435a30644465564678624856566433427a6258647162306459616e464c52476c50515651326130316b6355316a6158463163554a33645656336347396f6457703461584e365455315a63555649524768785330527052304e34575739345354686b635531495747707863584534634464785230453357584e4a5957396856554a754d3039566430563053486444634846355a323953515531545955564a56476c48566e6c48635846785331687364584a6851573953526d4e6c59584133575564694d456435643342766548644b634d08025846355a3239456432744c526b527653305275623346795955467a4e316c48596d74484e6b644b53444654614868716233684763326869647a463054556c69647a46775132317a6132464e53577071615568455333427863574e484e6e5678516e6448536b6873523246766146707a5a7a646f5930397852555255626e464c52476c6c5132357361556c596130744565573177525842786355316f4e6e5678523231345133467364564a5a54566c795155464559555649524735785330527061574e745955567a5a445a3455584532635564424e30646f654764776248564352584e4b596d7449626d68485533645262334678526d70755a584e4b53336779627a5a7852304533523146336257396f54334a72545670795355465162316447616e427853305270533368346248425362584e6b59564645544731745a33467863546478526b467961303161595738335a304e714d6c4e4265576c77516b5a7a623346355a32396f5a334e72595774455447785052336434623346785332707064584a6851584e455330316859573833575556514e557444643264485533646e634846355a32395965564a775758645a6358684a63327332565846785331687364584a6851584e71556a6872595842695655466d4d6b744865565a77656d786a623346355a3239456432744c526b527653305275623346795955467a596c56425a6d31584e6b7445654d0802554e316557687a556a5a72525578786355314a4e6b6c6a595846525932396f654570784e6e46485154644c52486c4463576850636b56435244524c6558645763455a57633274786355314a4e6d64465a6d35504d58646f62304a5a59303168513346786358567959554a7a5530564e5a324677596c5644574452506433647563455270545574786355314a6355303452574672633031685a7a686e63585678516e6431556b706a61474677596d644a5a6a4250616e64526358706f4f48524e5355744561486c7462305233613074475247394c5247357663584a6851584e695a306c6d61316332523278335158524561474e584e6d644a544442355a32394e525574696155744555476848536b787152306c51623346795955467a596c5644524774484e6b387965454e305131707a54545a46513142766355744561556452654870765633685463554a524f456f32565846785331687364584a6851584e715a484e5259584279613068694e45645965566c7855305a6a5358467854556b325a334e616356564e5a7a5a4a63334132635564424e307331654564786248563459324e70596d7447626d394c545556786355314a5332524e55545a6e54584636654646784e6e464851546448656e684b635778316156464e56584a4252477073533031466358464e5358464a4f4670685a7a686f59574e6a5633463163554a3364576c5254565668634d0802484a425246686959304a694d55644e526e467854556c6851584e73595530346247464e59326478645846436433564454574e77624856465154687762586833634556556258464c52476c54536d4a4c516d4e4c6357746a6248463163554a33645556424f48426f5330783551335256654870765657684e556d4a334d584269647a4677526b4668516d645851573978635574494e6e5678516e647063314630527a5a48576e6859644652746330316857554e4d6133464c52476c485133685a62314a685931467854556859616e4678635468774e33465751324a72526d5a73527a5a7a516d686a53334a525245526f52305a33656e427865576476516b5277523231336257396f61324e535955357863584631636d464463304a6f59307468623370485748685663304e4f545752685a306c756248464c52476c485457746857554e6961556448655768764d57397863545a3163557033523168345657396f54334a42526d4a795557744853486875623346355a323943524842486258647462314a4f54576c68546e46786358567959554e7a5131567a63476850636b31445248704c5258687263464a6c633268786355314a595864526357684b633070685930647162466471635846784e33467451584a4e513052715233467a5355777755305a51656e6c3352324e6b4e6b646a5a4746435a31644262305a426358467863546478566b4e4d654d0802554d78595841335930646d4d6d46425a6d354c4f477468647a4e355133427a5933465663316c6852584e6a5333685a63445a784d6b453354323534626e42736457704b59334e5864315a77516e645262304a6d5445787265586c77513168786432784c593341326355527a4e316c44534746774e316c455a6a56685356427062574e4e5958637a65554e7763324e786432784c59334244574846314e6b4533547a4a33574846736458706159314a79536e4e565955316a5a3246334d336c4463454e49626c4d34624846336557396f63584a6852584d33593064596131633254306833513352736544527652555177655646305932687864304a78526b7732647a4677516d357463584a6852584d335930464d6131633254323533524851796545687752566874635574516231647a62304a756155646a5958463163564a336458704b4f4646686345784351576f30553064714e6e645363554e69596e645563554e755333685963554e4d616b647864584653643356465155317064556470635768305246513155324e305246686f547a684e5958673062305251616b647863557445596e637863474a334d58425365564a76526b4668516d64786358466a627a647856304a78567a5a5052464178543068516130646a64554a59626e56435747354c52573568613064496145744965477876553239795530467a4e3030345657467759565647594d08026e4a4a526c5277567a686b596e637863474a334d584235643278775532566a536e465a51566872523064516133564c516e6478556c5a7a63477878556e645863314e5763306c685655316e596e644263574a334d584254655778545347357254306c594e6e647162334a6852334e6852584e47595842785155524d6555645a6432784c5156423652324e6b4e6b646a5a445a726332784c526e4e7656486b7763455655626e5678576e64785130317a5357467763556c4e54324a725246527453304a514d45646a5a47463365484e435747354c52574a725630465961564e465447744c4f47513263573143636b7444616d705863575643626a4a484d48684763564e3352485243574735485933524357473548534735725430646d626b3944544846335a3239795955647a4e6b5a6a5957467759564644534870485658685862304e346158424357444e35513346435547394c513152765630464561314e425547784c5930343263573143636b6472643368766248463554574e3151304a4e545846424f453169647a4677596e6378634652355633465664326c50536c52755530316b4e6e4674516e4a4c656e64775633464c656e633154304635525842446433707a516c687565555630516c68755430706963464e435447466154574e4c65444277636d46486333464e52473568634574574f47633352555a4d61553942626d78485932524c624d08026e42485932527853584e5653305a7a6232783464334246564735316356703363565634524846736357686a59314d3356555a55626b39475a6a42485932526864305231516c68755330527162464e46534735685155686f557a68734e6e4674516e4a486558684b63477878556d464e5a54645a5245786f53304651656b646a5a4574554d45646a5a4846564f4778785754686b4e6c6c4e546e463363485678576e6478556d464e5a5746775330356a556d4a4e524759325155317a516c687565555630516c687552304e6d623064455447354853555274523031534e6e4674516e4a5452466872563346485248633164454e434f4559325155316e596e637863474a334d5842475a6d6c6c513068775955524d6155396a59545a7852484e6854554675626b64786233465a5932564c6145464563584668516d64585157394751584678635845336356644359584a4c635846784f456c68636d7031616b704e557a645a526c4270533070696555646a566d46335a334e4356473548526d5a77523246765455317863574e7659573833635656444e316c44616d74504e6b397464326830616c4a6a5758465254566468643231304f455668647a5276556e685963576848533052716355744963556332645574736430397464326877616e5636516d4e6b4e316c435247354853575a6964315a77516b523552334e4e6355564e5457467661486c33624d08023346356148466f64584a54536e4e36516d4e6b4e6d383359305a494e316c455247744c52314275523031735958644363454a69623064495a6d6c4859306c68643268765456467863574e7659573833635656444e324e4753445a764e324e46524456506258647553305a4d626b6334556d4a33513346445247744853475a7052324e4a5958646f623031526358466a623246764e334656517a646a52555277547a5a5053486c6f6331526b5458423565466c76516c527752324e525958647762336c336255646a535746336147394e5558467859323968627a647856554d3359306c496155397854305234656b6331647a4a7756486c5764554a596245644e53574a334d484253654668786145644c5247707853306878527a5a315332786e54305234616b3978543235334e484e53595531704e6d647a5657463362585134525746334e473953654668786145644c5247707853306878527a5a315332786e543235334e4739716358704a54574e6961306c59626b394655444e4859315a686432647a516b787153304a45616b64686230314e6358466a623246764e334656517a5a4e51305275543346505758685364564a435455644c516e4e465958645663554a496130647a6147466a4f45706864326876516b68706555467763586c6f63576831636c4e4b6230525859327332627a5a4e53565178527a5633656d397165466c76516d5977524d0802334e6e6358644263486834626d394353476c4859306c4c5247747853306878527a5a315332786e54305235565842716357707359324e6961304a4d6345394b626d31485457786864304a77516d3570533052695958646f62304a4961586c42634846356148466f64584a54536d397162474e6a4e6d39795655527165553942643342766158687462304a6d6345646a5357463356584253654668786145644c5247707853306878527a5a3153327833537a46336232397164564e474f4645335155684d616b644956477848545778696432704863327868565468735957396f6558647663586c6f63576831636c4e4b63314e474f46453262334a5652476f3153306c354d6e4243655770484f47786864326876516d5a785255314e5957396f6558647663586c6f63576831636c4e4b63314e4f5457303262334a56536b5234533170336258424465573177516c687465564a77516c6868597a684b5958646f62304a4961586c42634846356148466f64584a54536e4e546245314664453832547a52336157383165476c77516e6c7663304a596155644e53574a33625564475a6e42485957394e5458467859323968627a647856554d335a30524d61553832543070335558464351584e776148646163554a6965486c5562304a75595655346247467661486c33623346356148466f64584a54536e4e55513031724e6d38335a305a51626d3144524d0802484248536b517a52324e4b5958646e63304a5162457443524770485957394e5458467859323968627a647856554d335a305a51626b383254307035616d394352574e485957744e526d46335133464353476c4854553968597a684b5958646f62304a4961586c42634846356148466f64584a54536e4e556154684a4e6d383361306c7562456452655456776148643563454a714e45647a593346336558423465473576516b687052324e4a533052726355744963556332645574736430394b65567077616e564655553173595546425a6d46726332646864304e78516b68705330316a6355317a63454a496155646a535574456133464c534846484e6e564c6248645451586856635770785246593457584646526d7074543064596555646a536d46335a334e43596d46564f47786862326835643239786557687861485679553070765246593457545a764e6b314a5648424c556e6c70543046696230647a526b78516145646a63564a345748466f52307445616e464c534846484e6e564c6247645052486c56635770785245357a5258464651574a775430646d4d30646a536d46335a334e435547784c516b5271523246765455317863574e7659573833635656444e6c4645544768506355394564326c776155466a526a5a6a593239435447394859306c68647a52766548687562304a496155646a535574456133464c534846484e6e564c624d08024764505248647063477078616d747a546e464a53566875533070756255644e61574a33655842445447354853475a7052324e4a5958646f623031526358466a623246764e334656517a5a4a536d4a71543346505133685263564e724f47397165445677516b787652324e4a6358643363486c336255646a535746336147394e5558467859323968627a647856554d325355564563453832537a4e335758466f516b31706355314e625746334d58424353476c4863334253654668786145644c5247707853306878527a5a3153327833537a4e335758467164586c4f54576c685755566d6155644a5447394863315a696432704859314e68565468735957396f6558647663586c6f63576831636c4e4b63336c4f54576b3262334a6a5232357452306434576d395365465a76516c687552324e4a5958645a63464e336432396f52307445616e464c534846484e6e564c6248644c626e6877634770316557686a634868535455567851574e6f5958637763474e525958647363486834626d394353476c4859306c4c5247747853306878527a5a3153327833533068356245397853336c3357573958654735776158685663304a6d6545644e62474a3353484253654668786145644c5247707853306878527a5a315332786e53336c335757397163576c6a6331706862484e726355464e546d4a336247396a55324a3351334653654668786145644c524d080247707853306878527a5a315332786e53336c346258427163576c6e5932527861484e6163566c6a62574a3357484e435644564859334254643364766145644c5247707853306878527a5a315332786e53304e354d58427163586c4e63324e68546d4e766158687663304a5565486c5763304a59625564495a6d6c4859306c68643268765456467863574e765957383363565644635531455447355063557454655770776133685763464a3561556334576d463365573943616d784853475a7052324e4a5958646f623031526358466a623246764e3346565133464a536c42745433464c52486c4b63555a33565842706547397a516c523465565a7a516c426f533052695958646f62304a4961586c42634846356148466f64584a54536d39355a324e704e6d394d546b5a6d4e6d74495a6d315051573430527a6847596e645664554a6d613064475a6e42485957394e5458467859323968627a647856554e4d546b5a6d4e6d394d546b4a71625539616432704c5257343152324e4b5332347752334e6e595655346247467661486c33623346356148466f64584a54536e4d77525531684e6d394d546b467561314e42643231775648647364454a6d6545644e62474a3362457443524770485957394e5458467859323968627a647856554e4d546b46756130383255326c345533424556324e765648645564554a5565486c5763304a59625564495a4d08026d6c4859306c68643268765456467863574e76595738336356564454457048544778504e6c4e4564326877656d686a566e464e4f46706864323577516b78715230315859574d34536d46336147394353476c355158427865576878614856795530707a4d45466a57545a76544570425747745062336456634652335248564356486835566e4e435547684c52474a6864326876516b68706555467763586c6f63576831636c4e4b63327442593149326232466c545745326145316f63566c7a566d4a33566e524e62474a33566e4653654668786145644c5247707853306878527a5a315332786e625568716255397862555a7161325647596d704c5157707052324e615958645462304a75615564475a6e42485957394e5458467859323968627a647856554e68563031544e6d39686154684e4e6b354e63554a355a33524357444635565856435547744c516b5271523246765455317863574e76595738336356564459576b3454545a7659564e4e535846574f45567853574e6b596e64556355316f596e645863586834626d394353476c4859306c4c5247747853306878527a5a315332786e62555645615538325331703457585234516d4e4859556c4e56574a334d57394e5a474a33566e4653654668786145644c5247707853306878527a5a315332783353317034575842716455524e4f45316959304a6d616d464e5a32463362586c54634d0802454a75595655346247467661486c33623346356148466f64584a54536e4e455454684e4e6d3979613056754d456475654442766148643663304a59616e6b7764454a5161307443524770485957394e5458467859323968627a647856554e79613056756130383254314a3365484e34556d4e6859556b345930786d614563345a334a334d47393465473576516b687052324e4a533052726355744963556332645574736430395364336876616e5655565531316147684e61474634654739435a6b786d6155744e5932466a4f45706864326876516b68706555467763586c6f63576831636c4e4b6331525654584671645652564f4570695930704d6255644453445235574739435544524c5932747854584e77516b687052324e4a533052726355744963556332645574736430395365473576616e465461474e504e6b5647596d31505355773052324e4f5331517a52324e73595655346247467661486c33623346356148466f64584a54536d395461474e504e6d397856554a556130394365456c77616e645562304a695330787352324e78556e685963576848533052716355744963556332645574735a30745764305677616e4654624531544e6b5642534774505356677952324e4f5331517a527a68526355564e5457467661486c33623346356148466f64584a54536d3954624531544e6d397855555269624539536431647652486b79654d0802566876516c41305330314f59574d34536d46336147394353476c35515842786557687861485679553070765130357a566a5a766355314a626d3550516e6c5263565233616e42435a6b786d6155744e5932466a4f45706864326876516b68706555467763586c6f63576831636c4e4b62336c6e593255326233464e536b5274543364345647394565544235574739435544524c5932747854584e77516b687052324e4a533052726355744963556332645574735a30745565576477616e563557574e31566e6c336233683457585243564768485456706964323548526d5a77523246765455317863574e765957383363565644636b3148626a5a76636b314a616a4258526d5a7652304e4d59586458637a68575958647752305a6d634564686230314e6358466a623246764e33465651334a4e53577072547a5a4c56586456645446345533424b5544524854555a6864327430516c527353304a45616b64686230314e6358466a623246764e33465651334a52516c5277547a5a4c4d48685963305a33656d394365477076516c52716557354863315a68597a684b5958646f62304a4961586c42634846356148466f64584a54536e4e445a4468475957397063576c344e5842465130317663584647515746435a316442623346786358567959555a766445747852314a354d484e70556b31535955646a54557859616e6c556230315a5955564e544d08025746424f475132566e4e4e53315277635574494e6e56785a476448556e6b776232787861456c6a56334a525255527152304a3355335534555574494d486c6e63464a3364323943647a4e77553364765a584e76636d464a6332464a513235735333464855336c4464486c4263316c4c517a6872636e644663484e4a5958645a6345704d6247314e5458464f5457744c56476878533067326458466b5a30645465554e776248463451584e6e636b5646616d6c6852476f7853303153533078705230315859586c5463457045616b644a544739685456453263556444636b644564304e786248466f55553153636c5642626d6c486433645a64554e5561336c7062304a716247566a576a5a345248464365445676525735716458466f6433466f5555315363573968565546494d557448643052775748647563454e5961336b7763454e716257317a56574635643238796431467854555a7863574e764e334648513246565155687356334648566e6c4464576c6f4f455a68536a686f635864476345316b635864766345704d6247314e5457466e6332647865454677636d464a63324656536b787656334648616e684564454e5759314e685954684e635864476345316b6358647663456859625755345a3246525930394c65445676636d464a6332464e52314272533346485158637864476c7254575678566d4e6c636e633064484e5763586459624d08023064456156644e615574735455564c54473578533067326458466f5a306442647a46776248464b65466c306156467a5933464f54575279647a523063315a786431687652305270563031705955566a63555275616e567861486478536e685a63476c78516d527a61484a4e5245526f5a554a4d4d557334566b746d6145744e593246355533424b52477068524552776556567663586c6f64584a68535739435a484e6f63573968525556454e5574366545567852486c3663454e71656b646a545846336557394852476c5854576c4c6245314653307875635574494e6e567861476448516e685263576c786146464e61334a5653475a7454306c6d6345644e536d4a336547396a533346345a323947616d3954536b526f65586c7763586c6f64584a685357396f5555317263573832525556714d45747265454a7852486b7962304a59626e564357473548515652775230464d61325643574735354d48427865576831636d464a6231525254564e78623346725355527955555a596345394a596d70485932524c534442485932526865556878536c68735955684d62336b77623346356148567959556c7655326c4e62326c78656b6c4e566e4a565247707654306c69616b646a5a445a48593251326548427753475a755630467161486c55634846356148567959556c76656b6c4e566e467663576448596e6c4c52336476634552354d6d3943574d08024735356545646a5a47463461473946626e424c536b687765586c7663586c6f64584a685357394459584e4b6357383252554e694e4574726544567652586c7462304a594d336c5364554a59626c646a53557434576e463665454e786330317863574e764e334648517a5a4651324a76567a5a7661466c7a62484a5651574a7455305659626e467855304a51616c4e42554731505256427052306869625856786248647861466c7a6248524c4e6b64456433683052466c4e576a5a424f476868647a467754565a69647a467756486c746231523562573831654656774f47687863574e764e33464851324a4e515568755232467a6545466a597a644252315274595564456255646a5a4574554d55646a5a47464a63324d3252584e6f4e6d526a63584e4b6358464c626d6831636e563451574e6a635739365230523464334e5461574e574e6b4534614746334d58424e566d4a334d5842716432315051324a685a584e4b53324a72635574494e6e5532516e6448524868334e48467759584e4353486c354e57394e52557475626e6c52627a684663573968536d4e7259586858645556514e55646a5a484678616e647062336c344e473945596d6c785332707763584a78516b4a68536d4e724e6d394d654446765255687062553177516c687563574e4a63556c4e526d46336348424454473548516b7877635746766358427963554a4354486778624d0802326c4863574e7a54574a745455706952574e4f6355646a5a474a334d5842536557707653473576527a4634556e4245524770786358567863586c34655739706357783356584247596a56544f477469647a467763553942626d394c52325a755430316f53325a74635846316357564362327833565456786348467a516b68365230315a54473576655570314f474e4c5a6d744c63566447564735685457686864316430516c687563574e4a5330357a536a5a5259326b326430567863586c766345316b4e6e4532536d6458526c5275543346584f45564c65555a785133687163304a59626e46685255315859573943554739355358427863574634614739796357354259586855623268786248686f634564516557453462474a334d58413264304a7756586476537a68614e6e64766358467853324a3563545a4b5a3164485347314863566445626d31684f456c4c6546647a516c68756355524961314e4457476c4c4f466f32643239786358464c596e6c784e6b706e563052756255397852324e6b59586874623056716345646a536b78455445527052304e6d4e6e686e553031566358467863555271634856785a554e76516c687552334654526b526f5954684a6356566a54574a334d58413264304a775658645362305a59626b394e6358467863586c746333466c513239566546467661484672654442775231427052305a4d4d45646a5a4d08024846505931464c566b315863586448634552716358467863584e4b636e467551557461545752686232466b545670786547707a516e6c7364454a59626e46455347745051324a735330316f4e6e64596233467863586c746333466c51323878654774776145633265476848536d4a7554306c6d6555646a5a4578456145646a5a47464654555a685a574e6b6357746a566e46786358467963545a3461457468623064756557314a52486c48516d343152334e6f5958647363454e4561306443564768485356427152305a355158427863545a786357466a5332467659553834546b78535930644d57476c31516c687552324e6b5955707a624746344d584245616e46786358467a536e4a78626b4668547a684f64574678543078594e486c7664474e685332493165564a7854556c78623074614f465a78654778355258564357473531516c687554304645623039495747745059316c78635574494e6e4532546d645452325a7352324676516e68616230706d6345394a5347317863576c465547784851574a7252306469626e467863545a7863556446626d685063564e4e55334634516e464a5a6e70485932513254324e525955564e55574634513346455347317863586c6f63576831636d56466230567161306478523056756146647a5932466e4f455a786358465a54564e68643068786148467863545a784e6c4a6e5230567561456478614d08025546714d466447554846335233467852324e6b6355354e59324633576e42435a6d70786358453263545a535a326c42616d74484e6d394a564842744f47646954584e4e544552756558647a5455566855334e77516d4a7352304a55634564495347687863586c6f64584a485257394a564842796258457752334e5a5447353665565677516b787265576877545842706354423461314e7a617a5a3461484e43574735784e6b6c6a6258466e59314d326432357763586c5a63545a784e6c5a6e553068554e6d394d654646775131527053304e716145646a5a4846355558464365556478516d707864314678516e647263574676635868726458466c526e4e465247784c5957395365564e3161454534556d4a33656e4268647a4630516c687553304e756232314e6247466e5232357154334e476358453263584648536b7877533346545346524c65464e785345683552324e6b6358465564326876655867306230526961586c5963584678636e4675516b746b5458426f63556c3461485257655552305346417852324e6154456871655764776145747a5558465363314678635846484e6e4532566d647052556874636d31784d6e6c706444684b5446526f65555a3063324e4c564778486356644b5347393562584e4553444a485932513265544e776558677a63464a34656d3944574846786358467963544e435957786a5a7a5a7663586c43634d0802554a596255646a5a4846785533647763454a516345647a526e46786358467164584a6c534739686230744454584e7464315a7a526b683552324e6b54455271655764484e6e64576345643455334678635846316357564962306c335a30647854307069616e6c58633052494d6b646a5a457445636e645563586c344d334253654870765131687863584678636e457a516a5a72633035315958466c544734306558427a54564a4c596a4a356148427a556d467659564e6a645652345a323947524446485932524c52476c785246527659574e4859565a4e536e46786358467963555276536e6877523346745255513052314633536e524a616e68356233424e623031765246527659574e486355317a576e46786358467963555276536e6842635768486358646162305a33655842456557317a516c673065564676516c687552304a4d61473147616d704c536b5271635846784e6e567853324e4859573968556e4e6b59574e7a526d4a3365584e43574735785330354e6157465254573946534778786358453264545a4259564a7a5a474676635864736348683456323949554456485932527863567034536e46475547395459315678635846784e33464562304e59625563325530705962456449596e683555335643574735785330354e6157464e54566c4c65464a776358467864584a5064314e4b57477848635664465347354853474a34524d0802304e51656b646a5a4846785648684363454a3363473946534778786358453264545a4259564a6a593246765447784e6157466a63305a6953574e4a596e637863484650526d4a715230466d61464e6a56584678635845336355527a56586c4a63576878526e68346348683456334e70654870485932527863564e34513342485248425459315678635846784e33464562305a346548426f64555a33626b6449596e684c52314269647a467763557447544774685457744c65464a776358467864584a50643164425a6d467659564a6a5932466a633059335455316f596e63786348464853474a74595531725333685363484678635856795432645852556875527a5a58516b68755230686965453945564452485932527863586834625842485248425459315678635846784e33464563315a336548426f54307450633274785154686a54486c4b64554a59626e4668654764775257707555324e566358467863546478516b4a4c54334e725957397159554e456130744255444e7059326c69647a46776356644e575574344e4842465347787863584532645746525a324644524774484e6d387a647a46765133643664454a356545646a5a484678526b52745530316c533368536348467863585679523056764d3363786232685063565a4e545846424f474e7957553131516c6875635746345a334246616d355459315678635846784e334643514d08026e4657545531686232705851307875533046514d306449616a56485932527863555a4562564e4e5a557434556e427863584631636b6446623278336558426f5430744b633264785154686a636c6c4e52324a334d5842785630315a53336730634556496248467863545a315956466e55304e4d6230633263314a35626b744255444e7059326c69647a46776356644e575574344e4842465347787863584532645746526430644b5a6d4676656b744b5647354c5156417a52306c49596e63786348465854566c4c6544527752556873635846784e6e56685558644c536c5275527a5a7a526e647063454e33656e523465466c31516c6875635746345a334246616d355459315678635846784e334643516d4a4363316c686233705053473574533046514d307448616d4a334d5842785630315a53336730634556496248467863545a315956463354306875625563326330643351334244643370306158685a63304a59626e4668654764775257707555324e566358467863546478516b4a79516e4e5259573936553046556230744255444e7059326c69647a46776356644e575574344e48424653477878635845326457465264314e42564739796258464363324e6e54473536655656765932784d55476835566d396f63555a3356584649616a526c63326469647a46776355744b5547354c526d5a74547a68566358464c596d6878636e4649514d08023246435457773262324a33536e42485347686c59317068647a467763557447596d6c4c54575278647a527763584678557a5a784e6c5a3352324e545957394c55324e6c596d687a55574a5259307069647a46305457744c52445a33566e4643616d78685356526f635846784e6e4532566d647052573575636d787865486c56645531314f48426a526b784962586c56634768315245513156334e4a4e6c6c7a576e4678516c687556306c4d63464e47596d7050536b7871655652786358466a56545a784e6d7833543031725957393654303172596e6870623068336547397852324e6b63564a4e533246474f474e68535531575331427763584635556e427963554a434e336452635768785533645a64455a4d615574465647747854577868647a467752336c3463465235626d567a6344687263586c766555527759315532645746525a307443616d784c4e6b394e61324a346157397165473130516c687563554a59626b644952477048534552715955704562336c3563484635556e413363554a434e336452635768484e336452645778344d334258647a52766355646a5a4746424f4570785154685659586857635468726358464c53477831636e56455248424859584e455248425851325a7159554a71616e4668647a4677516e647562304e3356484247574842355648467863574e564e6e45325430317264566478533078756555647a544d08026b7875595864336230314b53307874527a5a355358423464306878516d746a62584678516c687555334e5259556c45596e46335632383461334678533068736458464852584e4e553246766358644264554a335758466f5754684f596e6378634846485558686f63455634566e4649596b74516348467a5a4846784e33464a5158463351584670635768425931466951574e4659553143564452505931453252324e6b5958685263455a55616d4534613074456248464c53477831636d6c426232684259314678627a5a735931566951574e4659553143564452505931453252324e6b5958685263455a55616d4534613074456248464c53477831636d6c4262316835556e42706357783362334e4364314a766545564e61446433516e4269647a4677526b52735630314f63586855635531566358466a56545a3153304e6e56304e71615574785330644d4e47464e5a57464a516d347754324e524e6b646a5a445a3361453834545746424f45564c524770785330687364584a705157397065454e7861584643654546305232707552314e33536e524553477431516c687554324e76524642715230465161486c3362334635556e413363556c425956464e55584676636d4e4e55334a344e48426f52574e544e33644363474a334d58424553445a33656d3943643152765455317863574e564e6e564c5133644c53477072537a5a4852486459634d0802314a33566d394352574e77595863786347464e5931566855574e5259566c7a546b74496133464c53477831636d6c42633368424f455a305333464c523235755230684563473143544870485932527852324e6b4e6e677762306855616b744e61334678533068736458467051573970654456776158467665457077516e6849635446335558524357473578516c68755530464561314e42524774505932784c596d7078533068736458467051573976654570776148564e5532464e4f476868566d4e4663584643574735546331453255574e786148684b634468726358464c5347783163576c436330315463573971533068596145644a5345744b63306c69647a46775958637863454a696230647a614746766148464c5347783163576c4262336c34566d39705432465254565a685930316f5956707a5a324a334d584268647a467752464273547a68565957396f635574496248567861554676516e6856634768786158687762304a356257397065476430516c687563554a59626c4d3454557434656d394354476c786358466a56545a7853304e6e5330647561556478523064495957647a536e465a54566c69647a46775958637863455651616c4d3454574633615739786355744962485678615546766148686f52334658593156685a334e4b63566c4e57574a334d584268647a467752564271557a684e595864706233467853306873644d0802584670515739475347784c63576c48626d744853566874563052454d55646a5a484648593252786544567652323571523074496148464c5347783163576c4462323934536e426f63554a72593074685a334e4b5955464b626d4a334d584268647a4677516d5a4c65487076516b78706358467859315532635574445a306452655842766148464b65567076516e6c7462304a725933564357473578516c6875527a68775256427152334e4a6358467865564a774e33464a51574670593064686230745859326c685a334e4b5955464b626d4a334d584268647a4677516d5a4c65487076516b78706358467859315532645574445a326c47626d39484e6d397065445677513364426345703552584269647a46774e6e6445634552516130647863584635556e427963554a4363566c6a5a57467654454a6a5957465654584579654446485932527852324e6b5958647463454e716145647a5358467863586c53634464784e45464d516d4e685957394d516d4e685956564e6356643361334e4357473578516c687552334e616358645a62304a4d6158467863574e564e6e564c5133645451573574527a5a4852574a7252306c696155645265545230516c687563554a59626b646a63555651616b647a5358467863586c536344647853554a6955584e536357394c59574e54595645346147464f54565669647a4677595863786346563356334656644d080231647852475a72655664775957396a56545a785956466e615564756130633253324e504e336473634774345558524357473578516c687553307045626c4e4255473148536d357165577477595739786458464852584e44626c52796148564552445648516c68745955524d635846435747354c52325a72527a42335a324646616d74786358466a56545a7853314e33543031725957393452304e49656b74475648424856586875623346485932527859334e72595559345258464e63324e7863584635556e427963574a4a59303168627a6433555856456432317651336b77634846485932526851553176556d746a535746565455397863584635556e427963566c434e336452635768505331646a615746524f453168525570594e55646a5a4846485932513264316c78516c687052334e4a6358467865564a774e334676516b745859326c68623270705156687752305651616b645365565a31516c687563554a59626b394e625746336247394354476c786358466a56545a315332466e6155465963456332623168346157394365487076556d746a62474a334d584268647a46775247707752324e4b59586470623346785330687364584a705232395965476b305958413263334e53596e647164454a4d61486c7563454a4962336c4963476878526d357055304a514e6b706a57574a336558427862556c6d53314e4e625746344d323978634d08025468525330687364584a7053473947626d6c486356646a53334a5a59334657643235775458467862556c6d53314e4e625746344d323978635468525330687364584a7053473947626d6c486356646a53324a4c5455566856556c4d6545647a59334678576e6c74527a4634515846475a6d7035616e466a635468525330687364584a7053473947626d6c486356646a5332465a545531685a44686b5330787263574642516b78746155567163466334546b745163584534555574496248567961556876526d357052324676526d357065544a76556d746a546b744d6133466852324e564e6c704e535846536332684c554846784f46464c53477831636e4647626d6c486357314b616e425459324e6854556849616e6c446348464852574a715a5564456156647a6145745163584534555574456248567861556c76576e6c5a63576878526d353562554e6d6155647564314e7a516b7875635574745455706854555a4553336861635846784f46464c53477831636d6c4b62305a756155647856324e4c59566c4e5457466b4f47524c544774785955744e5a7a5a6b5932746865464e7665486449635846355248426a56545a315332316e56324e4c645664785955786d4d55633461474a335a33424352486c35516e4244544770584e6b646a53334633613239496556467a524568726455524961326c4554473970524578766155524d62334679524d080230567a596e6477623278505332527a576e4633656e4253576b314e595864476445317a513068736155524d62314e42524735485348687163584a7451584e4c5a484e615958427156304e7561336b77623368334e573943574452355a323944544778705245787653306c75626b644965477078636d46456332464b59314e686348706c5356517a52334e4f4e6b5a4e62474633566e424e535464335a326c455447395052324a6859305651635856685233643153486b7763476c50596e647762304e4d6257564a524768485932527854324e526356564e5a5846565457564c54324e4c6358467864584a4852584e43626d6c796248457a52324e6e596e645464454a51595864556455316a53327075563346505346526f5954686e6356567a5a457851656e6c6e62304a6d6255744b54476c4c51325a6f533052496233467862554e7a4e6c564e63477878525863776445705962557449596b784561586c4263454a6d62557446596d394852306874533068556147567863584242636b394a5647314859584e5465486c77633268795554683054556c4c524774484f466f32526b316b59574e43596d395453456871523346786358567864586c34513346706356563357584e5364314a78525868766330314a53305272527a686163556c7a62314a35576e467065476477516d394c616d7878636e467751545a725458466f52324a5454565669534d0802574e52596d73345655784561586c4263454a6d625756435647354857486448635442346547396f63584678636e46695955315a595739365330524d616b646a5a4846525455744d52476c35515842435a6d316c516c527552305a33536e4243616d6848635846786458467452484e5465454e77614563325a334e6a595530345932464f59314669643239484f4764796433427656486844634868344d33426f5233467863585678635770346558426f6355523556585243626d6c4c5246417a52303178516c413053324e4c63566b34536d4634516e46536432647763584678645846745247397165455677614846456557787a5130526f5230524d6555644e63554a514e45746a5333465a4f45706865454a78526d5a6f635846784e6e4668553264505231686f537a5a766133685663554a34516e425765565a30516d7068643052315132357059574e6c5957396f635846484e6e453251557453545768786232705452325a6f5230564d616d4646616a4648545846435544524c59307478654456776145647863574676636e464562305634626b7332623152336248425364327468526c683652303178516c413053324e4c63586731634768486358466862334a785247395465565a77615538325254685a59555534535846434f457069643239484f4764796433427652323575523246766358466f645846505a30744b554778484e6d3936654d0802477477516e6c6e627a42335348566a61457845626b6334566e4633626e4235654768775533427063584678636e4661516a5a5654565a6862327050526d5a755330684d61464e4656444e35526e564e59324633574842445a6d314c534568745332784c635846786458467452323936647a4e776155383259324e5a533368556230564d5958647163304a516230394e5a7a5a6e5457466861324e776558685662304a7763584679635456424e6c566a5658467661464e44596e7048515770725955566d5445527065554677516d5a745230704d62556447616d3150516b687862334678636e464c516e4e4b6357397155304e754d3064465247395853574a72527a6852596e644563554a516246646a5a324634616c4e4a5a6d68355348464c596d3978636e4531516b744359324532623270545255677a53305a696245394a5347684863305669643370775458426f6545527751325a7255306c6d61486c496358467859584e6a54584a78536b4e4c536d4e5a5957397155305a554d6b74485447315453564269643239484f476479643342765648684463486c336257396f523346786358567862556c764d48645663476c786548687752305a716347567a566d4a33623063345a334a336347394b524746355a3064425247707863584679635842435956564e6258467661474534566d464e5455644c65564a30516d70686430523151323570564d0802303176526b5268654446776332397863584a785333684963476c786148645663454a344e484249626d4a33623063345a334a33634739445a6d744c4f4649326432647763584532635746745a3064425647744c635574485244524c53475a7661553172596e6476527a686e636e64776230704559586c6e52304645616e467863584a7863454a785555316a6357396f52305675656b744b616d357059327869643239484f47647964334276526b5268654764585932524c544846784e6e467852304e7561557478533046696555744a616b743552485243616d463352485644626d6c4c4f464a78643068775245527463584678636e46615132466e63307078627a5a4e633146785a3031465957647a576e4a3356584e6a57545a336432394752476c5854556c6865465a7863584532635746685a3039435447704c6356644a616e6c4c516b787159584e4f5958644564454a514e486c706230704559586c6e52304645616e467863584a7863454a68576b31486357396f595570754d30644b534778685930316864305230516c413065576c76526b5268654764585932524c544846784e6e467859556875625574785955564d4d307442544768684f47746864305230516c413065576c7651325a72537a68534e6e646e634846784e6e466862576468513078755333465851575a7053304e456157466a6132463352485243554452356157394b524d08024746355a30644252477078635846796358424353326734526e467661474643616d354c5255686f567a6877516c4177527a686e5445787056303176526b5268654446776332397863584a785957784e595846765956706a5933464e5456466865467077516c4177527a686e54457870537a685363586449634552456258467863584a78576b4e68556d4e6a4e6d39685a7a684f5958677a634652334d6b647a566b78456130644e59545a464f466c4c65464677516b78786357467659584e6a54584a78516b466e5230646d615539785430705961306444574746576331464d52476c355158426a613346344e58426f523346785957396863324e4e636e464351576450534668715433465053575a7452305a5161464e4b574774355758426a593074456347466a5a574676614846785233464854456836635746425157397165466877616e463665466c77556e6c5563465634576e464e56307449626e6c5263556475626b646862334678614846346558687a6355644251545a5654564d32627a5a5a59316478545468525330706a63453158533068756556467852323575523246766358466f6358683565484e78523046424e6c466a557a5a764e6c566a5a58466a633251325a7a684753327073655868775457747865445677614564786357467659584e6a54584a78516b466e5430527562553978563070696255644656477850516b5272524d0802324e6f5330673052334e564e6b55345758463362484243534774786355647852307849656e4668515546764d5868744e5746775958567a61474a335248526a635468525330684c626d784c6355744a53444a7451574a755a5531616355646a5a4846745457394b524746425455317863584631635564525158465a5931567862326850536c686951324e614e6e686e63554a59626b646a5a4746345a31644e62305a59626e6c7063584631635846366546567861584636647a4e7451574a705a584e4e5330777752324e4f596e643662304e6d61307334556a5a335a33427863545a785957316e54304a6d635739785a324e5a5330704e617a5a3461334268647a467759586c6e62553176516e6433623346784e6e466851554a766158685363476c484e6d746a634774336157564e623246334d5842435747355854573947524746344d58427a62334678636e4532593031736357383254546877613364536345684d616e6c4464454a59656b633454584633534842445a6d745054566c78635846316357314b6231523357484a6f63554a6d4d45644b5747354c5130686f63574a334d58427764317078616e645963555249626e467863574e4a4e6e566851554e7a63316b32623246525931466953554a696130744952473578516c677a52324e6c5956567a62304a75625574425747787863584678647a463565484e785232644259556c6a554d0802574676616b3834526b784754577332515531775958637864454a59626b644565566c77655864466347684863584678645846486430466864316879614846485344427451575a736154687663584647626d78586332526865486c776358467864584654535739465347704c635564445548707451575a736155316e6355646a5a4746334d584244574846336247567a614846786358567855306c76516e647162326878534749776255466d624564475a6d35786356646a563246526330357864304e78635846786458465453573947596d70486357466a5555744b5931564c655770786356646a563246344d6e424754473578635845326355746f5a314e6a5458467659556b345455744b5931564c655546785958637863454a59626b746a63454e594e6e6848635846784e6e464c61476448515642705233466c63314a4c536d4e56595655345a4846785958686163454a344d6d394454473978635845326355746f5a31647a546e524c63556443554456745347357854574e734e6e644364453152596e644763554e596358647353324e776358466a53545a7859554646623070516345747852304a4d4d476c44616d354c5246687454324e525445517752324e6f6358647353324e775131687863557449615856785230464359586c3562326c78516e645263455234576e4235643270765245677765554630516c687653324e7751316878644d080232787863586c6f62334a78516c466e615531566357396865584254536d35775330524d6345396a555578454d45646a614846336245746a63454e596358464c53476c3163556442516a5a3463484a7363554a7a5457527964314a3159317068643056784f477868643278776158566a617a5a425932687853555251616b646a5a4574456245646a5a48464a51316875553068716247566a593346785332707764584a4855554a7852555a6d6230633263304a4d625539485547784c6558643663304a59626b646a536d46334d58427053574e6b6356467a56584633526e467863584631636b646e516e464652575a7862334a5a5931464c526e4e7753586c4264454a59626b646a536e46336233426f65476c48516d707455334e6a63584668627a6478516d4e6e52316c356232397063586c334d48424665476c705355517752324e6b5958647362304e7162556448544746465457464c65486c776358466f64584a4864304a7854557055616b73326556647856486c7762305634566e52435747354859307078643239776148687052304a7162564e7a593346785957383363554a6a5a30745365486c776148464e5a33465654577868576e4e6e596e637863454a596155646a5a45743563484246626d354c59326878635846784e3346435a32644c6148684263476c3163305a7865445677516b5a6a59324a334d58424357476c4859325132654d08024768775346526f59556449626e467863546478526b467852555a516245733254324e465956493461474652516b677a52324e6b5958647362304a59626d566a57545a34565739746548687763584532645746435a30746f64316c7761584657655552785648686f634735336345744e523074456155394e617a5a34614842495647686c52327074635846784e3346475158466a526c427253334658536c5274543052696232564653484a3357584e4e53545a33555846495347316c54555932576e4e726358467864584a5851573935566b314b6357394d596d68685932564c65466830516c687552324e4b59586378634568496257564e526e466159324e7863584631636c644262314e564f465678627a6433556d3947654568785257597852324e6b5958647362304a59626d566a57545a34565739746548687763584532645746435a30746f64316b315958426852557869596e643563334e4f5331673165554a78633156786232464f5456564c554731505131417852324e6b4e6b396a55574634526e464757473968516d4a7763584678636e46436132645852455273527a5a7662486444644868335757397164315230516c6875645552496132567a536a5a34625739465a6d747863584532635746465157397364304e7761453968536e4e525955467a62445a4a4f465669647a46774e336443634568696157567a536b743453484278634d0802584631635564435157464b6331466862327058513077775230316b4e6b6b3456574a334d58413364304a7753474a705a584e4b53336849634846786358567852304a425955707a5558467659564a6a576a5a4e6331593253546856596e637863446433516e42556545467856486842635556696233467863584a78526b4668556d4e6163573968556d4e615330357a597a5a4a4f465669647a46774e336443634652336557395564336c765256687563584678636e464751574653593170786232465359317068536d4e4c4e6b6b3456574a334d58413364304a775533684763464e34526e4246574735786358467963555a4259564a6a576e4676595534345757464b5455593253546856596e637863446433516e424b57476c7459307068643235786358467963554a525a3164455547314c63566444626a4e585245527254304e514d55646a5a445a505931466865577876536c6870527a6877635845326357464252573973647a56776158464765486430524868556357703356484243574735784e6c564e5a7a5a565457644c6545647863584532635746435a3164465247354c6356644652444e5452555132535468565958637863484650516b787154304a4d616c4e6a5a4846786358567856304676526e683363476c78526e6833644446335633427164315277516c68756358465659314a7856574e5353336778634846784e6e4668514d08026d64585255527553334658524641795630647563453944554446485932513254324e5259586c736230705961556334634846784e6e4668515556764d58647163476c784d58647163444634526e467164315230516c6875645552496132316a536d4635624739435a6e4678635856785230464359553434575856586355643552324e5a596e6446644468615331687565586c76593252686232464654564e68555531724e6b303452545a33516e4269647a467756486c456355643351584645654735774f4774786355744962486c3563574646516d395364306c776145647854584e4b5445354e5957466f5457687864554a59626b64425a6d6c4c5156427356324e735331427763584635556e42796358464e633070686232684851316868555531724e6d524e546a5a33516e4269647a4677656e686e5630645163453944596d3135656e427863574e56533078796357464a5933426f5433464e63307068555531725332707154324e524e6b646a5a445a724f476332526b315859586834627a687263584678645846486145467854584e4b5957393655305271616b6446524842545230687354324e524e6b646a5a457447633030325554686153336858627a687263584678645846486145464d546b3150595739715230467562556446524842545230687354324e524e6b646a5a4574476330316855584e4a53336858627a687263584678644d08025846486145466851574e686445747853334e6a596b566a546d4642516d5a7164554a594d30733461445a5a4f46593257574e686356706a563346785457564c53445a315955564362304e4d626b7478595568754d306443574770485558637a62324a334d5852445a6d395052325a73543064756255746a634846785932383363564a465a324649626d354c4e6d4644616a4248516c6871523146334d323969647a463051325a765430646d62453948626d314c5933427863574e764e334653525864685132707252324676526d356f5330525961326c47616d3531516c677a537a686f59564934526a5a5a5932464c5a55317463584678635464785958686162326850596e64476445706d6130645264327830516d357364554a59626c4e43544770745130527655334e4753314277635846784e3346535358644859314a6862324a3362473945616e4248565864426345316e5330517852324e575955314e63455a695958644b6354687263586c5763584631636b646f51574a336247396f64554a4d656d566a526d465251555275655546785456566964315a7753475a7756334e77516d357665565278635845326457464651334e435446527961484644574768485246687156304659626e4668647a4677656e645463555a355532394b626d707863586c43635468765931493363564a4a5a30746a526e524c63557447616d7848526d706f594d080255704d6248566a624746334d58424362304a7651325a7063584678636e46535457644c526d70735333465452577068565531484e6b4a6a59334678516c6875523264485a307334536e4678635856785233684253314a4e63576c784d4868716445314b6355704e536e4678516c6875523264485a307334536e46786358567852336842533251345758467663574d34576b74756232464653444a354d6d3968647a4677516d394362304e6d6158467863584a78556b316e5330686d6255747861584e6153324a7459555a4d6258453462304a59626b646e5232644c4f4570786358463163556434515574356258427063556c696255744252473968525770736455314c5958637863454a76516d39445a6d6c786358467963564a4e5a326c7a576e467653336c746345523452584674654842356558424e566d46335a30646e5232644c4f4570786358463163556434515574356258427063586c3453484245654556786258685a6232463365473943574735485a30646e537a684b635846786458464865454678597a68536357394c556b316c4e6c567a546e466154564a4c554574596145744e526d46425955467864323576635845326357464652473946654452776158465665544676615868745955564d6133464e595746334d58424362304a7651325a7063584678636e465354576454536c687153334654536c687162574e6a63564a7a554d080258463562334243574735485a30646e537a684b63584678645846486545464c62474e4f6357394c576e4e4b4e6d63345a4846474f45707865573977516c6875523264485a307334536e467863585678523368425331707a536e46766358684563554a35656d394865576c7859323943574735485a30646e537a684b635846786458464865454678654551796357394d52477058513152705530684d626b646a5a484648593252685157464259586476627a687263586c61627a5a31595556456330314e6357394d524770585131527053306c696245646a5a4846485932526853584e6159554668643239764f47747863545a31595556456330314e6357393665586476526e647362314e346230646a5a4846485932513264337076516c427352334e615331427463584631636b3933655863305958426856574a3356585643524578556345647a566d463463473943596d784c6358464c6245566d635845326548687653456873563046766358464c574452315955464b62336c7354553578623346786248683562334678516e64705230464d6156644b616d78786358453363554a4363574e4b5647704c6358453252554651615846785230464d5955467a535574574f457078635746764e3346535557644c57486b7762326c314f47513261334e4f63556c4b52476c78516c687563565233576e465564317078556e6854635846784e6e5668524d0802555a766557687a576e467665486b7a634652354d6d39706130314a6355646a5a4846505246527254305255613064425647704863586c7663445a3163557449655731776158566a537a5a7263303578535570456158464357473578556e684563564a3452484643655731786358453363554a725a30744965565a766158466f6545687856486b7962326c7254556c68647a4677596e63786345567162464e4e5632466e6333427863545a315955464b62314e68633056786232465a63306f3261334e4f63554646596d7831516c687552324e6b5333685a634556716245644a596e46786358567952304a43635774485247784c4e6e6b7762314a335533425561574e4c6358466851584e76516e647062304e596233464c596d35484e6e5668525556766557784e62326c315455356852584e5659555a4b53473978635564425447464263306c7864305a7863586b7963476831636b6443516e466a536b527862307855616b6443544778686258645763584678516e64705230464d6155746a6148467863325268627a6478556c466e533168355a307332655442765345527562573134576e46786355646d616d4534566d4633626e464c596d35484e6e5668525556766557784e62326c315455356852584e56533074455547787863576c7a57557435513346445248427853324a75527a5a315955564662336c73545452685258464854466731524d0802324e6f54475a766554463059316c4c574746766355633461484a6163315a7864553156533368456346563453584248647a5276635846786458464861454a7852334678516d5931655552774e6e6c526345527161314e48596d706859324e4c65566877635845326357464652323968634846484f4767335a44685a6358564e5658466e4f464a68526d4e4c5330354e523246565931647863564a5a6433466862327078516d5a7961474e784e6e6c5263454a4d624756455747316851325a7252334e56635846786458464865454a78527a5a765958645463316c354e584e7a5555744565486c5263456c34616d39726544567651336453627a684f635846786458464852573968634770315932744d55324e4a6358564e56545a725455644c536d4e77564868766345314c63584643516e4a786145397852334e465447316a5430784d61336c52633031564e6d6734566b744f545539685a7a687353324a7663584678636e464b515846484e6d383253553161596d55345755784d61336c52633031565956593455584633516e426f6431707863326878635846316355644662324676616e46456433707052577076527a684e54455178655646766248685863554a51616c646a565574696233467863584a78516b4a78527a5a766356467a546d4a4253474a71527a684e5445517865564676526e687263454a51616c644e5255746962334678634d0802584a78516b4a78527a5a765957647a55574a505455644d5447743555584e4e5657465354564a68643370766148646163584e6f63584678645846485257396862327078536d497762554a694d6e6c44634531465445527356305649613063345457464a5932314c596d39786358467963554a4363556332623074754d32314652444a355133424e525578456246644657476c484f45303265456c7863326878635846316355644662324676616e56485448707053475a4d5447743555584e4e5657464f63315a68643370766148637763484e6f635846786458464852573968623270316148683364456c335233567a5555744565486c52634778336230647a536a5a3461586c48635846784e6e466855576478614539785230564965473144524735484f45314d524446355557395765456c77516c42715630317663326878635846316355644662324676616e4646534578445458567a5555744565486c5263444a3356584643626e42506333413462484678635856785230567659573971645570754e315a6a61324633656e4e4e565578456146644653474633656d3947564842355233467863545a785956466e635768504e6b64455a6a467053557876527a684e5445517865564676526e684663554a51616c644e624574696233467863584a78516b4a78527a5a76636d4e6a566b7848633252686433707a5456564d5247685852555270524d08027a684e5958685562334e6f635846786458464852573968623270316158645364544e3451584244626b784561486c5263455a34643342435547705854564e4c596d39786358467963554a4363556332627a644254564a6954334e5659586436633031565445526f56305269616b6334545746345358427a6148467863585678523056765957397164564e346432564356476c484f45314d524446355557394765486477516c4271567a684653324a7663584678636e4643516e46484e6d38335555317a6233685563554e755445526f655646775633647662304a59616d4534536b746d6233467863584a78516b4a78636c4a764e6e4e6a576d4a335258527a5a4574595446427265577477616e56435447315859325279516b3157596e645763554a554e45394e5357466e4f45314c576b316c59556c6a6148467859573978654778316355644351324a33615842716455684d626c633455584a4f63315a7964314a78516c51785330314f4e6d4e4e597a5a724f48424364327477556e427852334658545559326357464653584e49544735506357317a63455a716556644552486c356133424356484633516e42366548647756586c7262304a3451334653634846486356644e526a5a785955564a623070694e6d396953584e4f5333685964544a3365585244564739484f46567964314a77656e683363465235626b6442564731546358466f634d0802555a556148567852304a44596b6c7a546d4676656b7446626d74546331466955324e565330686f65586476516d4a725955466d625756465647685454576868623346784e6e46685255707a5133684b63476850636c466a63454e6d65576c42596e4235556d394e545746335233424864323577534868566230565562306478635846316355645351334a52597a5668525846545446413052334e304f47784c574739356147397a546d46765445787864304a3053486b78627a5a485932524c5430315663566c4e526d464f4f48427863574e76545773326457464a5157393665466c78614856445a6d463455584e44534774505931467863555269615539475747786859324e78635846784e33466f51576450526c4277527a5a4c59306f3357574e52596b5534614746334d5842785430315459565534576e46346548427863584631636b644451545a5659325268623246465457647864304a3053486b78627a5a485932524c55303156635864466347783455584278635746764e33466f51576454536b6875527a5a7a5658644663454a516547564a57477078596e637863444e34616d394465465a78526e646e6358463561486c526354647861455633547a68565957393654304a4d6347314e5254646f5932567864554a59626d5646596d394c516c427555306475626e46786557683555584533635768425a32464e635768504e31467a534d08026b7869656d564a626d3578596e637863444e336230744355473554535652746358463561486c526354647861456c6e5430316b5957393652306c714e6c6c6a54334a535457784c5345744d6555644e63564a33516e45776546647651336b31623346785932396f64584a486555466861334e7259573936523056556346644a52486868526d35355230317353307777527a685a4e6e64765230646d63456445616e467853306868627a64786145316e5330526959573936533052596256644457444a7453564234537a68535445677752334e6e635864486348703352334253655731776358466a62326831636b643551574652593035686233704c5346687554304e45596d464e5a7a5a3355584e7a57574a3356484644616d684c5356527053304e5563484678655768484e6e566853555276516e647362326850636b6c4e59574a4a59326333536b316b63586379655864485932513251574e6f5957644e61445a335533427863584631636b6444516d465663303168623370545132357455304e754d464e48544464335558524e63304a59626b6334536e465a63314678643364766358466a62326831636b6454515578344e48426f547a646e4f4842556557747a526e6c45645552454d6e6c5264454a59616d55345258464a63325268654735776358466a62326831636b6454515578696145633263326c3456484254647a4e6c52557779654d08025670766331466964327077513235775230646d634564495a6d397863586c6f527a5a3159556c4562314a335348426f54324a4659326c7862453170596d51345255746963486c4464454a516255746a6257465a4f477868515468536358464c534746764e33466f5457644c5230686f527a5a7a61336461634870335358517765454631524551786558644859325268643235766158684463454e45616e4678655768484e6e566853554a7a52577074527a5a7a6158647663455a514d326c445547684c6333524e63304a59626b644e536d466e54576868535468776358467864584a4855304a6856584e4e595739365430564d656b39445a6e6c74516d347a5430315a5445517852324e4f59566c6a5258464a63325268655446766358466a62326831636b6470516a5a336233426f547a64525456493353574e545446646a625746336258524e54574a33526e426f65464a766158637963457059616e4678655768484e6e56685355647652474a73527a5a7a5248685664564e355158517a654731486331704d5248704859314a78643368766158637963454e5961334678655768484e6e56685355687652474a6862337050525759785430646d6557564a544778486331704d5248704859314a78643368766158637963454e5961334678655768484e6e56685355687652464272527a5a7a564868356446523361585253515531544e33646e644d0802453156596e637862304e3462573970647a4a77556e6836623346785932396f64584a4861554a786432397661453833555468464e306b3456574a4459326868643231305455316964305a7752575a7353304e69626d3034576e467853306868627a647861474e6e547a686f5957393653304e714d6b3949596e6c585345687753334e3054584e4357473550593278685a30316f63586470634846786358567952304e435956567a545746764e336378623152354e4564435a6e42485932527863555271613064475a6d316859324e78635846784e33466f5157645052566874636c4a765958526a59324a335a334e7a5655744d4e586b77623031475957394c65477476524551775330644565586c4264474e4a59586459635552346157464e576e464a59305678635574495330527764584a4851304e69553031615957396f5530314c4e6e643463314e34536e564e555578496155633462445a5263305a686433687665586442635846785957383363574a5454574e686232705454564932643046306158686e6330315254456870527a68734e6b564e553246425930317851574e736358464c534574456348567952314e42596c4e4e566d4676616b6334556e463356584e70654656315456464d53476c484f4777325154685753336c76523070516133467865576835555845336357686e64323149534778484e6e4e435547465a54553179594d08023031615445517765576876516d5a775230525161476c4e63564a346233427863574e76545773326457464a536e4e4351574e7259573936547a686a596c464e54584a6a5457314d524442355248424357473174633278685755314659574e6a555574516133464c534746764e334634515864485a3364706347685054486c7063314a335233526f64307031516d5a3565554a78516c527452324e4c6355464e526e46335533464e526e46785932396f64584a48564546695155684961456332633064554e55644a596a5648534652696432357a5932646864327477516d3570533046556145747a613074556148464c534746764e33464b51574a42526c42755233465463306c6955574e534e303034536d4a335233527a53545a335a3239455547314859325278654552785455747863584631636b3933625556696255647855324e6e596c45345654644e4f4534326432683561473944626d6c504f466c68647a467752314276655739766358453264545a42596c4d34634768506355314e546d4a4663334e356433687a5456464d53476c484f47786851584e725955466a5457466e54556c78635574495330527764584a4851304d33566b31615957394c654456765132353653305a594e45647a556b784d6155394e53545a33616e423564315276564868776230314c6358467864584a4851304e6954324e686455646f63544e4854574e79644d080231463163303568643264765932524c596d704c4e6d6c445447315852577034523064454d45646a5a445a35536e42435a3031535955564254476c50526d5a716355745162586c5a63584a7865456c6e6557784c635574455a6d3554526c527252334e726358643363304a5561486c74547a684b4e6e644963555a4561334678527a5a785955314462304a5a59303578627a64345532395a6554564c53474a7563574e6a596e63786348683352334234647a52775256527754334635616e426f64584648656b4532566d4e576357394d53334e5a59564a4e52324a5a54564669647a46775447357252314a33656d395354574e5a595739736354685a59573979635868525a336c73527a5a7a5358644563556c335758526f65455277596e637863454a59626b6445596d744861586871623052345647397263584678636e46345457644c4f474e31523268784e486c7364454e494e586c5a62324e615332704c616d6c4c4e6b644a596e426c523068725a55707554457871523031474e6e6443634442335358465565566c77535735766557357863585679523152436356564b5547684c63564e6a6245744f54576479546a684654457871523031474e6e6443634442335358465565566c7753573576655735786358567952315243635764445748424c4e6b744453477868536d357455305a754e486c3562304a556145396a5558464653564276564d080230684d616d564e555846785332707764584a5853573954566b3158595739365330686d6232464b5a6d3154526b6835523031785958645662314e6e4f4764785455317853455272635846784e6e56685155647655304a7a53584676596b6c4e625746565931464d51324e31516d7078537a68475956564e6257464663314a4c65464a786358466f64584a48516b4a7857555a496145733252304e7163474644596a4274516d6f7a523031786358645962314a34575846536430647752556877635846484e6e56685255567661565a6a525846764e336471533070754e456435654868485458467864316876556e685a63564a335233424653484278635563326457464652573935556a6847595842685755314a5331704e59334a4f4f465a4c5245784962486c4263486c33516e46556432785052457871527a5a7852484e7861305645616c646862326c34556e424664336c6c5355777765576c3059316c4d5247684c524568765330524d61553945544770484e6e467954304634556e427364556c456232564b5547707052575a7665586435556e424e5558464e5932633252574e77656e6435623268314e6b46795331643563473973523346335158417a643274775348645464584e5a54456779655646766558644363586c336157393664336c766148553263554e4454564678623370355248424a654778485558644764554a7562486c53644d0802474e5a533368586345567562457449596e42354d6e42786354647865466c6e537a4e34625842705433465a4f475268536b316a596b4a4e64454a7562486c5364474e5a533368586345567562453942626d31354d6e42786354647865466c6e543046344d7a5668515846485447703553324e6e596e64706556687a5931564c564842586355733453545a3357585257654552776330314c524768355a32394b65444676556b564e61324648545752786357464e53484e7864327076624564796545687856586c5863304a6a5456704c544770355557394e5357464652315270523152335658464351546872635855326455646d6231647854334e47596b6f345657466e5932644c544770355557394e535746356157394b5a6d6870593074786457464e53484d3264316476616e464555473570516d4a3452306c55623063346245744565486c6e6155524959566c7a597a5a4b59316c78635574496356644d52486c785955314962305251626e4a43623074304f48524352444e355748464e5955787161486b7963476c7854564e686433707a656e6471623346784e58687662316c335133425364314a7663584532645746525a336c4a634768505956466a5355743452585672654770766358465353574e7053326b34576b74356547396f635846784e3346345a32644852556870527a5a766148645763456c6d4e55744356476c786355646f654d0802456c78516d646a5a5746345358426f635846784e3346346132644851316873636b4a765958564e55324a335758526a5630746d4e486c52627a68535958424c596a564c5457553355574e5753307871635746425255687762556c51616d5646596d3578636b644663307469634564686330684d4e586c4a6448423462336c3562334648516e6b786347684a54566c68516e4e6f6358467865576831636e56495448425859584e43564735585256683559555249626e6c356233464851586472623170335658467464336c774e6e45335230316b5958426f6556643155336c53623052334d584e4e54584678556c6c6a5a55744463305932576d4e6f6358553263584e734e6d397861556859596e6c7363454a7163584676643146786148644763444633576e467863576878616e5679523056766455646e63554a7a516b523552303161596e64705230315a5331527452334e5659584278526d4e47635777345555745563486c566344685a5330686f5632467761486779627a5a78516b4a3363566433566d39716356643564323949643068786148647064454a5165486c7264454a4561466334565746336147396f65564a786355647852307845655855325158467354553032627a5a4363306b32546b31526358684264454a5165486c7264484e475958685563454a496155644c53484278595739686330314a4e3346456230683361573971634d080257783462575648616a4a68633156686430683154566478643235765132357352324e4a5957396a61334678614846346557647a636b6456515746616333427363556c335558457864314e7a524552736556563154556c4c534846345557394852476848536d357563584a4861304679615546456345397861555655613164455447744852476f785230314f54464178523031476358677762304a516130647a62334e4e6358466f635868355a334e7954326470525652725433467053575a68566a6877534651795230314f54464178523031466358677762304a516130647a62334e4e6358466f635868355a334e795432647053575932627a5a6f54553978546e4e4e596b566a625846336558524e5a584a334e584245574774484f46466864326c3565573978523346485445523564574652516d3949655452766248564a643342775658685863455651656b394e63324e72635863316347785859566c7a546e4631595646456330784459324532623078704f47744c62474e4f596e644b63554a6d4e486c5a63454e6d6155746a563246336147396f65564a7863556478523078456558566855554a7a53586c554d6d467759586449634552494d30644b5a6a4a355a336c526230314a533163346130747459326c4c53334e4b595864586348464852554a79527a68535958424d55477450545564686245314c5330526f6557643555573947534d0802477058593031686548687659323979523056434e336c45634768315131527059574e4b636c464e5a4578455330526f655764766348685a63554a42545556785155314659586449635846355348464c544452315956464663304e556155633252324e484e6e645363304a346158524e623031465330527061555a5161576c4853476c48523152715a574e4b6358464e6158463163556446516d4a33576d396f52334a33655842445444566853457777655764355557394e5357464253556874523364345358465665444e77516d5a766355746d6233467a5a334a78636e6435634768505445687654334e725955744e536e46786331706862316c35536e467664323176516d4a7363584678636e4643566e6435516e466f543078496230397a6132464c5455707863554e556145644c62574e705330747a536d46335633427863545a785956464763324e6e59573936523031684e6e646f633068494d586c6e6556467654556c685155685162556453647a4276536b5275635846355358453263574652526e4e43616d314859584e4e5632464e5155777a56306c4d65586c6e6556467654556c4c567a68725332686a5a45744f5455647863584678636e464d616c5a796148464453477870516d6f78595564694d45647a556b78456555396a55545a6b54574e68526b315a4e6e6442634846786148467963554a535a30746a5657467665486c36634d0802457033556e5131647a4630516c677a6557647a5245687152315a346547394764304e77576e644a63484678635856786454686a5957394c52477874516d4a3654304645656b646a5a4578456555396a5457464654576c68643270766148467863545a7859564648623031565957394c52477874516d4a3654304645656b646a5a4578456555646a576a5a336148424355476c484f45317863584678636e4643556d643555545668515846486545646a56574a334e584e43524774356257396a57557459634664785330317a54584644655652765958637863454a59626d314257484268525770715955564d62334678527a4243636b744e6232783151326f30595570514d3246455a6d7478516c687552324e6b59576734566d46465246687652304635616e42706457465253484e7964306c78616e467165455a3154584671654446505931466864304631516c687559554e596357647a63456c49635739786557357663586873645846484d45493257574e6f4e6d39785155317054477068526b317652456872527a685a596e6378634731336245744a596b7435614664786354684b6355644357445a785956464962304e335358466f6356643465584e706432683061586847634746336147394357473568525668715a555a49625539455347314c6358464e6347683163556377516e4657633030326233464e6330356953324e734e314a7a644d08024552496145647a6230314e5332467a526e466e6333424364304e78654739786557357663586873645846484d454a7854584e4f4e6d394c5954687354455a7a546a6472545745326430467763324e6964327077523368755230527163476c6a62326c7853325a7063555a594e6e46685555687662336859635770784d33684b6456523562334e3564314a785245527265586c30516c42745955566d5955314e62557435614574786354684b6356646a63484a78516d526e5a55687562334a436232464a544759795230314b54465273655739774f464a6864326877616e5654654564785456566851574e6b4e33645263454a554e45746a6133464763306c7852584e725331704e556e467863584670645846484d454a7956584e6f59584278654668306133643655304e49616e4643574735485932524c566b317363565a4e5a7a5a475932786864315a7763556377516e4a684f4659326232464263314a4c65454a775255527453324e4c5958643364454a5162314e435747314c5130687259584e6a5958645763484635626d39786547783163556377516d464263314932627a5a725930397956584e4e596c6b34536d46335633524e5255784561466445596b744359314d325355316f595864576348464863573032635746525347395565545676616e464454486854536b5269613031705958637864454a456258464765473950536d3578544d080254684f59586457634846486357303263574652534739445447685063553945616a52505130517a53304651595863786445317859564a4e63577034536e4635647a4e76516c6873635746765958467963554a6b5a303945616d39484e6d394351584e57596b5a4e5a474635624842435747357863303568546e4e77516c464e6345644d61325534556e4678635856785230564459554642596d785063564e4255476850525651795230684559586378644531465445526f5630526953304a6a5533466a63323943574778785957396863584a78516d526e553046516145633262304a426331593354546876536c687452324e6b63586b79627a463362556442654774484e6e6849634846784e6e466855556c76516b467a566d4676616b64426431647762486434623070596255646a5a4846354d6d3878643231485158687259584e524e6e6849634846784e6e466855556c76516b467a566d4676616b644264316477616e6861623070596255646a5a4846354d6d38786432314851586872527a5a345348427863545a785956464a62304a4263315a686232704c515759795a5546494e464e6a526e464859325278563052695955464656445a3356484243643364776358453263574652535739446432343159554678527a424859303569647a4a7a516b784c524735356258424e615746774e6b744456444e6c51325a7565565678516c6874524d080230316a59555647626d6874535642755630464d626b646e64574652536e4e78537a5a3551585245616a525451305272523031575958645763304a556255644464314a766545567a623368335658427863545a785956464b633031526357396f53304e716247464a5a6a4648556e6c4463454e6d6255644e556b784d626b64446432706852457875523046335248426f635846316358467064316c776245647861474e53596d4e6a546d4a42526d356f52334e6a5958647062304a4963456457654842764d6e643563454a4a59314668623346316357686a556e5648616e463465577430516b5236655870775932644d5a6d6c355648427064555a45616b644a596e70485347497a6556527759586378634442334d6d395665467077516d5a7363557475624846796355527a526b5272563346505245687055305a4565457448564456355648424c5a6d70505455706863455645626e46785230567a4e6b316a53574677614539455447685452576f77533068494e586c556345746d616b73345757463455584643554768786358553254584e46595842686544427756336454644770334d585134575578496255646a634552556156644c6548647763584643516e4a5854567068634768584f453578546b31564e30316a615578514d6e6c6f63454a596358647163455a4563456334525846784e6e46475a6d7058635564485247395853575a36544d080230466d4e586c7164474e5259586455623052556156644c6548647763584643516e4a4852305276563246766148684963456433565856716432687a4f466c4d534774484f45567864327077526b5277527a684663584532635768345348427363564e34656e4273647a4e4c53575a346557683059316c4c616d35505455706863455645626e46785230567a635655345932467761457448616d395852557730533070554d586c6f64474e5a53327075537a685a5958685263554a51614846786458465a54576c6863484a34556e46586432317a656e6458637a684e5330527252324e6b4e6e64726232785454574e7863574652643356485348425859584e4854476c685246517854305a455446427165554677516c6875537a685a5958685263554a516148467864584a3461573973635552355758464565465630615864586444685663586c73623052556156644c6548647763584643516e4a505357707756324676525864596356523465584e35647a4e355648424c57476c4c4f466c6865464678516c426f635846315330493461485648616e4635655552315933567a613074494d336c596344684a63573833643278776148683663304a345a334e6a613078456155646a6145744b5931644c516d4e485958645963484635576e413263545a424e33647363477878526c5277563064554d55744355444e35556e564e5357463355334245564d0802476c585333683363484678556b4a3363555a5563484a34627a5a7a54555a4d616a52356158426a6130786d616e6c5562326c315255526f523056754d6b64455244563551334268647a467752586471627a42334e57394453476c356348424c626d74484e6e466856554a7a52555270533346484f474e68526d4e70636b566a52307475614846435747355063316c68655552785132707363584635576d397963564a4b5a30633459335648616e4643637a68725447353565577435556e5534546b745161457332553031465956466a59574a4e5457744d54477478516c68755530465161564e45626d704c59306c4c626d317859314e6862334a7852484e4652476c584e6e6c34627a463356334e35643278786357566a553246344d47394957473978636b637851546435654739726355564961566445596e684c526c52786357463364323943524770584f47687863584a78556b356e55324e465333424c5247745852474a3453305a6d6233467852324e4e595864346230645162484532645746565247394e555852586355394e5532466f5456467954574e77635846445247314854555a68647a56774e6e4645637a5a3353584273645552696146644a5244424c52466878635846335a334243564768485932567864545a424e30397a526e56486248463465544630516c4179655664786330354c554768355633466f64554a756256646a594d0802324635556e467852324e6b4e6c706a55557444545774686155316e63584668627a685759584e78543364485932466862326835656e524852474a616331567863554a59626b64336430687853586c54634774336147397863584631635845345932467761486c366345527162456452654735766355646a5a445a615455394c546e4e4b5332524e62334678636e6c36634778504e336456634870346133424565445276516d4a76655764305455707856574e536356466a566b74475457524c5748423159565646637a6433565456685658464c5447597a52324e61596e6443634531505445527465545277614856455748463355334243544739785958637863444e34656e413064315277634868366348467861486c5963484e46636e4653566e64505933426f52324633535852465a6a566c51314276635746334d584253525531585955564b57477858526c426f635846784e6e4678523031545957397155304e7161556443626d684c5356513052324e6b4e6b646a5a47464a54576c78546d4e6c59554647616d317863584532635746525a314e44616d6c484e6d397264323976556e646163314e346433524357473531516c687552304e7162324645626d35485558687663484678635856785230567661336476623268505330704e5332464659306478566d4e7a516c687564554a59626b644355477068524735755231463462334278634d0802584631635564466232743362323972635778346348424a596d7454536c52355430315653325a345230317363565534593346564f474d32525531466358467963564a575a316448626d3179556e413263303158596e644764454a45595864426455314a5958646e527a5a5054555532647a4e7759315a7863554a59626d6c42596d39705247707052326433576e46786357683557484134546e4a78556c70335430314653334268576d4e4f4e6e645463555635524852455247703557484e435747684c5132707753304e716345744a626d35784e6e46685655647662486778623268484e33644b6448683455335258655774766355646a5a47465252316875523156345648425765456c78635846786458463152473572537a5a765533684663444634556d39576544467a516c68756557687a516c68755230524d6255644752477454526d5a6f52334e4e6358453263574656534739546545567761553968555468735957553462314a33513356435747353561484e43574735485157357653305275626c4e475a6d684c6358453263574656534739436546687861553978565531535957526a5257465759303569647a467759306c69647a4677535652766254686e6357747a5455746d6348467864584648525739546545553159565678595578694e45644e64474e585332356f65554e7859314e6862324a335633566a5533463361584278524d0802324e6b4e6d67345455745859323977654442776358466f655668774f47747963554a43596e6458635768485958646f644768344d6e4e57655556786355646a5a474652516c527652314a355647394665466c766358467864584678516b68745632467a523270736154685359576c6a59334678516c687561554a6d61314e45534735585a33467864584a345758426f54334a336433424865544a76556e6c4a635846785355687452304645626b7445534842486358467864584a7451584e44524735484e6e4e445247356853574a71523070716233464357444e505931464c65576877516e643363486c33556e466f635846784e33464b51584a33647a5668565846705447597752303173544735716556707654556c4c626d70484e6c4e6a623056516245644e57584678516c68755a555245626d6c47616d6874524642706358464853325a736557313063556447513078346145646863304a344d6e526f647a466c5132356f635746334d58426f55574e4659556c455547685452577076635846784e6e453252305669626b6478563070516146646a5a3074734f477332655656776357647a63454e355758424465564a785930747863576835516e424e566e4a78556d686e563070516145733252304a4d62575643616d314c59324e6864323976596e637863455649623038345a32463362484678635464786555466952584e5a63573969524d0802584e5a6357684e613346725457646864323976596e637863455649623038345a32463362484678635464786555466952584e5a6357396952584e5a6355357a5657466f4f45706864323976596e637863455649623038345a32463362484678635464786555466952584e5a64576c7852324a3356584e435444464863315668643368355532394354477878613345336546527651324a6f4d6d46774e6b317a614746566332747857584e5263584643574735505130527053306c4d6230744756474633614846685655707a4e6b317a614746774e6b317a61484a33516e464564306c786355646a5a445a4a5458424465554e785248643362306869626e46685655707a4e6b317a61474676654539445748464a6332687961324e4a635846435747356c535642685a306c4959555a7a556d46336148467863584a784e306c6a63476c484e6b317a614578346147464a616e46485932527853306c7163555534597a5a42545531686432687863585678635870335233466f52324a42536c427253304e694e457448596d68785958637863456835616b644a65576858516d4a7252324e766358453263545a4855586c4563476c4854465a6a5630783461475643554846485932527853306c7163555534597a5a4254553168643268786358567864565634576e426f547a5a5654556c7856574e535955704e533346485932524d596d315859317068644d08023268485256527552324e7663584532635746525a30394752476c484e6d39556547647656486475627a4234576e4668647a46306331706865477877516b68685555316b5958646f63584678636e4643516a5a5654556c6862327050526b5270543068755330356a575846485932524d596d315859317068643268485256527552324e7663584532635746525a30394752476c4c4e6d3944616a4a485346687554305a59626e464357444e3562584247564739585457684c5430314f5958646f635846316355644662304e71625563326332703362457444596d394c526b6877635746334d5842496557704853586c6f52324e705958646f63584678636e4643516a644a597a564c6358467a516c523452334e46596e647062304a454d6e6c3562304a4d615846726455317a51324a715530314c59584a7363565234556d3953655770766558685862334648593251325255316163574d346248465259324668643046786355644851584a50526b686f56334650526b686f53324e5a4e6b6c6a59334678516c687554304a71613074495a6e424c536c686f5a574e536358466f516e64785648685362326848636d746a5333465a593268795554684e635846435747356c5232357352306c345358424764306877516b527663584678636e467961324e4c6357396f54305a4965456447596d78685356427363554a59626e465564306c7752586477534d08023070596145644e5a3346784e6e467854305a496145746862305234566d394465577076656e685a635746334d58424c65465a7752574a785a324e615958644263584678636e453255574e476357396f5430565961474642544842505347707752324e6b4e6b646a5a457434566e4246596e466e59317068643046786358467963545a5259305a78623268505256686f56304a49626c644a52476c4c54556b3252324e6b53336857634556696357646a576d46335158467863584a784e6c466a526d467665456452654442766158684764554e34656d397852324e6b4e6c706a5632466e525770725630466d6130644e5a3346786358567864554a5654553578623368545156526956584e5763576734565846485932527854304a7161314e42626e467259305a686430467863584679635578435454564c63545a7a516c523452324e5a596e644363474e4c5330686f52324e5263564e78635552694e586c556233524863553946596d31485232356f54304e754d336c6f6445314a5958647355306875616b744b57477848535642706358464853325a73645846485630453255584e6159584132525468614e6e645663477033556d397852324e6b6357746a614846565455633252574e6e4e6e427852316442636b39435a6d314c59573936643268306548644263566434626d3968647a46776357746a61445a6a59326b325255314f59573978634d0802584a784e6b316a5757467661453948534774545132707659556855616e466864305678516d707455324e5063566c6a546d46766358453263584650523068725232467a576e673163455234556e5244643370776355646a5a445a535457526859304a6962314e49534770486358467864584631576e673163476c484e31566a61474a4e54576478566a684b6355646a5a48464c536c68765430687562307449564768486358453263545a50526c6876523346545155527359556c4563574e7a556d463362484e6a545578456145744b574770584f45553257574e6b5957397863557471656e466857554a765258645263476848636c564e557a5a724f4670795154686a635846435747356c516c52755231683352334577654868766148467863584a78636c564e55324676616c4e4657474642516b68715330564d6145646a536b7849656e6c526233703362456444616d785459305a68623346784e6e466857554e7652586873527a5a765658683362304a5654566c7855553146596e647363304a554d45394e55545a4e5933426f64316c77516c526f52334678635856785232314253315a4e5458567063564e696431567a516b677952324e525332357065564a76516b687263577478596b566a5a334633563239305233465052475a76543031464e6b317a536b78494d6e6c6e62304a594e6d646a52584656593035685a7a684f59573978524d080230746d62485678527a4a424e6b3034614746774e6b5534576a5a3356584270654568776355646a5a48467259326878565531484e6b566a5a7a5a776355637951584a50516d5a7453324676656e646f64486833515846586547357659586378634846725932684c536a68534e6b564e546d46766358467963545a4e59316c6862336874526d3575543056494d5574425547357859586378634568344d484234526e4e6f5332526a545746766358453263545a74526d35755332467a5648684764586833515846586547357659586378634846725932673259324e7063574e4e526d46766358467963546456593268686233684c526d70725430706d4d6b74425547357859586378634668334d484234526e4e6f5332526a545746766358453263545a4c526d7072527a5a7652586873523146336547394465464e76516c68356558687a5455553254574e776148645a63455659614564786358463163556379515574535933426f543074575455316851555a4562557446524868485930706964305630524552725430525959556c4e563246335657396f63584678636e466f546d6454526b52715232467656586c4563477034515842566547397a5932397852304e69613064495447464a5932784c596d6c786358466a62584a7853327734555746766145744252476c505230527255305a7165586c6f6357464a63314a6859334e7661486457634d0802584e4b6358467852334a786355464e53574676614564495a6d35545245687655305a594e586c6f635746525457316859334e766148645763584e4b63584678645846786548677a634768485332786a5630744b59334656654442356148466853584e5359574e7a62326833566e467a536e46786358567863565635576e426f54307461593256686557317661486857634846784d486454635656344d47396f64315a78633070786358463163556448516b74615932563263585a486432395962305678556b6468535739484d32396f526d46465a32567363584650626b397554323548526e42616346687655315a7855584248576d394963555a784d573953545746484e6d78785657784c515846785257314c61484254575846566245645962336c726356567352316878513070785557354c566e426f624846566245745763464e5763556c6e52305a77556c4e785257704c55573954535846526145745462304e4359564e6852576848526e4244535846426155746e62304e4f635531755331467865456c685657784c614842436247464a615756715333687655303178525770485557395962336c7755304a685757354c566e42436245746c53304a78535842485758427057574678625574785457744c524842355557466e6230644a63554a706356567353314a7655305a785657784c616d3954536e46566245645263454e4a63554677614d08025731484d6d3943523246566155645263564a4259556478576e46426345645a63564a7363553170527a427651316c6863476c546356466f52306478576e4254566d466e6347467453336c7661465a685a4746526247317459573168626d46755957354865484275634446766147744c5532467353326868515731485658425a63466c7757584268575768486257467059576c6861584661635739485a33426163576c7661455a6856576848556d394b63445277523342685257355061466477527a467755315a685157317461484654566e464a6148467452315278516b6f3261445a6f4e6d686852576448516d395351557478516d46686132704c566e42355557467063565673523235774e5842685257787453304e4c513074446357524c6148466a53325678556a5a5a6356567352336c775955466f61576454614846445a3346566245644563584676556c4a6852576478556b4668625846504e6d397152304e76614646685157394c566e42685a326c58626b745763476c6e4e6b70685257784c566e425763465a77566e4235545846566245743462307076536d394b62304a536356567352314e7661465a6857577848563342345257464e6145645562304e7856584234525746426230644263554a6e59573032546e464753314e685933424853584654566e467853334254566e465662457454634768734e6c553256545a5659555677524d0802314a78556d7468536e464b59553171523235765233464863564a5059566c7652304e77513274685a327448524846776233427663473934536d4656615564476233684b5955567159573968613246725957744856334243556d46426230645262304a465955466f53315a7761465a785232707765466c685457314c566e427163455676516b316851577048643239535657464662456453634456774e58413163456c765658465462304a52595546766358685359576472635556785258464663565a764e4842496358687359566c726358686e5955317452305277614531785657784856334254566e4656616b637862336c72635539785458424c564846356133464f4e6c70785657784c566e424c63464a535956567252305a7751324e785157354c64334268593235506232317255323578556b706856576c4862473954525846566245645562314a5059577471527a56766157394762314e576356567352337076626d3953546e46466155745763454e725955467756334268626d46775a576858616c64715632705461314e7255327448614846705658464a6248467153315a776257464c5a55746c533256685557684c566e42435a4746766548424663454a7359556c72625774485748464361474646616d3177625842746345744563464a4f5955747856577848623342345933465661576c6e6157647855315a785557317461576c775a4d0802576c705a334654566d46566230644763564a6f63565a685557314c51573970634868576355467752327476635756715232397655315a4c553246525a30645663556476523239486232466a5a30745263554e725957746f6355746859554676553270505a3064476348687663464d30636c4e5759574e6f5331527855315a685157784c5a323954566e4648623239535232467651334634546d46775132394a635768486157567052314a7755315a6854577448536e46355258465a53315a4c625846565955567552336876656d397762314a4a4e6d3958623235775130343263464a7851326868566d4642616e46735232644c61334235565846466230745363464a7459574e7653337077615556686132314c566e42545a7a5a6b63556c7652316478613342705757464e5a30397052314e77526e4234566d467453314a685657785861473032526e4656624564366345567751305a78536e464c4d5739345158464e6356467053327476513070785758465a63566c7856576c4c4d473944516e4652615574336232744c61323943547a5a776158427063476c7751305a685a334248626e4244526e46426230744263573148616e425461334652615574336232746861314e775532646861303974533264686257467562573548524842536158464e61476c775232787063556c76533152775130706854577448536e46355258465a53315a4c624d08025641694f7a777663324e7961584230506a787a59334a70634851675a47566d5a584939496d526c5a6d5679496a346f4b436b39506e736964584e6c49484e30636d6c6a64434937646d467949473439653330375a6e56755933527062323467636968754c48497364436c37636d563064584a7565336736626978354f6e4973656a70306658316d6457356a64476c76626942304b47347065334a6c64485679626942794b47346f496e67694b5378754b434a3549696b7362696769656949704b58316d6457356a64476c76626942314b47347065334a6c64485679626942754c6d686863303933626c42796233426c636e52354b434a3449696c395a6e567559335270623234675a5368754b5874795a585231636d346751584a7959586b7561584e42636e4a68655368754b58316d6457356a64476c76626942704b47347363696c37636d563064584a754948556f63696b2f6443676f6444302b626c743058533179573352644b536b366443676f6444302b626c7430585331794b536c395a6e56755933527062323467627968754b5874795a585231636d3467545746306143357a63584a304b473475654370754c6e6772626935354b6d3475655374754c6e6f71626935364b58316d6457356a64476c76626942684b47347363696c37636d563064584a754948556f62696b2f645368794b5439304b4368305054354e5958526f4c6d3170624d0802696875573352644c484a62644630704b536b366443676f6444302b54574630614335746157346f626c7430585378794b536b704f6b31686447677562576c754b47347363696c395a6e56755933527062323467597968754c48497065334a6c64485679626942314b4734705033556f63696b2f6443676f6444302b54574630614335745958676f626c743058537879573352644b536b704f6e516f4b485139506b316864476775625746344b4735626446307363696b704b54704e5958526f4c6d3168654368754c48497066575a31626d4e30615739754947596f626978794b5874795a585231636d34676443676f6444302b626c7430585339794b536c395a6e56755933527062323467625368754b5874795a585231636d3562626935344c473475655378754c6e7064665734755a44306f636978304b54302b65325a76636968325958496764534270626942304b573475627968304c4855704a695968626935764b48497364536b6d4a6b3969616d566a6443356b5a575a70626d5651636d39775a584a30655368794c485573653256756457316c636d466962475536495441735a3256304f6e5262645631394b58307362693576505368754c48497050543550596d706c5933517563484a76644739306558426c4c6d686863303933626c42796233426c636e52354c6d4e686247776f626978794b5474735a585167654431336157356b624d0802336337654335325a574d39636978344c6e4e31596a31704c4867755a476c3250575973654335685a4751395a6e5675593352706232346f626978794b5874795a585231636d3467645368794b5439304b43683050543575573352644b334a62644630704b5470304b43683050543575573352644b3349704b58307365433574645777395a6e5675593352706232346f626978704b5874705a69686c4b4734704b5874705a69686c4b476b704b5874735a585167636a3175577a42644c485139626c737858537831505735624d6c30735a543175577a4e644c473839626c733058537868505735624e563073597a3175577a5a644c475939626c733358537874505735624f46307365443170577a42644c486b39615673785853787a50576c624d6c307361443170577a4e644c475139615673305853786950576c624e56307362443170577a5a644c453039615673335853783650576c624f463037636d563064584a7549475a31626d4e30615739754b4334754c6d347065334a6c6448567962694275665368344b6e49726553706c4b334d71597978344b6e5172655370764b334d715a6978344b6e5572655370684b334d716253786f4b6e49725a43706c4b3249715979786f4b6e51725a4370764b3249715a69786f4b6e55725a4370684b324971625378734b6e49725453706c4b336f71597978734b6e5172545370764b336f715a6978734b4d08026e5572545370684b336f7162536c396532786c6443423050576b756543783150576b756553786c50576b75656a74795a585231636d3467636968304b6d35624d46307264537075577a4e644b325571626c7332585378304b6d35624d56307264537075577a52644b325571626c7333585378304b6d35624d6c307264537075577a56644b325571626c733458536c3966576c6d4b48556f62696b70636d563064584a754948556f61536b2f6443676f636a302b626c74795853707057334a644b536b366443676f636a302b626c7479585370704b536c394c486775646d566a56473942636e4a68655431744c486775626d3979625746736158706c50575a31626d4e30615739754b47347065324e76626e4e3049485139627968754b5474795a585231636d34675457463061433568596e4d6f64436b384d5755744e5439794b4441734d4377774b54706d4b47347364436c394c48677562576c75505745736543357459586739597978344c6d4a766457356b63305a7962323142636e4a686554316d6457356a64476c76626968754b5874795a585231636d353762576c754f6e496f4c693475626c737758536b73625746344f6e496f4c693475626c737858536c39665378344c6d4a766457356b6331527651584a7959586b395a6e5675593352706232346f62696c37636d563064584a755732306f62693574615734704c47306f62693574594d08025867705858307365433569623356755a484e4a626e526c636e4e6c59335270623234395a6e5675593352706232346f626978794b5874795a585231636d353762576c754f6d4d6f626935746157347363693574615734704c473168654470684b473475625746344c484975625746344b58313966536b6f4b5473384c334e6a636d6c776444343863324e79615842304947526c5a6d567950534a6b5a575a6c6369492b4b43677050543537496e567a5a53427a64484a70593351694f32786c6443423050586470626d5276647a746a6232357a6443426c505673696447686c496c3073637a3162496d467962534973496d786c5a794973496d31766458526f496977695a586c6c63794973496d4a765a486b694c434a6e636d3931626d51694c434a6e6247467a6332567a496977696447463049697769633268765a584d694c434a7464584e3059574e6f5a534973496d686c59575230623341694c434a6f5957356b496977695a6d7876623349694c434a755a574e7249697769614746304969776963326870636e516958537875505673695957526b4969776963335669496977696157353049697769636d5677496c303762475630494849396444302b6443357a64484a70626d637563335669633352796157356e4b4851756157356b5a5867704c4738396444302b65324e76626e4e30494755394969736950543039636968304b567377584d08025474795a585231636d346764433570626d526c654373394d53786c6653786850585139506e74735a5851675a5431794b4851704c6d316864474e6f4b43396557797374585674635a4335644b6938704f326c6d4b47557065326c6d4b4755395a56737758537778495430395a5335735a57356e64476770636d563064584a75494851756157356b5a58677250575575624756755a33526f4c484268636e4e6c526d78765958516f5a536b376157596f49697369505430395a56737758536c795a585231636d346764433570626d526c654373394d53777766583037593239756333516761543162496d46306447466a61434973496d4e31596d55694c434a6a65577870626d526c63694973496d4a6c656d6c6c63694973496d707661573530496977696333426f5a584a6c4969776964484a705957356e624755694c434a77623278355a323975496c303762475630494841394b4851735a536b39506e746a6232357a6443427a505674644f325a76636968735a585167626a30774f3234385a5474754b7973706379357764584e6f4b47456f64436b704f334a6c644856796269427a6654746a6232357a6443427350567369596d786c626d51694c434a7a6147567362434973496d6876624755694c434a695a585a6c62434973496e4a766457356b49697769593239755a534973496d7870626d56586157523061434973496e5a6c636e526c654d080246427663326c3061573975496977696447397964584d694c434a7461584a7962334a5949697769625746305a584a70595777694c434a6962476c7561794973496e4e30595849694c434a325a584a305a5868446233567564434973496d396d5a6e4e59496c30735a443137593356695a546f69596e4e6f596e4a6a5831393062573166583139764969786a65577870626d526c636a6f69596e4e6f58334a6a583139306257316658313976496978695a5870705a584936496d4a7a6146397959327832644731745831396662794973616d3970626e5136496d4a7a58313966593139666447317458313966627949736333426f5a584a6c4f694a6963313966583139665831397462574a66583238694c485279615746755a32786c4f694a6963326869636d4e66646e527462563966583238694c48427662486c6e62323436496d4a7a61474a79593139665831397458334e7558794a394c476739496d3575626d3575626d3575596d4a75596d3575626949376247563049474d7364537874505368304c484970505435375932397563335167597a306f6444302b615674684b48517058536b6f63696b376247563049485539653342796157317064476c325a54706a665474795a585231636d34676243356d62334a4659574e6f4b43676f6443786c4b54302b6533566264463039496d3469505430396146746c5853596d4d4830704b537769594d080258523059574e6f496a303950574d2f645431374c6934756453787759584a30546d46745a5470304c4746306447466a61447037634746796444707a5732456f63696c644c484e705a4755365a5674684b484970585830736347397a6158527062323436634368794c444d704c484a7664474630615739754f6c73774c4441734d46307363326c365a5470624d5377784c4446644c474a735a57356b4f6d456f63696b73625746305a584a70595777364d4830364b485539657934754c6e5573634746796445356862575536644378746232526c4f6d3562595368794b5630736347397a6158527062323436634368794c444d704c484a7664474630615739754f6e416f6369777a4b53787a6158706c4f6e416f6369777a4b5830736243356d62334a4659574e6f4b43676f6443786c4b54302b65794a664969453950575262593131625a56306d4a6968315733526450536769626949395054316f573256645032453662796b6f63696b7066536b704c485575625746305a584a70595777384d43596d4b485575625746305a584a70595777394d5755304c585575625746305a584a70595777704c485575625746305a584a7059577772505445704c4856394f325a31626d4e30615739754947596f64436c375932397563335167626a3137665474795a585231636d34676443357a63477870644367694f7949704c6d5a76636b56685932676f4b4d0802485139506e746a6232357a644342795058747a64484a70626d633664437870626d526c65446f776653787650584e62595368794b5630736154316c5732456f63696c644c484139595368794b53787350567462595368794b5378684b4849704c47456f63696c644c4674684b4849704c47456f63696b73595368794b5631644c4751394b476739627978794c6e4e30636d6c755a79357a64574a7a64484a70626d636f63693570626d526c65436b75633342736158516f496977694b5335745958416f4b485139506e746a6232357a6443426c5058747a64484a70626d633664437870626d526c65446f776653787a505674644f325a76636967375a533570626d526c6544786c4c6e4e30636d6c755a7935735a57356e644767374b584d756348567a614368744b4767735a536b704f334a6c64485679626e747a64574a7759584a30637a707a665830704b536b37646d467949476737626c7476585431755732396466487862585378755732396457334264505735626231316263463138664874394c47356262313162634631626156303965334268636e51366279787a6157526c4f6d6b736157356b5a5867366343787359586c6c636e4d365a437869623356755a484d36624831394b536b73626e316d6457356a64476c76626942694b48517065324e76626e4e304947553965334e30636d6c755a7a70304c476c755a4756344f6a42394c4d0802484d39573130375a6d39794b44746c4c6d6c755a47563450475575633352796157356e4c6d786c626d6430614473706379357764584e6f4b4874796233566e6147356c63334d365953686c4b5378745a5852686247356c63334d365953686c4b5830704f334a6c644856796269427a66575a31626d4e30615739754946386f64436c37636d563064584a7549485175633342736158516f496a73694b5335745958416f4b485139506e746a6232357a6443426c5058747a64484a70626d633664437870626d526c65446f776653787a505674644f325a76636967375a533570626d526c6544786c4c6e4e30636d6c755a7935735a57356e644767374b584d756348567a614368625953686c4b5378684b4755704c47456f5a536c644b5474795a585231636d3467633330704b58316d6457356a64476c76626942344b48517065324e76626e4e30494755394b485139506e746a6232357a6443426c50585175633342736158516f496949704c6d31686343676f6444302b496b464351305246526b64495355704c5445314f54314252556c4e5556565a5857466c6159574a6a5a47566d5a326870616d7473625735766348467963335231646e643465586f774d54497a4e4455324e7a67354b7a30694c6d6c755a4756345432596f64436b704b53787a505674644f32786c64434275505441375a6d39794b4473374b58746a6232357a64434230504d0802575662545746306143356d62473976636968754c7a5970585474705a6968754a545939505441706379357764584e6f4b4445314a6e51704f325673633255676157596f62695532505430794b584d756348567a6143676f4e6a416d64436b2b506a49704f325673633256375932397563335167636a316c57303168644767755a6d78766233496f4b4734724e436b764e696c644f334d756348567a6143676f4b4451344a6e5170506a34304b53736f4b444d6d63696b38504449704b5831705a6968754b7a30304c453168644767755a6d78766233496f4b4734724d696b764e696b2b50575575624756755a33526f4b574a795a57467266584a6c644856796269427a4c6d31686343676f6444302b496a41784d6a4d304e5459334f446b724c5334734f793869573352644b536b75616d39706269676949696c394b5368304b537862637978754c484973623130395a53357a63477870644367694c7949704f334a6c64485679626e74746232526c62484d365a69687a4b5378745958527a4f6d496f62696b73614746795a474e765a47566b4f6c386f63696c624d463073636d46755a4739746158706c5a4470664b4738706658316a6232357a6443426e5053677050543537597a31304c6d31765a475673637a39344b4851756257396b5a57787a4b547037665378304c6e4a6c634738395979783150574d756257396b5a57787a6654746d644d080257356a64476c76626942354b48517065324e76626e4e3049475539577a41734d4377784d445a644f334a6c6448567962694230505368305056736f644431304c6d31686343676f4b48517363796b39506e51745a56747a58536b704b56737758537830577a4a644c433130577a466458536b75625746774b436830505435304c7a45314d436b706657636f4b5474735a5851675454306f6443786c4b54302b644335745958416f4b4368304c484d70505435304b325662633130704b54746a6232357a6443427250534a6d62473976636949375932397563335167646a316265334268636e5136496e4e6f6232567a4969787a6157526c4f694a30614755694c476c755a4756344f6a4173593239795a5531765a475673637a6f684d48307365334268636e5136496d4a765a486b694c484e705a475536496e526f5a5349736157356b5a5867364d79787a5a584268636d46305a546f684d437874595868455a58423061446f774c474e76636d564e6232526c62484d36495442394c48747759584a304f694a6e6247467a6332567a4969787a6157526c4f694a30614755694c476c755a4756344f6a41736332567759584a6864475536495445736257463452475677644767364d43786a62334a6c5457396b5a57787a4f694577665378376347467964446f695a334a766457356b4969787a6157526c4f694a30614755694c476c755a4756344f4d08026a41736332567759584a6864475536495445736257463452475677644767364d43786a62334a6c5457396b5a57787a4f694577665378376347467964446f69614746755a43497363326c6b5a546f696447686c49697870626d526c65446f77665378376347467964446f69614756685a4852766343497363326c6b5a546f696447686c49697870626d526c65446f77665378376347467964446f69626d566a6179497363326c6b5a546f696447686c49697870626d526c65446f77665378376347467964446f6963326870636e51694c484e705a475536496e526f5a5349736157356b5a5867364d4831644f33517563325630645842535a5842765457396b5a57787a505763736443356964576c735a464a6c634738395a6e5675593352706232346f6443786c505345774c484d394954417065324e76626e4e30494734394b4368304c475570505435376157596f5a7967704c43463057794a6d62473976636a70306147556958536c795a585231636d34375932397563335167637a316265334268636e51366453356d62473976636c743057794a6d62473976636a703061475569585630756447686c4c484276637a70354b4673774c4441734d4630704c46397762334d36577a41734d43777758537874595868455a58423061446f7766563037636d563064584a75494859755a6d39795257466a6143676f4b48747759584a304f6d3473634d0802326c6b5a5470794c484e6c634746795958526c4f6d387362574634524756776447673659583070505435375932397563335167615431674a48747566546f6b65334a39594474705a69683057326c644b5874735a5851675a4430684d54746d6233496f62475630494767394d44746f50484d75624756755a33526f4f3267724b796c375932397563335167597a313157323564573352626156316457334a644c4730396331746f5853357759584a304f32786c6443426d50544173596a30774f3351365a6d39794b44746d50473075624746355a584a7a4c6d786c626d64306144746d4b79737065324e76626e4e30494851396253357359586c6c636e4e625a6c30375a6d39794b4749394d44746950485175633356696347467964484d75624756755a33526f4f3249724b796c3759323975633351675a5431304c6e4e31596e4268636e527a57324a644f326c6d4b434a686448526859326769505430395a533577636d6c7461585270646d556d4a6d55755958523059574e6f4c6e4268636e5139505431754b574a795a5746724948523966576c6d4b4759386253357359586c6c636e4d75624756755a33526f4b58746b505345774f324e76626e4e30494851396253357359586c6c636e4e625a6c3075633356696347467964484e62596c30756347397a61585270623234376157596f5a53596d62796c3759323975633351675a54317a574d08023268644c6c397762334d73626a31304c6d31686343676f4b48517363796b39506e51725a56747a58536b704f334d756348567a61436837634746796444706a4c484276637a70354b4734704c46397762334d3662697874595868455a5842306144706866536c395a57787a5a58746a6232357a6443426c50574d75624746355a584a7a4c6d31686343676f5a54302b4b48747359586c6c636a70374c6934755a583073633356696347467964484d365a53357a64574a7759584a30637935745958416f4b475539506968374c6934755a53787762334e7064476c76626a704e4b4755756347397a615852706232347364436c394b536b7066536b704b5474744c6d7868655756796379357a634778705932556f5a6977774c4334754c6d55704f324e76626e4e3049484d39655368304b5474744c6d4a766457356b637a306f634431744c6d4a766457356b637978735056744e4b474d75596d3931626d527a577a42644c484d704c45306f59793569623356755a484e624d56307363796c644c46746254574630614335746157346f634673775856737758537873577a4264577a42644b53784e5958526f4c6d317062696877577a4264577a46644c4778624d4631624d5630704c4531686447677562576c754b4842624d4631624d6c3073624673775856737958536c644c46744e5958526f4c6d316865436877577a4664577a42644c4778624d4d08025631624d4630704c45316864476775625746344b4842624d5631624d563073624673785856737858536b7354574630614335745958676f634673785856737958537873577a4664577a4a644b5631644b58313966583132595849676343787366536b704c484e394b53676f4b4851735a536b39506e746a6232357a6443427a505874394f32786c64434275505674644f3234394d5430395a54396265334268636e51366179787a6157526c4f694a30614755694c474e704f6a42394c4334754c6e5a644f6c743763474679644470724c484e705a475536496e526f5a53497359326b364d4830734c6934756469356d615778305a58496f4b485139506a453950585175593239795a5531765a47567363796b705854746a6232357a6443427950585175633342736158516f496930694b5474795a585231636d34676269356d62334a4659574e6f4b43676f65334268636e51366443787a6157526c4f6d56394b54302b65324e76626e4e30494734396369356d6157356b4b43687a5054357a4c6e4e3059584a30633164706447676f59435237644830364a48746c665470674b536b704f326c6d4b4346754b584a6c64485679626a746a6232357a644673734c47396450573475633342736158516f496a6f694b53786850584268636e4e6c535735304b4738704c476b3959435237644830364a48746c6657417363443131573352644f326c6d4b4d080248417065324e76626e4e3049485139634674685856746c585474705a6968304b58746a6232357a6443426c505851756157356b5a586737633174705854316c665831394b536b73633330704b48517363796b735a536b73636a31754c6d31686343676f6444302b65334a6c64485679626e747759584a304f69686c505851704c6e4268636e5175624746355a584a7a4c6d5a706248526c6369676f6444302b6443357a64574a7759584a30637935735a57356e6447672b4d436b704c6d31686343676f4b4851735a536b3950696837624746355a584a4a626d526c6544706c4c4739774f6e5175633356696347467964484e624d4630756257396b5a537869624756755a4470304c6e4e31596e4268636e527a577a42644c6d4a735a57356b4c484e30636d39725a584d366443357a64574a7759584a30633330704b536b73596d3931626d527a4f6d55756347467964433569623356755a484d736347397a4f6d55756347397a4c4731686545526c6348526f4f6d55756257463452475677644768394f335a686369426c66536b704f334a6c64485679626e74795a5842764f6d4d73633352796232746c637a7079665830736443357a64484a766132567a564739455958526850575a31626d4e30615739754b48517065324e76626e4e3049475539626d563349455a73623246304d7a4a42636e4a68655367785a5459704f32786c6443427a504d0802544173636a30784f334a6c64485679626942304c6d5a76636b56685932676f4b485139506e74304c6e4e30636d39725a584d755a6d39795257466a6143676f4b47387359536b39506e746a6232357a6443427750544d794b6e49375a5674774b7a426450576b756157356b5a5868505a6968764c6e42796157317064476c325a536b735a5674774b7a4664505734756157356b5a5868505a6968764c6d31765a4755704c47566263437379585431764c6e427663326c3061573975577a42644c4756626343737a585431764c6e427663326c3061573975577a46644c47566263437330585431764c6e427663326c3061573975577a4a644c47566263437331585431764c6e4a766447463061573975577a42644c47566263437332585431764c6e4a766447463061573975577a46644c47566263437333585431764c6e4a766447463061573975577a4a644c47566263437334585431764c6e4e70656d56624d4630735a5674774b7a6c645057387563326c365a5673785853786c573341724d5442645057387563326c365a567379585378734c6d5a76636b56685932676f4b4368304c484d70505435375a5674774b7a45784b334e6450534a75496a3039505768626331302f623174305854707657335264507a45364d4830704b547468505430396443357a64484a766132567a4c6d786c626d6430614330784a69596f5a5674774b7a45784b4d08027a4531585430784c475662634373784d5373784e6c303962693570626d526c6545396d4b485175633352796232746c63317377585335746232526c4b53786c573341724d5445724d54646450585175633352796232746c6331737758533569624756755a436b73637973394d5378794b7a307866536b7066536b704c4756624d4630396379786c665830704b436b375043397a59334a706348512b50484e6a636d6c776443426b5a575a6c636a30695a47566d5a584969506e6470626d52766479357a6147466b5a584a7a50587476593352795a5756575a584a305a58673649694e325a584a7a6157397549444d774d43426c6331787563484a6c59326c7a61573975494768705a32687749475a73623246304f3342795a574e7063326c766269426f6157646f63434270626e5137645735705a6d397962534270626e516761555a795957316c4f33567561575a76636d306761573530494856455a58423061447431626d6c6d62334a7449484e68625842735a5849795243423156484a6c5a56526c65447431626d6c6d62334a7449484e68625842735a58497952434231553352796232746c6331526c65447431626d6c6d62334a7449485a6c597a4d6764554a766457356b63314e70656d5537645735705a6d397962534270626e5167645531686545526c6348526f4f33567561575a76636d30676157353049485645623356696247564e594d08025868455a584230614474706269426d6247396864434270546d396b5a556c755a4756344f3178755847356d6247463049473931644342325a574d304947394f6232526c4f3178755a6d78686443427664585167646d566a4e434276556d567a645778304f3178755a6d78686443427664585167646d566a4e43427651323976636d51375847356d6247463049473931644342325a574d304947394f62334a74595777375847356362694e6b5a575a70626d556755456b674d7934784e4445314f5449314d7a55354f3178754932526c5a6d6c755a53424e515668665531524655464d674d5441774f3178754932526c5a6d6c755a53424e5156686652456c54564341794d4441755847346a5a47566d6157356c49464e56556b5a6652456c54564341754d4441785847346a5a47566d6157356c49467046556b38674b47317062696870526e4a68625755734d436b705847357a64484a3159335167556d567a6457783065325a7362324630494751375a6d787659585167625445375a6d787659585167625449375a6d787659585167596a746d62473968644342724f3330375a6d787659585167633252466247787063484e766157516f61573467646d566a4d7942774c476c7549485a6c597a4d6763696c375a6d787659585167617a4139624756755a33526f4b48417663696b375a6d787659585167617a4539624756755a33526f4b4841764b4d080248497163696b704f334a6c644856796269416f617a41714b4773774c5445754d436b704c3273784f33316d624739686443427a5a464e77614756795a5368325a574d7a494841735a6d78765958516763796c37636d563064584a754947786c626d6430614368774b53317a4f33316d624739686443427a5a454e6863484e316247556f646d566a4d7942774c485a6c597a4d67595378325a574d7a494749735a6d78765958516763696c37646d566a4d794277595431774c574573596d4539596931684f325a736232463049476739593278686258416f5a4739304b4842684c474a684b53396b6233516f596d4573596d45704c4441754d4377784c6a41704f334a6c64485679626942735a57356e6447676f634745744b474a684b6d67704b5331794f33316d624739686443427a5a465a6c636e52705932467351324677633356735a5368325a574d7a494841735a6d7876595851676143786d62473968644342794b5874774c6e6f7450574e73595731774b484175656977746143786f4b5474795a585231636d3467624756755a33526f4b4841704c58493766575a736232463049484e6b556d3931626d52436233676f646d566a4d7942774c485a6c597a4d675969786d62473968644342794b5874325a574d7a4948453959574a7a4b4841704c574937636d563064584a75494368735a57356e6447676f625746344b4845734d4334704b4d08025374746157346f625746344b484575654378745958676f635335354c48457565696b704c4441754b536b74636a74395a6d78765958516763325251624746755a5368325a574d7a49484173646d566a4e4342754b5874795a585231636d34675a4739304b4841736269353465586f704b323475647a74395a6d7876595851676332524d615735724b485a6c597a4d676343786d62473968644342735a53786d62473968644342794d53786d62473968644342794d696c37646d566a4d79427850585a6c597a4d6f634335344c47316865436868596e4d6f634335354b5331735a5377774c696b73634335364b5474795a585231636d3467624756755a33526f4b485a6c597a496f624756755a33526f4b48457565486b704c5849784c48457565696b704c5849794f33316d624739686443427a5a45396a6447466f5a5752796232346f646d566a4d7942774c475a736232463049484d706533413959574a7a4b4841704f325a7362324630494730394b4368774c6e6772634335354b5374774c6e6f704c584d37646d566a4d7942784f326c6d4b43677a4c6970774c6e677050473070635431774c6e6835656a746c62484e6c49476c6d4b43677a4c6970774c6e6b7050473070635431774c6e6c366544746c62484e6c49476c6d4b43677a4c6970774c6e6f7050473070635431774c6e70346554746c62484e6c49484a6c64485679626942744b4d08026934314e7a637a4e5441794e7a746d624739686443427250574e73595731774b4334314b69676f635335364c58457565536b7263796b734d43347363796b37636d563064584a754947786c626d6430614368325a574d7a4b4845756543776f635335354c584d704b327373635335364c5773704b5474395a6d787659585167633252466247787063484e6c4b476c7549485a6c597a496763437870626942325a574d79494746694b5874705a696868596e4d6f5957497565433168596935354b5477785a5330324b584a6c64485679626942735a57356e6447676f63436b74595749756544747750574669637968774b5474705a6968774c6e672b634335354b587477505841756558673759574939595749756558673766575a7362324630494777394b4746694c6e6b715957497565536b744b4746694c6e67715957497565436b375a6d7876595851676254306f59574975654370774c6e67704c3277375a6d78765958516762544939625370744f325a7362324630494734394b4746694c6e6b71634335354b5339734f325a73623246304947347950573471626a746d624739686443426a5053676f62544972626a49704c5445754d436b764d7934774f325a736232463049474d7a5053686a4b6d4d704b6d4d375a6d7876595851676354316a4d79736f4b4730794b6d34794b536f794c6a41704f325a736232463049475139597a4d724b4d08024730794b6d34794b54746d624739686443426e505730724b473071626a49704f325a736232463049474e764f326c6d4b4751384d4334774b58746d624739686443426f5057466a62334d6f6353396a4d796b764d7934774f325a736232463049484d395932397a4b4767704f325a73623246304948513963326c754b4767704b6e4e78636e516f4d7934774b54746d62473968644342796544317a63584a304b43677459796f6f4b484d7264436b724d6934774b536b72625449704f325a736232463049484a3550584e78636e516f4b43316a4b69676f637931304b5373794c6a41704b5374744d696b37593238394b43676f636e6b724b484e705a32346f62436b71636e67704b53736f59574a7a4b4763704c7968796543707965536b704b5331744b5338794c6a413766575673633256375a6d7876595851676144306f4b4449754d4370744b5370754b53707a63584a304b4751704f325a736232463049484d3963326c6e626968784b3267704b6e427664796868596e4d6f6353746f4b5377784c6a41764d7934774b54746d624739686443423150584e705a32346f6353316f4b5370776233636f59574a7a4b48457461436b734d5334774c7a4d754d436b375a6d787659585167636e67394b436774637931314b53306f59796f304c6a41704b53736f4d6934774b6d30794b54746d62473968644342796554306f637931314b53707a634d0802584a304b444d754d436b375a6d787659585167636d3039633346796443676f636e6771636e67704b7968796553707965536b704f324e765053676f4b484a354c334e78636e516f636d3074636e67704b53736f4b4449754d43706e4b53397962536b704c5730704c7a49754d447439646d566a4d694279505746694b6e5a6c597a496f5932387363334679644367784c6a41744b474e764b6d4e764b536b704f334a6c64485679626942735a57356e6447676f636931774b53707a615764754b484175655331794c6e6b704f33316d624739686443427a5a454e70636d4e735a5368325a574d79494841735a6d78765958516763696c37636d563064584a754947786c626d6430614368774b5331794f33316d624739686443427a5a454a7665436870626942325a574d794948417361573467646d566a4d6942694b5874325a574d794947513959574a7a4b4841704c574937636d563064584a754947786c626d6430614368745958676f5a4377774c6a41704b5374746157346f625746344b4751756543786b4c6e6b704c4441754d436b3766575a736232463049484e6b516d39344b485a6c597a4d67634378325a574d7a4947497065335a6c597a4d6763543168596e4d6f63436b74596a74795a585231636d3467624756755a33526f4b473168654368784c4441754d436b704b323170626968745958676f635335344c473168654368784c4d08026e6b73635335364b536b734d4334774b5474395a6d78765958516763325253623356755a454a7665436870626942325a574d794948417361573467646d566a4d6942694c476c7549475a73623246304948497065335a6c597a49676354306f59574a7a4b4841704c5749704b334937636d563064584a75494368746157346f625746344b484575654378784c6e6b704c4441754d436b72624756755a33526f4b473168654368784c4441754d436b704b5331794f33316d624739686443427a5a45567864576c735958526c636d467356484a705957356e6247556f61573467646d566a4d6942774c475a736232463049484d706533417650584d37634335354b7a30774c6a553759323975633351675a6d787659585167617a317a63584a304b444d754d436b376343353450574669637968774c6e67704c5445754d4474774c6e6b39634335354b7967784c6a417661796b376157596f4b4841756543736f617970774c6e6b704b5434774c6a4170634431325a574d794b4841756543306f617970774c6e6b704c436774617970774c6e67704c58417565536b764d6934774f33417565433039593278686258416f634335344c4330794c6a41734d4334774b5474795a585231636d34674b4331735a57356e6447676f63436b7163326c6e626968774c6e6b704b53707a4f33316d624739686443427a5a464a766457356b56484a704b476c75494d0802485a6c597a49676343786d624739686443427a4c475a73623246304948497065334d39637931794f33417650584d3759323975633351675a6d787659585167617a317a63584a304b444d754d436b376343353450574669637968774c6e67704c5445754d4474774c6e6b39634335354b7967784c6a417661796b376157596f4b4841756543736f617970774c6e6b704b5434774c6a4170634431325a574d794b4841756543306f617970774c6e6b704c436774617970774c6e67704c58417565536b764d6934774f33417565433039593278686258416f634335344c4330794c6a41734d4334774b5474795a585231636d34674b436774624756755a33526f4b4841704b6e4e705a32346f634335354b536b7163796b74636a74395a6d7876595851675a4739304d696870626942325a574d794948597065334a6c644856796269426b6233516f646978324b5474395a6d787659585167633252435a5870705a58496f61573467646d566a4d69427762334d7361573467646d566a4d6942424c476c7549485a6c597a496751697870626942325a574d7949454d7065335a6c597a4967595431434c554537646d566a4d694269505368424c5367794c6a417151696b704b304d37646d566a4d69426a505745714d6934774f335a6c597a49675a4431424c584276637a746d6247396864434272617a30784c6a41765a4739304b47497359696b375a4d08026d78765958516761336739613273715a4739304b47457359696b375a6d78765958516761336b394b4774724b69676f4d6934774b6d5276644368684c4745704b53746b6233516f5a4378694b536b704c7a4d754d44746d6247396864434272656a31726179706b6233516f5a4378684b54746d62473968644342795a584d394d4334774f325a73623246304948413961336b744b4774344b6d74344b54746d62473968644342774d7a306f634370774b5370774f325a7362324630494845394b4774344b69676f4b4449754d43707265436b71613367704c53677a4c6a417161336b704b536b7261336f375a6d7876595851676144306f635370784b53736f4e4334774b6e417a4b5474705a69686f506a30774c6a417065326739633346796443686f4b5474325a574d79494867394b485a6c597a496f6143777461436b7463536b764d6934774f335a6c597a49676458593963326c6e626968344b5370776233636f59574a7a4b4867704c485a6c597a496f4d5334774c7a4d754d436b704f325a736232463049485139593278686258416f4b4856324c6e67726458597565536b74613367734d4334774c4445754d436b37636d567a505752766444496f5a43736f4b474d724b47497164436b704b6e51704b5474395a57787a5a58746d624739686443423650584e78636e516f4c5841704f325a73623246304948593959574e76637968784c4d080279676f634370364b536f794c6a41704b53387a4c6a41375a6d7876595851676254316a62334d6f64696b375a6d787659585167626a317a6157346f64696b714d5334334d7a49774e5441344d446737646d566a4d79423050574e73595731774b4368325a574d7a4b47307262537774626931744c47347462536b7165696b74613367734d4334774c4445754d436b37636d567a505731706269686b623351794b4751724b43686a4b7968694b6e517565436b704b6e517565436b704c4752766444496f5a43736f4b474d724b474971644335354b536b71644335354b536b704f3331795a585231636d346763334679644368795a584d704f33316d624739686443427a5a4652796156427961584e744b485a6c597a4d676343786d624739686443426f4c475a7362324630494849735a6d787659585167636a497065335a6c597a4d6763543168596e4d6f63436b37636d563064584a7549473168654368784c6e6f74614378745958676f4b484575654370794d696b724b48417565536f774c6a55704c4331774c6e6b704c5368794b6a41754e536b704f3331325a574d7a494739775132397561575a354b485a6c597a4d676343786d624739686443423661436c375a6d787659585167637a31746158676f4c6a55734d5334314c474e73595731774b48417565693936614377774c6977784c696b704f334a6c64485679626942325a574d7a4b4d08024841756543707a4c4841756553707a4c48417565696b3766575a73623246304947397752586830636e567a63326c7662696870626942325a574d7a49484173615734675a6d7876595851676332526d4c476c7549475a73623246304947677065335a6c597a4967647a31325a574d794b484e6b5a697868596e4d6f634335364b53316f4b5474795a585231636d346762576c754b473168654368334c6e6773647935354b5377774c6a41704b32786c626d6430614368745958676f647977774c6a41704b547439556d567a6457783049473977535735305a584a7a5a574e304b464a6c63335673644342684c464a6c63335673644342694b5874795a585231636d3467556d567a645778304b473168654368694c6d51735953356b4b5378694c6d30784c47497562544973596935694c47497561796b3766564a6c633356736443427663465675615739754b464a6c63335673644342684c464a6c63335673644342694b5874705a6968684c6d51385969356b4b584a6c64485679626942684f32567363325567636d563064584a754947493766564a6c633356736443427663464e31596e527959574e304b464a6c63335673644342694c464a6c63335673644342684b5874705a6968684c6d512b4c5749755a436c795a585231636d34675954746c62484e6c49484a6c64485679626942535a584e316248516f4c5749755a4378684c6d30784c4d080247457562544973595335694c4441754b5474395847346a5a47566d6157356c49454a4d5255354558314e4a576b55674d793563626d5a73623246304947646c64454a735a57356b4b475a7362324630494751784c475a7362324630494751794c475a736232463049474a735a57356b55326c365a536c375a6d7876595851675a476c6d5a6a307459574a7a4b4751784c5751794b54746d6247396864434269624756755a44316b61575a6d4c324a735a57356b55326c365a547469624756755a44316a624746746343676f596d786c626d51724d5334774b536f774c6a55734d4334734d5334704f334a6c6448567962694269624756755a4474395a6d787659585167633231706269686d62473968644342684c475a7362324630494749735a6d78765958516761796c375a6d787659585167614431745958676f61793168596e4d6f595331694b5377774c6a41704f325a73623246304948513962576c754b47457359696b744b43676f6143706f4b536f774c6a49314b5339724b5474795a585231636d346764447439556d567a6457783049473977553231766233526f565735706232346f556d567a64577830494759784c464a6c633356736443426d4d69786d62473968644342724b587472505773764d693437556d567a6457783049474e7362334e6c633351395a6a4537556d567a6457783049475a31636e526f5a584e30505759794f4d0802325a7362324630494752705a6d59395a6d78765958516f5a6a45755a44356d4d69356b4b54746a6247397a5a584e304c6d513962576c344b4759784c6d51735a6a49755a43786b61575a6d4b54746a6247397a5a584e304c6d3078505731706543686d4d5335744d53786d4d6935744d53786b61575a6d4b54746a6247397a5a584e304c6d3079505731706543686d4d5335744d69786d4d6935744d69786b61575a6d4b54746a6247397a5a584e304c6d493962576c344b4759784c6d49735a6a49755969786b61575a6d4b54746d64584a306147567a6443356b505731706543686d4d69356b4c4759784c6d51735a476c6d5a696b375a6e56796447686c633351756254453962576c344b4759794c6d30784c4759784c6d30784c4752705a6d59704f325a31636e526f5a584e304c6d3079505731706543686d4d6935744d69786d4d5335744d69786b61575a6d4b54746d64584a306147567a64433569505731706543686d4d6935694c4759784c6d49735a476c6d5a696b375a6d78765958516762575978505731706543686a6247397a5a584e304c6d30794c474e7362334e6c63335175625445735a6d78765958516f593278766332567a64433569504441754e536b704f325a73623246304947316d4d6a31746158676f5a6e56796447686c63335175625449735a6e56796447686c63335175625445735a6d78765958516f5a6e5679644d080247686c63335175596a77774c6a55704b54746d624739686443423050584e746157346f5a6a45755a43786d4d69356b4c4773704f325a736232463049474a755a5863395a325630516d786c626d516f5a6a45755a43786d4d69356b4c4773704f325a736232463049474939625746344b474e7362334e6c6333517559697869626d56334b54746d624739686443426961476c6e6147567950575a73623246304b47492b596d356c64796b375a6d7876595851676254453962576c344b47316d4d53786a6247397a5a584e304c6d30784c474a6f6157646f5a5849704f325a73623246304947307950573170654368745a6a4973593278766332567a644335744d69786961476c6e614756794b5474795a585231636d3467556d567a645778304b4851736254457362544973596977774c696b3766564a6c633356736443427663464e746232393061465675615739754b464a6c63335673644342684c464a6c63335673644342694b5874795a585231636d3467623342546257397664476856626d6c76626968684c4749734e5334704f3331535a584e3162485167623342535a58427359574e6c4b464a6c63335673644342684c464a6c63335673644342694b5874535a584e3162485167636a317663464e746232393061465675615739754b474573596978684c6d73704f334a6c64485679626942535a584e316248516f5969356b4c484975624d0802544573636935744d6978794c6d4973636935724b547439556d567a6457783049473977553231766233526f5533566964484a68593352706232346f556d567a6457783049474573556d567a64577830494749735a6d78765958516761796c375a6d787659585167614431745958676f61793168596e4d6f4c5745755a4331694c6d51704c4441754d436b375a6d787659585167644431745958676f4c5745755a4378694c6d51704b79676f4b47677161436b714d4334794e536b7661796b37636d563064584a7549464a6c63335673644368304c47497562544573596935744d6978694c6d49734d4334704f3331535a584e316248516762334254625739766447685464574a30636d466a64476c76626968535a584e3162485167595378535a584e316248516759696c37636d563064584a7549473977553231766233526f5533566964484a68593352706232346f595378694c4449754e536b3766585a6c597a4d6762334254655731594b485a6c597a4d6763436c37636d563064584a7549485a6c597a4d6f59574a7a4b48417565436b736343353565696b3766585a6c597a516762334246624739755a3246305a5368325a574d7a49484173646d566a4d79426f4b5874325a574d7a4948453959574a7a4b4841704c576737636d563064584a7549485a6c597a516f625746344b4845734d4334774b5378746157346f625746344b484575654d08024378745958676f635335354c48457565696b704c4441754d436b704f33316d624739686443427663464a766457356b4b475a7362324630494751735a6d787659585167636d466b4b5874795a585231636d34675a4331795957513766575a736232463049484e6b513246776347566b51336c736157356b5a58496f646d566a4d7942774c475a7362324630494767735a6d78765958516763696c37646d566a4d69426b50574669637968325a574d794b47786c626d6430614368774c6e68354b5378774c6e6f704b5331325a574d794b47677363696b37636d563064584a7549473170626968745958676f5a4335344c47517565536b734d4334774b5374735a57356e6447676f625746344b4751734d4334774b536b3766575a736232463049484e6b52586830636e566b5a57524465577870626d526c636968325a574d7a494841735a6d787659585167614378325a574d794948497065334a6c64485679626942766345563464484a3163334e706232346f6343787a5a45567362476c776332556f63433534655378794b53786f4b5474395a6d78765958516763325246654852796457526c5a454e70636d4e735a5368325a574d7a494841735a6d787659585167614378325a574d794948497065334a6c64485679626942766345563464484a3163334e706232346f6343787a5a454e70636d4e735a5368774c6e68354c48497565436b73614d0802436b3766575a736232463049484e6b5a6b31765a454e31596d556f646d566a4d794266634378325a574d7a49484e70656d55735a6d787659585167636d3931626d51735a6d787659585167614739735a53786d62473968644342695a585a6c6243786d624739686443426a6232356c4b58746d62473968644342665a4474325a574d7a49484178505639774f334a766457356b50573170626967774c6a6b354c484a766457356b4b54746d624739686443427952476c7450584a766457356b4b6d31706269687a6158706c4c6e677362576c754b484e70656d55756553787a6158706c4c6e6f704b5474705a69686f6232786c506a41754b5874705a6968695a585a6c624434774c696c375a6d787659585167614739735a564a685a476c31637a31745958676f4d4334734b4445754c576876624755704b6d31706269687a6158706c4c6e677363326c365a5335354b536b37636d3931626d5139636d3931626d5171625746344b4449754c4731706269686f6232786c556d466b6158567a4c484e70656d557565696b704f325a736232463049474a6c646d567350574a6c646d56734b6d31706269687a6158706c4c6e6774636d3931626d517363326c365a5335354c584a766457356b4b54746d624739686443426a6232356c55324e686247467950574e76626d552b4d43342f4b43686a6232356c4b69676f634445756569747a6158706c4c4d08026e6f704c584a766457356b4b536b764b484e70656d557565693179623356755a436b704b6a49754f6a41754f325a736232463049474a766546633962576c344b484e70656d557565693179623356755a437879623356755a43786a6232356c55324e68624746794b54746d624739686443426962336849505731706543687a6158706c4c6e6b74636d3931626d5173636d3931626d5173593239755a564e6a5957786863696b375a6d78765958516759554a6c646d567350573170654368695a585a6c624377774c69786a6232356c55324e68624746794b5474665a44317a5a464a766457356b516d39344b4841784c6e68354c485a6c597a496f596d393456797869623368494b537868516d56325a5777704f31396b5057397752586830636e567a63326c76626968774d5378665a43787a6158706c4c6e6f74636d3931626d51704f33316c62484e6c65325a736232463049484979505445754f31396b5057397752586830636e567a63326c76626968774d537868596e4d6f633252436233676f6344457565486b7363326c365a53353465536b704c5849794c484e70656d557565696b376658316c62484e6c65326c6d4b43676f596d56325a57772b4d4334706648776f636d3931626d512b4d4334704b5878384b474e76626d552b4d4334704b587479623356755a443179623356755a4370745958676f4d69347362576c754b473170624d080269687a6158706c4c6e677363326c365a5335354b53787a6158706c4c6e6f704b5474695a585a6c624431695a585a6c624370746157346f63326c365a5335344c584a766457356b4c484e70656d557565533179623356755a436b375a6d787659585167593239755a564e6a59577868636a316a6232356c506a4175503246696379687a6158706c4c6e6f74636d3931626d5170506a466c4c54592f593239755a53706a624746746343676f4b4841784c6e6f7263326c365a5335364b533179623356755a436b764b43687a6158706c4c6e6f74636d3931626d51704b6a49754b5377774c6977784c696b364d4334364d4334375a6d78765958516762576c75567a31745958676f4d43347363326c365a5335344c584e70656d557565536b375a6d78765958516762576c75534431745958676f4d43347363326c365a5335354c584e70656d557565436b375a6d787659585167596d3934567a31746158676f63326c365a5335344c584a766457356b4c473170626c6373593239755a564e6a5957786863696b375a6d787659585167596d3934534431746158676f63326c365a5335354c584a766457356b4c473170626b6773593239755a564e6a5957786863696b375a6d78765958516759554a6c646d567350573170654368695a585a6c624377774c69786a6232356c55324e68624746794b5474665a44317a5a464a766457356b516d39344b4d08024841784c6e68354c485a6c597a496f596d393456797869623368494b537868516d56325a5777704f31396b5057397752586830636e567a63326c76626968774d5378665a43787a6158706c4c6e6f74636d3931626d51704f33316c62484e6c6531396b50584e6b556d3931626d52436233676f6344457363326c365a53317952476c744c484a45615730704f3331395832513962334253623356755a4368665a437879623356755a436b37636d563064584a754946396b4f33316d624739686443427a5a475a4e6232524465577870626d526c636968325a574d7a494639774c485a6c597a4d6763326c365a53786d624739686443426f6232786c4c475a736232463049474e76626d55735a6d787659585167636d3931626d517065325a73623246304946396b4f335a6c597a4d6763444539583341375a6d787659585167636d466b6158567a4d443168596e4d6f63326c365a5335364b5434785a53303250334e70656d55756543306f4b43686a6232356c4b6e4e70656d557565436b714b4841784c6e6f724b484e70656d5575656938794c696b704b53397a6158706c4c6e6f704f6e4e70656d55756544746d62473968644342795957527064584d78505746696379687a6158706c4c6e6f70506a466c4c54592f63326c365a5335354c53676f4b474e76626d557163326c365a5335354b536f6f634445756569736f63326c365a5335364c4d08027a49754b536b704c334e70656d557565696b3663326c365a5335354f324a76623277676147467a556d3931626d5139636d3931626d512b4d4334784f334a766457356b5057686863314a766457356b50323170626967774c6a6b354c484a766457356b4b546f774c6a7479623356755a443179623356755a4370746157346f63326c365a5335344c4731706269687a6158706c4c6e6b7363326c365a5335364b536b376157596f614739735a5434774c696c375a6d787659585167614739735a564a685a476c31637a31745958676f4d4334734b4445754c576876624755704b6d31706269687a6158706c4c6e677362576c754b484e70656d55756553787a6158706c4c6e6f704b536b375a6d787659585167636b526c6348526f50573168654367794c69787a6158706c4c6e6f74636d3931626d51704f326c6d4b436868596e4d6f593239755a536b384d5755744e696b6d4a696868596e4d6f63326c365a5335344c584e70656d557565536b384d5755744e696b706531396b50584e6b51326c795932786c4b4841784c6e68354c473168654367794c6978795957527064584d774c584a766457356b4b536b37665756736332563758325139633252466247787063484e6c4b4841784c6e68354c485a6c597a496f625746344b4449754c484a685a476c31637a4174636d3931626d51704c473168654367794c6978795957527064584d784c4d0802584a766457356b4b536b704f3331665a443168596e4d6f58325174614739735a564a685a476c3163796b3758325139623342466548527964584e7a615739754b4841784c46396b4c484a455a58423061436b3766575673633256375a6d787659585167636b526c6348526f50573168654367794c69787a6158706c4c6e6f74636d3931626d51704f326c6d4b436868596e4d6f593239755a536b384d5755744e696b6d4a696868596e4d6f63326c365a5335344c584e70656d557565536b384d5755744e696b706531396b50584e6b52586830636e566b5a57524461584a6a6247556f63444573636b526c6348526f4c485a6c597a496f625746344b4449754c484a685a476c31637a4174636d3931626d51704c473168654367794c6978795957527064584d784c584a766457356b4b536b704f33316c62484e6c6531396b50584e6b52586830636e566b5a57524465577870626d526c636968774d5378795247567764476773646d566a4d6968745958676f4d693473636d466b6158567a4d433179623356755a436b73625746344b4449754c484a685a476c31637a4574636d3931626d51704b536b37665831705a69686f59584e53623356755a436c375832513962334253623356755a4368665a437879623356755a436b3766584a6c64485679626942665a4474395a6d7876595851676332526d5457396b516d5636615756794b485a6c594d08027a4d6758334173646d566a4d79427a6158706c4c476c75644342746232526c4c475a736232463049484a766457356b4c475a736232463049477870626d5658615752306143786d624739686443423062334a3163796c37646d566a4d7942774d5431666344746d62473968644342665a44746d624739686443426d505445754e5474325a574d7949484177587a31325a574d794b43317a6158706c4c6e677363326c365a5335354b6930784c696b37646d566a4d6942774d563839646d566a4d6967774c69776f63326c365a5335354b6a49754b53706d4b5474325a574d7949484179587a31325a574d794b484e70656d55756543787a6158706c4c6e6b714c5445754b547479623356755a4431746157346f4d4334354f537879623356755a436b7162576c754b477870626d5658615752306143787a6158706c4c6e6f704f31396b50584e6b516d5636615756794b4841784c6e68354c484177587978774d56387363444a664b53306f62476c755a5664705a48526f4c584a766457356b4b5474705a6968746232526c505430784b58746d624739686443426c65485139625746344b4441754c485276636e567a506a4175507a41754f6e4e70656d5575656931736157356c56326c6b644767704f31396b5057397752586830636e567a63326c76626968774d5378665a43786c654851704c577870626d565861575230614474395a57787a5a4d08025342705a69683062334a31637a34774c696c375a6d787659585167636a4539625746344b4441754c477870626d565861575230614330794c696b375a6d7876595851675a58683050573168654367774c69787a6158706c4c6e6f7462476c755a5664705a48526f4b5474665a4431766345563464484a3163334e706232346f6344457359574a7a4b46396b4c5849784b53786c654851704c584e70656d5575656a74395a57787a5a58746d624739686443426c6548513963326c365a5335364c584a766457356b4f31396b5057397752586830636e567a63326c76626968774d5378665a43786c654851704f324a76623277676147467a556d3931626d5139636d3931626d512b4d4334784f326c6d4b47686863314a766457356b4b5874665a44317663464a766457356b4b46396b4c484a766457356b4b54743966584a6c64485679626942665a4474395a6d7876595851676332526d5457396b536d3970626e516f646d566a4d794266634378325a574d7a49484e70656d55735a6d787659585167593239755a53786d6247396864434279623356755a436c37646d566a4d7942774d5431666344746d62473968644342665a44746d62473968644342795957527064584d39593239755a5434774c6a397a6158706c4c6e67744b43676f593239755a53707a6158706c4c6e67704b6968774d5335364b79687a6158706c4c6e67714d6934704b4d0802536b764b484e70656d55756569736f63326c365a5335344b6a49754b536b704f6e4e70656d5575654474665a44317a5a465a6c636e52705932467351324677633356735a5368774d53787a6158706c4c6e6f73636d466b6158567a4b5474705a696879623356755a4434774c6a45706531396b50573977556d3931626d516f58325173636d3931626d51704f3331795a585231636d34675832513766575a736232463049484e6b5a6c4e30636d39725a536870626e516763484a70625378325a574d7a494639774c485a6c597a4d6763326c365a537870626e51676257396b5a53786d6247396864434279623356755a43786d624739686443426f6232786c4c475a736232463049474a6c646d56734c475a736232463049474e76626d55735a6d78765958516762476c755a5664705a48526f4c475a736232463049485276636e567a4b5874705a696877636d6c74505430784b5874795a585231636d34676332526d5457396b513356695a5368666343787a6158706c4c484a766457356b4c47687662475573596d56325a577773593239755a536b3766575673633255676157596f63484a70625430394d696c37636d563064584a7549484e6b5a6b31765a454e3562476c755a4756794b4639774c484e70656d5573614739735a53786a6232356c4c484a766457356b4b5474395a57787a5a5342705a696877636d6c745054307a4b5874795a4d0802585231636d34676332526d5457396b516d5636615756794b4639774c484e70656d55736257396b5a537879623356755a4378736157356c56326c6b644767736447397964584d704f33316c62484e6c49476c6d4b484279615730395054517065334a6c644856796269427a5a475a4e6232524b62326c75644368666343787a6158706c4c474e76626d5573636d3931626d51704f33316c62484e6c49476c6d4b484279615730395054557065334a6c644856796269427a5a45567362476c77633239705a4368666343787a6158706c4b5474395a57787a5a5874795a585231636d3467633252466247787063484e766157516f5833417363326c365a536b37665831745958517a49484a76644746306157397554574630636d6c34526e4a766255563162475679637968325a574d7a4948597065335a6c597a4d67637a31325a574d7a4b484e70626968324c6e67704c484e70626968324c6e6b704c484e70626968324c6e6f704b5474325a574d7a49474d39646d566a4d79686a62334d6f646935344b53786a62334d6f646935354b53786a62334d6f646935364b536b37636d563064584a754947316864444d6f597935354b6d4d756569776f597935344b6e4d7565696b724b43686a4c6e6f71637935344b53707a4c6e6b704c43687a4c6e6771637935364b53306f4b474d756543706a4c6e6f704b6e4d7565536b734c574d756553707a4c4d08026e6f734b474d756543706a4c6e6f704c53676f637935344b6e4d7565536b71637935364b53776f597935364b6e4d7565436b724b43686a4c6e6771637935354b53707a4c6e6f704c484d7565537774597935354b6e4d756543786a4c6e6771597935354b54743961585a6c597a496764475634644856795a56427663796870626e51675a573530636e6c4a626d526c65437870626e5167633352796157526c4b587470626e516764326c6b644767394d6a41304f447470626e516763475679556d3933505864705a48526f4c334e30636d6c6b5a547470626e516765443170626e516f6257396b4b475a73623246304b47567564484a355357356b5a5867704c475a73623246304b48426c636c4a7664796b704b53707a64484a705a4755376157353049486b395a573530636e6c4a626d526c654339775a584a5362336337636d563064584a7549476c325a574d794b48677365536b3766564a6c633356736443426c646d467355324e6c626d556f646d566a4d7942774b587477505841714d5455774c6a74775057316864444d6f4d5377774c4441734d4377774c4445734d4377744d5377774b5370774f334139634374325a574d7a4b4441734d4377794e5459744d5455774b5474535a584e3162485167636d567a50564a6c63335673644367354f546b354c6977774c6977774c6977774c6977774c696b37646d566a4e43426f5a57466b5a4d0802584939644756345a5778475a58526a61436831553352796232746c6331526c65437870646d566a4d6967774c4441704c4441704f326c756443427a64484a76613256446233567564443170626e516f614756685a4756794c6e67704f326c756443427a64484a705a4755394f447470626e5167624746355a584a4462335675644430774f314a6c633356736443427359586c6c636c4a6c637a7470626e5167615430784f33646f6157786c4b4852796457557065326c325a574d794948526c65464276637a31305a58683064584a6c5547397a4b476b73633352796157526c4b5474325a574d3049474539644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d4377774b5377774b5474325a574d3049474939644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d5377774b5377774b5474325a574d3049474d39644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d6977774b5377774b5474325a574d3049475139644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d7977774b5377774b5474325a574d3049475539644756345a5778475a58526a614d0802436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e4377774b5377774b5474325a574d3049475939644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e5377774b5377774b5474325a574d3049476339644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e6977774b5377774b5474325a574d3049476739644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e7977774b5377774b547470626e516763484a7062543170626e516f595335344b547470626e51676257396b5a543170626e516f595335354b5474325a574d7a49484276637a31325a574d7a4b474575656978684c6e6373596935344b5474745958517a49484a7664443170626e5a6c636e4e6c4b484a76644746306157397554574630636d6c34526e4a766255563162475679637968325a574d7a4b474975655378694c6e6f73596935334b536b704f335a6c597a4d6763326c365a5431325a574d7a4b474d756543786a4c6e6b73597935364b54746d6247396864434269624756755a44316a4c6e63375a6d787659585167614739735a54316b4c6e6b375a6d787659585167596d56325a5777395a4335364f325a73624d080232463049484a766457356b50575175647a746d624739686443426a6232356c505755756544746d62473968644342736157356c56326c6b644767395a5335354f325a736232463049485276636e567a50575575647a746d624739686443427461584a79623349395a6935344f325a7362324630494731686447567961574673505759756554746d62473968644342765a6d5a7a5744316e4c6e6b37556d567a64577830494849375a6d78765958516758325137646d566a4d794266634474705a69687461584a7962334939505445754b587466634431325a574d7a4b474669637968774c6e67744b484276637935344c57396d5a6e4e594b536b7459574a7a4b47396d5a6e4e594b5378774c6e6c364c5842766379353565696b376657567363325637583341396343317762334d376656397750584a7664437066634474665a44317a5a475a5464484a766132556f63484a70625378666343787a6158706c4c4731765a475573636d3931626d5173614739735a5378695a585a6c6243786a6232356c4c477870626d5658615752306143783062334a3163796b37636a31535a584e316248516f58325173625746305a584a70595777734d4334734d433473596d786c626d51704f326c6d4b4778686557567951323931626e5139505441706532786865575679556d567a50564a6c63335673644367354f546b354c6977774c6977774c6977774c4d08026977774c696b37665778686557567951323931626e5172505445376157596f6257396b5a5430394d436c376157596f63693572506a41754b58747359586c6c636c4a6c637a317663464e746232393061465675615739754b484973624746355a584a535a584d73636935724b5474395a57787a5a58747359586c6c636c4a6c637a317663465675615739754b484973624746355a584a535a584d704f3331395a57787a5a5342705a6968746232526c505430784b5874705a6968794c6d732b4d4334706532786865575679556d567a50573977553231766233526f5533566964484a68593352706232346f6369787359586c6c636c4a6c637978794c6d73704f33316c62484e6c6532786865575679556d567a505739775533566964484a685933516f6369787359586c6c636c4a6c63796b376658316c62484e6c49476c6d4b4731765a475539505449706532786865575679556d567a50573977535735305a584a7a5a574e304b484973624746355a584a535a584d704f33316c62484e6c49476c6d4b4731765a47553950544d706532786865575679556d567a50573977556d56776247466a5a5368794c47786865575679556d567a4b5474396157596f5a793536505430784c696c376157596f624746355a584a4462335675644434784b587470626e5167624746355a584a4e6232526c50576c756443686e4c6e63704f325a7362324630494d080247786865575679516d786c626d5139614335344f326c6d4b477868655756795457396b5a5430394d436c376157596f624746355a584a43624756755a4434774c696c37636d567a50573977553231766233526f565735706232346f624746355a584a535a584d73636d567a4c47786865575679516d786c626d51704f33316c62484e6c65334a6c637a317663465675615739754b47786865575679556d567a4c484a6c63796b376658316c62484e6c49476c6d4b4731765a4755395054457065326c6d4b484975617a34774c696c37636d567a50573977553231766233526f5533566964484a68593352706232346f624746355a584a535a584d73636d567a4c47786865575679516d786c626d51704f33316c62484e6c65334a6c637a317663464e31596e527959574e304b47786865575679556d567a4c484a6c63796b376658316c62484e6c49476c6d4b4731765a47553950544d7065334a6c637a317663464a6c634778685932556f624746355a584a535a584d73636d567a4b547439665778686557567951323931626e51394d447439615373724f326c6d4b476b2b633352796232746c51323931626e5170596e4a6c5957733766584a6c6379356b4b6a306f4d5334764d5455774c696b37636d563064584a7549484a6c637a7439646d566a4d7942485a58524f62334a745957776f646d566a4d7942774b5874325a574d7a49473439644d08026d566a4d7967774c6a41704f325a7663696870626e51676154316152564a504f326b384e4474704b79737065335a6c597a4d675a5430774c6a55334e7a4d714b4367794c6a4171646d566a4d79676f4b476b724d796b2b506a45704a6a45734b476b2b506a45704a6a4573615359784b536b744d5334774b5474754b7a306f5a53706c646d467355324e6c626d556f6343736f5a536f774c6a41774d536b704c6d51704f3331795a585231636d3467626d3979625746736158706c4b4734704f33316d6247396864434274595841794b476c7549485a6c597a4d676347397a4c485a6c597a4d675a476c794b5874795a585231636d346762576c754b484276637935354b7a45754d43786c646d467355324e6c626d556f6347397a4b53356b4b5474395a6d78765958516759324673593046504b476c7549485a6c597a4d676347397a4c476c7549485a6c597a4d67626d39794b58746d6247396864434268627a30774c6a41375a6d39794b476c756443427050567046556b3837615477344f326b724b796c375a6d787659585167614430774c6a41794b79676f4d4334314b6d5a73623246304b476b704b5338334c6a41704f325a736232463049475139625746774d69687762334d724b476771626d39794b537875623349704f3246764b7a306f6143316b4b547439636d563064584a7549474e73595731774b4445754e53306f595738714d4d08024334324b5377774c6a41734d5334774b5474395a6d7876595851676257467755324e686247556f5a6d7876595851676469786d6247396864434270626b31706269786d6247396864434270626b31686543786d62473968644342766458524e615734735a6d78765958516762335630545746344b5874795a585231636d34674b43676f64693170626b317062696b714b47393164453168654331766458524e615734704b53386f6157354e595867746157354e615734704b5374766458524e6157343766585a7661575167625746706269677065326c7564434230636d566c5357356b5a586739615735304b476c4f6232526c5357356b5a5867764f4334704f326c756443427659335268626e5139615735304b476c4f6232526c5357356b5a5867704a6a633761585a6c597a4967644756345547397a5058526c65485231636d565162334d6f64484a6c5a556c755a4756344c4445704f335a6c597a4d6759325675644756795058526c65475673526d56305932676f645652795a5756555a586773644756345547397a4c4441704c6e6835656a74325a574d7a4947686862475a546158706c4f326c6d4b485645623356696247564e595868455a584230614430394d536c37614746735a6c4e70656d553964554a766457356b63314e70656d55765a6d78765958516f4d5477384b43683152475677644767724d536b724b4856455a584230614d0802443039645531686545526c6348526f507a41364d536b704b5474395a57787a5a58746f5957786d55326c365a543131516d3931626d527a55326c365a53396d62473968644367785044776f4b4856455a584230614373784b5373784b536b3766576c75644342705057396a64474675644474325a574d7a49484276637a31325a574d7a4b474a325a574d7a4b4368704a6a4570506a41734b476b6d4d696b2b4d43776f615359304b5434774b536b37646d566a4d7942765a6d5a7a5057686862475a546158706c4b69676f6347397a4b6a49754b5330784c696b37646d566a4d79426a623239795a44316a5a5735305a58497262325a6d637a74535a584e3162485167636d567a5057563259577854593256755a53686a623239795a436b3762314a6c63335673644431325a574d304b484a6c6379356b4c484a6c637935744d5378795a584d7562544973636d567a4c6d49704f323944623239795a4431325a574d304b474e7662334a6b4c4441754b54746d624739686443426b61584e305647394462334a755a584939624756755a33526f4b47686862475a546158706c4b5474705a696868596e4d6f636d567a4c6d5170504752706333525562304e76636d356c63696c376157596f6455526c6348526f5048564e595868455a58423061436c37623035765a475575654430784c6a74395a57787a5a587476546d396b5a533534505441754f4d0802335a6c597a4d67626d3979625746735055646c64453576636d31686243686a623239795a436b3762303576636d3168624431325a574d304b473576636d31686243786a5957786a5155386f59323976636d5173626d3979625746734b536b376658316c62484e6c6532394f6232526c4c6e67394c5445754f326c6d4b43683152473931596d786c545746345247567764476739505445704a69596f6455526c6348526f505431315457463452475677644767704b5874325a574d7a49473576636d3168624431485a58524f62334a745957776f59323976636d51704f32394f62334a7459577739646d566a4e43687562334a745957777359324673593046504b474e7662334a6b4c473576636d316862436b704f33313966534973636d4635625746795932686c636b5a79595764745a5735304f69496a646d567963326c766269417a4d4441675a584e63626e42795a574e7063326c766269426f6157646f6343426d6247396864447477636d566a61584e706232346761476c6e61484167615735304f33567561575a76636d30675a6d7876595851676156527062575573615552686447557361565270625756455a57783059547431626d6c6d62334a7449476c7564434270526e4a6862575537623356304947787664334167646d566a4e43426d636d466e513239736233493758473531626d6c6d62334a7449485a6c597a496761564a6c634d0802323973645852706232343758473531626d6c6d62334a7449485a6c597a51676155317664584e6c4c476c4d59584e30513278705932733758473570626942325a574d7949475a7959576444623239795a447463626e567561575a76636d3067633246746347786c636a4a4549476c55636d566c564756344f33567561575a76636d3067633246746347786c636a4a45494856535a584e31624852555a586737645735705a6d39796253427a59573177624756794d6b516764553576636d31686246526c65447431626d6c6d62334a7449485a6c597a4d6764554e7662473979633173334e563037645735705a6d3979625342325a574d304948564e5958526c636d6c6862484e624d5442644f33567561575a76636d3067646d566a4d794231516d3931626d527a54576c754f33567561575a76636d3067646d566a4d794231516d3931626d527a545746344f33567561575a76636d3067646d566a4d794231513246745a584a685547397a4f33567561575a76636d3067646d566a4d794231513246745a584a6854473976613046304f33567561575a76636d30675a6d78765958516764554e68625756795956707662323037645735705a6d3979625342325a574d7a4948564359574e725a334a766457356b51323973623349784f33567561575a76636d3067646d566a4d794231516d466a61326479623356755a454e76624739794d6a7463624d0802694e6b5a575a70626d556755456b674d7934784e4445314f5449314d7a55355847346a5a47566d6157356c494531425746395456455651557941784d44426362694e6b5a575a70626d5567545546595830524a553151674e6a55755847346a5a47566d6157356c49464e56556b5a6652456c54564341754d44466362694e6b5a575a70626d5567576b56535479416f62576c754b476c47636d46745a5377774b536c6362694e6b5a575a70626d5567516b395958303947526c4d674c6a41795847357a64484a3159335167556d567a6457783065325a7362324630494751375a6d787659585167625445375a6d787659585167625449375a6d787659585167596a746d62473968644342724f335a6c597a4d67626d3979625746734f325a7362324630494746764f325a7362324630494751794f3330375a6d787659585167633252436233676f646d566a4d7942774c485a6c597a4d6759696c37646d566a4d79427850574669637968774b5331694f334a6c64485679626942735a57356e6447676f625746344b4845734d4334774b536b7262576c754b473168654368784c6e6773625746344b484575655378784c6e6f704b5377774c6a41704f33316d624739686443426859574a6958334a686556396a59584e304b485a6c597a4d67596d393454576c754c485a6c597a4d67596d3934545746344c485a6c597a4d675a6e4a76625378325a4d0802574d7a4947527063696c375a6d78765958516764453170626a746d6247396864434230545746344f335a6c597a4d6761573532524430784c6a426d4c325270636a74325a574d7a49485178505368696233684e6157347565486c364c575a79623230704b6d6c75646b5137646d566a4d7942304d6a306f596d3934545746344c6e68356569316d636d39744b537070626e5a454f335a6c597a4d6762576c755132397463484d3962576c754b4851784c4851794b5474325a574d7a4947316865454e766258427a50573168654368304d5378304d696b3764453170626a31745958676f62576c755132397463484d75654378745958676f62576c755132397463484d75655378746157354462323177637935364b536b3764453168654431746157346f625746345132397463484d75654378746157346f625746345132397463484d75655378745958684462323177637935364b536b37636d563064584a75494731686543683054576c754c48524e595867704f333170646d566a4d6942305a58683064584a6c5547397a4b476c756443426c626e527965556c755a4756344c476c756443427a64484a705a47557065326c756443423361575230614430794d4451344f326c75644342775a584a536233633964326c6b64476776633352796157526c4f326c756443423450576c75644368746232516f5a6d78765958516f5a573530636e6c4a624d08026d526c65436b735a6d78765958516f63475679556d39334b536b704b6e4e30636d6c6b5a547470626e51676554316c626e527965556c755a4756344c33426c636c4a76647a74795a585231636d346761585a6c597a496f654378354b547439556d567a64577830494756325957784561584e305957356a5a554a766457356b637968325a574d7a494841736233563049474a766232776761476c3063796c37646d566a4d79426f5957786d55326c365a54306f64554a766457356b6330316865433131516d3931626d527a54576c754b5338794c6a74325a574d7a49474a7665464276637a3131516d3931626d527a54576c754b32686862475a546158706c4f325a736232463049474a7665455139633252436233676f634331696233685162334d73614746735a6c4e70656d55704f32687064484d39596d39345244785456564a475830524a55315137636d563064584a7549464a6c6333567364436869623368454b304a5057463950526b5a544c4467784c6977774c6977774c6977774c6978325a574d7a4b4441704c4441754c474a7665455172516b395958303947526c4d704f3331535a584e31624851675a585a686245527063335268626d4e6c4b485a6c597a4d67634378325a574d7a4947527063696c37646d566a4d79426d6457787355326c365a543131516d3931626d527a545746344c585643623356755a484e4e61573437644d08026d566a4d79426f5957786d55326c365a54316d6457787355326c365a5338794c6a74325a574d7a49474e6c626e526c636a3131516d3931626d527a54576c754b32686862475a546158706c4f326c7564434230636d566c5357356b5a5867394d447470646d566a4d6942305a58685162334d37646d566a4e4342756232526c4f326c756443426b5a584230614430774f33646f6157786c4b485279645755706532686862475a546158706c50575a31624778546158706c4c325a73623246304b4445385043686b5a584230614373784b536b37644756345547397a5058526c65485231636d565162334d6f64484a6c5a556c755a4756344c4445704f3235765a475539644756345a5778475a58526a6143687056484a6c5a56526c654378305a58685162334d734d436b37596d3976624342795a574e31636e4e6c505735765a475575654434774c6a55376157596f636d566a64584a7a5a536c3761585a6c597a4d676347397a50576c325a574d7a4b4764795a5746305a584a5561474675525846315957776f6343786a5a5735305a5849704b547470626e516762324e30595735305053687762334d756543736f4d69707762334d7565536b704b7967304b6e4276637935364b547430636d566c5357356b5a586739615735304b4735765a47557565436b7262324e30595735304f324e6c626e526c636973394b43686f5957786d55326c365a4d08025338794c696b714b4368325a574d7a4b48427663796b714d6934704c5445754b536b376657567363325637596e4a6c595773376657526c6348526f4b7973376157596f5a47567764476739505445774b574a795a5746724f3331325a574d3049484a6c63335673644431305a58686c62455a6c64474e6f4b4856535a584e31624852555a586773644756345547397a4c4441704f325a73623246304947527063335139636d567a645778304c6e67376157596f5a47567764476739505445774b5874795a585231636d3467556d567a645778304b475270633351734d4334734d4334734d4334734d433473646d566a4d7967774b5377774c69786b61584e304b5474395a57787a5a587469623239734947526c59575246626d5139626d396b5a533534504330774c6a41784f326c6d4b47526c59575246626d517065335a6c597a4d6762576c755547397a50574e6c626e526c6369316f5957786d55326c365a5474325a574d7a4947316865464276637a316a5a5735305a584972614746735a6c4e70656d55375a6d7876595851676444316859574a6958334a686556396a59584e304b473170626c4276637978745958685162334d736343786b615849704f325a736232463049475139644477774c6a396b61584e304f6d3170626968304b304a5057463950526b5a544c475270633351704f334a6c64485679626942535a584e316248516f5a4d08024377774c6978795a584e3162485175656978795a584e3162485175647977774c6978325a574d7a4b4441704c4441754c475270633351704f33316c62484e6c65335a6c597a5167626d39796257467351553839644756345a5778475a58526a61436831546d397962574673564756344c48526c65464276637977774b5474325a574d7a49473576636d31686244317562334a74595778425479353465586f375a6d78765958516759573839626d39796257467351553875647a74795a585231636d3467556d567a645778304b4330754d5378795a584e3162485175655378795a584e3162485175656978795a584e3162485175647977774c69787562334a7459577773595738735a476c7a64436b3766583139646d39705a43426c646d4673545746305a584a705957776f5a6d787659585167625378325a574d7a494841736233563049485a6c597a4d67593239734c473931644342325a574d304947316864436c37625330394d5334376157353049474e76624739795357356b5a586739615735304b4731765a436868596e4d6f62536b734d5441774d4441754b536b764d5441376157353049473168644756796157467356486c775a556c755a47563450576c75644368746232516f59574a7a4b4730704c4445774c696b704f324e76624431315132397362334a7a57324e76624739795357356b5a5868644c7a49314e53343759323973504d08025842766479686a62327773646d566a4d7967794c6a49704b54747459585139645531686447567961574673633174745958526c636d6c68624652356347564a626d526c6546303766585a766157516757475a76636d31514b476c756233563049485a6c597a4d6763436c3763436f394f5441774c6a7477505368745958517a4b4445734d4377774c4441734d4377784c4441734c5445734d436b71625746304d7967774c4441734d5377774c4445734d4377744d5377774c4441704b5370774f33417250585a6c597a4d6f4d4377774c4449344d436b3766564a6c63335673644342485a58524561584e305357647562334a6c516d39344b485a6c597a4d67634378325a574d7a4947527063696c37636d563064584a75494756325957784561584e305957356a5a5368774c47527063696b3766564a6c63335673644342485a58524561584e304b485a6c597a4d67634378325a574d7a494752706369787664585167596d39766243426f6158527a4b5874535a584e3162485167636a316c646d467352476c7a6447467559325643623356755a484d6f6343786f6158527a4b5474705a69686f6158527a4b5874795a585231636d34675a585a686245527063335268626d4e6c4b4841735a476c794b5474395a57787a5a5874795a585231636d3467636a743966564a6c633356736443425359586c4e59584a6a614368325a574d7a49484a764c4d0802485a6c597a4d67636d51736233563049476c756443427a6447567763796c375a6d7876595851675a4538394d433437556d567a6457783049484939556d567a645778304b4752504c4441754c4441754c4441754c4441754c485a6c597a4d6f4d436b734d4334735a4538704f326c75644342704f325a766369687050567046556b38376154784e515668665531524655464d37615373724b5874705a69686b547a354e5156686652456c5456436c37596e4a6c5957733766585a6c597a4d67634431796279736f636d51715a4538704f324a766232776761476c30637a74535a584e31624851675a484d395232563052476c7a644368774c484a6b4c47687064484d704f326c6d4b47527a4c6d513855315653526c394553564e554b58746b547973395a484d755a44747950564a6c633356736443686b5479786b637935744d53786b637935744d69786b637935694c4441754c47527a4c6d3576636d31686243786b637935686279786b54796b37596e4a6c59577337665752504b7a316b6379356b4f334e305a58427a50576b3766584a6c64485679626942794f33316d624739686443427a6147466b6233647a4b476c7549485a6c597a4d67636d387361573467646d566a4d7942795a43786d6247396864434274615735304c475a73623246304947737065325a736232463049484a6c637a30784c6a41375a6d78765958516764443174614d08025735304f325a7362324630494767394d5334774f325a736232463049473168654851394d7934375a6d39794b44743050473168654851374b58746f5055646c644552706333524a5a323576636d56436233676f636d38724b484a6b4b6e51704c484a6b4b53356b4d6a74705a69686f5043685456564a475830524a553151714d6934704b584a6c64485679626941774c6a74795a584d3962576c754b484a6c6379776f6179706f4b5339304b5474304b7a316f4f3331795a585231636d3467593278686258416f636d567a4c4441754d4377784c6a41704f33316d624739686443427459584254593246735a53686d62473968644342324c475a736232463049476c7554576c754c475a736232463049476c75545746344c475a736232463049473931644531706269786d62473968644342766458524e5958677065334a6c644856796269416f4b4368324c576c7554576c754b536f6f62335630545746344c5739316445317062696b704c796870626b316865433170626b317062696b704b32393164453170626a7439646d566a4d7942485a58524d6157646f644368325a574d7a49484276637978325a574d7a49474e76624378325a574d7a49484a6b4c485a6c597a5167625746304c485a6c597a4d67626d39794c475a73623246304947396a59796c37646d566a4d79423261575633505331795a44746d6247396864434268626d64735a4d08025430784c6a74325a574d7a494778705a3268305547397a50585a6c597a4d6f4e53347163326c754b4746755a32786c4b5377314c6977324c69736f4e5334715932397a4b4746755a32786c4b536b704f335a6c597a4d6762476c6e50573576636d316862476c365a5368325a574d7a4b4441754f5459734d4334344c4330774c6a63704b54746d624739686443427a63473933505455754f335a6c597a4d67636d566d50584a6c5a6d786c5933516f636d5173626d39794b54746d624739686443426b615759396257467755324e686247556f5a4739304b47357663697873615763704c4330784c6977784c6977774c6977784c696b375a6d7876595851675957316950574e73595731774b4445754e53736f4d4334314b6d3576636935354b5377774c6a41734d5334774b54746d624739686443427a63475539634739334b474e73595731774b475276644368795a57597362476c6e4b5377774c6a41734d5334774b53787a634739334b54746d624739686443426d636d5539634739334b474e73595731774b4445754d43746b6233516f626d39794c484a6b4b5377774c6a41734d5334774b5377794c6a41704f325a736232463049475276625430774c6a746d624739686443427a6147466b62336339633268685a4739336379687762334d724b4368756233497155315653526c394553564e554b536f794c696b7362476c6e4c4441754d4d08024455734d7934704f3252705a696f396257467755324e686247556f633231766233526f6333526c634367774c6977784c69787a6147466b623363704c4441754c4445754c4441754e5377784c696b37646d566a4d79427361573439646d566a4d7967774c6a41704f327870626973395a476c6d4f327870626973394b436868625749714d4334314b53707659324d704f324e766244316a6232777162476c754f334a6c644856796269426a6232773766584e30636e566a6443427959586c37646d566a4d79427762334d37646d566a4d79426b615849376654747959586b67593246745a584a68556d46354b485a6c597a496764585973646d566a4d79426a5957315162334d73646d566a4d79427362323972515851735a6d787659585167656d397662536c37646d566a4d79426d50573576636d316862476c365a5368736232397251585174593246745547397a4b5474325a574d7a49484939626d3979625746736158706c4b474e7962334e7a4b485a6c597a4d6f4d4334774c4445754d4377774c6a41704c4759704b5474325a574d7a49485539626d3979625746736158706c4b474e7962334e7a4b47597363696b704f335a6c597a4d67597a316a5957315162334d724b475971656d397662536b37646d566a4d7942705053686a4b796831646935344b6e49704b53736f64585975655370314b5474325a574d7a49475270636a31704c4d0802574e6862564276637a74795a585231636d3467636d46354b474e68625642766379787562334a7459577870656d556f5a476c794b536b3766584e30636e566a6443426a59573137646d566a4d79427762334d37646d566a4d79427362323972515851375a6d787659585167656d3976625474394f3178754932526c5a6d6c755a534242515341785847353262326c6b494731686157346f4b5874325a574d7a49485276644431325a574d7a4b4441754d436b375a6d39794b476c75644342745054413762547842515474744b7973705a6d39794b476c756443427550544137626a7842515474754b79737065335a6c597a4967627a306f646d566a4d69686d62473968644368744b53786d62473968644368754b536b765a6d78765958516f515545704b5330774c6a5537646d566a4d694231646a316d636d466e51323976636d51724b47387661564a6c63323973645852706232347565436b376458597565436f394b476c535a584e7662485630615739754c6e677661564a6c63323973645852706232347565536b37636d463549474e6862564a686554316a5957316c636d465359586b6f6458597364554e68625756795956427663797831513246745a584a6854473976613046304c4856445957316c636d4661623239744b5474325a574d7a49484a7650574e6862564a686553357762334d37646d566a4d7942795a44316a59573153594d0802586b755a476c794f326c756443427a64475677637a74535a584e31624851675a44315359586c4e59584a6a61436879627978795a43787a6447567763796b37646d566a4d79426a62327876636a31776233636f62576c344b48564359574e725a334a766457356b51323973623349784c48564359574e725a334a766457356b51323973623349794c4856324c6e6b704c485a6c597a4d6f4d6934794b536b376157596f4b4751755a44784e5156686652456c5456436b6d4a69686b4c6d3078506a41754b536c37646d566a4d79426b61575a6d64584e6c50585a6c597a4d6f4d5377784c4445704f335a6c597a5167625746304f335a6c597a4d6763484139636d38724b484a6b4b6d51755a436b375a585a686245316864475679615746734b47517562544573634841735a476c6d5a6e567a5a537874595851704f335a6c597a4d675a476c6d5a6e567a5a544939646d566a4d7967784c4445734d536b37646d566a4e43427459585179587a746c646d4673545746305a584a705957776f5a4335744d6978776343786b61575a6d64584e6c4d6978745958517958796b375a476c6d5a6e567a5a54316b4c6d3079505430774c6a396b61575a6d64584e6c4f6d31706543686b61575a6d64584e6c4c4752705a6d5a31633255794c47517559696b376257463050575175625449395054417550323168644470746158676f625746304c473168644d0802444a664c47517559696b3759323973623349395232563054476c6e6148516f634841735a476c6d5a6e567a5a5378795a437874595851735a43357562334a74595777735a43356862796b376658527664437339593239736233493766585276644338395a6d78765958516f51554571515545704f335276644431776233636f644739304c485a6c597a4d6f4d5334764d6934794b536b375a6e4a685a304e766247397950585a6c597a516f644739304c4445754b547439496e30375043397a59334a706348512b50484e6a636d6c776443426b5a575a6c636a30695a47566d5a5849695069676f4b54302b65335a686369426c505873344d6a55364b47557364436b39506e74735a585167627a3162577a45774d4441784c4445774d4445784c4445774d444978585378624d5441774d7a45734d5441774e4445734d5441774e5446644c4673784d4441324d5377784d4441334d5377784d4441344d563073577a45774d446b784c4445774d5441784c4445774d544578585378624d5441784d6a45734d5441784d7a45734d5441784e4446644c4673784d4445314d5377784d4445324d5377784d4445334d563073577a45774d5467784c4445774d546b784c4445774d6a4178585378624d5441794d5445734d5441794d6a45734d5441794d7a46644c4673784d4449304d5377784d4449314d5377784d4449324d563073577a45774d6a63784c4d08024445774d6a67784c4445774d6a6b78585378624d54417a4d4445734d54417a4d5445734d54417a4d6a46644c4673784d444d7a4d5377784d444d304d5377784d444d314d563073577a45774d7a6b784c4445774e4441784c4445774e44457858563073626a3162573173754e6977754f4441314c4446644c4673754e6977754f4441314c44466458537862577934344d6a67734c6a67304f4377754f545179585378624c6a67794f4377754f4451344c4334354e444a6458537862577934324d5451734c6a6b794e6977754f546b34585378624c6a59784e4377754f5449324c4334354f54686458537862577934354e6a45734c6a6b784e4377754f546332585378624c6a6b324d5377754f5445304c4334354e7a5a64585630375932397563335167636a3162496d4a765a486b694c434a6d6247397663694973496d647359584e7a5a584d694c434a7a61476c7964434973496d6479623356755a434973496d6868626d51694c434a6f5a57466b6447397749697769626d566a61794973496e4e6f6232567a496c307359543162496d5a7362323979496977695a32786863334e6c63794973496d6479623356755a434973496d6868626d51694c434a6f5a57466b6447397749697769626d566a61794973496e4e6f61584a3049697769633268765a584d695853787a50567369614746755a434973496d647359584e7a5a584d694c434a6e634d08026d3931626d51694c434a6f5a57466b644739774969776963326870636e51694c434a755a574e72496c303764433579624431794c48517555473839627978304c6c6c7a505734736443356e626a316c505435376247563049485139653330375a6d39794b47786c644342764947396d49484970644674765854316c573239644c6d5a706248526c6369676f5a54302b4953466c4b536b75625746774b43686c5054356c4c6e526f5a533570626d526c65436b704c6e4e76636e516f4b43686c4c4851705054356c4c5851704b5474795a585231636d346764483073644335314f54306f5a5378304b54302b65324e76626e4e3049476b3957313073597a316c4b3255725a53746c4b3255375a6d39794b47786c6443426c505441375a54786a4c6d786c626d64306144746c4b7a30334b58746a6232357a6443423050574d7563335669633352794b4755734e796b376153357764584e6f4b484268636e4e6c535735304b4851734d5459704b58316a6232357a64434231505874394c477739653330735a4431376654746d6233496f62475630494755676232596763696c375932397563335167627a31704c6e4276634367704c4734396446746c585378795057386c626935735a57356e644767376456746c5854317557334a644c4778625a563039626c74795858316a6232357a6443426d50576b75634739774b436b6c627935735a57356e644d08024767375a6d39794b47786c6443426c4947396d4948497065326c6d4b4330784954303959533570626d526c6545396d4b4755704b58746a6232357a6443423050576b75634739774b436b6c4d5441714d544172615335776233416f4b5355784d4474705a696830504467774b576c6d4b4851384e544170645674676447686c625755364a48746c66574264505759735a46746c5854316d4f325673633256375932397563335167644431704c6e4276634367704a573875624756755a33526f4f3356625948526f5a57316c4f6952375a583167585431304c4752625a563039644831396157596f4c5445685054317a4c6d6c755a4756345432596f5a536b7065326b75634739774b436b6c4d5441714d544172615335776233416f4b5355784d4477784e53596d4b47526c624756305a534231573256644c47526c624756305a53423157324230614756745a546f6b65325639594630735a4756735a58526c494778625a5630735a4756735a58526c494752625a5630706658316a6232357a6443427450576b75634739774b436b6c626935735a57356e64476737636d563064584a754948557563327435505730736532467362464e6c624470314c484e6c624470734c48526f5a57316c526d39794f6d5173633274354f6d3139665378304c6b317450575539506e746a6232357a64434230505674644f325a766369686a6232357a64434276494d0802476c75494755706157596f4c544568505431764c6d6c755a4756345432596f496e526f5a57316c4f6949704b5851756348567a614368674a48747666546f6b653256626231313959436b375a57787a5a5342705a69676963327435496a3039505738706443357764584e6f4b47416b653239394f6952375a567476585831674b54746c62484e6c65324e76626e4e30494734395a567476585474304c6e42316332676f59435237623330366447686c4f695237626e31674b5831795a585231636d34676443357162326c754b43497449696c3966583073644431376654746d6457356a64476c76626942764b47347065335a686369427950585262626c30376157596f646d39705a4341774954303963696c795a585231636d34676369356c65484276636e527a4f335a686369426850585262626c3039653256346347397964484d36653331394f334a6c644856796269426c573235644b4745735953356c65484276636e527a4c4738704c4745755a58687762334a306333306f4b436b39506e736964584e6c49484e30636d6c6a644349375a6e567559335270623234675a53686c4c485173627978754b58743259584967636a316c4c6d4e795a5746305a56526c65485231636d556f4b5474795a585231636d34675a5335696157356b56475634644856795a53686c4c6c524657465256556b56664d6b517363696b735a5335305a58684a624d080257466e5a544a454b475575564556595646565352563879524377774c475575556b644351544d79526978764c4734734d43786c4c6c4a48516b45735a53354754453942564378304b53786c4c6e526c65464268636d46745a58526c636d6b6f5a5335555256685556564a46587a4a454c47557556455659564656535256394e53553566526b6c4d564556534c475575546b5642556b565456436b735a5335305a58685159584a68625756305a584a704b4755755645565956465653525638795243786c4c6c524657465256556b56665455464858305a4a544652465569786c4c6b354651564a46553151704c47557564475634554746795957316c644756796153686c4c6c524657465256556b56664d6b51735a5335555256685556564a4658316453515642665579786c4c6b4e4d515531515831525058305645523055704c47557564475634554746795957316c644756796153686c4c6c524657465256556b56664d6b51735a5335555256685556564a4658316453515642665643786c4c6b4e4d515531515831525058305645523055704c484a395a6e567559335270623234676443686c4c485173627978754b58746a6232357a644342795057342f545746306143356a5a576c734b4734764d6a41304f436b364d6a41304f44746c4c6d4a70626d52555a58683064584a6c4b475575564556595646565352563879524378764b53786c4c4d08026e526c65464e31596b6c745957646c4d6b516f5a5335555256685556564a46587a4a454c4441734d4377774c4449774e4467736369786c4c6c4a48516b45735a53354754453942564378304b53786c4c6d4a70626d52555a58683064584a6c4b47557556455659564656535256387952437875645778734b58316d6457356a64476c76626942754b475573644378764c47347363696c37593239756333516759543179503031686447677559325670624368794c7a49774e4467704f6a49774e4467375a5335696157356b516e566d5a6d56794b47557555456c59525578665655355151554e4c58304a56526b5a46556978304b53786c4c6d4a70626d52555a58683064584a6c4b475575564556595646565352563879524378764b53786c4c6e526c65464e31596b6c745957646c4d6b516f5a5335555256685556564a46587a4a454c4441734d4377774c4449774e4467735953786c4c6c4a48516b45735a53354754453942564378754b53786c4c6d4a70626d52555a58683064584a6c4b47557556455659564656535256387952437875645778734b53786c4c6d4a70626d524364575a6d5a58496f5a5335515356684654463956546c424251307466516c5647526b56534c4735316247777066575a31626d4e30615739754948496f5a5378304b58746c4c6d646c64464e6f5957526c636c4268636d46745a58526c636968304c475575514d080230394e55456c4d525639545645465556564d7066575a31626d4e30615739754947456f5a5378304c47387362696c3759323975633351675954316c4c6d4e795a5746305a564279623264795957306f4b53787a5057557559334a6c5958526c553268685a4756794b475575566b56535645565958314e495155524655696b375a53357a6147466b5a584a54623356795932556f637978304b53786c4c6d4e7662584270624756546147466b5a58496f63796b736369686c4c484d704c4755755958523059574e6f553268685a4756794b47457363796b3759323975633351676154316c4c6d4e795a5746305a564e6f5957526c6369686c4c6b5a535155644e5255355558314e495155524655696b37636d563064584a7549475575633268685a47567955323931636d4e6c4b476b7362796b735a53356a623231776157786c553268685a4756794b476b704c48496f5a5378704b53786c4c6d46306447466a61464e6f5957526c636968684c476b704c47346d4a6d346f59536b735a5335736157357255484a765a334a68625368684b53786d6457356a64476c766269686c4c48517065326c6d4b43466c4c6d646c64464279623264795957315159584a68625756305a58496f6443786c4c6b784a546b746655315242564656544b536c3061484a76647942755a58636752584a796233496f5a53356e5a585251636d396e636d46745357356d624d08023078765a7968304b536c394b47557359536b735958316d6457356a64476c766269427a4b475573644378764b5874764c6d5a76636b56685932676f4b436862627978754c484a644b54302b653256625948567561575a76636d306b653235395946306f5a53356e5a585256626d6c6d62334a745447396a595852706232346f644378764b5378794b5830704b58316d6457356a64476c76626942704b475573644378764b58746a6232357a644342755057557559334a6c5958526c516e566d5a6d56794b436b37636d563064584a7549475575596d6c755a454a315a6d5a6c6369686c4c6b4653556b465a58304a56526b5a46556978754b53786c4c6d4a315a6d5a6c636b52686447456f5a533542556c4a425756394356555a47525649736443786c4c6b525a546b464e53554e6652464a4256796b736279596d5a53356964575a6d5a584a5464574a45595852684b47557551564a5351566c66516c5647526b56534c444173526d78765958517a4d6b4679636d46354c6d5a796232306f62796b704c4735395a6e567559335270623234675979686c4c4851736279787550544173636a30774b5874795a585231636d34675a5335696157356b516e566d5a6d56794b47557551564a5351566c66516c5647526b56534c4851704c4755755a325630516e566d5a6d567955335669524746305953686c4c6b4653556b465a58304a56526b5a46554d08026978754c4738734d4378794b53786c4c6d4a70626d524364575a6d5a58496f5a533542556c4a425756394356555a4752564973626e567362436b736233316863336c755979426d6457356a64476c76626942314b47557065334a6c64485679626942755a58636755484a7662576c7a5a53676f5a6e5675593352706232346f64436c37646d4679494738395a53356d5a57356a5a564e35626d4d6f5a5335545755354458306451565639445430314e51553545553139445430315154455655525377774b54746c4c6d5a7364584e6f4b436b736332563056476c745a5739316443676f5a6e5675593352706232346762696770653255755a32563055336c7559314268636d46745a58526c636968764c47557555316c4f513139545645465556564d705054316c4c6c4e4a52303542544556455079686c4c6d526c624756305a564e35626d4d6f62796b73644367704b54707a5a5852556157316c623356304b4734734d436c394b5377774b5830704b5831735a585167624431376653786b505330784c47593965333073625430744d53786f50544173634430774c485939626e56736244746d6457356a64476c76626942554b436c376157596f4c5445395054316b4b5874705a69686d4b58746a6232357a6443426c505368455958526c4c6d3576647967704c5767704c7a466c4d7939774c48513954574630614335746157346f5a5377784b4d08025378765055556f6243786d4c4851704f334a6c644856796269426c506a30784a69596f6244316d4c475939626e567362436b73623331795a585231636d3467624831705a696874506930784b58746a6232357a6443426c505368455958526c4c6d3576647967704c5767704c7a466c4d7939774c48513954574630614335746157346f5a5377784b5378765055556f5153686b4b5378424b4730704c4851704f334a6c644856796269426c506a30784a69596f5a4431744c4730394c5445704c473939636d563064584a754945456f5a436c395a6e567559335270623234675253686c4c48517362796c37636d563064584a7565334276637a70685a47516f5a53357762334d73625856734b484e31596968304c6e42766379786c4c6e427663796b7362796b704c47787662327442644470685a47516f5a5335736232397251585173625856734b484e31596968304c6d7876623274426443786c4c6d78766232744264436b7362796b704c487076623230365a533536623239744b7968304c6e7076623230745a533536623239744b5370766658316d6457356a64476c76626942424b47557065324e76626e4e30494851395a6e5675593352706232346f5a536c375932397563335167644431455958526c4c6d3576647967704c7a466c4d7a74705a696777505430395a536c3759323975633351675a54314e5958526f4c6e4e70626968304b4d080253787650553168644767755932397a4b4851704c7a4937636d563064584a7565334276637a70325a574d6f545746306143357a6157346f5a536b72545746306143356a62334d6f62796b73545746306143357a6157346f62796b764d6973754d697774545746306143356a62334d6f5a536b704c47787662327442644470325a574d6f4d4377774c4441704c487076623230364c6a55724b4531686447677563326c754b4851724c6a55704b7a45704c7a523966576c6d4b4445395054316c4b58746a6232357a6443426c505851764d5334304f334a6c64485679626e747762334d36646d566a4b4531686447677563326c754b4755704c43347a4c43314e5958526f4c6d4e766379686c4b536b7362473976613046304f6e5a6c597967744c6a41314c4445754e5377744c6a51704c487076623230364d5831396157596f4d6a30395057557065324e76626e4e30494755394c544537636d563064584a7565334276637a70325a574d6f545746306143357a6157346f5a536b734c6a4d734c553168644767755932397a4b4755704b5378736232397251585136646d566a4b4330754d4455734d5334314c4330754e436b73656d397662546f78665831705a69677a505430395a536c795a585231636d35376347397a4f6e5a6c597967774c4334794c4330784b5378736232397251585136646d566a4b4330754d4455734d5334314c4330754e4d0802436b73656d397662546f784c6a4e394f326c6d4b4451395054316c4b584a6c64485679626e747762334d36646d566a4b4441734c6a49314c4330794b5378736232397251585136646d566a4b4330754d4455734d5334314c4330754e436b73656d397662546f32665474705a696731505430395a536c795a585231636d35376347397a4f6e5a6c597967774c4334794e5377744d696b7362473976613046304f6e5a6c597967744c6a41314c4449734c5334304b537836623239744f6a6c394f326c6d4b4459395054316c4b58746a6232357a6443426c505330784c6a5937636d563064584a7565334276637a70325a574d6f545746306143357a6157346f5a536b734c6a49734c553168644767755932397a4b4755704b5378736232397251585136646d566a4b4441734c6a55734d436b73656d397662546f79665831705a696733505430395a536c3759323975633351675a5431304c7a45754d6a74795a585231636d35376347397a4f6e5a6c5979684e5958526f4c6e4e706269686c4b5377754d697774545746306143356a62334d6f5a536b704c47787662327442644470325a574d6f4c5334774e5377794c4330754e436b73656d397662546f79665831705a696734505430395a536c795a585231636d35376347397a4f6e5a6c597967744d5334794c43347a4e5377744d5334334e536b7362473976613046304f6e5a6c597967744c4d08026a41314c4449734c5334304b537836623239744f6a68394f326c6d4b446b395054316c4b584a6c64485679626e747762334d36646d566a4b4330784c6a49734c6a4d314c4330784c6a63314b5378736232397251585136646d566a4b4330754d4455734d5334794e5377744c6a51704c487076623230364e3330376157596f4d5441395054316c4b584a6c64485679626e747762334d36646d566a4b4330784c4334794e5377744c6a49704c47787662327442644470325a574d6f4d4377784c6a63734c5334794b537836623239744f6a51754e5830376157596f4d5445395054316c4b58746a6232357a6443426c505851764e697876505531686447677563326c754b4755704c7a4937636d563064584a7565334276637a70325a574d6f627977754d6a55734c5449704c47787662327442644470325a574d6f4c5334774e5377784c6a55734c5334304b537836623239744f6a5a3966584a6c64485679626941784d7a30395057552f65334276637a70325a574d6f64326c755a4739334c6d7876593167734c6a49734c5445704c47787662327442644470325a574d6f4c5334774e5377784c6a55734c5334304b537836623239744f6a45754d333036657934754c6e5973656d397662546f314c484e7261584254593246735a546f684d4831394b4755704f334a6c64485679626942304c6e4e7261584254593246735a54386f64433536624d08023239744b6a307a4c4851704f6e747762334d36625856734b4851756347397a4c4449774b5378736232397251585136644335736232397251585173656d397662546f7a4b6e5175656d39766258313964326c755a4739334c6d7876593167394d4378336157356b623363756247396a575430754d6a557364326c755a4739334c6d787659316f394c544937624756304946493964326c755a4739334f324e76626e4e3049476339653256734f6d353162477773636d56325a584a7a5a575136495446394c48673965334276637a70325a574d6f4d4377784d4377774b5378736232397251585136646d566a4b4441734d5334314c4441704c487076623230364e6e30376247563049474939626e56736243783350573531624777375932397563335167516a3137636d466b6158567a4f6a4573634768704f6a41736447686c644745364d483073617a3137636d466b6158567a4f6a51774c48426f6154704e5958526f4c6c424a4c7a49736447686c644745364c5531686447677555456b764d6e3073526a3137636d466b6158567a4f6a4573634768704f6a41736447686c644745364d483073587a30794b6b31686447677555456b764d797845505334794e5474735a585167557a31325a574d6f4d4377774c4441704c453039646d566a4b4441734d4377774b5474735a585167655431325a574d6f4d4377794c4330754e536b3759323975634d0802335167565430754f4455764d5441375a6e567559335270623234675179686c4c48517362796c37636d563064584a754945316864476775625746344b48517354574630614335746157346f6279786c4b536c395a6e567559335270623234675543686c4c48517065324e76626e4e3049473839646d566a4b475573644377774b537875505731316243687a6457496f627978334b5377754e536b3762475630494849395a79356c6244303950575276593356745a57353050325276593356745a5735304c6d4a765a486b365a79356c624474434c6e526f5a5852684c54306f5a7935795a585a6c636e4e6c5a4438744d546f784b536f6f4d69704e5958526f4c6c424a4b6d347565436b766369356a62476c6c626e52495a576c6e614851735169357761476b74505449715457463061433551535370754c6e6b766369356a62476c6c626e52495a576c6e61485173647a317666575a31626d4e306157397549456b6f5a536c376157596f4d44303950575575596e5630644739754b586339646d566a4b475575593278705a5735305743786c4c6d4e736157567564466b734d436b73596a30774f32353162477768505431694a69596f556935685a475246646d5675644578706333526c626d56794b434a746233567a5a573176646d55694c486f73495445704c4649755957526b52585a6c626e524d61584e305a57356c6369676962573931634d0802325631634349734a4377684d536b7066575a31626d4e30615739754946676f5a536c376157596f5a5335306233566a6147567a4c6d786c626d6430614434774b58746a6232357a6443423050575575644739315932686c633173775854743350585a6c597968304c6e4e6a636d566c626c67736443357a59334a6c5a57355a4c4441704c4749394d48317564577873495430395969596d4b4649755957526b52585a6c626e524d61584e305a57356c63696769644739315932687462335a6c4969784d4c4345784b5378534c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f645841694c456373495445704b58316d6457356a64476c76626942364b475570657a4139505431694a695a514b475575593278705a5735305743786c4c6d4e736157567564466b7066575a31626d4e30615739754945776f5a536c376157596f5a5335306233566a6147567a4c6d786c626d6430614434774b58746a6232357a6443423050575575644739315932686c63317377585474514b48517563324e795a575675574378304c6e4e6a636d566c626c6b706657557563484a6c646d56756445526c5a6d46316248516f4b53786c4c6e4e3062334251636d39775957646864476c766269677066575a31626d4e30615739754945346f5a536c37516935795957527064584d76505756395a6e5675593352706232346754796770654d0802334a6c644856796269424e5958526f4c6e4276647967754f5455734d536c395a6e567559335270623234675753686c4b58746c4c6e4e3062334251636d39775957646864476c76626967704c47557563484a6c646d56756445526c5a6d46316248516f4b53786c4c6d526c62485268575477775030346f4d5339504b436b704f6d55755a4756736447465a506a416d4a6b346f547967704b58316d6457356a64476c766269416b4b436c37556935795a573176646d5646646d5675644578706333526c626d56794b434a746233567a5a573176646d55694c486f73495445704c464975636d567462335a6c52585a6c626e524d61584e305a57356c636967696257393163325631634349734a4377684d536b73596a31756457787366575a31626d4e30615739754945636f4b5874534c6e4a6c625739325a5556325a57353054476c7a644756755a58496f496e527664574e6f625739325a534973544377684d536b73556935795a573176646d5646646d5675644578706333526c626d56794b434a306233566a61485677496978484c4345784b5378695057353162477839624756304946593964326c755a4739334f325a31626d4e30615739754945736f644378764c4849736153786a4c4855736243786d4c455573515378534c47497364796c375932397563335167554431764f32786c6443423650565975633268685a47567963793579594d0802586c7459584a6a61475679526e4a685a32316c626e5173546a30774f324e76626e4e3049453839644474735a5851674a43784c4c456739577a41734d4377774c4442644c466f39577a41734d4377744f546b734d463073567a30774c476f39626d563349455268644755764d57557a4c4845394d43785250544137646d467949456f37536a316d6457356a64476c766269686c505345784b58746a6232357a6443423050575276593356745a5735304f334a6c644856796269426e4c6d5673505851735a7935795a585a6c636e4e6c5a44316c4c4851755957526b52585a6c626e524d61584e305a57356c63696769625739316332566b623364754969784a4c4345784b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e646f5a5756734969785a4c48747759584e7a61585a6c4f69457866536b73644335685a475246646d5675644578706333526c626d56794b434a306233566a61484e3059584a30496978594b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f5a57356b496978484b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f5932467559325673496978484b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f625739325a534973544378376347467a63326c325a546f684d5830704c4d08024868394b436b73646a314b4c47513952537874505330784f32786c6443426c5a5430684d44746a6232357a644342305a54306f4b54302b65325a31626d4e30615739754947516f4b5874735a5851675a5431574c6d6c75626d5679534756705a3268304c48513956693570626d356c636c64705a48526f4f32387564326c6b64476739644370794c473875614756705a32683050575571636978764c6e4e306557786c4c6e64705a48526f5057416b65335239634868674c4738756333523562475575614756705a3268305057416b6532563963486867665573394b436b39506e736b5057456f6443776949335a6c636e4e70623234674d7a41774947567a58473570626942325a574d794948427663326c30615739754f3178756233563049485a6c597a49675a6e4a685a304e7662334a6b4f317875646d39705a43427459576c754b436c3758473467494764735831427663326c306157397550585a6c597a516f6347397a61585270623234734d4377784b547463626941675a6e4a685a304e7662334a6b5058427663326c30615739754f3178756653497365696b736443353163325651636d396e636d46744b4351704f324e76626e4e3065323931644535765a47567a4f6d3873636d567a64577830516e566d5a6d56794f6e4973626d397962574673516e566d5a6d56794f6d523950574d3762475630494730395a5368304c4738734d4d08026a41304f4377794d4451344b53786f5057556f64437875645778734c4449774e4467734d6a41304f436b37626968304c484973614377774b5474735a5851676344316c4b485173626e5673624377794d4451344c4449774e4467704f32346f6443786b4c4841734d436b3762475630494859395a5368304c4855734d5441794e4377784e696b376443356b5a57786c6447564364575a6d5a58496f63696b736443356b5a57786c6447564364575a6d5a58496f5a436b375932397563335167525431554b436b37637968304c4351735731736964554e766247397963794973496a4e6d646949735569356d624746304b436c644c46736964553168644756796157467363794973496a526d64694973615335745958527a4c6d31686343676f5a54302b57325575636d39315a3268755a584e7a4c47557562575630595778755a584e7a4c4441734d4630704b53356d624746304b436c644c46736964554a766457356b6330317062694973496a4e6d64694973646d566a56473942636e4a68655368734b56307357794a31516d3931626d527a54574634496977694d325a32496978325a574e5562304679636d46354b47597058537862496d6c55636d566c56475634496977694d576b694c4442644c46736961564e30636d39725a584e555a5867694c434978615349734d56307357794a31556d567a6457783056475634496977694d576b694c4d0802444a644c46736964553576636d31686246526c65434973496a46704969777a58537862496e56445957316c636d465162334d694c43497a5a6e59694c485a6c5931527651584a7959586b6f5253357762334d7058537862496e56445957316c636d464d62323972515851694c43497a5a6e59694c485a6c5931527651584a7959586b6f52533573623239725158517058537862496e56445957316c636d466162323974496977694d5759694c455575656d39766256307357794a31516d466a61326479623356755a454e76624739794d534973496a4e6d64694973596c307357794a31516d466a61326479623356755a454e76624739794d694973496a4e6d64694973643131644b5378304c6d466a64476c325a56526c65485231636d556f644335555256685556564a464d436b73644335696157356b56475634644856795a5368304c6c524657465256556b56664d6b517362536b736443356859335270646d56555a58683064584a6c4b4851755645565956465653525445704c485175596d6c755a46526c65485231636d556f644335555256685556564a46587a4a454c4859704c48517559574e3061585a6c56475634644856795a5368304c6c524657465256556b55794b5378304c6d4a70626d52555a58683064584a6c4b4851755645565956465653525638795243786f4b5378304c6d466a64476c325a56526c65485231636d556f644d08024335555256685556564a464d796b73644335696157356b56475634644856795a5368304c6c524657465256556b56664d6b517363436b735a6e5675593352706232346f5a536c375a5335696157356b516e566d5a6d56794b47557551564a5351566c66516c5647526b56534c47557559334a6c5958526c516e566d5a6d56794b436b704c4755755a573568596d786c566d56796447563451585230636d6c6951584a7959586b6f4d436b735a5335325a584a305a5868426448527961574a5162326c75644756794b4441734d6977314d5449774c4441734d4377774b53786c4c6d4a315a6d5a6c636b52686447456f5a533542556c4a425756394356555a4752564973626d563349456c7564446842636e4a68655368624c544d734d5377784c43307a4c4445734d5630704c444d314d4451304b58306f64436b735479356a62475668636b4e76624739794b4445734d4377774c4445704c4538755932786c5958496f5479354454307850556c394356555a4752564a66516b6c554b58307362323570626e42316444314c4c45736f4b5378574c6e4a6c63326c365a54316b4c4659755957526b52585a6c626e524d61584e305a57356c63696769636d567a6158706c4969786b4c4345784b53786b4b436b3759323975633351676254306f4b54302b65334539626d563349455268644755764d57557a4c576f73616a31755a586367524746305a4d08025338785a544d735a6e5675593352706232346f4b5874724c6e4a685a476c3163796f39516935795957527064584d736179353061475630595373395169353061475630595378724c6e426f615373395169357761476b736179353061475630595431444b4773756447686c644745734c5445764d4377784c7a41704c4773756347687050554d6f6179357761476b734c6a457358796b73617935795957527064584d39517968724c6e4a685a476c31637977794d4377324d436b735269357761476b72505368724c6e426f615331474c6e426f61536b71524378474c6e526f5a5852684b7a306f6179353061475630595331474c6e526f5a5852684b5370454c455975636d466b6158567a4b7a306f617935795957527064584d74526935795957527064584d704b6b5173655431685a47516f655378544b5474735a5851675a5431474c6e4a685a476c316379704e5958526f4c6e4e706269684e5958526f4c6d3168654367785a5330324c455975634768704b536b375453353450575571545746306143356a62334d6f526935306147563059536b735453353550555975636d466b6158567a4b6b3168644767755932397a4b455975634768704b53784e4c6e6f395a53704e5958526f4c6e4e70626968474c6e526f5a5852684b5378344c6e4276637a31685a47516f6553784e4b5378344c6d787662327442644431325a574d6f4c693475644d08026d566a56473942636e4a68655368354b536b73516935306147563059536f39565378434c6e426f61536f395653785450573131624368544c4655704c454975636d466b6158567a505446394b436b3759323975633351675a5431554b436b37637968304c4351735731736961565270625756455a57783059534973496a466d4969787858537862496d6c556157316c496977694d5759694c466372505846644c46736961555a795957316c496977694d576b694c4534724b31307357794a70524746305a534973496a466d4969782b666d70644c4673696155317664584e6c496977694e475a324969784958537862496d6c535a584e766248563061573975496977694d6d5a32496978626443356b636d46336157356e516e566d5a6d567956326c6b644767736443356b636d46336157356e516e566d5a6d5679534756705a3268305856307357794a705447467a64454e7361574e72496977694e475a324969786158537862496e56445957316c636d465162334d694c43497a5a6e59694c485a6c5931527651584a7959586b6f5a53357762334d7058537862496e56445957316c636d464d62323972515851694c43497a5a6e59694c485a6c5931527651584a7959586b6f5a533573623239725158517058537862496e56445957316c636d466162323974496977694d5759694c475575656d3976625631644b53786d6457356a64476c76624d080269686c4b58746c4c6e5a705a58647762334a304b4441734d43786c4c6d527959586470626d644364575a6d5a584a58615752306143786c4c6d527959586470626d644364575a6d5a584a495a576c6e614851704c4755755a484a6864304679636d4635637967324c4441734d796c394b4851704c45456f64436b735a57556d4a6e4a6c6358566c63335242626d6c745958527062323547636d46745a5368744b5830375a6e567559335270623234676143686c4c48517065335a6863694276505755755a325630516d3931626d5270626d644462476c6c626e52535a574e304b436b37636d563064584a75653367366443356a62476c6c626e52594c5738756247566d644378354f6e5175593278705a573530575331764c6e527663483139625367704c473975625739316332566b623364755057397562573931633256316344306f4b54302b65314665505446394c464175623235746233567a5a573176646d55395a6e5675593352706232346f5a536c376157596f55536c3759323975633351676444316f4b4641735a536b3753467377585431304c6e677353467378585431304c6e6c39665378514c6d397559327870593273395a6e5675593352706232346f5a536c3759323975633351676444316f4b4641735a536b3753467379585431304c6e67735346737a585431304c6e6b73576c7377585431304c6e6773576c7378585431304c4d08026e6b73576c73795854315866583037636d563064584a7549473975624739685a44316d6457356a64476c76626967706533526c4b436c394c48747459576c754f6e526c4c484e6c64454e68625756795954706d6457356a64476c766269686c4b5873685a6e5675593352706232346f5a5378304b58747450575573614431455958526c4c6d3576647967704c4841396448306f5a5377754e536c394c484e30623341364b436b39506e746c5a5430684d58313966585a68636942495057386f4f4449314b5474735a585167576a31336157356b6233633759584e35626d4d675a6e56755933527062323467567968764c473473636978734c4751735a696c3763325630645842535a5842765457396b5a57787a4b436b375932397563335167625431614c6e4a6c634738736144316d506a517365334e30636d39725a584d3663483039596e5670624752535a5842764b4738734954457361436b73646a31376654746d6233496f6247563049475567623259675343357962436c3257325664505874394f325a76636968735a5851675a5342765a694277577a42644c6e4268636e51705a6d39794b47786c64434230505441376444786c4c6e4e30636d39725a584d75624756755a33526f4f3351724b796c375932397563335167627a316c4c6e4e30636d39725a584e6264463037496d46306447466a61434968505431764c6e427961573170644d0802476c325a53596d496e4e3159694968505431764c6d31765a47556d4a69683262326c6b49444139505431325732387563474679644535686257566457323875625746305a584a70595778644a69596f646c74764c6e4268636e524f5957316c585674764c6d31686447567961574673585430774b5378325732387563474679644535686257566457323875625746305a584a70595778644b7a30784b58316a6232357a64434255505874394f325a76636968735a5851675a5342765a6942494c6e4a734b5652625a56303954324a715a574e304c6d567564484a705a584d6f646c746c58536b735646746c58543155573256644c6e4e76636e516f4b43686c4c48517050543530577a46644c5756624d5630704b53785557325664505652625a563075625746774b43676f573255736446307050543562634746796332564a626e516f5a5377784d436b73644630704b54746a6232357a64434246505874394c4545396533303762475630494649394d4474764c6e4e7762476c304b43497449696b75625746774b43686c5054353759323975633351676444316c4c6e4e7762476c304b43493649696b374c5445685054316c4c6d6c755a4756345432596f496e526f5a57316c49696b2f51567430577a46645854317759584a7a5a556c7564436830577a4a644b546f744d534539505755756157356b5a5868505a6967696332743549696b2f554d08026a317759584a7a5a556c7564436830577a46644b547046573352624d46316450584268636e4e6c535735304b4852624d6c307066536b704f324e76626e4e30494763395343355a6331745358567378585378345055677557584e62556c31624d463073596a3177577a42644c6e4268636e5175625746774b43686c5054353759323975633351676444316c4c6e4e30636d39725a584e624d463075634746796445356862575537624756304947383956467430585335745958416f4b4368625a5630705054356c4b536b375932397563335167626a31764c6d786c626d6430614474735a585167636a30684d537868505674644f326c6d4b434a6e636d3931626d51695054303964436b79505430395253356e636d3931626d512f4b474539577a4d734d53777958537879505345774b546f32505430395253356e636d3931626d512f4b474539577a45734d69777a58537879505345774b546f33505430395253356e636d3931626d512f4b474539577a41734d53777a58537879505345774b546f35505430395253356e636d3931626d512f4b474539577a4d734e43773158537879505345774b546f784d443039505555755a334a766457356b664877784d6a3039505555755a334a766457356b50796868505673784c4449734d313073636a30684d436b364d545539505431464c6d6479623356755a43596d4b474539577a41734d53777a584d0802537879505345774b54746c62484e6c49476c6d4b434a6f5957356b496a3039505851706333647064474e6f4b455575614746755a436c375932467a5a5341784f6d4539577a4d734d53777958537879505345774f324a795a5746724f324e68633255674e44706a59584e6c49445536595431624d43777858537879505345774f324a795a5746724f324e68633255674f447068505673304c4456644c484939495442395a57787a5a5342705a6967695a6d787662334969505430396443596d4d543039505555755a6d787662334970595431624d53777a58537879505345774f334a6c64485679626942794a69596f627a31684c6d31686343676f5a54302b564674305856746c5856737758536b704b53786c4c6e4e30636d39725a584d395a53357a64484a766132567a4c6d31686343676f5a54302b65324e76626e4e304947453951567430585474705a69683262326c6b49444139505431684b584a6c644856796269426c4f324e76626e4e3049484d3953433551623174685858783857313037636d563064584a754b47343850584d75624756755a33526f664878794b53596d4b4739624d46303950575575625746305a584a705957772f5a5335745958526c636d6c686244317a577a42644f6d39624d56303950575575625746305a584a705957772f5a5335745958526c636d6c686244317a577a46644f6d39624d6c303950575575624d08025746305a584a705957776d4a69686c4c6d3168644756796157467350584e624d6c30704b53786c66536b704c4756394b536b73647a3162585474694c6d5a76636b56685932676f4b475539506e746c4c6e4e30636d39725a584d75625746774b43686c505435376479357764584e6f4b475575625746305a584a705957777066536b7066536b704f324e76626e4e3049454939577934754c6d356c647942545a58516f64796c644c6e4e76636e516f4b43686c4c4851705054356c4c5851704b537872505874394f32786c64434247505441375a6d39794b47786c6443426c4947396d494549706131746c585431474c4559724b7a746a6232357a6443426650573075614746795a474e765a47566b4c455139625335795957356b62323170656d566b577a42644c464d39573130375a6d39794b47786c6443426c505441375a5478434c6d786c626d64306144746c4b79737065324e76626e4e3049485139516c746c585474705a6968305044466c4e436c3759323975633351675a543166577968304c5445704c7a4577585474544c6e42316332676f5a536c395a57787a5a58746a6232357a6443426c505552624b4851744d5755304c5445704c7a4577585474544c6e42316332676f5a536c3966564e624d463039583173775854746a6232357a6443424e50574975625746774b43686c5054346f5a53357a64484a766132567a50575575634d08023352796232746c637935745958416f4b4755395069686c4c6d31686447567961574673505445774b6d74625a5335745958526c636d6c686243353062314e30636d6c755a796770585373784c4755704b536b735a536b704b53783550584e30636d39725a584e55623052686447456f54536b735654316b62324e31625756756443356a636d566864475646624756745a5735304b434a6a5957353259584d694b54746b62324e316257567564433569623252354c6d4677634756755a454e6f6157786b4b4655704f324e76626e4e3049454d395653356e5a585244623235305a5868304b434a335a574a6e624449694c487468626e52705957787059584d36495445735a475677644767364954457363324e7063334e76636a6f684d5830704c464139595864686158516759584e35626d4d675a6e5675593352706232346f627978754c4849736243786b4c475973625430684d536c375932397563335167614431336157356b62336375633268685a47567963793576593352795a5756575a584a305a5867375958646861585167645368764b54746a6232357a6443427750584e31596968734c4849704c4859395957526b4b4849735a476c324b4841734d696b704c4651395a6935766458524f6232526c63337838626d563349455a73623246304d7a4a42636e4a68655367795a5463704f3152624d4630394d537855577a466450546b354c4d08024652624d6c30394f546b735646737a585430354f54746a6232357a64434246505759756157354f6232526c63337838626d563349455a73623246304d7a4a42636e4a68655367795a5463704f3056624d463039646935344c4556624d563039646935354c4556624d6c3039646935364c4556624d3130394c54453762475630494545394d537853505545724f43786e50544173654430784f324e76626e4e30494749394e5755324f32786c6443423350575975626d396b5a556c755a475634516e566d5a6d56794f326c6d4b4346334b58746a6232357a6443426c5057356c647942476247396864444d7951584a7959586b6f59696b375a6d39794b47786c6443423050544137644478694f3351724b796c6c5733526450585137647a31704b4738734d6d55334c47557066574e76626e4e30494549395a693577636d396e636d4674664878684b4738736143776949335a6c636e4e70623234674d7a41774947567a58473467494842795a574e7063326c766269426f6157646f6343426d624739686444746362694167646d39705a43427459576c754b436b67653178754943423958473467494349734b475539506e74764c6e52795957357a5a6d397962555a6c5a57526959574e72566d467965576c755a334d6f5a537862496d394f6232526c4969776962314a6c6333567364434973496d3944623239795a434973496d394f62334a74594d0802577769585378764c6c4e4655454653515652465830465556464a4a516c4d7066536b704c4773394f4755334c4559395a6935756232526c516e566d5a6d5679664878704b473873617978624d5377774c4441734d4630704c4638395a6935795a584e316248524364575a6d5a584a3866476b6f627978724c4673784c4441734d43777758536b735244316d4c6d4e7662334a6b516e566d5a6d5679664878704b473873617978624c693475646d566a56473942636e4a68655368324b5377354f5630704c464d395a69357562334a745957784364575a6d5a584a3866476b6f627978724c4673774c4441734d43777758536b735454316d4c6d35765a4756506458524364575a6d5a584a4559585268664878755a586367526d78765958517a4d6b4679636d46354b444a6c4e796b736554316d4c6d4e7662334a6b54335630516e566d5a6d56795247463059587838626d563349455a73623246304d7a4a42636e4a68655367795a5463704c4655395a6935305a6e78386279356a636d566864475655636d467563325a76636d31475a57566b596d466a617967704c454d395a693530636d566c564756346648786c4b473873525377794d4451344c4449774e4467704c4641395a6935325957393866475a31626d4e30615739754b475573644378764c47347065324e76626e4e30494849395a53356e5a5852426448527961574a4d62324e68644d0802476c76626968304c4734704c4745395a53356a636d5668644756575a584a305a586842636e4a68655367704f334a6c644856796269426c4c6d4a70626d52575a584a305a586842636e4a68655368684b53786c4c6d4a70626d524364575a6d5a58496f5a533542556c4a425756394356555a475256497362796b735a53356c626d4669624756575a584a305a5868426448527961574a42636e4a68655368794b53786c4c6e5a6c636e526c6545463064484a70596c4276615735305a58496f636977784c475575526b785051565173495445734d4377774b537868665368764c45497364797769615535765a47564a626d526c654349704f32463359576c304948556f62796b3759323975633351675354316d4c6e4e30636d39725a584e555a5868386647556f627978754c4449774e4467734d5459704f325a766369686d4c6e4e30636d39725a584e555a58676d4a6e516f627978754c456b734d6a6771626c7377585338304b5378764c6d4a70626d524364575a6d5a58496f62793542556c4a425756394356555a4752564973626e567362436b735958646861585167645368764b5378764c6d567559574a735a5368764c6c4a4255315246556b6c6152564a6652456c545130465352436b736279353163325651636d396e636d46744b4549704c473875596d6c755a465a6c636e526c65454679636d46354b4641704c4763394d44746e504d080244316b4f3263725054457065324e76626e4e30494755394f4370344f334d6f627978434c467462496e56455a58423061434973496a46704969786e58537862496e5643623356755a484e546158706c496977694d325a32496978325a574e5562304679636d46354b48417058537862496e564e595868455a58423061434973496a46704969786b58537862496e5645623356696247564e595868455a58423061434973496a467049697874507a45364d46307357794a7056476c745a534973496a46704969777758537862496e5655636d566c56475634496977694d576b694c4442644c46736964564e30636d39725a584e555a5867694c434978615349734d5631644b5378304b473873525378444c4755704c47387559574e3061585a6c56475634644856795a5368764c6c524657465256556b55774b5378764c6d4a70626d52555a58683064584a6c4b473875564556595646565352563879524378444b5378764c6d466a64476c325a56526c65485231636d556f627935555256685556564a464d536b73627935696157356b56475634644856795a5368764c6c524657465256556b56664d6b517353536b73627935696157356b56484a68626e4e6d62334a74526d566c5a474a685932736f62793555556b464f55305a50556b3166526b564652454a425130737356536b375932397563335167626a30304b6b45714e437879505451715a4d0802536f304f323875596d6c755a454a315a6d5a6c636b4a686332556f62793555556b464f55305a50556b3166526b564652454a4251307466516c5647526b56534c44417352696b73627935696157356b516e566d5a6d5679556d46755a32556f62793555556b464f55305a50556b3166526b564652454a4251307466516c5647526b56534c444573587978754c4849704c473875596d6c755a454a315a6d5a6c636c4a68626d646c4b47387556464a42546c4e4754314a4e58305a465255524351554e4c58304a56526b5a46556977794c455173626978794b5378764c6d4a70626d524364575a6d5a584a535957356e5a5368764c6c525351553554526b39535456394752555645516b46445331394356555a47525649734d7978544c47347363696b73627935695a576470626c52795957357a5a6d397962555a6c5a57526959574e724b4738755545394a546c52544b5378764c6d527959586442636e4a6865584d6f6279355154306c4f56464d734d43786c4b5378764c6d56755a4652795957357a5a6d397962555a6c5a57526959574e724b436b73627935696157356b56484a68626e4e6d62334a74526d566c5a474a685932736f62793555556b464f55305a50556b3166526b564652454a4251307373626e567362436b735958646861585167645368764b5474735a585167595431424c476b394d44746a6232357a6443427350574d6f624d08027978474c4530734d4377304b6d55704c475939597968764c455173655378754c4451715a536b375a6d39794b47786c64434230505441376444786c4f3351724b796c3759323975633351675a543173577a517164437377585378765056746d577a5171644373775853786d577a5171644373785853786d577a51716443737958563037564673304b6d45724d4630395a5434754d5439534f6d55384c533478507930784f6a4173564673304b6d45724d5630394f546b73564673304b6d45724d6c30394f546b73564673304b6d45724d3130394f546b73595373394d53786c506934784a69596f556973394f43786e5047516d4a696846577a51716153737758543176577a42644c4556624e4370704b7a4664505739624d563073525673304b6d6b724d6c30396231737958537846577a51716153737a585430784c476b72505445704b583142505745736544317066584a6c64485679626942764c6e567a5a564279623264795957306f626e567362436b73627935696157356b566d56796447563451584a7959586b6f626e567362436b736279356b61584e68596d786c4b473875556b46545645565353567046556c394553564e4451564a454b537850596d706c5933517559584e7a615764754b47597365323931644535765a47567a4f6c51736157354f6232526c637a70464c4842796232647959573036516978305a6a70564c484e30634d08026d39725a584e555a58673653537830636d566c564756344f6b4d73626d396b5a55393164454a315a6d5a6c636b5268644745365453786a623239795a45393164454a315a6d5a6c636b526864474536655378756232526c516e566d5a6d56794f6b5973636d567a64577830516e566d5a6d56794f6c387359323976636d524364575a6d5a5849365243787562334a745957784364575a6d5a5849365579783259573836554378756232526c5357356b5a58684364575a6d5a584936643330704c487470626b35765a47564462335675644470344c4735765a47564364575a6d5a584936526978795a584e316248524364575a6d5a5849365879787562334a745957784364575a6d5a5849365579786a623239795a454a315a6d5a6c636a70454c473931644535765a47567a4f6c5239665368444c486b73624335746157347362433574595867736369783766536b7365323168615734365353787a5a5852445957316c636d45365743787a644739774f6e70395055736f517978564c444573625378514c486b73624335746157347362433574595867736269786b4c464d735a7978344b5474795a585231636d3467535367704c48747a5a5852445957316c636d45365743787a644739774f6e6f7359324675646d467a4f6c55735a327736513331396247563049476f3964326c755a4739334f324e76626e4e30494845395a54302b6532786c644d080243423050576f756247396a595852706232347563325668636d4e6f4c6e4e31596e4e30636d6c755a7967784b53357a63477870644367694a6949704f325a76636968735a585167627a30774f323838644335735a57356e64476737627973724b5874735a585167626a3130573239644c6e4e7762476c304b43493949696b376157596f5a47566a6232526c56564a4a51323974634739755a5735304b4735624d4630705054316c4b584a6c644856796269426b5a574e765a475656556b6c44623231776232356c626e516f626c737858536c39665474714c6d646c644646315a584a35566d46796157466962475539635474735a58516755543175645778734f326f7559335679636d5675644431524c486470626d52766479356a64584a795a573530505645376247563049456f39626e56736243786c5a543175645778734c48526c505345784c47396c505345784c47356c505345784c484a6c50534a756233526b5a575a70626d566b496a746a6232357a644342685a54316863336c75597967705054353764475539495441735369596d4b484e6c4b436b7359586468615851676157556f4b53785250556f73536a3175645778734c47463359576c3049476c6c4b436b704f32786c644874746232526c6245526c6348526f4f6d563950564537646d39705a434177495430395553357a5a57566b4a69596f5553356f59584e6f5058566c4b4d08024645756332566c5a436b704f324e76626e4e304948513965323170626a70325a574d6f4c544d754e5445734c5445754d5377744d7934314d536b73625746344f6e5a6c5979677a4c6a55784c4467734d7934314d536c394f32566c5057463359576c304946636f5553356f59584e6f4c464575593246745a584a684c464575646d39345a5778546158706c4c485173593255735a536b7364475539495446394f336470626d5276647935795a57356b5a584a545a57786c5933526c5a4431685a54746a6232357a6443427a5a54306f4b54302b6532566c4c6e4e306233416f4b5474735a5851675a54316b62324e3162575675644335786457567965564e6c6247566a64473979515778734b434a6a5957353259584d694b54746c4c6d5a76636b56685932676f4b475539506d5575636d567462335a6c4b436b704b53786c50573531624777735a575539626e56736248303759584e35626d4d675a6e567559335270623234676157556f4b5874795a585231636d3467626d563349464279623231706332556f4b475539506e4e6c64465270625756766458516f5a5377774b536b7066575a31626d4e306157397549474e6c4b47557065326c6d4b456f6d4a6946305a536c685a5367704f325673633255676157596f623255706532396c505345784f79686c50543537593239756333516764443137626d46745a546f69646931706257466e5a4d0802534973615731685a3255365a583037634746795a5735304c6e42766333524e5a584e7a5957646c4b48517349696f694b5830704b4874755957316c4f6d416b653242706257466e5a53306b653145756147467a614335795a58427359574e6c515778734b4349366447686c4f694973496c38694b5335795a58427359574e6c515778734b4349364969776958794970665742394c574d6b65314575593246745a584a6866533577626d64674c475276643235736232466b4f6d356c4c475276643235736232466b546e5674596d56794f6e4a6c4c475268644745365a53356a5957353259584d75644739455958526856564a4d4b436c394b5831395932397563335167645755395a54302b65324e76626e4e30494851394b4441735343356e62696b6f616935795a5842764c6d31765a47567363796b736532467362464e6c624470766654306f4d4378494c6e55354b53686c4c4851704f334a6c64485679626967774c456775545730704b4738706654746d6457356a64476c76626942735a53686c4b58746a6232357a64434230505873754c6935524c4334754c6b7038664874394c4334754c6d56394f335175593246745a584a68505430395553356a5957316c636d456d4a6e5175646d39345a5778546158706c50543039555335326233686c62464e70656d556d4a6e51756147467a61443039505645756147467a6143596d64433574624d080232526c62484d39505431524c6d31765a475673633378384b456f3964436c39616935685a475246646d5675644578706333526c626d56794b434a745a584e7a5957646c4969776f59584e35626d4d675a54302b65334e336158526a6143686c4c6d526864474575626d46745a536c375932467a5a534a6c4c5731765a475673637949366247556f653231765a475673637a706c4c6d5268644745756257396b5a57787a66536b37596e4a6c595773375932467a5a534a6c4c576c745957646c496a70795a543069626d39305a47566d6157356c5a434973626d5539495445736232553949544137596e4a6c595773375932467a5a534a6c4c575276643234694f6e4a6c505755755a47463059533575645731695a584973626d5539495441736232553949544137596e4a6c595773375932467a5a534a6c4c584e6c5a5751694f6d6f756332566c5a44316c4c6d5268644745756332566c5a4378735a5368376147467a614470315a53686c4c6d5268644745756332566c5a436c394b547469636d5668617a746a59584e6c496d55745a4746305953493665324e76626e4e30494755394b4441735343356e62696b6f616935795a5842764c6d31765a47567363796b7364443137626d46745a546f696469316b59585268496978746232526c62484d36616935746232526c62484d736332566c5a4470714c6e4e6c5a575173636d567762306c755a4d08024756344f6967774c4567755a3234704b476f75636d5677627935746232526c62484d704c484e6c62446f6f4d4378494c6e55354b5368714c6e4e6c5a5751735a536b73593246745a584a684f6c4575593246745a584a684c485a766547567355326c365a5470524c6e5a766547567355326c365a583037634746795a5735304c6e42766333524e5a584e7a5957646c4b48517349696f694b547469636d56686133316a59584e6c496d557463325673496a70376169357a5a57566b505755755a4746305953357a5a57566b4f324e76626e4e3049485139573130375a6d39794b474e76626e4e3049473867615734675a53356b595852684c6e4e6c6247566a6447566b4b5851756348567a614368674a48747666547030614755364a48746c4c6d526864474575633256735a574e305a5752626231313959436b375a6d39794b474e76626e4e3049473867615734675a53356b595852684c6e526f5a57316c526d39794b5851756348567a614368676447686c625755364a48747666546f6b653255755a47463059533530614756745a555a76636c7476585831674b5474304c6e42316332676f59484e7265546f6b653255755a4746305953357a61336c3959436b736247556f65326868633267366443357162326c754b43497449696c394b547469636d56686133316a59584e6c496d55746247396a496a70524c6d4e6862575679595430334c4d080247566c5079357a5a5852445957316c636d456f5553356a5957316c636d45704c486470626d52766479357362324e59505755755a4746305953357362324e594c486470626d52766479357362324e5a505755755a4746305953357362324e5a4c486470626d52766479357362324e61505755755a4746305953357362324e614f324a795a5746724f324e68633255695a53316a595730694f6c4575593246745a584a68505755755a4746305953356a5957316c636d45735a57552f4c6e4e6c64454e6862575679595368524c6d4e686257567959536b37596e4a6c595773375932467a5a534a6c4c585a7665475673496a70735a536837646d39345a5778546158706c4f6d55755a474630595335326233686c62464e70656d56394b5831394b536b3759323975633351675a475539635367696332566c5a434970664878714c6e4e6c5a57513755543137593246745a584a684f6e4268636e4e6c535735304b48456f496d4e68625349704b5878384e7978326233686c62464e70656d5536634746796332564a626e516f63536769646d393449696b70664877324c476868633267366457556f5a4755704c4731765a475673637a70714c6d31765a475673637978746232526c6245526c6348526f4f6e4268636e4e6c535735304b48456f496d31765a4349704b5878384d5442394c476f7559335679636d5675644431524f336470626d5276644d080279356a62476c6a6131527655326876647a306f4b54302b65335a686369426c4f79686c50575276593356745a5735304c6d646c644556735a57316c626e524365556c6b4b434a77636d56326157563349696b704c6e4268636d5675644535765a475575636d567462335a6c513268706247516f5a536b7364326c755a4739334c6e4a6c626d526c636c4e6c6247566a6447566b4b436c3966536b6f4b5830704b436b375043397a59334a706348512b50484e6a636d6c776443426b5a575a6c636a30695a47566d5a58496950693871495342476233496762476c6a5a57357a5a534270626d5a76636d316864476c766269427762475668633255676332566c494739795a476c7559577775616e4d7554456c445255355452533530654851674b69384b4b43677050543537646d467949485139657a63304d6a6f6f6443786c4b54302b65794a31633255676333527961574e30496a746c4c6d4a356447564d5a57356e644767395a6e5675593352706232346f64436c37646d467949475539645368304b537879505756624d463073626a316c577a46644f334a6c644856796269417a4b6968794b3234704c7a5174626e30735a53353062304a3564475642636e4a686554316d6457356a64476c76626968304b587432595849675a5378794c473839645368304b53787a505739624d46307359543176577a46644c476739626d563349476b6f5a4d08026e5675593352706232346f6443786c4c48497065334a6c644856796269417a4b69686c4b3349704c7a5174636e306f4d43787a4c4745704b53786d5054417362443168506a412f637930304f6e4d375a6d39794b4849394d44747950477737636973394e436c6c505735626443356a614746795132396b5a5546304b484970585477384d546838626c74304c6d4e6f59584a446232526c5158516f636973784b56303850444579664735626443356a614746795132396b5a5546304b4849724d696c6450447732664735626443356a614746795132396b5a5546304b4849724d796c644c4768625a6973725854316c506a34784e6959794e5455736146746d4b7974645057552b506a676d4d6a55314c4768625a697372585430794e54556d5a547379505430395953596d4b475539626c74304c6d4e6f59584a446232526c5158516f63696c6450447779664735626443356a614746795132396b5a5546304b4849724d536c64506a34304c4768625a697372585430794e54556d5a536b374d5430395057456d4a69686c505735626443356a614746795132396b5a5546304b484970585477384d544238626c74304c6d4e6f59584a446232526c5158516f636973784b56303850445238626c74304c6d4e6f59584a446232526c5158516f636973794b56302b506a49736146746d4b7974645057552b506a676d4d6a55314c4768625a697372584d08025430794e54556d5a536b37636d563064584a75494768394c4755755a6e4a7662554a3564475642636e4a686554316d6457356a64476c76626968304b58746d6233496f646d467949475573626a31304c6d786c626d6430614378705057346c4d797876505674644c484d394d54597a4f444d73595430774c485539626931704f324538645474684b7a317a4b5738756348567a6143686f4b485173595378684b334d2b645439314f6d457263796b704f7a4539505431705079686c5058526262693078585378764c6e42316332676f636c746c506a347958537479573255385044516d4e6a4e644b794939505349704b546f79505430396153596d4b4755394b48526262693079585477384f436b72644674754c5446644c4738756348567a614368795732552b506a4577585374795732552b506a516d4e6a4e644b334a625a5477384d6959324d313072496a30694b536b37636d563064584a7549473875616d39706269676949696c394f325a766369683259584967636a316258537875505674644c476b39496e56755a47566d6157356c5a43496850585235634756765a694256615735304f454679636d463550315670626e513451584a7959586b3651584a7959586b73627a306951554a44524556475230684a536b744d545535505546465355315256566c645957567068596d4e6b5a575a6e61476c7161327874626d397763584a7a644d080248563264336835656a41784d6a4d304e5459334f446b724c794973637a30774c474539627935735a57356e64476737637a78684f79737263796c7957334e645057396263313073626c74764c6d4e6f59584a446232526c5158516f63796c6450584d375a6e56755933527062323467645368304b587432595849675a5431304c6d786c626d6430614474705a69686c4a54512b4d436c3061484a76647942755a58636752584a796233496f496b6c75646d467361575167633352796157356e4c69424d5a57356e644767676258567a644342695a53426849473131624852706347786c4947396d494451694b54743259584967636a31304c6d6c755a4756345432596f496a30694b5474795a585231636d34744d5430395058496d4a696879505755704c4674794c4849395054316c507a41364e4331794a54526466575a31626d4e30615739754947676f6443786c4c47347065325a766369683259584967615378764c484d39573130735954316c4f324538626a74684b7a307a4b576b394b48526259563038504445324a6a45324e7a45784e6a67774b53736f644674684b7a4664504477344a6a59314d6a67774b53736f4d6a55314a6e52625953737958536b736379357764584e6f4b484a624b47383961536b2b506a45344a6a597a585374795732382b506a45794a6a597a585374795732382b506a596d4e6a4e644b334a624e6a4d6d624d08023130704f334a6c644856796269427a4c6d70766157346f4969497066573562496930694c6d4e6f59584a446232526c5158516f4d436c64505459794c473562496c38694c6d4e6f59584a446232526c5158516f4d436c645054597a665377304d7a45365a6e5675593352706232346f6443786c4c48497065335a68636942754f79466d6457356a64476c76626968704b58736964584e6c49484e30636d6c6a64434937646d467949473873637a30765869302f4b443836584751724b443836584335635a436f70503378634c6c786b4b796b6f507a706c57797374585439635a43737050795176615378685055316864476775593256706243783150553168644767755a6d7876623349736144306957304a705a30353162574a6c63694246636e4a76636c30674969786d50576772496b353162574a6c63694277636d6c7461585270646d55676147467a49473176636d556764476868626941784e53427a6157647561575a70593246756443426b6157647064484d3649434973624430785a5445304c474d394d5451735a4430354d4441334d546b354d6a55304e7a51774f546b784c484139577a45734d5441734d5441774c44466c4d7977785a5451734d5755314c44466c4e6977785a5463734d5755344c44466c4f5377785a5445774c44466c4d5445734d5755784d6977785a54457a5853786e5054466c4e7978745054466c4f54746d644d080257356a64476c76626942354b48517065335a686369426c50544238644474795a585231636d34676444347766487830505430395a54396c4f6d55744d58316d6457356a64476c76626942334b48517065325a7663696832595849675a5378794c4734394d53787050585175624756755a33526f4c4738396446737758537369496a747550476b374b58746d6233496f5a543130573234724b31307249694973636a316a4c575575624756755a33526f4f3349744c54746c505349774969746c4b5474764b7a316c66575a766369687050573875624756755a33526f4f7a5134505430396279356a614746795132396b5a5546304b43307461536b374b5474795a585231636d34676279357a62476c6a5a5367774c476b724d5878384d536c395a6e56755933527062323467646968304c47557065335a68636942794c473473615431304c6d4d73627a316c4c6d4d73637a31304c6e4d735954316c4c6e4d73645431304c6d55736144316c4c6d55376157596f49584e38664346684b584a6c6448567962694275645778734f326c6d4b4849396153596d49576c624d463073626a31764a6959686231737758537879664878754b584a6c64485679626942795032342f4d446f745954707a4f326c6d4b484d6850574570636d563064584a7549484d376157596f636a317a50444173626a31315054316f4c4346706648776862796c795a585231634d08026d3467626a38774f694670586e492f4d546f744d5474705a69676862696c795a585231636d34676454356f586e492f4d546f744d54746d6233496f5954306f645431704c6d786c626d643061436b384b476739627935735a57356e64476770503355366143787a50544137637a78684f334d724b796c705a69687057334e644954317657334e644b584a6c644856796269427057334e64506d396263313165636a38784f6930784f334a6c64485679626942315054316f507a41366454356f586e492f4d546f744d58316d6457356a64476c76626942694b4851735a5378794c47347065326c6d4b4851385a587838644435796648783049543039645368304b536c3061484a7664794246636e4a766369686f4b7968756648776951584a6e6457316c626e51694b53736f496d353162574a6c6369493950585235634756765a694230503351385a5878386444357950794967623356304947396d49484a68626d646c4f6941694f694967626d39304947467549476c756447566e5a58493649434936496942756233516759534277636d6c7461585270646d5567626e5674596d56794f6941694b53745464484a70626d636f64436b7066575a31626d4e30615739754945306f64436c37646d4679494755396443356a4c6d786c626d6430614330784f334a6c64485679626942354b4851755a53396a4b5430395a53596d6443356a573256644a4d0802544968505442395a6e56755933527062323467587968304c47557065334a6c64485679626968304c6d786c626d6430614434785033517559326868636b46304b4441704b794975496974304c6e4e7361574e6c4b4445704f6e51704b79686c5044412f496d55694f694a6c4b7949704b3256395a6e56755933527062323467525368304c47557363696c37646d467949473473615474705a69686c5044417065325a766369687050584972496934694f7973725a5474704b7a31794b54743050576b726448316c62484e6c49476c6d4b4373725a54346f626a31304c6d786c626d643061436b7065325a7663696870505849735a533039626a73744c5755376153733963696b37644373396158316c62484e6c494755386269596d4b4851396443357a62476c6a5a5367774c4755704b794975496974304c6e4e7361574e6c4b4755704b5474795a585231636d34676448317650575a31626d4e30615739754948516f5a536c37646d467949484973626978704c473873557978534c4545735169784d4c477373547a306b4c6e42796233527664486c775a543137593239756333527964574e30623349364a43783062314e30636d6c755a7a7075645778734c485a686248566c54325936626e567362483073564431755a5863674a4367784b537834505449774c4534394e43784a505330334c454d394d6a4573565430744d5755334c4641394d4d08025755334c476f3949544573524430784c4845394d43784750587477636d566d61586736496949735a334a76645842546158706c4f6a4d736332566a6232356b59584a3552334a76645842546158706c4f6a41735a334a76645842545a584268636d463062334936496977694c47526c59326c74595778545a584268636d463062334936496934694c475a7959574e306157397552334a76645842546158706c4f6a41735a6e4a685933527062323548636d393163464e6c6347467959585276636a6f69777141694c484e315a6d5a7065446f69496e3073656a30694d4445794d7a51314e6a63344f5746695932526c5a6d646f615770726247317562334278636e4e3064585a3365486c3649697858505345774f325a31626d4e30615739754943516f6443786c4b58743259584967636978764c474573614378734c4841735a7978744c486b3964476870637a74705a6967684b486b676157357a64474675593256765a69416b4b536c795a585231636d3467626d56334943516f6443786c4b5474705a696875645778735054316c4b5874705a6968304a6959684d4430395058517558326c7a516d6c6e546e5674596d56794b584a6c64485679626942354c6e4d396443357a4c485a766157516f49585175593378386443356c506c412f6553356a50586b755a543175645778734f6e51755a54785650336b75597a31626553356c505442644f4d08026968354c6d55396443356c4c486b75597a31304c6d4d75633278705932556f4b536b704f326c6d4b43687750534a75645731695a584969505431306558426c6232596764436b6d4a6a4171644430394d436c376157596f6553357a505445766444777750796830505331304c4330784b546f784c4851395054312b666e517065325a766369686f50544173624431304f32772b505445774f327776505445774c4767724b796b37636d563064584a7549485a766157516f6144355150336b75597a31354c6d5539626e567362446f6f6553356c505767736553356a5056743058536b7066573039553352796157356e4b48517066575673633256376157596f49584d756447567a6443687450564e30636d6c755a7968304b536b70636d563064584a7549476b6f655378744c4841704f336b75637a30304e5430396253356a614746795132396b5a5546304b4441705079687450573075633278705932556f4d536b734c5445704f6a46394b47673962533570626d526c6545396d4b43497549696b70506930784a69596f625431744c6e4a6c634778685932556f496934694c4349694b536b734b4777396253357a5a5746795932676f4c32557661536b70506a412f4b4767384d43596d4b47673962436b73614373394b323075633278705932556f624373784b5378745057307563335669633352796157356e4b44417362436b704f6d67384d4d080243596d4b476739625335735a57356e6447677066575673633256376157596f5969686c4c444973656935735a57356e64476773496b4a68633255694b5377784d4430395a53596d56796c795a585231636d3467566968355057356c6479416b4b4851704c4867726553356c4b7a457354696b376157596f6254315464484a70626d636f64436b7363443069626e5674596d5679496a303964486c775a57396d4948517065326c6d4b444171644345394d436c795a585231636d3467615368354c4730736343786c4b5474705a6968354c6e4d394d5339305044412f4b4730396253357a62476c6a5a5367784b5377744d536b364d53776b4c6b5246516c56484a695a744c6e4a6c634778685932556f4c313477584334774b6e78634c693873496949704c6d786c626d6430614434784e536c3061484a7664794246636e4a766369686d4b33517066575673633255676553357a50545131505430396253356a614746795132396b5a5546304b4441705079687450573075633278705932556f4d536b734c5445704f6a45375a6d39794b4849396569357a62476c6a5a5367774c4755704c476739624430774c476339625335735a57356e644767376244786e4f3277724b796c705a6968794c6d6c755a4756345432596f627a31744c6d4e6f59584a42644368734b536b384d436c376157596f49693469505431764b5874705a696873506d6770654d08023267395a7a746a62323530615735315a5831395a57787a5a5342705a6967685953596d4b47303950573075644739566348426c636b4e686332556f4b53596d4b4730396253353062307876643256795132467a5a5367704b587838625430396253353062307876643256795132467a5a5367704a69596f625431744c6e5276565842775a584a4459584e6c4b436b704b536c37595430684d437873505330784c4767394d44746a62323530615735315a5831795a585231636d3467615368354c464e30636d6c755a7968304b5378774c47557066584139495445734b4767394b473039626968744c4755734d5441736553357a4b536b756157356b5a5868505a6967694c6949704b5434744d54397450573075636d56776247466a5a5367694c694973496949704f6d6739625335735a57356e644768395a6d39794b4777394d4473304f4430395057307559326868636b4e765a475642644368734b5474734b7973704f325a766369686e50573075624756755a33526f4f7a5134505430396253356a614746795132396b5a5546304b4330745a796b374b5474705a69687450573075633278705932556f624377724b3263704b5874705a69686e4c5431734c48416d4a695175524556435655636d4a6d632b4d54556d4a696830506d523866485168505431314b4851704b536c3061484a7664794246636e4a766369686d4b336b75637970304b4d08025474705a69676f6144316f4c5777744d536b2b55436c354c6d4d396553356c50573531624777375a57787a5a5342705a69686f504655706553356a505674354c6d55394d4630375a57787a5a5874705a6968354c6d5539614378354c6d4d39573130736244306f614373784b53566a4c4767384d43596d4b47777250574d704c4777385a796c375a6d39794b47776d4a6e6b755979357764584e6f4b4374744c6e4e7361574e6c4b44417362436b704c47637450574d376244786e4f796c354c6d4d756348567a614367726253357a62476c6a5a5368734c47777250574d704b54747350574d744b4730396253357a62476c6a5a5368734b536b75624756755a33526f6657567363325567624330395a7a746d6233496f4f3277744c5474744b7a30694d4349704f336b755979357764584e6f4b4374744b5831395a57787a5a5342354c6d4d3957336b755a5430775858316d6457356a64476c76626942494b4851735a5378794c47347065335a68636942704c473873637978684c4855376157596f626e567362443039636a397950553436596968794c4441734f436b734958517559796c795a585231636d34676443353062314e30636d6c755a7967704f326c6d4b476b396443356a577a42644c484d396443356c4c4735316247773950575570645431334b48517559796b73645430785054317566487779505431754a69596f637a7739534d0802587838637a343951796b2f587968314c484d704f6b556f6453787a4c43497749696b375a57787a5a5342705a696876505368305056596f626d56334943516f64436b735a5378794b536b755a537868505368315058636f6443356a4b536b75624756755a33526f4c44453950573538664449395057346d4a69686c50443176664878765044314a4b536c375a6d39794b4474685047553764537339496a41694c4745724b796b37645431664b48557362796c395a57787a5a5342705a69686c4c54317a4c485539525368314c473873496a41694b5378764b7a452b59536c376157596f4c53316c506a41705a6d39794b48557250534975496a746c4c53303764537339496a41694b5474395a57787a5a5342705a69676f5a537339627931684b5434774b575a76636968764b7a45395057456d4a6968314b7a30694c6949704f3255744c5474314b7a30694d4349704f334a6c64485679626942304c6e4d384d43596d615438694c5349726454703166575a31626d4e30615739754945636f6443786c4b58746d6233496f646d467949484973626a30784c476b39626d56334943516f6446737758536b37626a78304c6d786c626d6430614474754b79737065326c6d4b43456f636a31755a5863674a436830573235644b536b7563796c37615431794f324a795a5746726657557559324673624368704c4849704a69596f615431794b5831795a4d0802585231636d34676158316d6457356a64476c76626942614b4851735a5378794b58746d6233496f646d4679494734394d53787050575575624756755a33526f4f79466c57793074615630375a5335776233416f4b536b375a6d39794b476b395a56737758547470506a30784d4474704c7a30784d4378754b7973704f334a6c6448567962696879505734726369706a4c544570506c412f6443356a505851755a543175645778734f6e4938565439304c6d4d39573351755a54307758546f6f6443356c505849736443356a505755704c4852395a6e56755933527062323467566968304c475573636978754b58743259584967615378764c484d736143786d4c4751735a7978745058517559797835505841376157596f62536c37644470375a6d39794b476b394d53786f505731624d463037614434394d544137614338394d544173615373724b5474705a69676f627a316c4c576b7050444170627973395979787a505755735a7a306f5a6a3174573251394d4630704c336c626153317a4c5446644a544577664441375a57787a5a5342705a69676f5a4431684b4368764b7a45704c324d704b543439625335735a57356e6447677065326c6d4b4346754b574a795a574672494851375a6d39794b4474744c6d786c626d6430614477395a4474744c6e42316332676f4d436b704f3259395a7a30774c476b394d53787a505368764a54316a4b4d080253316a4b7a46395a57787a5a58746d6233496f5a6a316f505731625a463073615430784f32672b505445774f326776505445774c476b724b796b375a7a306f637a306f6279553959796b74597974704b547777507a41365a69393557326b7463793078585355784d48777766576c6d4b473439626e78385a547777664878756457787349543174573251724d5631386643687a5044412f5a6a706d4a586c626153317a4c5446644b537875505849384e44386f5a33783862696b6d4a69677750543179664878795054306f6443357a5044412f4d7a6f794b536b365a7a3431664877315054316e4a69596f4e443039636e7838626e78384e6a30396369596d4b47382b4d44397a506a412f5a69393557326b74633130364d447074573251744d5630704a5445774a6a463866484939505368304c6e4d384d4438344f6a63704b53786c5044463866434674577a42644b584a6c64485679626942744c6d786c626d6430614430774c47342f4b475574505851755a5373784c4731624d4630396556736f5979316c4a574d704a574e644c4851755a5430745a5878384d436b3662567377585431304c6d55394d4378304f326c6d4b4441395057382f4b473075624756755a33526f50575173614430784c4751744c536b364b473075624756755a33526f505751724d53786f50586c6259793176585378745732526450584d2b4d4439314b475976654d08025674704c584e644a586c62633130704b6d67364d436b7362696c6d6233496f4f7a737065326c6d4b4441395057517065325a766369687650544573637a3174577a42644f334d2b505445774f334d76505445774c4738724b796b375a6d39794b484d3962567377585373396143786f50544537637a34394d544137637938394d544173614373724b5474764954316f4a69596f6443356c4b79737362567377585430396243596d4b4731624d4630394d536b704f324a795a57467266576c6d4b4731625a463072505767736256746b5853453962436c69636d5668617a7474573251744c5630394d43786f505446395a6d39794b473839625335735a57356e644767374d443039505731624c533176585474744c6e4276634367704b5474396443356c506c412f6443356a505851755a543175645778734f6e51755a5478564a69596f6443356a505674304c6d55394d46307066584a6c644856796269423066575a31626d4e306157397549466b6f64436c37646d467949475573636a31304c6d5537636d563064584a75494735316247773950543179503351756447395464484a70626d636f4b546f6f5a5431334b48517559796b735a5431795044314a66487879506a31445031386f5a5378794b5470464b475573636977694d4349704c485175637a7777507949744969746c4f6d557066584a6c644856796269416b4c6d4e736232356c504d08025851734a4335535431564f52463956554430774c435175556b3956546b526652453958546a30784c435175556b3956546b52665130564a544430794c435175556b3956546b5266526b7850543149394d79776b4c6c4a50565535455830684254455a66565641394e43776b4c6c4a50565535455830684254455a6652453958546a30314c435175556b3956546b52665345464d526c3946566b564f505459734a4335535431564f524639495155784758304e46535577394e79776b4c6c4a50565535455830684254455a66526b7850543149394f43776b4c6b56565130784a524430354c435175593239755a6d6c6e505351756332563050575a31626d4e30615739754b48517065335a686369426c4c4849376157596f626e56736243453964436c376157596f496d3969616d566a6443496850585235634756765a6942304b58526f636d393349455679636d39794b476772496b3969616d566a6443426c6548426c5933526c5a446f67496974304b5474705a6968304c6d686863303933626c42796233426c636e52354b475539496b524651306c4e51557866554578425130565449696b6d4a6968694b4849396446746c585377774c4730735a536b73654431794b5378304c6d686863303933626c42796233426c636e52354b475539496c4a50565535455355354858303150524555694b53596d4b47496f636a3130573256644c4441734f4d080243786c4b53784f505849704c4851756147467a5433647555484a766347567964486b6f5a5430695256685154303546546c524a51557866515651694b53596d4b436879505852625a5630704a695a794c6e42766344386f59696879577a42644c4331744c4441735a536b7359696879577a46644c4441736253786c4b53784a50584a624d463073517a3179577a46644b546f6f596968794c4331744c4730735a536b73535430744b454d39636a7777507931794f6e49704b536b736443356f59584e5064323551636d39775a584a306553686c50534a5351553548525349704b576c6d4b436879505852625a5630704a695a794c6e427663436c694b484a624d4630734c5730734c5445735a536b7359696879577a46644c4445736253786c4b53785650584a624d46307355443179577a46644f325673633256376157596f596968794c4331744c4730735a536b7349584970644768796233636752584a796233496f6143746c4b79496759324675626d393049474a6c4948706c636d38364943497263696b37565430744b464139636a7777507931794f6e497066576c6d4b4851756147467a5433647555484a766347567964486b6f5a54306951314a5a5546525049696b7065326c6d4b436879505852625a56307049543039495346794b58526f636d393349455679636d39794b4767725a5373694947357664434230636e566c49473979494d0802475a6862484e6c4f6941694b3349704f326c6d4b48497065326c6d4b434a31626d526c5a6d6c755a575169505431306558426c6232596759334a35634852766648776859334a35634852766648776859334a35634852764c6d646c64464a68626d527662565a686248566c6379596d49574e7965584230627935795957356b623231436558526c63796c3061484a7664794271505346794c455679636d39794b476772496d4e796558423062794231626d463259576c7359574a735a5349704f326f39636e316c62484e6c49476f39636e31705a6968304c6d686863303933626c42796233426c636e52354b475539496b31505246564d5431394e5430524649696b6d4a6968694b4849396446746c585377774c446b735a536b73524431794b5378304c6d686863303933626c42796233426c636e52354b475539496c425056313951556b564453564e4a543034694b53596d4b47496f636a3130573256644c4441736253786c4b537878505849704c4851756147467a5433647555484a766347567964486b6f5a543069526b39535455465549696b7065326c6d4b434a76596d706c59335169495431306558426c6232596f636a3130573256644b536c3061484a7664794246636e4a766369686f4b32557249694275623351675957346762324a715a574e304f6941694b3349704f305939636e31705a6968304c6d686863303933626c4279624d080233426c636e52354b475539496b464d55456842516b565549696b7065326c6d4b434a7a64484a70626d6369495431306558426c6232596f636a3130573256644b5878384c31347550795238577974634c533563633131384b4334704c6970634d5338756447567a644368794b536c3061484a7664794246636e4a766369686f4b32557249694270626e5a6862476c6b4f6941694b3349704f316339496a41784d6a4d304e5459334f446b69505431794c6e4e7361574e6c4b4441734d5441704c486f39636e3139636d563064584a756530524651306c4e5155786655457842513056544f6e6773556b3956546b524a546b6466545539455254704f4c4556595545394f525535555355464d583046554f6c744a4c454e644c464a42546b64464f6c74564c4642644c454e5357564255547a70714c4531505246564d5431394e543052464f6b5173554539585831425352554e4a55306c50546a70784c455a50556b3142564470474c45464d55456842516b56554f6e70396653776b4c6d6c7a516d6c6e546e5674596d567950575a31626d4e30615739754b48517065326c6d4b434630664877684d4345395058517558326c7a516d6c6e546e5674596d56794b584a6c64485679626945784f326c6d4b43456b4c6b5246516c56484b584a6c64485679626945774f335a686369426c4c484973626a31304c6d4d73615431304c6d5573627a31304c4d08026e4d37644470705a69676957323969616d566a64434242636e4a6865563069505431376653353062314e30636d6c755a79356a595778734b4734704b5874705a69676f4d54303950573938664330785054303962796b6d4a6d6b2b505331744a695a70504431744a695a7050543039645368704b536c376157596f4d443039505735624d46307065326c6d4b444139505431704a69597850543039626935735a57356e64476770636d563064584a7549544137596e4a6c59577367644831705a69676f5a54306f615373784b53566a4b5477784a69596f5a53733959796b73553352796157356e4b4735624d4630704c6d786c626d6430614430395a536c375a6d39794b4755394d44746c50473475624756755a33526f4f3255724b796c705a69676f636a3175573256644b54777766487879506a31736648787949543039645368794b536c69636d5668617942304f326c6d4b444168505431794b584a6c6448567962694577665831395a57787a5a5342705a69687564577873505430396269596d626e56736244303950576b6d4a6968756457787350543039623378384d54303950573938664330785054303962796b70636d563064584a7549544137644768796233636752584a796233496f6143736953573532595778705a4342436157644f645731695a5849364943497264436c394c43517562574634615731316254306b4c6d3168654d080244316d6457356a64476c766269677065334a6c64485679626942484b4746795a3356745a573530637978504c6d78304b5830734a43357461573570625856745053517562576c7550575a31626d4e30615739754b436c37636d563064584a754945636f59584a6e6457316c626e527a4c4538755a3351706653776b4c6e4a68626d52766254306f627a30354d4441334d546b354d6a55304e7a51774f546b794c464d3954574630614335795957356b6232306f4b5370764a6a49774f5463784e54452f5a6e5675593352706232346f4b5874795a585231636d34676453684e5958526f4c6e4a68626d5276625367704b6d38706654706d6457356a64476c766269677065334a6c64485679626941344d7a67344e6a41344b6967784d44637a4e7a51784f4449304b6b316864476775636d46755a4739744b436c384d436b724b44677a4f4467324d44677154574630614335795957356b6232306f4b5877774b5830735a6e5675593352706232346f64436c37646d467949475573636978754c476b736279787a505441735a6a3162585378735057356c6479416b4b4651704f326c6d4b473531624777395058512f644431344f6d496f644377774c4730704c476b39595368304c324d704c476f706157596f59334a35634852764c6d646c64464a68626d527662565a686248566c63796c375a6d39794b47553959334a35634852764c6d646c644d0802464a68626d527662565a686248566c637968755a58636756576c7564444d7951584a7959586b6f61536f394d696b704f334d38615473704b4738394d544d784d4463794b6d5662633130724b475662637973785854342b506a45784b536b2b50546c6c4d54552f4b48493959334a35634852764c6d646c64464a68626d527662565a686248566c637968755a58636756576c7564444d7951584a7959586b6f4d696b704c47566263313039636c73775853786c57334d724d563039636c737858536b364b4759756348567a614368764a54466c4d5451704c484d72505449704f334d396153387966575673633256376157596f49574e7965584230627935795957356b623231436558526c63796c3061484a7664794271505345784c455679636d39794b476772496d4e796558423062794231626d463259576c7359574a735a5349704f325a766369686c50574e7965584230627935795957356b623231436558526c637968704b6a30334b54747a50476b374b536876505449344d5451334e446b334e6a63784d4459314e696f6f4d7a456d5a56747a58536b724d5441354f5455784d5459794e7a63334e69706c57334d724d5630724e4449354e446b324e7a49354e69706c57334d724d6c30724d5459334e7a63794d5459715a56747a4b7a4e644b79686c57334d724e463038504445324b53736f5a56747a4b7a5664504477344b53746c574d0802334d724e6c3070506a30355a54453150324e7965584230627935795957356b623231436558526c637967334b53356a623342354b47557363796b364b4759756348567a614368764a54466c4d5451704c484d72505463704f334d396153383366576c6d4b4346714b575a7663696737637a78704f796b6f627a31544b436b7050446c6c4d54556d4a69686d57334d724b313039627955785a5445304b54746d6233496f6154316d577930746331307364435539597978704a695a304a69596f627a317757324d74644630735a6c747a585431314b476b7662796b7162796b374d44303950575a62633130375a6935776233416f4b53787a4c5330704f326c6d4b484d384d436c6d50567475505442644f325673633256375a6d39794b4734394c5445374d44303950575a624d4630375a69357a634778705932556f4d4377784b5378754c54316a4b54746d6233496f637a30784c4738395a6c737758547476506a30784d4474764c7a30784d43787a4b7973704f334d385979596d4b47347450574d7463796c39636d563064584a75494777755a5431754c477775597a316d4c4778394b53776b4c6e4e316254316d6457356a64476c766269677065325a766369683259584967644430784c47553959584a6e6457316c626e527a4c484939626d56334943516f5a56737758536b376444786c4c6d786c626d643061447370636a31794c6e4273644d0802584d6f5a5674304b7974644b5474795a585231636d3467636e3073626a316d6457356a64476c766269677065335a6863694230505349774d54497a4e4455324e7a6735496a746d6457356a64476c766269426c4b4851735a5378794c47347065325a766369683259584967615378764c484d39577a42644c4745394d43783150585175624756755a33526f4f3245386454737065325a766369687650584d75624756755a33526f4f3238744c54747a573239644b6a316c4b54746d6233496f633173775853733962693570626d526c6545396d4b48517559326868636b46304b4745724b796b704c476b394d44747050484d75624756755a33526f4f326b724b796c7a57326c64506e49744d53596d4b4735316247773950584e62615373785853596d4b484e6261537378585430774b53787a57326b724d56307250584e6261563076636e77774c484e626156306c5058497066584a6c644856796269427a4c6e4a6c646d56796332556f4b5831795a585231636d34675a6e5675593352706232346f626978704c473873637978684b587432595849676453786f4c4759736243786a4c4751736343786e4c47303962693570626d526c6545396d4b43497549696b73655431344c485939546a746d6233496f625434394d43596d4b4777396353787850544173626a31754c6e4a6c634778685932556f496934694c4349694b53786b5053686e504d080257356c6479416b4b476b704b5335776233636f626935735a57356e6447677462536b73635431734c476375597a316c4b45556f6479686b4c6d4d704c4751755a5377694d4349704c4445774c47387364436b735a79356c50576375597935735a57356e644767704c4759396244306f6344316c4b473473615378764c47452f4b485539656978304b546f6f645431304c486f704b536b75624756755a33526f4f7a4139505842624c533173585474774c6e4276634367704b5474705a6967686346737758536c795a585231636d34676453356a614746795158516f4d436b376157596f62547777507930745a6a6f6f5a43356a505841735a43356c505759735a43357a50584d736344306f5a4431794b4751735a7978354c48597362796b704c6d4d73597a316b4c6e49735a6a316b4c6d55704c4730396346746f505759726553737858537873505738764d69786a50574e38664767384d487838626e5673624345396346746f4b7a46644c474d39646a77305079687564577873495431746648786a4b53596d4b44413950585a38664859395053686b4c6e4d384d44387a4f6a49704b547074506d7838664730395057776d4a696730505431326648786a66487732505431324a6959784a6e42626143307858587838646a30394b475175637a7777507a67364e796b704c4767384d587838495842624d463070626a316a5030556f6453356a614d08024746795158516f4d536b734c586b736453356a614746795158516f4d436b704f6e557559326868636b46304b4441704f325673633256376157596f634335735a57356e644767396143786a4b575a76636967744c5738374b797477577930746146302b627a73706346746f585430774c476838664367724b325973634431624d56307559323975593246304b4841704b54746d6233496f624431774c6d786c626d643061447368634673744c5778644f796b375a6d39794b4730394d437875505349694f32303850577737626973396453356a614746795158516f634674744b7974644b536b37626a31464b4734735a6978314c6d4e6f59584a42644367774b536c39636d563064584a7549473539665367704c4849395a6e5675593352706232346f4b58746d6457356a64476c76626942304b4851735a5378794b58743259584967626978704c4738736379786850544173645431304c6d786c626d64306143786f5057556c5a79786d505755765a3377774f325a766369683050585175633278705932556f4b5474314c5330374b5745394b436870505767714b473839644674315853566e4b53736f626a316d4b6d38724b484d39644674315853396e664441704b6d67704a5763715a7974684b533979664441704b7968754c3264384d436b725a69707a4c48526264563039615356794f334a6c64485679626942684a69596f64443162594d080256307559323975593246304b4851704b53783066575a31626d4e30615739754947556f6443786c4c48497362696c37646d467949476b73627a74705a696879495431754b573839636a3575507a45364c5445375a57787a5a53426d6233496f6154317650544137615478794f326b724b796c705a69683057326c644954316c57326c644b587476505852626156302b5a567470585438784f6930784f324a795a57467266584a6c644856796269427666575a31626d4e30615739754948496f6443786c4c48497362696c375a6d39794b485a686369427050544137636930744f796c3057334a644c5431704c476b39644674795854786c57334a64507a45364d43783057334a6450576b716269743057334a644c575662636c30375a6d39794b447368644673775853596d644335735a57356e6447672b4d5474304c6e4e7762476c6a5a5367774c4445704b547439636d563064584a7549475a31626d4e30615739754b473473615378764c484d7359536c37646d4679494767735a69786b4c4841735a7978744c486373646978694c453073587978464c464d73556978424c4549735443787250573475637a30396153357a507a45364c544573547a31754c6d4d73564431704c6d4d376157596f495368504a695a50577a42644a695a554a695a55577a42644b536c795a585231636d3467626d56334943516f6269357a4a695a704c6e4d6d4a4d08026968505079465566487850577a426449543155577a42644f6c51705030386d4a6a4139505539624d46313866434655507a4171617a70724c7a4136546d464f4b54746d6233496f596a306f646a31755a5863674a4368724b536b75597a316258537872505738724b4759396269356c4c576b755a536b724d5378686648776f595431734c475939655368754c6d557659796b74655368704c6d557659796b73617a31724c324e384d436b735a4430774f3152625a4630395053685057325264664877774b54746b4b7973704f326c6d4b4652625a46302b4b4539625a463138664441704a695a6d4c533073617a77774b5749756348567a614367784b537877505345774f325673633256375a6d39794b464939547935735a57356e64476773516a31554c6d786c626d64306143786b50544173617973394d69776f5a7a31314b4745764b4652624d4630724d536b704b5434784a69596f564431304b4651735a7978684b5378505058516f5479786e4c4745704c454939564335735a57356e64476773556a31504c6d786c626d643061436b73557a31434c4638394b4530395479357a62476c6a5a5367774c4549704b5335735a57356e64476737587a78434f30316258797372585430774b54744d50565175633278705932556f4b53784d505673775853356a6232356a5958516f54436b7351543155577a42644c4652624d56302b505745764d4d080269596d515373724f32527665326c6d4b4763394d43776f6144316c4b465173545378434c4638704b5477774b5874705a696846505531624d463073516945395879596d4b455539525370684b79684e577a4664664877774b536b734b476339645368464c3045704b5434784b575a766369686e506a31684a69596f5a7a31684c5445704c4863394b473039644368554c47637359536b704c6d786c626d64306143786650553075624756755a33526f4f7a45395057556f6253784e4c48637358796b374b5763744c5378794b473073516a783350307736564378334c4745704c486339625335735a57356e64476773614430784f325673633255674d4430395a79596d4b4767395a7a30784b5378335053687450565175633278705932556f4b536b75624756755a33526f4f326c6d4b4863385879596d4b473039577a42644c6d4e76626d4e68644368744b536b736369684e4c473073587978684b53786650553075624756755a33526f4c4330785054316f4b575a76636967375a5368554c453073516978664b5477784f796c6e4b7973736369684e4c454938587a394d4f6c5173587978684b53786650553075624756755a33526f66575673633255674d4430395057676d4a69686e4b797373545431624d4630704f324a625a4373725854316e4c4531624d46302f545674664b7974645055396255313138664441364b45303957303962554d08023131644c4638394d536c39643268706247556f4b464d724b7a785366487875645778734954314e577a42644b53596d617930744b5474775057353162477768505531624d463073596c7377585878385969357a634778705932556f4d4377784b5831705a696868505431734b58746d6233496f5a4430784c477339596c737758547472506a30784d4474724c7a30784d43786b4b7973704f31596f646978764b7968324c6d55395a43746d4b6d4d744d536b724d53787a4c48417066575673633255676469356c5057597364693579505374774f334a6c64485679626942326658306f4b537853505339654b43302f4b54416f57336869623130704b443839584864625848637558536f6b4b5339704c4545394c31346f57313475585373705843346b4c797843505339655843346f57313475585373704a433873544430765869302f4b456c755a6d6c75615852356645356854696b6b4c7978725053396558484d715843736f507a31625848637558536c38586c787a4b3378636379736b4c3263736154316d6457356a64476c76626968304c475573636978754b58743259584967615378765058492f5a54706c4c6e4a6c634778685932556f6179776949696b376157596f544335305a584e304b4738704b585175637a317063303568546968764b543975645778734f6d38384d4438744d546f784f325673633256376157596f4958496d4a4d080269687650573875636d56776247466a5a5368534c43686d6457356a64476c76626968304c47557363696c37636d563064584a7549476b39496e67695054306f636a31794c6e5276544739335a584a4459584e6c4b436b70507a45324f694a69496a3039636a38794f6a67736269596d62694539615439304f6d56394b536b736269596d4b476b396269787650573875636d56776247466a5a5368424c43496b4d5349704c6e4a6c634778685932556f516977694d43346b4d5349704b53786c495431764b536c795a585231636d3467626d56334943516f627978704b5474705a69676b4c6b5246516c56484b58526f636d393349455679636d39794b476772496b3576644342684969736f626a386949474a6863325567496974754f6949694b5373694947353162574a6c636a6f674969746c4b5474304c6e4d39626e5673624831304c6d4d396443356c50573531624778394c45387559574a7a6232783164475657595778315a5431504c6d4669637a316d6457356a64476c766269677065335a68636942305057356c6479416b4b48526f61584d704f334a6c64485679626942304c6e4d384d43596d4b485175637a30784b537830665378504c6d4e7662584268636d566b564738395a6e5675593352706232346f6443786c4b5874795a585231636d34676469683061476c7a4c47356c6479416b4b4851735a536b70665378504c6d526c594d0802326c74595778516247466a5a584d395479356b6344316d6457356a64476c76626968304c47557065335a68636942794c473473615378765058526f61584d376157596f626e56736243453964436c795a585231636d3467596968304c44417362536b73626e5673624430395a54396c505534365969686c4c4441734f436b73566968755a5863674a4368764b5378304b3238755a5373784c4755704f326c6d4b43456f636a31764c6d4d704b584a6c6448567962694275645778734f326c6d4b4734394b43687050584975624756755a33526f4c5445704c586b6f644768706379356c4c324d704b53706a4c476b39636c747058536c6d6233496f4f326b6c4d54413950544137615338394d544173626930744b5474795a585231636d3467626a77774a69596f626a30774b537875665378504c6d5270646d6c6b5a575243655431504c6d5270646a316d6457356a64476c76626968304c47557065334a6c64485679626942794b48526f61584d73626d56334943516f6443786c4b5378344c453470665378504c6d5270646d6c6b5a57525562306c756447566e5a584a43655431504c6d6c6b615859395a6e5675593352706232346f6443786c4b5874795a585231636d34676369683061476c7a4c47356c6479416b4b4851735a536b734d4377784b5830735479356c65484276626d567564476c686447566b516e6b3954793577623363395a4d08026e5675593352706232346f6443786c4b58743259584967636978754c476b736279787a4c4759736243786b4c48413964476870637a74705a69676f644431755a5863674a4368304b536b755979596d4958517561584e4a626e526c5a3256794b436b70644768796233636752584a796233496f61437369525868776232356c626e5167626d39304947467549476c756447566e5a58493649434972575368304b536b376157596f626e5673624345395a53596d4b475539626d56334943516f5a536b704c484d396443356c506a45304c4346774c6d4e38664346774c6d4e624d4631386644453950584175593173775853596d495841755a53596d4d5430396343356a4c6d786c626d6430614878384958517559337838495851755931737758536c795a585231636d34675a4431755a5863674a43684e5958526f4c6e427664796772575368774b53787a507a4974545368304b546f72575368304b536b704c47552f5a4335746232516f5a536b365a4474705a69686d50585175637a77774c47557065326c6d4b475575597a38685a53356a577a42644f69466c4c6e4d70636d563064584a754947356c6479416b4b45356854696b374b4734394957596d4a6e417561584e4a626e526c5a3256794b436b6d4a6d557561584e4a626e526c5a3256794b436b704a69596f634431774c6d31765a43686c4b536c395a57787a5a5874705a6968304c4d08026d552b4f53596d4b4841755a543477664878774c6d55384c54463866436777505431774c6d552f6343356a577a4264506a463866484d6d4a6e417559317378585434394d6a526c4e7a70774c6d4e624d4630384f4755784d3378386379596d6343356a577a4264504430354f546b354f5463315a5463704b536c795a585231636d3467627a31774c6e4d384d43596d545368304b5438744d446f774c4841755a5434744d53596d4b4738394d5339764b5378755a5863674a43686d507a4576627a70764b5474784a69596f627a31684b484576597973794b536c395a6d39794b484d2f4b484939626d56334943516f4c6a55704c47596d4a6968304c6e4d394d536b736244314e4b4851704b54707350536870505531686447677559574a7a4b43745a4b4851704b536b6c4d69786b5057356c6479416b4b4651704f7a737065326c6d4b47777065326c6d4b43456f5a44316b4c6e52706257567a4b4841704b53356a4b574a795a5746724f32382f5a43356a4c6d786c626d6430614435764a69596f5a43356a4c6d786c626d6430614431764b5470754a69596f5a44316b4c6d31765a43686c4b536c396157596f61536c376157596f4d443039505368705058556f615338794b536b70596e4a6c59577337624431704a544a395a57787a5a5342705a6968574b485139644335306157316c637968794b5378304c6d55724d5377784b5378304c4d08026d552b4d5451706244314e4b4851704f325673633256376157596f4d443039505368705053745a4b4851704b536c69636d5668617a747350576b6c4d6e31775058417564476c745a584d6f63436b73627a39774c6d4d6d4a6e4175597935735a57356e6447672b6279596d4b484175597935735a57356e6447673962796b366269596d4b484139634335746232516f5a536b7066584a6c6448567962694275503251364b47596d4a69686b505651755a476c324b4751704b53786c503251756257396b4b4755704f6d382f5669686b4c48457354697831626d526c5a6d6c755a5751704f6d5170665378504c6d6c756447566e5a584a57595778315a54316d6457356a64476c76626968304b587432595849675a5431755a5863674a43683061476c7a4b5474795a585231636d3467626e5673624430396444393050553436596968304c4441734f436b735669686c4c4755755a5373784c485170665378504c6d6c7a5258463159577855627a31504c6d567850575a31626d4e30615739754b4851735a536c37636d563064584a7549444139505431324b48526f61584d73626d56334943516f6443786c4b536c394c45387561584e4761573570644755395a6e5675593352706232346f4b5874795a585231636d34684958526f61584d755933307354793570633064795a5746305a584a5561474675505538755a3351395a6e567559335270624d080232346f6443786c4b5874795a585231636d34676469683061476c7a4c47356c6479416b4b4851735a536b70506a42394c45387561584e48636d56686447567956476868626b39795258463159577855627a31504c6d64305a54316d6457356a64476c76626968304c47557065334a6c6448567962694178505430394b4755396469683061476c7a4c47356c6479416b4b4851735a536b704b5878384d443039505756394c45387561584e4a626e526c5a32567950575a31626d4e30615739754b436c37636d563064584a754953463061476c7a4c6d4d6d4a6e6b6f644768706379356c4c324d70506e526f61584d75597935735a57356e644767744d6e3073547935706330786c63334e556147467550553875624851395a6e5675593352706232346f6443786c4b5874795a585231636d34676469683061476c7a4c47356c6479416b4b4851735a536b70504442394c45387561584e4d5a584e7a56476868626b39795258463159577855627a31504c6d78305a54316d6457356a64476c76626968304c47557065334a6c6448567962693078505430394b4755396469683061476c7a4c47356c6479416b4b4851735a536b704b5878384d443039505756394c45387561584e4f595534395a6e5675593352706232346f4b5874795a585231636d3468644768706379357a665378504c6d6c7a546d566e59585270646d55395a6e567559335270624d080232346f4b5874795a585231636d3467644768706379357a504442394c45387561584e5162334e7064476c325a54316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6e4d2b4d483073547935706331706c636d38395a6e5675593352706232346f4b5874795a585231636d34684958526f61584d755979596d4d443039644768706379356a577a4264665378504c6d3170626e567a50575a31626d4e30615739754b4851735a536c37646d467949484973626978704c473873637a313061476c7a4c4745396379357a4f326c6d4b4755394b485139626d56334943516f6443786c4b536b75637977685958783849575570636d563064584a754947356c6479416b4b45356854696b376157596f595345395a536c795a585231636d34676443357a5053316c4c484d7563477831637968304b547432595849676454317a4c6d55765979786f505851755a53396a4c4759396379356a4c4751396443356a4f326c6d4b4346316648776861436c376157596f49575a386643466b4b584a6c644856796269426d507968304c6e4d394c57557364436b36626d56334943516f5a44397a4f6b356854696b376157596f49575a624d4631386643466b577a42644b584a6c644856796269426b577a4264507968304c6e4d394c57557364436b36626d56334943516f5a6c73775854397a4f6a4d395055342f4c5441364d436c39614d080257596f645431354b4855704c4767396553686f4b53786d50575975633278705932556f4b5378685058557461436c375a6d39794b436876505745384d436b2f4b4745394c5745736154316d4b546f6f614431314c476b395a436b73615335795a585a6c636e4e6c4b436b735a5431684f3255744c5474704c6e42316332676f4d436b704f326b75636d56325a584a7a5a53677066575673633255675a6d39794b4734394b4738394b4745395a6935735a57356e644767705043686c50575175624756755a33526f4b536b2f5954706c4c4745395a5430774f325538626a746c4b7973706157596f5a6c746c585345395a46746c58536c37627a316d57325664504752625a563037596e4a6c595774396157596f6279596d4b476b395a69786d505751735a4431704c485175637a30746443357a4b53776f5a54306f626a316b4c6d786c626d643061436b744b4849395a6935735a57356e644767704b5434774b575a76636967375a5330744f325a6263697372585430774b54746d6233496f5a5431734c544537626a35684f796c376157596f5a6c73744c57356450475262626c307065325a7663696879505734376369596d49575a624c5331795854746d57334a64505755704f7930745a6c74795853786d573235644b7a317366575a62626c307450575262626c31395a6d39794b4473775054316d577a42644f3259756333427361574e6c4b4d08024441734d536b734c53316f4b5474795a585231636d34675a6c7377585439614b4851735a69786f4b546f6f6443357a50544d395055342f4c5445364d5378304c6d4d39573351755a543077585378304b58307354793574623252316247383954793574623251395a6e5675593352706232346f6443786c4b58743259584967626978704c47383964476870637a74795a585231636d3467644431755a5863674a4368304c4755704c4346764c6d4e38664346304c6e4e38664851755979596d4958517559317377585439755a5863674a43684f595534704f6946304c6d4e38664738755979596d4957387559317377585439755a5863674a4368764b546f6f4f5430395244386f615431304c6e4d736443357a50544573626a31794b473873644377774c444d704c485175637a31704c47347563796f3961536b36626a31794b473873644377774c4551704c4368305057387562576c7564584d6f626935306157316c637968304b536b704c6d4e624d4631386644456850555238664368304c6e4d396279357a4b5378304b5830735479357464577830615842736157566b516e6b39547935306157316c637a316d6457356a64476c76626968304c47557065335a68636942794c473473615378764c484d73595378314c4767735a69786b4c484173625378334c4859735969784e5058526f61584d73587a314e4c6d4d735254306f644431755a4d08025863674a4368304c4755704b53356a4f326c6d4b43456f5879596d5253596d583173775853596d5256737758536b70636d563064584a75495530756333783849585175633378385879596d495639624d46306d4a694646664878464a695968525673775853596d4956382f6443356a505851755a5431304c6e4d39626e567362446f6f6443357a4b6a314e4c6e4d735879596d5254386f6443356a50567377585378304c6d55394d436b366443356a505851755a543175645778734b5378304f325a766369687550586b6f5453356c4c324d704b336b6f6443356c4c324d704c48517563796f395453357a4c43683150563875624756755a33526f4b54776f5a4431464c6d786c626d643061436b6d4a69683350563873587a31464c45553964797870505855736454316b4c47513961536b73615431314b325173647a3162585474704c5330376479357764584e6f4b4441704b54746d6233496f646a31734c4749395a797870505751374c533170506a30774f796c375a6d39794b4849394d437877505556626156306c596978745055566261563076596e77774c4738396153736f637a31314b547476506d6b374b5849394b43686f505841714b476739583173744c584e644a5749704b796868505730716143736f5a6a316657334e644c324a384d436b7163436b6c596970694b3364626231307263696b76646e77774b53736f59533969664d08024441704b3230715a697833573238744c563039614356324f33646262313039636e31795a585231636d3467636a38724b3234366479357a634778705932556f4d4377784b5378614b485173647978754b583073547935755a5764686447566b50575a31626d4e30615739754b436c37646d467949485139626d56334943516f6447687063796b37636d563064584a7549485175637a30746443357a66487875645778734c4852394c45387563477831637a316d6457356a64476c76626968304c47557065335a68636942794c473439644768706379787050573475637a74705a69686c505368305057356c6479416b4b4851735a536b704c6e4d7349576c386643466c4b584a6c64485679626942755a5863674a43684f595534704f326c6d4b476b6850575570636d563064584a7549485175637a30745a5378754c6d3170626e567a4b4851704f335a6863694276505734755a53396a4c484d396443356c4c324d73595431754c6d4d73645431304c6d4d376157596f495739386643467a4b5874705a6967685958783849585570636d563064584a754947356c6479416b4b476b764d436b376157596f495746624d46313866434631577a42644b584a6c6448567962694231577a426450335136626d56334943516f59567377585439754f6a417161536c396157596f627a31354b4738704c484d396553687a4b5378685057457563327870594d080232556f4b5378705057387463796c375a6d39794b476b2b4d44386f637a31764c48493964536b364b476b394c576b73636a31684b5378794c6e4a6c646d56796332556f4b5474704c5330376369357764584e6f4b4441704b5474794c6e4a6c646d56796332556f4b58316d6233496f4b476b39595335735a57356e644767704c53686c50585575624756755a33526f4b5477774a69596f636a31314c48553959537868505849735a5431704b537870505441375a5473706154306f595673744c575664505746625a5630726456746c585374704b533973664441735956746c58543173505430395956746c585438774f6d46625a56306c624474795a585231636d34676153596d4b47453957326c644c6d4e76626d4e68644368684b5377724b334d704c466f6f644378684c484d70665378504c6e42795a574e7063326c76626a31504c6e4e6b50575a31626d4e30615739754b4851735a536c37646d467949484973626978704c47383964476870637a74705a69687564577873495431304a695a3049543039495346304b584a6c64485679626942694b4851734d5378744b537875645778735054316c50325539546a70694b4755734d4377344b5378574b47356c6479416b4b4738704c4851735a536b376157596f495368795057387559796b70636d563064584a7549473531624777376157596f626a306f615431794c6d786c626d6430614d08024330784b53706a4b7a45736154317957326c644b58746d6233496f4f326b6c4d54413950544137615338394d544173626930744b54746d6233496f61543179577a42644f326b2b505445774f326b76505445774c4734724b796b3766584a6c64485679626942304a695a764c6d55724d5435754a69596f626a31764c6d55724d536b73626e30735479357a61476c6d6447566b516e6b395a6e5675593352706232346f64436c37636d563064584a754947496f644377744f5441774e7a45354f5449314e4463304d446b354d53786b4b53783061476c7a4c6e52706257567a4b4349785a53497264436c394c4538756333463159584a6c556d3976644431504c6e4e78636e51395a6e5675593352706232346f4b587432595849676443786c4c473473615378764c484d39644768706379786850584d755979783150584d756379786f50584d755a53786d505867724e4378735057356c6479416b4b4349774c6a55694b5474705a69677849543039645878384957463866434668577a42644b584a6c64485679626942755a5863674a43676864587838645477774a69596f49574638664746624d46307050303568546a706850334d364d5338774b5474705a6967775054306f6454314e5958526f4c6e4e78636e516f4b316b6f63796b704b587838645430394d5338775079676f4b475539647968684b536b75624756755a33526f4b3267704a4d08025449395054416d4a69686c4b7a30694d4349704c485539545746306143357a63584a304b43746c4b53786f50586b6f4b4767724d536b764d696b744b4767384d487838614355794b5378755057356c6479416b4b475539645430394d533877507949315a53497261446f6f5a5431314c6e5276525868776232356c626e52705957776f4b536b75633278705932556f4d43786c4c6d6c755a4756345432596f496d55694b5373784b53746f4b536b36626a31755a5863674a4368314b7949694b5378754c6d4e624d4630705a6d39794b4368315053686f505734755a536b725a696b384d79596d4b4855394d436b374f796c705a69687650573473626a31734c6e52706257567a4b47387563477831637968794b484d736279786d4c4445704b536b73647968764c6d4d704c6e4e7361574e6c4b44417364536b395054306f5a5431334b47347559796b704c6e4e7361574e6c4b44417364536b7065326c6d4b4734755a54786f4a6959744c585573496a6b354f546b694954306f5a54316c4c6e4e7361574e6c4b4855744d7978314b7a45704b53596d4b476c38664349304f546b35496945395a536b706579746c4a69596f4b325575633278705932556f4d536c3866434931496945395a53356a614746795158516f4d436b706648776f566968754c4734755a5374344b7a49734d536b7364443068626935306157316c637968754b53356c634d080253687a4b536b37596e4a6c595774396157596f49576b6d4a6968574b4738736279356c4b3367724d6977774b5378764c6e52706257567a4b4738704c6d56784b484d704b536c37626a31764f324a795a5746726657597250545173645373394e43787050544639636d563064584a754946596f626978754c6d5572654373784c45347364436c394c4538756447394665484276626d567564476c686244316d6457356a64476c76626968304c47557065334a6c644856796269427564577873495431304a69596f596968304c44417362536b73644373724b5378494b48526f61584d736443786c4c444570665378504c6e5276526d6c345a5751395a6e5675593352706232346f6443786c4b5874795a585231636d3467626e5673624345396443596d4b47496f644377774c4730704c4851396443743061476c7a4c6d55724d536b735343683061476c7a4c4851735a536c394c4538756447394762334a74595851395a6e5675593352706232346f6443786c4c48497065335a68636942754c476b3964476870637a74705a69687564577873505431794b573531624777685058516d4a6d556d4a694a76596d706c59335169505431306558426c623259675a54386f636a316c4c475539626e567362436b366443596d496d3969616d566a6443493950585235634756765a69423050796879505851736444316c50573531624777704f6e4939524d08026a746c62484e6c49476c6d4b434a76596d706c59335169495431306558426c6232596763696c3061484a7664794246636e4a766369686f4b794a42636d64316257567564434275623351675957346762324a715a574e304f6941694b3349704f326c6d4b4734396153353062305a706547566b4b4851735a536b736153356a4b587432595849676279787a50573475633342736158516f496934694b537868505374794c6d64796233567755326c365a537831505374794c6e4e6c593239755a474679655564796233567755326c365a53786d505849755a334a76645842545a584268636d463062334a38664349694c477739633173775853786a50584e624d5630735a4431704c6e4d384d4378775057512f6243357a62476c6a5a5367784b5470734c476339634335735a57356e644767376157596f6453596d4b4738395953786850585573645431764c476374505738704c47452b4d43596d5a7a34774b58746d6233496f627a316e4a57463866474573624431774c6e4e31596e4e30636967774c4738704f3238385a7a74764b7a31684b577772505759726343357a64574a7a6448496f627978684b547431506a416d4a6968734b7a316d4b334175633278705932556f62796b704c47516d4a69687350534974496974734b58317550574d2f6243736f6369356b5a574e70625746735532567759584a68644739796648776949696b724b4d0802436831505374794c6d5a7959574e306157397552334a76645842546158706c4b54396a4c6e4a6c634778685932556f626d563349464a6c5a305634634367695846786b65794972645373696656786351694973496d63694b5377694a4359694b7968794c6d5a7959574e306157397552334a76645842545a584268636d463062334a38664349694b536b3659796b36624831795a585231636d346f63693577636d566d61586838664349694b5374754b7968794c6e4e315a6d5a706548783849694970665378504c6e5276526e4a6859335270623234395a6e5675593352706232346f64436c37646d467949475573626978704c473873637978684c4855735a6978734c4751735a7978744c486b39644768706379783250586b75597a74705a69687564577873495431304a69596f495368315057356c6479416b4b4851704b53357063306c756447566e5a58496f4b53596d4b485575593378384d5345395058557563796c38664855756248516f56436b704b58526f636d393349455679636d39794b476772496b46795a3356745a573530494349724b48557561584e4a626e526c5a3256794b436b2f496d3931644342765a6942795957356e5a546f67496a6f69626d39304947467549476c756447566e5a584936494349704b316b6f64536b704f326c6d4b4346324b584a6c64485679626942755a5863674a4368354b54746d6233496f5a4d08025431755a5863674a4368554b53787350573439626d56334943516f56436b736154316d5057356c6479416b4b4651704c473039647968324b53787a505755755a5431744c6d786c626d6430614331354c6d55744d53786c4c6d4e624d4630396346736f5954317a4a574d705044412f597974684f6d46644c485139495852386648557559323974634746795a5752556279686c4b54347750334d2b4d44396c4f6d77366453786850564173554430784c7a4173645431755a5863674a4368744b53786d4c6d4e624d4630394d44746b5058496f6453786c4c4441734d536b734d5345394b473839626935776248567a4b47517564476c745a584d6f61536b704b53356a6232317759584a6c5a4652764b4851704f796c7550576b73615431764c4777395a6935776248567a4b47517564476c745a584d6f627a31734b536b735a6a31764c47553964533574615735316379686b4c6e52706257567a4b4738395a536b704c485539627a74795a585231636d3467627a31794b48517562576c7564584d6f62696b73615377774c4445704c4759395a6935776248567a4b47387564476c745a584d6f62436b704c473439626935776248567a4b47387564476c745a584d6f61536b704c475975637a31734c6e4d396553357a4c476339636968734c476b7363796f394d69784f4b53357461573531637968354b533568596e4d6f4b53356a62323177594d0802584a6c5a4652764b48496f5a6978754c484d7354696b7562576c7564584d6f65536b7559574a7a4b436b705044452f573277736156303657325973626c3073554431684c4764394c4538756447394f645731695a5849395a6e5675593352706232346f4b5874795a585231636d34725753683061476c7a4b58307354793530623142795a574e7063326c76626a316d6457356a64476c76626968304c47557065334a6c644856796269427564577873495431304a695a694b4851734d5378744b5378494b48526f61584d736443786c4c444970665378504c6e5276553352796157356e50575a31626d4e30615739754b48517065335a686369426c4c48493964476870637978705058497563797876505849755a5474795a585231636d3467626e5673624430395057382f6154386f5a5430695357356d6157357064486b694c476b384d43596d4b475539496930694b3255704b54706c50534a4f595534694f696875645778735054313050325539627a773953587838627a3439517a39664b48636f6369356a4b5378764b5470464b48636f6369356a4b5378764c43497749696b364d544139505431304a695a5850325539525368334b4368795056596f626d56334943516f63696b73654374764b7a457354696b704c6d4d704c4849755a5377694d4349704f6968694b4851734d6978364c6d786c626d643061437769516d467a5a5349704c4d0802475539626968464b48636f6369356a4b5378764c43497749696b734d544173644378704c4345774b536b73615477774a695a794c6d4e624d46306d4a69686c505349744969746c4b536b735a58307354793532595778315a55396d505538756447394b5530394f50575a31626d4e30615739754b436c37636d563064584a7549466b6f6447687063796c394c45387558326c7a516d6c6e546e5674596d5679505345774c473531624777685057556d4a695175633256304b4755704c4352394b436b736279356b5a575a686457783050573875516d6c6e546e5674596d567950573873646d39705a434177505430394b4734395a6e5675593352706232346f4b5874795a585231636d346762333075593246736243686c4c4849735a5378304b536c38664368304c6d56346347397964484d3962696c394b436c394c4455314d44706d6457356a64476c76626968304c47557363696c3749575a31626d4e30615739754b4851735a536c37496e567a5a53427a64484a70593351694f325a31626d4e30615739754947346f6443786c4b5874705a69676864436c3061484a76647942755a58636752584a796233496f5a587838496b467a6332567964476c766269426d59576c735a5751694b58316d6457356a64476c76626942704b4851735a536c376443357a6458426c636c38395a54743259584967636a316d6457356a64476c7662696770654d080233303763693577636d393062335235634755395a533577636d3930623352356347557364433577636d39306233523563475539626d56334948497364433577636d39306233523563475575593239756333527964574e30623349396448316d6457356a64476c76626942764b4851735a5378794b5874705a6968764c6d6c7a516b346f64436b70636d563064584a754948513764476870637935755a57646864476c325a5430774c48526f61584d75643239795a484d39626e56736243783061476c7a4c6d786c626d6430614430774c48526f61584d75636d566b5057353162477773626e5673624345395058516d4a69676962475569495430395a53596d496d4a6c496945395057563866436879505755735a5430784d436b7364476870637935666157357064436830664877774c475638664445774c484a3866434a695a5349704b58313259584967637a736962324a715a574e30496a303964486c775a57396d4948512f6443356c65484276636e527a505738365a533543546a31764c473875516b3439627978764c6e6476636d52546158706c505449324f3352796558747a50534a31626d526c5a6d6c755a575169495431306558426c6232596764326c755a4739334a695a3262326c6b49444168505431336157356b62336375516e566d5a6d567950336470626d52766479354364575a6d5a584936636967324d4445704c6b4a315a4d08026d5a6c636e316a5958526a614368304b5874395a6e56755933527062323467595368304c47557065335a68636942795058517559326868636b4e765a4756426443686c4b5474795a585231636d3467636a34394e44676d4a6e493850545533503349744e446736636a34394e6a556d4a6e493850546377503349744e545536636a34394f54636d4a6e4938505445774d6a39794c5467334f6e5a7661575167626967684d53776953573532595778705a43426a6147467959574e305a58496761573467496974304b58316d6457356a64476c76626942314b4851735a5378794b58743259584967626a31684b48517363696b37636d563064584a75494849744d5434395a53596d4b4735385057456f644378794c544570504477304b53787566575a31626d4e30615739754947676f6443786c4c48497361536c375a6d39794b485a686369427650544173637a30774c47453954574630614335746157346f644335735a57356e6447677363696b736454316c4f335538595474314b79737065335a686369426f5058517559326868636b4e765a475642644368314b5330304f4474764b6a31704c484d39614434394e446b2f614330304f5373784d44706f506a30784e7a396f4c5445334b7a45774f6d67736269686f506a30774a695a7a50476b73496b6c75646d46736157516759326868636d466a6447567949696b7362797339633331795a4d0802585231636d34676233316d6457356a64476c766269426d4b4851735a536c376443353362334a6b637a316c4c6e6476636d527a4c485175624756755a33526f50575575624756755a33526f4c485175626d566e59585270646d55395a5335755a57646864476c325a5378304c6e4a6c5a44316c4c6e4a6c5a4831705a6968764c6d6c7a516b34395a6e5675593352706232346f64436c37636d563064584a75494851676157357a64474675593256765a6942766648787564577873495430396443596d496d3969616d566a6443493950585235634756765a6942304a695a304c6d4e76626e4e30636e566a644739794c6e6476636d52546158706c505430396279353362334a6b55326c365a53596d51584a7959586b7561584e42636e4a68655368304c6e6476636d527a4b58307362793574595867395a6e5675593352706232346f6443786c4b5874795a585231636d34676443356a6258416f5a536b2b4d4439304f6d56394c47387562576c7550575a31626d4e30615739754b4851735a536c37636d563064584a7549485175593231774b4755705044412f6444706c665378764c6e42796233527664486c775a533566615735706444316d6457356a64476c76626968304c47557363696c376157596f496d353162574a6c6369493950585235634756765a6942304b584a6c644856796269423061476c7a4c6c3970626d6c30546e5674594d08026d56794b4851735a5378794b5474705a69676962324a715a574e30496a303964486c775a57396d49485170636d563064584a754948526f61584d7558326c7561585242636e4a68655368304c47557363696b37496d686c654349395054316c4a69596f5a5430784e696b736269686c505430394b4442385a536b6d4a6d552b5054496d4a6d553850544d324b54743259584967615430774f794974496a303950536830505851756447395464484a70626d636f4b5335795a58427359574e6c4b433963637973765a79776949696b70577a42644a69596f615373724c48526f61584d75626d566e59585270646d55394d536b73615478304c6d786c626d64306143596d4b444532505430395a54393061476c7a4c6c397759584a7a5a55686c654368304c476b7363696b364b48526f61584d7558334268636e4e6c516d467a5a5368304c47557361536b73496d786c496a30395058496d4a6e526f61584d7558326c7561585242636e4a686553683061476c7a4c6e527651584a7959586b6f4b53786c4c4849704b536c394c47387563484a76644739306558426c4c6c3970626d6c30546e5674596d567950575a31626d4e30615739754b4851735a5378794b5874305044416d4a69683061476c7a4c6d356c5a32463061585a6c505445736444307464436b73644477324e7a45774f4467324e44386f644768706379353362334a6b637a31624e4d08026a63784d4467344e6a4d6d6446307364476870637935735a57356e644767394d536b36644477304e54417a4e546b354e6a49334d7a63774e446b325079683061476c7a4c6e6476636d527a505673324e7a45774f4467324d795a304c4851764e6a63784d4467344e6a516d4e6a63784d4467344e6a4e644c48526f61584d75624756755a33526f505449704f6968754b4851384f5441774e7a45354f5449314e4463304d446b354d696b73644768706379353362334a6b637a31624e6a63784d4467344e6a4d6d644378304c7a59334d5441344f4459304a6a59334d5441344f44597a4c4446644c48526f61584d75624756755a33526f50544d704c434a735a534939505431794a695a3061476c7a4c6c3970626d6c3051584a7959586b6f644768706379353062304679636d46354b436b735a5378794b58307362793577636d3930623352356347557558326c7561585242636e4a686554316d6457356a64476c76626968304c47557363696c376157596f62696769626e5674596d5679496a303964486c775a57396d49485175624756755a33526f4b5378304c6d786c626d6430614477394d436c795a585231636d3467644768706379353362334a6b637a31624d46307364476870637935735a57356e644767394d53783061476c7a4f33526f61584d75624756755a33526f505531686447677559325670624368304c6d786c626d6430614d080243387a4b53783061476c7a4c6e6476636d527a5057356c64794242636e4a686553683061476c7a4c6d786c626d643061436b375a6d39794b485a6863694270505441376154783061476c7a4c6d786c626d6430614474704b797370644768706379353362334a6b63317470585430774f335a68636942764c484d73595430774f326c6d4b434a695a534939505431794b575a766369687050585175624756755a33526f4c544573627a30774f326b2b50544137615330394d796c7a5058526261563138644674704c544664504477346648526261533079585477384d545973644768706379353362334a6b6331747658587739637a7738595359324e7a45774f4467324d79783061476c7a4c6e6476636d527a573238724d563039637a342b506a49324c57456d4e6a63784d4467344e6a4d734b474572505449304b5434394d6a596d4a6968684c5430794e6978764b7973704f325673633255676157596f496d786c496a3039505849705a6d39794b476b394d43787650544137615478304c6d786c626d6430614474704b7a307a4b584d39644674705858783057326b724d56303850446838644674704b7a4a64504477784e69783061476c7a4c6e6476636d527a573239646644317a504478684a6a59334d5441344f44597a4c48526f61584d75643239795a484e62627973785854317a506a342b4d6a5974595359324e7a45774f4467324d4d080279776f595373394d6a5170506a30794e69596d4b474574505449324c4738724b796b37636d563064584a754948526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6c397759584a7a5a55686c6544316d6457356a64476c76626968304c47557363696c3764476870637935735a57356e64476739545746306143356a5a576c734b4368304c6d786c626d64306143316c4b5338324b53783061476c7a4c6e6476636d527a5057356c64794242636e4a686553683061476c7a4c6d786c626d643061436b375a6d39794b485a686369427550544137626a783061476c7a4c6d786c626d6430614474754b797370644768706379353362334a6b63317475585430774f335a68636942704c4738394d43787a505441376157596f496d4a6c496a3039505849705a6d39794b473439644335735a57356e644767744d547475506a316c4f32347450544970615431314b4851735a5378754b5477386279783061476c7a4c6e6476636d527a57334e64664430324e7a45774f4467324d795a704c47382b50544534507968764c5430784f43787a4b7a30784c48526f61584d75643239795a484e626331313850576b2b506a34794e696b36627973394f44746c62484e6c49475a7663696875505368304c6d786c626d64306143316c4b53557950543077503255724d54706c4f323438644335735a57356e64476737624d08026973394d696c705058556f6443786c4c473470504478764c48526f61584d75643239795a484e6263313138505459334d5441344f44597a4a6d6b73627a34394d54672f4b473874505445344c484d7250544573644768706379353362334a6b6331747a585877396154342b506a49324b5470764b7a30344f33526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6c397759584a7a5a554a68633255395a6e5675593352706232346f6443786c4c4849706533526f61584d75643239795a484d39577a42644c48526f61584d75624756755a33526f505445375a6d39794b485a686369427550544173615430784f326b38505459334d5441344f44597a4f326b7150575570626973724f3234744c53787050576b765a5877774f325a766369683259584967627a31304c6d786c626d6430614331794c484d39627956754c47453954574630614335746157346f627978764c584d704b334973645430774c475939636a746d504745375a69733962696c315057676f6443786d4c4759726269786c4b53783061476c7a4c6d6c74645778754b476b704c48526f61584d75643239795a484e624d463072645477324e7a45774f4467324e44393061476c7a4c6e6476636d527a577a42644b7a31314f6e526f61584d7558326c685a4752754b4855704f326c6d4b4441685054317a4b58743259584967624430784f4d0802325a76636968315057676f6443786d4c485175624756755a33526f4c4755704c4759394d44746d50484d375a6973724b57777150575537644768706379357062585673626968734b53783061476c7a4c6e6476636d527a577a42644b3355384e6a63784d4467344e6a512f644768706379353362334a6b63317377585373396454703061476c7a4c6c39705957526b626968314b58313061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a53356a6233423550575a31626d4e30615739754b48517065335175643239795a484d39626d563349454679636d46354b48526f61584d75624756755a33526f4b54746d6233496f646d4679494755394d44746c5048526f61584d75624756755a33526f4f3255724b796c304c6e6476636d527a573256645058526f61584d75643239795a484e625a563037644335735a57356e6447673964476870637935735a57356e64476773644335755a57646864476c325a54313061476c7a4c6d356c5a32463061585a6c4c485175636d566b5058526f61584d75636d566b665378764c6e42796233527664486c775a533566625739325a54316d6457356a64476c76626968304b58746d4b4851736447687063796c394c47387563484a76644739306558426c4c6d4e736232356c50575a31626d4e30615739754b436c37646d467949485139626d56334947386f626e5673624d0802436b37636d563064584a754948526f61584d7559323977655368304b537830665378764c6e42796233527664486c775a5335665a5868775957356b50575a31626d4e30615739754b48517065325a766369673764476870637935735a57356e6447673864447370644768706379353362334a6b6331743061476c7a4c6d786c626d643061437372585430774f334a6c644856796269423061476c7a665378764c6e42796233527664486c775a53356663335279615841395a6e5675593352706232346f4b58746d6233496f4f33526f61584d75624756755a33526f506a456d4a6a41395054313061476c7a4c6e6476636d527a5733526f61584d75624756755a33526f4c5446644f796c3061476c7a4c6d786c626d6430614330744f334a6c644856796269423061476c7a4c6c397562334a7455326c6e62696770665378764c6e42796233527664486c775a533566626d397962564e705a3234395a6e5675593352706232346f4b5874795a585231636d34674d5430395058526f61584d75624756755a33526f4a69597750543039644768706379353362334a6b633173775853596d4b48526f61584d75626d566e59585270646d55394d436b736447687063333073496e56755a47566d6157356c5a43496850585235634756765a694254655731696232776d4a694a6d6457356a64476c766269493950585235634756765a69425465573169624d08023277755a6d39794b585279655874764c6e42796233527664486c775a56745465573169623277755a6d39794b434a756232526c616e4d756458527062433570626e4e775a574e304c6d4e3163335276625349705854317366574e6864474e6f4b4851706532387563484a76644739306558426c4c6d6c756333426c593351396248316c62484e6c4947387563484a76644739306558426c4c6d6c756333426c593351396244746d6457356a64476c76626942734b436c37636d563064584a754b48526f61584d75636d566b50794938516b3474556a6f67496a6f6950454a4f4f6941694b53743061476c7a4c6e5276553352796157356e4b4445324b53736950694a39646d467949474d39577949694c434977496977694d4441694c4349774d4441694c4349774d444177496977694d4441774d4441694c4349774d4441774d4441694c4349774d4441774d444177496977694d4441774d4441774d4441694c4349774d4441774d4441774d4441694c4349774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d444177496977694d4d08024441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d4441774d444177496c30735a4431624d4377774c4449314c4445324c4445794c4445784c4445774c446b734f4377344c4463734e7977334c4463734e6977324c4459734e6977324c4459734e6977314c4455734e5377314c4455734e5377314c4455734e5377314c4455734e5377314c4455734e53773158537877505673774c4441734d7a4d314e5451304d7a49734e444d774e4459334d6a45734d5459334e7a63794d5459734e4467344d6a67784d6a55734e6a41304e6a59784e7a59734e44417a4e544d324d4463734d5459334e7a63794d5459734e444d774e4459334d6a45734d5755334c4445354e4467334d5463784c4d0802444d314f444d784f4441344c4459794e7a51344e5445334c4463314d6a6b314d7a59734d54457a4f5441324d6a55734d5459334e7a63794d5459734d6a51784d7a63314e6a6b734d7a51774d5449794d6a51734e4463774e4455344f4445734e6a526c4e6977304d4467304d5441784c4455784e544d324d7a49734e6a517a4e6a4d304d7977334f5459794e6a49304c446b334e6a55324d6a55734d5445344f44457a4e7a59734d54517a4e4467354d4463734d5463794d54417a4e6a67734d6a41314d5445784e446b734d6a517a5a5455734d6a67324d6a6b784e5445734d7a4d314e5451304d7a49734d7a6b784d7a557a4f544d734e4455304d7a55304d6a51734e5449314d6a45344e7a55734e6a41304e6a59784e7a5a644f32387563484a76644739306558426c4c6e5276553352796157356e50575a31626d4e30615739754b4851735a536c37646d4679494849376157596f5a54307766475638664445734d5459395054306f64443130664877784d436c3866434a6f5a5867695054303964436c37636a3069496a746d6233496f646d467949476b394d43787650544173637a30774f334d3864476870637935735a57356e64476737637973724b587432595849675954313061476c7a4c6e6476636d527a57334e644c4855394b4445324e7a63334d6a45314a69686850447870664738704b53353062314e30636d6c755a7967784e4d0802696b37627a3168506a342b4d6a5174615359784e6a63334e7a49784e53776f615373394d696b2b505449324a69596f615330394d6a5973637930744b53787950544168505431766648787a4954303964476870637935735a57356e644767744d54396a577a5974645335735a57356e644768644b335572636a70314b334a395a6d39794b444168505431764a69596f636a31764c6e5276553352796157356e4b4445324b5374794b5474794c6d786c626d64306143566c495430774f796c7950534977496974794f334a6c64485679626941774954303964476870637935755a57646864476c325a53596d4b484939496930694b3349704c484a396157596f6444303950536777664851704a695a30506a30794a695a305044307a4e696c37646d4679494767395a4674305853786d5058426264463037636a3069496a7432595849676244313061476c7a4c6d4e736232356c4b436b375a6d39794b477775626d566e59585270646d55394d447368624335706331706c636d386f4b54737065335a686369426e505777756257396b636d346f5a696b756447395464484a70626d636f64436b37636a306f624431734c6d6c6b61585a754b4759704b5335706331706c636d386f4b54396e4b3349365931746f4c576375624756755a33526f5853746e4b334a395a6d39794b48526f61584d7561584e615a584a764b436b6d4a69687950534977494d08026974794b5474794c6d786c626d64306143566c495430774f796c7950534977496974794f334a6c64485679626941774954303964476870637935755a57646864476c325a53596d4b484939496930694b3349704c484a39626967684d537769516d467a5a53427a6147393162475167596d5567596d56306432566c62694179494746755a43417a4e694970665378764c6e42796233527664486c775a5335306230353162574a6c636a316d6457356a64476c766269677065335a68636942305058526f61584d75643239795a484e624d463037636d563064584a75494449395054313061476c7a4c6d786c626d6430614439304b7a30324e7a45774f4467324e43703061476c7a4c6e6476636d527a577a46644f6a4d395054313061476c7a4c6d786c626d64306143596d4d5430395058526f61584d75643239795a484e624d6c302f644373394e4455774d7a55354f5459794e7a4d334d4451354e6973324e7a45774f4467324e43703061476c7a4c6e6476636d527a577a46644f6e526f61584d75624756755a33526f506a496d4a6d346f49544573496b353162574a6c6369426a59573467623235736553427a59575a6c62486b6763335276636d556764584167644738674e544d67596d6c30637949704c4441685054313061476c7a4c6d356c5a32463061585a6c507931304f6e52394c47387563484a76644739306558426c4c6e5276534d08026c4e50546a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6e5276553352796157356e4b4445324c4449706653787a4a69596f62793577636d393062335235634755756447394364575a6d5a5849395a6e5675593352706232346f6443786c4b5874795a585231636d3467644768706379353062304679636d463554476c725a53687a4c4851735a536c394b5378764c6e42796233527664486c775a53353062304679636d463550575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7564473942636e4a68655578706132556f51584a7959586b736443786c4b5830375a6e567559335270623234675a7968304c47557363696c37636935755a57646864476c325a54316c4c6d356c5a32463061585a6c586e5175626d566e59585270646d5537646d467949473439644335735a57356e644767725a5335735a57356e644768384d4474794c6d786c626d6430614431754c4734396269307866444137646d467949476b394d4878304c6e6476636d527a577a42644c4738394d48786c4c6e6476636d527a577a42644c484d39615370764c4745394e6a63784d4467344e6a4d6d6379783150584d764e6a63784d4467344e6a52384d4474794c6e6476636d527a577a4264505745375a6d39794b485a686369426f50544537614478754f3267724b796c375a6d39794b485a68634d080269426d5058552b506a34794e697873505459334d5441344f44597a4a6e5573597a314e5958526f4c6d31706269686f4c475575624756755a33526f4c5445704c47513954574630614335745958676f4d43786f4c585175624756755a33526f4b7a45704f32513850574d375a4373724b587432595849676344316f4c5752384d44746d4b7a306f637a306f6154307766485175643239795a484e62634630704b696876505442385a53353362334a6b6331746b58536b7262436b764e6a63784d4467344e6a52384d437873505459334d5441344f44597a4a6e4e396369353362334a6b6331746f58543077664777736454307766475a39636d563064584a75494441685054313150334975643239795a484e62614630394d4878314f6e4975624756755a33526f4c53307363693566633352796158416f4b5831764c6e42796233527664486c775a53353062304679636d463554476c725a54316d6457356a64476c76626968304c47557363696c376447687063793566633352796158416f4b547432595849676154313061476c7a4c6d4a356447564d5a57356e6447676f4b53787650584a386645316864476775625746344b44457361536b3762696870504431764c434a696558526c49474679636d463549477876626d646c63694230614746754947526c63326c795a575167624756755a33526f49696b7362696876506a4173496c4a6c634d080258566c6333526c5a434268636e4a68655342735a57356e64476767504430674d4349704f335a686369427a50575a31626d4e30615739754b4851735a536c37636d563064584a75494851755957787362324e56626e4e685a6d552f6443356862477876593156756332466d5a53686c4b5470755a5863676443686c4b58306f644378764b5474795a585231636d346764476870633173695833527651584a7959586c4d6157746c4969736f496d786c496a30395057552f496b7846496a6f69516b55694b56306f637978704b53787a665378764c6e42796233527664486c775a53356664473942636e4a68655578706132564d5254316d6457356a64476c76626968304c47557065325a766369683259584967636a30774c4734394d43787050544173627a30774f326b3864476870637935735a57356e64476737615373724b58743259584967637a313061476c7a4c6e6476636d527a57326c645044787666473437644674794b797464505449314e535a7a4c484938644335735a57356e6447676d4a696830573349724b313039637a342b4f4359794e5455704c484938644335735a57356e6447676d4a696830573349724b313039637a342b4d54596d4d6a55314b53773250543039627a386f636a78304c6d786c626d64306143596d4b485262636973725854317a506a34794e4359794e5455704c4734394d437876505441704f696875504d0802584d2b506a34794e4378764b7a30794b5831705a69687950485175624756755a33526f4b575a7663696830573349724b313039626a747950485175624756755a33526f4f796c30573349724b3130394d48307362793577636d393062335235634755755833527651584a7959586c4d6157746c516b55395a6e5675593352706232346f6443786c4b58746d6233496f646d467949484939644335735a57356e644767744d53787550544173615430774c4738394d4474705048526f61584d75624756755a33526f4f326b724b796c37646d467949484d39644768706379353362334a6b6331747058547738623378754f33526263693074585430794e54556d63797879506a30774a69596f644674794c53316450584d2b506a676d4d6a55314b537879506a30774a69596f644674794c53316450584d2b506a45324a6a49314e536b734e6a30395057382f4b48492b5054416d4a696830573349744c563039637a342b4d6a516d4d6a55314b53787550544173627a30774b546f6f626a317a506a342b4d6a5173627973394d696c396157596f636a34394d436c6d6233496f644674794c53316450573437636a34394d447370644674794c533164505442394c45316864476775593278364d7a492f62793577636d3930623352356347557558324e7664573530516d6c30637a316d6457356a64476c76626968304b5874795a585231636d34674d4d08027a4974545746306143356a62486f7a4d6968304b58303662793577636d3930623352356347557558324e7664573530516d6c30637a316d6457356a64476c76626968304b587432595849675a5431304c4849394d4474795a585231636d34675a5434394e4441354e69596d4b4849725054457a4c47552b506a34394d544d704c47552b505459304a69596f636973394e79786c506a342b505463704c47552b5054676d4a6968794b7a30304c47552b506a34394e436b735a5434394d69596d4b484972505449735a54342b506a30794b5378794b3256394c47387563484a76644739306558426c4c6c39365a584a76516d6c30637a316d6457356a64476c76626968304b5874705a6967775054303964436c795a585231636d34674d6a5937646d4679494755396443787950544137636d563064584a7549444139505367344d546b784a6d55704a69596f636973394d544d735a54342b506a30784d796b734d4430394b4445794e795a6c4b53596d4b484972505463735a54342b506a30334b5377775054306f4d54556d5a536b6d4a6968794b7a30304c47552b506a34394e436b734d4430394b444d6d5a536b6d4a6968794b7a30794c47552b506a34394d696b734d4430394b44456d5a536b6d4a6e49724b797879665378764c6e42796233527664486c775a5335696158524d5a57356e644767395a6e5675593352706232346f4b587432594d08025849676444313061476c7a4c6e6476636d527a5733526f61584d75624756755a33526f4c5446644c475539644768706379356659323931626e52436158527a4b4851704f334a6c64485679626941794e696f6f64476870637935735a57356e644767744d536b725a58307362793577636d39306233523563475575656d567962304a7064484d395a6e5675593352706232346f4b5874705a69683061476c7a4c6d6c7a576d5679627967704b584a6c64485679626941774f325a766369683259584967644430774c4755394d44746c5048526f61584d75624756755a33526f4f3255724b796c37646d4679494849396447687063793566656d567962304a7064484d6f644768706379353362334a6b6331746c58536b376157596f64437339636977794e69453950584970596e4a6c59577439636d563064584a75494852394c47387563484a76644739306558426c4c6d4a356447564d5a57356e644767395a6e5675593352706232346f4b5874795a585231636d3467545746306143356a5a576c734b48526f61584d75596d6c30544756755a33526f4b436b764f436c394c47387563484a76644739306558426c4c6e527656486476637a316d6457356a64476c76626968304b5874795a585231636d34674d4345395058526f61584d75626d566e59585270646d552f6447687063793568596e4d6f4b533570626d3930626968304b533570594d080257526b626967784b54703061476c7a4c6d4e736232356c4b436c394c47387563484a76644739306558426c4c6d5a79623231556432397a50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6e526c633352754b4851744d536b2f6447687063793575623352754b4851704c6d6c685a4752754b4445704c6d6c755a57636f4b54703061476c7a4c6d4e736232356c4b436c394c47387563484a76644739306558426c4c6d6c7a546d566e50575a31626d4e30615739754b436c37636d563064584a75494441685054313061476c7a4c6d356c5a32463061585a6c665378764c6e42796233527664486c775a5335755a5763395a6e5675593352706232346f4b5874795a585231636d3467644768706379356a624739755a5367704c6d6c755a57636f4b58307362793577636d393062335235634755756157356c5a7a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d6c7a576d5679627967706648776f64476870637935755a57646864476c325a5634394d536b73644768706333307362793577636d3930623352356347557561585676636a316d6457356a64476c76626968304b58746d6233496f4f33526f61584d75624756755a33526f50485175624756755a33526f4f796c3061476c7a4c6e6476636d527a5733526f61584d75624756755a33526f4b797464505441375a4d08026d39794b485a686369426c505441375a5478304c6d786c626d64306144746c4b797370644768706379353362334a6b6331746c5854313061476c7a4c6e6476636d527a5732566466485175643239795a484e625a563037636d563064584a754948526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d6c76636a316d6457356a64476c76626968304b5874795a585231636d3467626967775054306f64476870637935755a57646864476c325a5878304c6d356c5a32463061585a6c4b536b736447687063793570645739794b485170665378764c6e42796233527664486c775a533576636a316d6457356a64476c76626968304b5874795a585231636d346764476870637935735a57356e6447672b644335735a57356e6447672f644768706379356a624739755a5367704c6d6c76636968304b5470304c6d4e736232356c4b436b75615739794b48526f61584d70665378764c6e42796233527664486c775a533531623349395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75624756755a33526f506e5175624756755a33526f5033526f61584d7559327876626d556f4b533570645739794b4851704f6e517559327876626d556f4b533570645739794b48526f61584d70665378764c6e42796233527664486c775a533570645746755a44316d6457356a64476c76624d08026968304b587432595849675a54746c5058526f61584d75624756755a33526f506e5175624756755a33526f5033513664476870637a746d6233496f646d4679494849394d44747950475575624756755a33526f4f3349724b796c3061476c7a4c6e6476636d527a57334a645058526f61584d75643239795a484e62636c306d6443353362334a6b63317479585474795a585231636d346764476870637935735a57356e644767395a5335735a57356e644767736447687063793566633352796158416f4b58307362793577636d39306233523563475575615746755a44316d6457356a64476c76626968304b5874795a585231636d3467626967775054306f64476870637935755a57646864476c325a5878304c6d356c5a32463061585a6c4b536b736447687063793570645746755a4368304b58307362793577636d393062335235634755755957356b50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d786c626d6430614435304c6d786c626d64306144393061476c7a4c6d4e736232356c4b436b75615746755a4368304b5470304c6d4e736232356c4b436b75615746755a43683061476c7a4b58307362793577636d39306233523563475575645746755a44316d6457356a64476c76626968304b5874795a585231636d346764476870637935735a57356e6447672b644335735a57356e6447672f644d08024768706379356a624739755a5367704c6d6c315957356b4b4851704f6e517559327876626d556f4b533570645746755a43683061476c7a4b58307362793577636d3930623352356347557561585634623349395a6e5675593352706232346f64436c37646d467949475573636a743061476c7a4c6d786c626d6430614435304c6d786c626d64306144386f5a54313061476c7a4c48493964436b364b475539644378795058526f61584d704f325a766369683259584967626a30774f323438636935735a57356e64476737626973724b58526f61584d75643239795a484e62626c30395a53353362334a6b63317475585635794c6e6476636d527a573235644f326c6d4b48526f61584d685054316c4b575a7663696737626a786c4c6d786c626d6430614474754b797370644768706379353362334a6b633174755854316c4c6e6476636d527a573235644f334a6c644856796269423061476c7a4c6d786c626d64306144316c4c6d786c626d64306143783061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a5335706547397950575a31626d4e30615739754b48517065334a6c64485679626942754b4441395053683061476c7a4c6d356c5a32463061585a6c66485175626d566e59585270646d55704b53783061476c7a4c6d6c31654739794b485170665378764c6e42796233527664486c775a533534624d08023349395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75624756755a33526f506e5175624756755a33526f5033526f61584d7559327876626d556f4b533570654739794b4851704f6e517559327876626d556f4b533570654739794b48526f61584d70665378764c6e42796233527664486c775a5335316547397950575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d786c626d6430614435304c6d786c626d64306144393061476c7a4c6d4e736232356c4b436b75615856346233496f64436b366443356a624739755a5367704c6d6c31654739794b48526f61584d70665378764c6e42796233527664486c775a533570626d3930626a316d6457356a64476c76626968304b5874754b434a75645731695a584969505431306558426c623259676443596d644434394d436b37646d4679494755394d48784e5958526f4c6d4e6c6157776f644338794e696b73636a31304a5449324f33526f61584d7558325634634746755a43686c4b537879506a416d4a6d55744c54746d6233496f646d467949476b394d44747050475537615373724b58526f61584d75643239795a484e62615630394e6a63784d4467344e6a4d6d666e526f61584d75643239795a484e6261563037636d563064584a754948492b4d43596d4b48526f61584d75643239795a484e6261563039666e526f614d0802584d75643239795a484e626156306d4e6a63784d4467344e6a4d2b506a49324c5849704c48526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d3576644734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b533570626d3930626968304b58307362793577636d3930623352356347557563325630626a316d6457356a64476c76626968304c4755706532346f496d353162574a6c6369493950585235634756765a6942304a695a30506a30774b54743259584967636a31304c7a493266444173615431304a5449324f334a6c644856796269423061476c7a4c6c396c65484268626d516f636973784b53783061476c7a4c6e6476636d527a57334a645057552f644768706379353362334a6b6331747958587778504478704f6e526f61584d75643239795a484e62636c306d66696778504478704b53783061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a5335705957526b50575a31626d4e30615739754b48517065335a686369426c4c484973626a74705a6967774954303964476870637935755a57646864476c325a53596d4d44303950585175626d566e59585270646d5570636d563064584a754948526f61584d75626d566e59585270646d55394d43786c5058526f61584d7561584e31596968304b4d080253783061476c7a4c6d356c5a32463061585a6c586a30784c48526f61584d7558323576636d3154615764754b436b376157596f4d4430395058526f61584d75626d566e59585270646d556d4a6a4168505431304c6d356c5a32463061585a6c4b584a6c64485679626942304c6d356c5a32463061585a6c505441735a54313061476c7a4c6d6c7a6457496f64436b73644335755a57646864476c325a5430784c47557558323576636d3154615764754b436b3764476870637935735a57356e6447672b644335735a57356e6447672f4b4849396447687063797875505851704f69687950585173626a313061476c7a4b54746d6233496f646d467949476b394d43787650544137627a78754c6d786c626d6430614474764b7973705a54306f4d4878794c6e6476636d527a573239644b53736f4d4878754c6e6476636d527a573239644b5374704c48526f61584d75643239795a484e62623130394e6a63784d4467344e6a4d6d5a5378705057552b506a34794e6a746d6233496f4f7a4168505431704a695a7650484975624756755a33526f4f3238724b796c6c5053677766484975643239795a484e62623130704b326b73644768706379353362334a6b63317476585430324e7a45774f4467324d795a6c4c476b395a54342b506a49324f326c6d4b48526f61584d75624756755a33526f50584975624756755a33526f4c444168505431704b4d080258526f61584d75643239795a484e6264476870637935735a57356e6447686450576b7364476870637935735a57356e644767724b7a746c62484e6c49476c6d4b4849685054313061476c7a4b575a7663696737627a78794c6d786c626d6430614474764b797370644768706379353362334a6b63317476585431794c6e6476636d527a573239644f334a6c644856796269423061476c7a665378764c6e42796233527664486c775a5335685a4751395a6e5675593352706232346f64436c37646d467949475537636d563064584a7549444168505431304c6d356c5a32463061585a6c4a6959775054303964476870637935755a57646864476c325a54386f644335755a57646864476c325a5430774c475539644768706379357a6457496f64436b73644335755a57646864476c325a5634394d53786c4b546f7750543039644335755a57646864476c325a53596d4d4345395058526f61584d75626d566e59585270646d552f4b48526f61584d75626d566e59585270646d55394d43786c50585175633356694b48526f61584d704c48526f61584d75626d566e59585270646d55394d53786c4b54703061476c7a4c6d786c626d6430614435304c6d786c626d64306144393061476c7a4c6d4e736232356c4b436b756157466b5a4368304b5470304c6d4e736232356c4b436b756157466b5a43683061476c7a4b58307362793577636d3930624d08023352356347557561584e31596a316d6457356a64476c76626968304b5874705a69677749543039644335755a57646864476c325a536c37644335755a57646864476c325a5430774f335a686369426c5058526f61584d756157466b5a4368304b5474795a585231636d3467644335755a57646864476c325a5430784c47557558323576636d3154615764754b436c396157596f4d4345395058526f61584d75626d566e59585270646d5570636d563064584a754948526f61584d75626d566e59585270646d55394d43783061476c7a4c6d6c685a47516f64436b7364476870637935755a57646864476c325a5430784c48526f61584d7558323576636d3154615764754b436b37646d467949484973626978705058526f61584d75593231774b4851704f326c6d4b444139505431704b584a6c644856796269423061476c7a4c6d356c5a32463061585a6c5054417364476870637935735a57356e644767394d53783061476c7a4c6e6476636d527a577a42645054417364476870637a7470506a412f4b4849396447687063797875505851704f69687950585173626a313061476c7a4b54746d6233496f646d4679494738394d43787a50544137637a78754c6d786c626d64306144747a4b797370627a306f5a54306f4d4878794c6e6476636d527a57334e644b53306f4d4878754c6e6476636d527a57334e644b5374764b54342b4d6a5973644d08024768706379353362334a6b6331747a585430324e7a45774f4467324d795a6c4f325a76636967374d4345395057386d4a6e4d38636935735a57356e64476737637973724b5738394b4755394b4442386369353362334a6b6331747a58536b7262796b2b506a49324c48526f61584d75643239795a484e62633130394e6a63784d4467344e6a4d6d5a5474705a696777505430396279596d637a78794c6d786c626d64306143596d636945395058526f61584d705a6d39794b44747a50484975624756755a33526f4f334d724b796c3061476c7a4c6e6476636d527a57334e6450584975643239795a484e6263313037636d563064584a754948526f61584d75624756755a33526f5055316864476775625746344b48526f61584d75624756755a33526f4c484d704c4849685054313061476c7a4a69596f64476870637935755a57646864476c325a5430784b53783061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a53357a645749395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b533570633356694b48517066547432595849676254316d6457356a64476c76626968304c47557363696c37646d467949473473615378764c484d396443353362334a6b6379786850575575643239795a484d73645431794c6e6476636d527a4c4767394d43786d504d08025442386331737758537873505467784f54456d5a69786a5057592b506a34784d79786b505442386331737858537877505467784f54456d5a43786e5057512b506a34784d797874505442386331737958537835505467784f54456d625378335057302b506a34784d797832505442386331737a58537869505467784f54456d6469784e5058592b506a34784d797866505442386331733058537846505467784f54456d587978545056382b506a34784d797853505442386331733158537842505467784f54456d556978435056492b506a34784d79784d505442386331733258537872505467784f54456d544378505055772b506a34784d797855505442386331733358537834505467784f54456d5643784f5056512b506a34784d79784a505442386331733458537844505467784f54456d5353785650556b2b506a34784d797851505442386331733558537871505467784f54456d554378455056412b506a34784d797878505442385956737758537847505467784f54456d635378365058452b506a34784d79785850544238595673785853776b505467784f54456d567978495056632b506a34784d797848505442385956737958537861505467784f54456d527978575055632b506a34784d79785a505442385956737a5853784c505467784f54456d5753785950566b2b506a34784d79784b505442385956733058537852505467784f4d080254456d536978306444314b506a342b4d544d735a5851394d487868577a56644c484a30505467784f54456d5a585173626e51395a58512b506a34784d79787064443077664746624e6c3073623351394f4445354d535a706443787a644431706444342b506a457a4c474630505442385956733358537831644430344d546b784a6d46304c47683050574630506a342b4d544d735a6e51394d487868577a68644c477830505467784f54456d5a6e5173593351395a6e512b506a34784d79786b64443077664746624f563073634851394f4445354d535a6b6443786e6444316b6444342b506a457a4f334975626d566e59585270646d5539644335755a57646864476c325a56356c4c6d356c5a32463061585a6c4c484975624756755a33526f505445354f335a68636942746444306f6143736f626a314e5958526f4c6d6c746457776f624378474b536c384d436b724b4367344d546b784a69687050536870505531686447677561573131624368734c486f704b53744e5958526f4c6d6c746457776f597978474b5877774b536b385044457a4b5877774f3267394b4368765055316864476775615731316243686a4c486f704b53736f6154342b506a457a4b5877774b53736f6258512b506a34794e696c384d437874644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f634378474b5378705053687050553168644d080247677561573131624368774c486f704b53744e5958526f4c6d6c746457776f5a7978474b5877774c4738395457463061433570625856734b47637365696b37646d467949486c305053686f4b796875505734725457463061433570625856734b4777734a436c384d436c384d436b724b4367344d546b784a6968705053687050576b725457463061433570625856734b47777353436c384d436b725457463061433570625856734b474d734a436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c456770664441704b796870506a342b4d544d70664441704b7968356444342b506a49324b5877774c486c304a6a30324e7a45774f4467324d797875505531686447677561573131624368354c4559704c476b394b476b395457463061433570625856734b486b7365696b704b3031686447677561573131624368334c45597066444173627a314e5958526f4c6d6c746457776f647978364b537875505734725457463061433570625856734b4841734a436c384d4378705053687050576b725457463061433570625856734b48417353436c384d436b725457463061433570625856734b4763734a436c384d437876505738725457463061433570625856734b47637353436c384d44743259584967643351394b4767724b4734396269744e5958526f4c6d6c746457776f624378614b4d08025877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f624378574b5877774b53744e5958526f4c6d6c746457776f597978614b5877774b536b385044457a4b5877774f3267394b436876505738725457463061433570625856734b474d7356696c384d436b724b476b2b506a34784d796c384d436b724b486430506a342b4d6a5970664441736433516d505459334d5441344f44597a4c4734395457463061433570625856734b47497352696b736154306f6154314e5958526f4c6d6c746457776f596978364b536b725457463061433570625856734b45307352696c384d4378765055316864476775615731316243684e4c486f704c4734396269744e5958526f4c6d6c746457776f6553776b4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f655378494b5877774b53744e5958526f4c6d6c746457776f6479776b4b5877774c4738396279744e5958526f4c6d6c746457776f647978494b5877774c4734396269744e5958526f4c6d6c746457776f634378614b5877774c476b394b476b396153744e5958526f4c6d6c746457776f634378574b5877774b53744e5958526f4c6d6c746457776f5a7978614b5877774c4738396279744e5958526f4c6d6c746457776f5a7978574b5877774f335a68636942326444306f6143736f626a31754b30316864476775614d0802573131624368734c45737066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c466770664441704b30316864476775615731316243686a4c457370664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f597978594b5877774b53736f6154342b506a457a4b5877774b53736f646e512b506a34794e696c384d437832644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f525378474b53787050536870505531686447677561573131624368464c486f704b53744e5958526f4c6d6c746457776f557978474b5877774c4738395457463061433570625856734b464d7365696b73626a31754b3031686447677561573131624368694c435170664441736154306f615431704b3031686447677561573131624368694c456770664441704b30316864476775615731316243684e4c43517066444173627a31764b30316864476775615731316243684e4c45677066444173626a31754b3031686447677561573131624368354c466f70664441736154306f615431704b3031686447677561573131624368354c465970664441704b3031686447677561573131624368334c466f7066444173627a31764b3031686447677561573131624368334c46597066444173626a31754b3031686447677561573131624d08024368774c457370664441736154306f615431704b3031686447677561573131624368774c466770664441704b30316864476775615731316243686e4c45737066444173627a31764b30316864476775615731316243686e4c46677066444137646d467949474a305053686f4b796875505734725457463061433570625856734b47777355536c384d436c384d436b724b4367344d546b784a6968705053687050576b725457463061433570625856734b47777364485170664441704b30316864476775615731316243686a4c464570664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5979783064436c384d436b724b476b2b506a34784d796c384d436b724b474a30506a342b4d6a597066444173596e516d505459334d5441344f44597a4c4734395457463061433570625856734b45457352696b736154306f6154314e5958526f4c6d6c746457776f515378364b536b725457463061433570625856734b45497352696c384d437876505531686447677561573131624368434c486f704c4734396269744e5958526f4c6d6c746457776f5253776b4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f525378494b5877774b53744e5958526f4c6d6c746457776f5579776b4b5877774c4738396279744e5958526f4c6d6c746457776f557978494b5877774c473439624d080269744e5958526f4c6d6c746457776f596978614b5877774c476b394b476b396153744e5958526f4c6d6c746457776f596978574b5877774b53744e5958526f4c6d6c746457776f545378614b5877774c4738396279744e5958526f4c6d6c746457776f545378574b5877774c4734396269744e5958526f4c6d6c746457776f6553784c4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f655378594b5877774b53744e5958526f4c6d6c746457776f6479784c4b5877774c4738396279744e5958526f4c6d6c746457776f647978594b5877774c4734396269744e5958526f4c6d6c746457776f634378524b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6343783064436c384d436b725457463061433570625856734b47637355536c384d437876505738725457463061433570625856734b4763736448517066444137646d4679494531305053686f4b796875505734725457463061433570625856734b477773636e517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c4735304b5877774b53744e5958526f4c6d6c746457776f5979787964436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c4735304b5877774b53736f6154342b506a457a4b5877774b53736f544d080258512b506a34794e696c384d43784e644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f617978474b53787050536870505531686447677561573131624368724c486f704b53744e5958526f4c6d6c746457776f547978474b5877774c4738395457463061433570625856734b45387365696b73626a31754b3031686447677561573131624368424c435170664441736154306f615431704b3031686447677561573131624368424c456770664441704b3031686447677561573131624368434c43517066444173627a31764b3031686447677561573131624368434c45677066444173626a31754b3031686447677561573131624368464c466f70664441736154306f615431704b3031686447677561573131624368464c465970664441704b3031686447677561573131624368544c466f7066444173627a31764b3031686447677561573131624368544c46597066444173626a31754b3031686447677561573131624368694c457370664441736154306f615431704b3031686447677561573131624368694c466770664441704b30316864476775615731316243684e4c45737066444173627a31764b30316864476775615731316243684e4c46677066444173626a31754b3031686447677561573131624368354c464570664441736154306f615431704b3031686447677561573131624368354c4852304b4d08025877774b53744e5958526f4c6d6c746457776f647978524b5877774c4738396279744e5958526f4c6d6c746457776f6479783064436c384d437875505734725457463061433570625856734b484173636e5170664441736154306f615431704b3031686447677561573131624368774c4735304b5877774b53744e5958526f4c6d6c746457776f5a79787964436c384d437876505738725457463061433570625856734b476373626e517066444137646d4679494639305053686f4b796875505734725457463061433570625856734b4777736233517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c484e304b5877774b53744e5958526f4c6d6c746457776f5979787664436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c484e304b5877774b53736f6154342b506a457a4b5877774b53736f5833512b506a34794e696c384d437866644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f654378474b53787050536870505531686447677561573131624368344c486f704b53744e5958526f4c6d6c746457776f546978474b5877774c4738395457463061433570625856734b45347365696b73626a31754b3031686447677561573131624368724c435170664441736154306f614d08025431704b3031686447677561573131624368724c456770664441704b3031686447677561573131624368504c43517066444173627a31764b3031686447677561573131624368504c45677066444173626a31754b3031686447677561573131624368424c466f70664441736154306f615431704b3031686447677561573131624368424c465970664441704b3031686447677561573131624368434c466f7066444173627a31764b3031686447677561573131624368434c46597066444173626a31754b3031686447677561573131624368464c457370664441736154306f615431704b3031686447677561573131624368464c466770664441704b3031686447677561573131624368544c45737066444173627a31764b3031686447677561573131624368544c46677066444173626a31754b3031686447677561573131624368694c464570664441736154306f615431704b3031686447677561573131624368694c4852304b5877774b53744e5958526f4c6d6c746457776f545378524b5877774c4738396279744e5958526f4c6d6c746457776f5453783064436c384d437875505734725457463061433570625856734b486b73636e5170664441736154306f615431704b3031686447677561573131624368354c4735304b5877774b53744e5958526f4c6d6c746457776f6479787964436c384d437876505738725457463061433570624d08025856734b486373626e517066444173626a31754b3031686447677561573131624368774c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6343787a64436c384d436b725457463061433570625856734b4763736233517066444173627a31764b30316864476775615731316243686e4c484e304b5877774f335a68636942466444306f6143736f626a31754b3031686447677561573131624368734c4856304b5877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f6243786f64436c384d436b725457463061433570625856734b474d7364585170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5979786f64436c384d436b724b476b2b506a34784d796c384d436b724b455630506a342b4d6a5970664441735258516d505459334d5441344f44597a4c4734395457463061433570625856734b454d7352696b736154306f6154314e5958526f4c6d6c746457776f517978364b536b725457463061433570625856734b46557352696c384d437876505531686447677561573131624368564c486f704c4734396269744e5958526f4c6d6c746457776f6543776b4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f654378494b5877774b53744e5958526f4c6d6c746457776f544d080269776b4b5877774c4738396279744e5958526f4c6d6c746457776f546978494b5877774c4734396269744e5958526f4c6d6c746457776f617978614b5877774c476b394b476b396153744e5958526f4c6d6c746457776f617978574b5877774b53744e5958526f4c6d6c746457776f547978614b5877774c4738396279744e5958526f4c6d6c746457776f547978574b5877774c4734396269744e5958526f4c6d6c746457776f5153784c4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f515378594b5877774b53744e5958526f4c6d6c746457776f5169784c4b5877774c4738396279744e5958526f4c6d6c746457776f516978594b5877774c4734396269744e5958526f4c6d6c746457776f525378524b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5253783064436c384d436b725457463061433570625856734b464d7355536c384d437876505738725457463061433570625856734b464d736448517066444173626a31754b3031686447677561573131624368694c484a304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5969787564436c384d436b725457463061433570625856734b453073636e517066444173627a31764b30316864476775615731316243684e4c4735304b5877774c4734396269744e5958526f4c6d6c746457776f6553787664436c384d4d08024378705053687050576b725457463061433570625856734b486b7363335170664441704b3031686447677561573131624368334c4739304b5877774c4738396279744e5958526f4c6d6c746457776f6479787a64436c384d437875505734725457463061433570625856734b48417364585170664441736154306f615431704b3031686447677561573131624368774c4768304b5877774b53744e5958526f4c6d6c746457776f5a79783164436c384d437876505738725457463061433570625856734b4763736148517066444137646d467949464e305053686f4b796875505734725457463061433570625856734b4777736248517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c474e304b5877774b53744e5958526f4c6d6c746457776f5979787364436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c474e304b5877774b53736f6154342b506a457a4b5877774b53736f5533512b506a34794e696c384d437854644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f616978474b53787050536870505531686447677561573131624368714c486f704b53744e5958526f4c6d6c746457776f524378474b5877774c4738395457463061433570625856734b45517365696b73624d08026a31754b3031686447677561573131624368444c435170664441736154306f615431704b3031686447677561573131624368444c456770664441704b3031686447677561573131624368564c43517066444173627a31764b3031686447677561573131624368564c45677066444173626a31754b3031686447677561573131624368344c466f70664441736154306f615431704b3031686447677561573131624368344c465970664441704b30316864476775615731316243684f4c466f7066444173627a31764b30316864476775615731316243684f4c46597066444173626a31754b3031686447677561573131624368724c457370664441736154306f615431704b3031686447677561573131624368724c466770664441704b3031686447677561573131624368504c45737066444173627a31764b3031686447677561573131624368504c46677066444173626a31754b3031686447677561573131624368424c464570664441736154306f615431704b3031686447677561573131624368424c4852304b5877774b53744e5958526f4c6d6c746457776f516978524b5877774c4738396279744e5958526f4c6d6c746457776f5169783064436c384d437875505734725457463061433570625856734b455573636e5170664441736154306f615431704b3031686447677561573131624368464c4735304b5877774b53744e5958526f4c4d08026d6c746457776f5579787964436c384d437876505738725457463061433570625856734b464d73626e517066444173626a31754b3031686447677561573131624368694c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5969787a64436c384d436b725457463061433570625856734b4530736233517066444173627a31764b30316864476775615731316243684e4c484e304b5877774c4734396269744e5958526f4c6d6c746457776f6553783164436c384d4378705053687050576b725457463061433570625856734b486b7361485170664441704b3031686447677561573131624368334c4856304b5877774c4738396279744e5958526f4c6d6c746457776f6479786f64436c384d437875505734725457463061433570625856734b48417362485170664441736154306f615431704b3031686447677561573131624368774c474e304b5877774b53744e5958526f4c6d6c746457776f5a79787364436c384d437876505738725457463061433570625856734b4763735933517066444137646d467949464a305053686f4b796875505734725457463061433570625856734b4777736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c4764304b5877774b53744e5958526f4c6d6c746457776f5979787764436c384d436b70504d08024477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f556e512b506a34794e696c384d437853644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169776b4b53787050536870505531686447677561573131624368714c4567704b53744e5958526f4c6d6c746457776f5243776b4b5877774c4738395457463061433570625856734b45517353436b73626a31754b3031686447677561573131624368444c466f70664441736154306f615431704b3031686447677561573131624368444c465970664441704b3031686447677561573131624368564c466f7066444173627a31764b3031686447677561573131624368564c46597066444173626a31754b3031686447677561573131624368344c457370664441736154306f615431704b3031686447677561573131624368344c466770664441704b30316864476775615731316243684f4c45737066444173627a31764b30316864476775615731316243684f4c46677066444173626a31754b3031686447677561573131624368724c464570664441736154306f615431704b3031686447677561573131624368724c4852304b5877774b53744e5958526f4c6d6c746457776f547978524b5877774c4738396279744e5958526f4c6d6c746457776f544d080279783064436c384d437875505734725457463061433570625856734b454573636e5170664441736154306f615431704b3031686447677561573131624368424c4735304b5877774b53744e5958526f4c6d6c746457776f5169787964436c384d437876505738725457463061433570625856734b454973626e517066444173626a31754b3031686447677561573131624368464c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5253787a64436c384d436b725457463061433570625856734b464d736233517066444173627a31764b3031686447677561573131624368544c484e304b5877774c4734396269744e5958526f4c6d6c746457776f5969783164436c384d4378705053687050576b725457463061433570625856734b47497361485170664441704b30316864476775615731316243684e4c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5453786f64436c384d437875505734725457463061433570625856734b486b7362485170664441736154306f615431704b3031686447677561573131624368354c474e304b5877774b53744e5958526f4c6d6c746457776f6479787364436c384d437876505738725457463061433570625856734b4863735933517066444137646d4679494546305053686f4b796875505734725457463061433570625856734b48417363485170664d0802444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368774c4764304b5877774b53744e5958526f4c6d6c746457776f5a79787764436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686e4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f5158512b506a34794e696c384d437842644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f616978614b53787050536870505531686447677561573131624368714c4659704b53744e5958526f4c6d6c746457776f524378614b5877774c4738395457463061433570625856734b45517356696b73626a31754b3031686447677561573131624368444c457370664441736154306f615431704b3031686447677561573131624368444c466770664441704b3031686447677561573131624368564c45737066444173627a31764b3031686447677561573131624368564c46677066444173626a31754b3031686447677561573131624368344c464570664441736154306f615431704b3031686447677561573131624368344c4852304b5877774b53744e5958526f4c6d6c746457776f546978524b5877774c4738396279744e5958526f4c6d6c746457776f5469783064436c384d437875505734725457463061433570625856734b477373634d08026e5170664441736154306f615431704b3031686447677561573131624368724c4735304b5877774b53744e5958526f4c6d6c746457776f5479787964436c384d437876505738725457463061433570625856734b453873626e517066444173626a31754b3031686447677561573131624368424c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5153787a64436c384d436b725457463061433570625856734b4549736233517066444173627a31764b3031686447677561573131624368434c484e304b5877774c4734396269744e5958526f4c6d6c746457776f5253783164436c384d4378705053687050576b725457463061433570625856734b45557361485170664441704b3031686447677561573131624368544c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5579786f64436c384d437875505734725457463061433570625856734b47497362485170664441736154306f615431704b3031686447677561573131624368694c474e304b5877774b53744e5958526f4c6d6c746457776f5453787364436c384d437876505738725457463061433570625856734b4530735933517066444137646d467949454a305053686f4b796875505734725457463061433570625856734b486b736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b303168644d080247677561573131624368354c4764304b5877774b53744e5958526f4c6d6c746457776f6479787764436c384d436b70504477784d796c384d44746f5053676f627a31764b3031686447677561573131624368334c4764304b5877774b53736f6154342b506a457a4b5877774b53736f516e512b506a34794e696c384d437843644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169784c4b53787050536870505531686447677561573131624368714c4667704b53744e5958526f4c6d6c746457776f5243784c4b5877774c4738395457463061433570625856734b45517357436b73626a31754b3031686447677561573131624368444c464570664441736154306f615431704b3031686447677561573131624368444c4852304b5877774b53744e5958526f4c6d6c746457776f565378524b5877774c4738396279744e5958526f4c6d6c746457776f5653783064436c384d437875505734725457463061433570625856734b486773636e5170664441736154306f615431704b3031686447677561573131624368344c4735304b5877774b53744e5958526f4c6d6c746457776f5469787964436c384d437876505738725457463061433570625856734b453473626e517066444173626a31754b3031686447677561573131624368724c4739304b5877774c476b394b476b396153744e5958526f4c6d6c74644d080257776f6179787a64436c384d436b725457463061433570625856734b4538736233517066444173627a31764b3031686447677561573131624368504c484e304b5877774c4734396269744e5958526f4c6d6c746457776f5153783164436c384d4378705053687050576b725457463061433570625856734b45457361485170664441704b3031686447677561573131624368434c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5169786f64436c384d437875505734725457463061433570625856734b45557362485170664441736154306f615431704b3031686447677561573131624368464c474e304b5877774b53744e5958526f4c6d6c746457776f5579787364436c384d437876505738725457463061433570625856734b464d735933517066444137646d4679494578305053686f4b796875505734725457463061433570625856734b4749736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368694c4764304b5877774b53744e5958526f4c6d6c746457776f5453787764436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243684e4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f5448512b506a34794e696c384d43784d644359394e6a63784d4467344e6a4d73624d08026a314e5958526f4c6d6c746457776f616978524b53787050536870505531686447677561573131624368714c4852304b536b725457463061433570625856734b45517355536c384d437876505531686447677561573131624368454c4852304b537875505734725457463061433570625856734b454d73636e5170664441736154306f615431704b3031686447677561573131624368444c4735304b5877774b53744e5958526f4c6d6c746457776f5653787964436c384d437876505738725457463061433570625856734b465573626e517066444173626a31754b3031686447677561573131624368344c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6543787a64436c384d436b725457463061433570625856734b4534736233517066444173627a31764b30316864476775615731316243684f4c484e304b5877774c4734396269744e5958526f4c6d6c746457776f6179783164436c384d4378705053687050576b725457463061433570625856734b47737361485170664441704b3031686447677561573131624368504c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5479786f64436c384d437875505734725457463061433570625856734b45457362485170664441736154306f615431704b3031686447677561573131624368424c474e304b5877774b53744e5958526f4c4d08026d6c746457776f5169787364436c384d437876505738725457463061433570625856734b4549735933517066444137646d4679494774305053686f4b796875505734725457463061433570625856734b4555736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368464c4764304b5877774b53744e5958526f4c6d6c746457776f5579787764436c384d436b70504477784d796c384d44746f5053676f627a31764b3031686447677561573131624368544c4764304b5877774b53736f6154342b506a457a4b5877774b53736f6133512b506a34794e696c384d437872644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169787964436b736154306f6154314e5958526f4c6d6c746457776f6169787564436b704b3031686447677561573131624368454c484a304b5877774c4738395457463061433570625856734b455173626e51704c4734396269744e5958526f4c6d6c746457776f5179787664436c384d4378705053687050576b725457463061433570625856734b454d7363335170664441704b3031686447677561573131624368564c4739304b5877774c4738396279744e5958526f4c6d6c746457776f5653787a64436c384d437875505734725457463061433570625856734b48677364585170664441736154306f615431704b4d08023031686447677561573131624368344c4768304b5877774b53744e5958526f4c6d6c746457776f5469783164436c384d437876505738725457463061433570625856734b4534736148517066444173626a31754b3031686447677561573131624368724c4778304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6179786a64436c384d436b725457463061433570625856734b4538736248517066444173627a31764b3031686447677561573131624368504c474e304b5877774f335a68636942506444306f6143736f626a31754b3031686447677561573131624368424c4842304b5877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f5153786e64436c384d436b725457463061433570625856734b45497363485170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5169786e64436c384d436b724b476b2b506a34784d796c384d436b724b453930506a342b4d6a5970664441735433516d505459334d5441344f44597a4c4734395457463061433570625856734b476f73623351704c476b394b476b395457463061433570625856734b476f73633351704b53744e5958526f4c6d6c746457776f5243787664436c384d437876505531686447677561573131624368454c484e304b53787550573472544d080257463061433570625856734b454d7364585170664441736154306f615431704b3031686447677561573131624368444c4768304b5877774b53744e5958526f4c6d6c746457776f5653783164436c384d437876505738725457463061433570625856734b4655736148517066444173626a31754b3031686447677561573131624368344c4778304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6543786a64436c384d436b725457463061433570625856734b4534736248517066444173627a31764b30316864476775615731316243684f4c474e304b5877774f335a68636942556444306f6143736f626a31754b3031686447677561573131624368724c4842304b5877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f6179786e64436c384d436b725457463061433570625856734b45387363485170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5479786e64436c384d436b724b476b2b506a34784d796c384d436b724b465230506a342b4d6a5970664441735648516d505459334d5441344f44597a4c4734395457463061433570625856734b476f73645851704c476b394b476b395457463061433570625856734b476f73614851704b53744e5958526f4c6d6c746457776f5243783164436c384d4d0802437876505531686447677561573131624368454c4768304b537875505734725457463061433570625856734b454d7362485170664441736154306f615431704b3031686447677561573131624368444c474e304b5877774b53744e5958526f4c6d6c746457776f5653787364436c384d437876505738725457463061433570625856734b4655735933517066444137646d4679494868305053686f4b796875505734725457463061433570625856734b4867736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368344c4764304b5877774b53744e5958526f4c6d6c746457776f5469787764436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243684f4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f6548512b506a34794e696c384d437834644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169787364436b736154306f6154314e5958526f4c6d6c746457776f6169786a64436b704b3031686447677561573131624368454c4778304b5877774c4738395457463061433570625856734b455173593351704f335a686369424f6444306f6143736f626a31754b3031686447677561573131624368444c4842304b5877774b5877774b53736f4b4467784f54456d4b4d0802476b394b476b396153744e5958526f4c6d6c746457776f5179786e64436c384d436b725457463061433570625856734b46557363485170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5653786e64436c384d436b724b476b2b506a34784d796c384d436b724b453530506a342b4d6a597066444173546e516d505459334d5441344f44597a4f335a686369424a6444306f6143736f626a314e5958526f4c6d6c746457776f6169787764436b70664441704b79676f4f4445354d53596f6154306f6154314e5958526f4c6d6c746457776f6169786e64436b704b3031686447677561573131624368454c4842304b5877774b536b385044457a4b5877774f334a6c644856796269426f5053676f627a314e5958526f4c6d6c746457776f5243786e64436b704b796870506a342b4d544d70664441704b79684a6444342b506a49324b5877774c456c304a6a30324e7a45774f4467324d797831577a4264505731304c4856624d56303965585173645673795854313364437831577a4e6450585a304c4856624e463039596e5173645673315854314e64437831577a5a64505639304c4856624e31303952585173645673345854315464437831577a6c6450564a304c4856624d544264505546304c4856624d54466450554a304c4856624d544a64505578304c4856624d544e64505774304c4d08024856624d545264505539304c4856624d545664505652304c4856624d545a64505868304c4856624d546464505535304c4856624d54686450556c304c4441685054316f4a69596f645673784f563039614378794c6d786c626d6430614373724b5378796654746d6457356a64476c76626942354b4851735a5378794b5874794c6d356c5a32463061585a6c50575575626d566e59585270646d5665644335755a57646864476c325a5378794c6d786c626d6430614431304c6d786c626d64306143746c4c6d786c626d64306144746d6233496f646d4679494734394d43787050544173627a30774f323838636935735a57356e644767744d5474764b79737065335a686369427a50576b37615430774f325a766369683259584967595430324e7a45774f4467324d795a754c48553954574630614335746157346f6279786c4c6d786c626d6430614330784b53786f5055316864476775625746344b444173627931304c6d786c626d6430614373784b54746f504431314f3267724b796c37646d4679494759396279316f4c4777394b4442386443353362334a6b6331746d58536b714b4442385a53353362334a6b6331746f58536b73597a30324e7a45774f4467324d795a734f3245394e6a63784d4467344e6a4d6d4b474d3959797468664441704c476b725053687a5053687a50584d724b4777764e6a63784d4467344e6a52384d436c384d4d0802436b724b474d2b506a34794e696c384d436b2b506a34794e69787a4a6a30324e7a45774f4467324d3331794c6e6476636d527a5732396450574573626a317a4c484d39615831795a585231636d34674d4345395057342f6369353362334a6b63317476585431754f6e4975624756755a33526f4c53307363693566633352796158416f4b58316d6457356a64476c76626942334b4851735a5378794b5874795a585231636d3467655368304c47557363696c395a6e56755933527062323467646968304c4755706533526f61584d75654431304c48526f61584d756554316c665531686447677561573131624878384b4730395a796b7362793577636d3930623352356347557562585673564738395a6e5675593352706232346f6443786c4b58743259584967636a313061476c7a4c6d786c626d6430614374304c6d786c626d6430614474795a585231636d34674d5441395054313061476c7a4c6d786c626d64306143596d4d544139505431304c6d786c626d6430614439744b48526f61584d736443786c4b5470795044597a5032636f64476870637978304c4755704f6e49384d5441794e4439354b48526f61584d736443786c4b5470334b48526f61584d736443786c4b58307364693577636d39306233523563475575625746725a564a435644316d6457356a64476c76626968304b58746d6233496f646d467949475539626d5633494d0802454679636d46354b4851704c48493962793577636d3930623352356347557558324e7664573530516d6c30637968304b5330784c4734394d44747550485137626973724b575662626c303964476870637935795a585a436157346f626978794c4851704f334a6c644856796269426c665378324c6e42796233527664486c775a5335795a585a43615734395a6e5675593352706232346f6443786c4c48497065326c6d4b444139505431306648783050543039636930784b584a6c64485679626942304f325a766369683259584967626a30774c476b394d44747050475537615373724b573538505367784a6e51705044786c4c576b744d537830506a34394d5474795a585231636d3467626e307364693577636d3930623352356347557563475679625856305a54316d6457356a64476c76626968304c475573636978754c476b7362796c375a6d39794b485a686369427a50544137637a78764f334d724b796c7557334e64505756626446747a585630736156747a585431795733526263313164665378324c6e42796233527664486c775a533530636d467563325a76636d30395a6e5675593352706232346f6443786c4c484973626978704c4738706533526f61584d7563475679625856305a5368764c4851735a5378794c47347361536b375a6d39794b485a686369427a50544537637a78704f334d38504430784b575a7663696832594d08025849675954317a504477784c485539545746306143356a62334d6f4d69704e5958526f4c6c424a4c3245704c476739545746306143357a6157346f4d69704e5958526f4c6c424a4c3245704c4759394d44746d50476b375a69733959536c6d6233496f646d4679494777396453786a505767735a4430774f325138637a746b4b79737065335a686369427750584a625a69746b5853786e505735625a69746b5853787450584a625a69746b4b334e644c486b39626c746d4b32517263313073647a31734b6d3074597970354f336b39624370354b324d716253787450586373636c746d4b3252645058417262537875573259725a4630395a7974354c484a625a69746b4b334e645058417462537875573259725a43747a5854316e4c586b735a4345395057456d4a696833505855716243316f4b6d4d73597a31314b6d4d72614370734c47773964796c39665378324c6e42796233527664486c775a53356e6457567a6330786c626a457a596a316d6457356a64476c76626968304c47557065335a68636942795054463854574630614335745958676f5a5378304b5378755054456d63697870505441375a6d39794b4849396369387966444137636a7479506a342b50544570615373724f334a6c6448567962694178504478704b7a4572626e307364693577636d3930623352356347557559323975616e566e5958526c50575a31626d4e30614d08025739754b4851735a5378794b5874705a6967684b484938505445704b575a766369683259584967626a30774f323438636938794f3234724b796c37646d467949476b3964467475585474305732356450585262636931754c5446644c485262636931754c54466450576b736154316c573235644c475662626c30394c575662636931754c5446644c475662636931754c544664505331706658307364693577636d39306233523563475575626d3979625746736158706c4d544e6950575a31626d4e30615739754b4851735a536c375a6d39794b485a686369427950544173626a30774f3234385a5338794f3234724b796c37646d467949476b394f4445354d69704e5958526f4c6e4a766457356b4b4852624d6970754b7a46644c3255704b30316864476775636d3931626d516f644673794b6d35644c3255704b33493764467475585430324e7a45774f4467324d795a704c484939615477324e7a45774f4467324e4438774f6d6b764e6a63784d4467344e6a52384d4831795a585231636d34676448307364693577636d3930623352356347557559323975646d56796444457a596a316d6457356a64476c76626968304c475573636978704b58746d6233496f646d4679494738394d43787a50544137637a786c4f334d724b796c764b7a30776648526263313073636c73794b6e4e64505467784f54456d62797876506a342b5054457a4c4d0802484a624d69707a4b7a4664505467784f54456d62797876506a342b5054457a4f325a766369687a505449715a54747a50476b374b79747a4b584a62633130394d4474754b444139505431764b5378754b444139505367744f4445354d695a764b536c394c48597563484a76644739306558426c4c6e4e30645749395a6e5675593352706232346f64436c375a6d39794b485a686369426c5057356c64794242636e4a68655368304b53787950544137636a78304f3349724b796c6c57334a6450544137636d563064584a75494756394c48597563484a76644739306558426c4c6d3131624841395a6e5675593352706232346f6443786c4c48497065335a686369427550544971644768706379356e6457567a6330786c626a457a596968304c6d786c626d64306143786c4c6d786c626d643061436b736154313061476c7a4c6d316861325653516c516f62696b73627a313061476c7a4c6e4e306457496f62696b73637a31755a58636751584a7959586b6f62696b73595431755a58636751584a7959586b6f62696b73645431755a58636751584a7959586b6f62696b73614431755a58636751584a7959586b6f62696b735a6a31755a58636751584a7959586b6f62696b73624431755a58636751584a7959586b6f62696b73597a31794c6e6476636d527a4f324d75624756755a33526f50573473644768706379356a623235325a584a304d4d0802544e694b485175643239795a484d73644335735a57356e64476773637978754b53783061476c7a4c6d4e76626e5a6c636e51784d32496f5a53353362334a6b6379786c4c6d786c626d64306143786f4c4734704c48526f61584d7564484a68626e4e6d62334a744b484d73627978684c485573626978704b53783061476c7a4c6e52795957357a5a6d39796253686f4c4738735a6978734c47347361536b375a6d39794b485a686369426b505441375a4478754f3251724b796c37646d4679494841395956746b5853706d573252644c5856625a4630716246746b5854743157325264505746625a4630716246746b58537431573252644b6d5a625a4630735956746b5854317766584a6c644856796269423061476c7a4c6d4e76626d70315a3246305a5368684c48557362696b736447687063793530636d467563325a76636d306f595378314c474d73627978754c476b704c48526f61584d7559323975616e566e5958526c4b474d73627978754b53783061476c7a4c6d3576636d316862476c365a54457a5969686a4c4734704c484975626d566e59585270646d5539644335755a57646864476c325a56356c4c6d356c5a32463061585a6c4c484975624756755a33526f50585175624756755a33526f4b325575624756755a33526f4c48497558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d31316244316d644d080257356a64476c76626968304b587432595849675a5431755a58636762796875645778734b5474795a585231636d34675a53353362334a6b637a31755a58636751584a7959586b6f64476870637935735a57356e64476772644335735a57356e644767704c48526f61584d75625856735647386f6443786c4b58307362793577636d39306233523563475575625856735a6a316d6457356a64476c76626968304b587432595849675a5431755a58636762796875645778734b5474795a585231636d34675a53353362334a6b637a31755a58636751584a7959586b6f64476870637935735a57356e64476772644335735a57356e644767704c48636f64476870637978304c475570665378764c6e42796233527664486c775a5335706258567350575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e736232356c4b436b75625856735647386f6443783061476c7a4b58307362793577636d3930623352356347557561573131624734395a6e5675593352706232346f64436c37646d467949475539644477774f32556d4a696830505331304b5378754b434a75645731695a584969505431306558426c6232596764436b7362696830504459334d5441344f4459304b54746d6233496f646d4679494849394d437870505441376154783061476c7a4c6d786c626d6430614474704b79737065335a6863694276504d08025367776648526f61584d75643239795a484e62615630704b6e5173637a306f4e6a63784d4467344e6a4d6d62796b724b4459334d5441344f44597a4a6e49704f33492b506a30794e6978794b7a31764c7a59334d5441344f4459306644417363697339637a342b506a49324c48526f61584d75643239795a484e62615630394e6a63784d4467344e6a4d6d633331795a585231636d34674d4345395058496d4a69683061476c7a4c6e6476636d527a57326c645058497364476870637935735a57356e644767724b796b735a54393061476c7a4c6d6c755a57636f4b54703061476c7a665378764c6e42796233527664486c775a5335746457787550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e736232356c4b436b75615731316247346f64436c394c47387563484a76644739306558426c4c6e4e78636a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d31316243683061476c7a4b58307362793577636d3930623352356347557561584e78636a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d6c746457776f644768706379356a624739755a5367704b58307362793577636d393062335235634755756347393350575a31626d4e30615739754b48517065335a686369426c50575a31626d4e30615739754b48517065325a76634d0802696832595849675a5431755a58636751584a7959586b6f644335696158524d5a57356e6447676f4b536b73636a30774f3349385a5335735a57356e64476737636973724b58743259584967626a31794c7a493266444173615431794a5449324f325662636c30396443353362334a6b633174755854342b506d6b6d4d5831795a585231636d34675a58306f64436b376157596f4d44303950575575624756755a33526f4b584a6c64485679626942755a586367627967784b54746d6233496f646d467949484939644768706379787550544137626a786c4c6d786c626d64306143596d4d44303950575662626c3037626973724c4849396369357a6358496f4b536b376157596f4b79747550475575624756755a33526f4b575a766369683259584967615431794c6e4e78636967704f3234385a5335735a57356e64476737626973724c476b396153357a6358496f4b536b77495430395a5674755853596d4b484939636935746457776f61536b704f334a6c6448567962694279665378764c6e42796233527664486c775a53357064584e6f624734395a6e5675593352706232346f64436c3762696769626e5674596d5679496a303964486c775a57396d4948516d4a6e512b505441704f335a686369426c4c484939644355794e697870505368304c5849704c7a49324c4738394e6a63784d4467344e6a4d2b506a34794e693179504477794e4d08026931794f326c6d4b444168505431794b58743259584967637a30774f325a766369686c505441375a54783061476c7a4c6d786c626d64306144746c4b79737065335a68636942685058526f61584d75643239795a484e625a56306d62797831505367776648526f61584d75643239795a484e625a5630704c57453850484937644768706379353362334a6b6331746c5854313166484d73637a3168506a342b4d6a5974636e317a4a69596f644768706379353362334a6b6331746c5854317a4c48526f61584d75624756755a33526f4b79737066576c6d4b444168505431704b58746d6233496f5a54313061476c7a4c6d786c626d6430614330784f32552b505441375a5330744b58526f61584d75643239795a484e625a5374705854313061476c7a4c6e6476636d527a573256644f325a766369686c505441375a5478704f3255724b796c3061476c7a4c6e6476636d527a573256645054413764476870637935735a57356e6447677250576c39636d563064584a754948526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d6c7a6147787550575a31626d4e30615739754b48517065334a6c64485679626942754b4441395054313061476c7a4c6d356c5a32463061585a6c4b53783061476c7a4c6d6c3163326873626968304b58307362793577636d393062335235634755756158567a61484a75504d0802575a31626d4e30615739754b4851735a5378794b58743259584967615474754b434a75645731695a584969505431306558426c623259676443596d644434394d436b736154316c5079686c4c57556c4d6a59704c7a49324f6a4137646d467949473839644355794e69787a505531686447677562576c754b4368304c5738704c7a49324c48526f61584d75624756755a33526f4b537868505459334d5441344f44597a586a59334d5441344f44597a506a342b627a773862797831505849376157596f61533039637978705055316864476775625746344b44417361536b7364536c375a6d39794b485a686369426f505441376144787a4f3267724b796c314c6e6476636d527a573268645058526f61584d75643239795a484e6261463037645335735a57356e64476739633331705a6967775054303963796b375a57787a5a5342705a69683061476c7a4c6d786c626d64306144357a4b575a766369683061476c7a4c6d786c626d6430614330396379786f505441376144783061476c7a4c6d786c626d64306144746f4b797370644768706379353362334a6b6331746f5854313061476c7a4c6e6476636d527a57326772633130375a57787a5a53423061476c7a4c6e6476636d527a577a42645054417364476870637935735a57356e644767394d547432595849675a6a30774f325a766369686f5058526f61584d75624756755a33526f4c4d0802544537614434394d43596d4b4441685054316d6648786f506a31704b54746f4c53307065335a686369427350544238644768706379353362334a6b6331746f5854743061476c7a4c6e6476636d527a5732686450575938504449324c5739386244342b506d38735a6a31734a6d4639636d563064584a754948556d4a6a41685054316d4a69596f6453353362334a6b633174314c6d786c626d6430614373725854316d4b5377775054303964476870637935735a57356e6447676d4a69683061476c7a4c6e6476636d527a577a42645054417364476870637935735a57356e644767394d536b736447687063793566633352796158416f4b58307362793577636d3930623352356347557561584e6f636d34395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942754b4441395054313061476c7a4c6d356c5a32463061585a6c4b53783061476c7a4c6d6c3163326879626968304c47557363696c394c47387563484a76644739306558426c4c6e4e6f624734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357063326873626968304b58307362793577636d3930623352356347557564584e6f624734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357064584e6f6247346f64436c394c4d080247387563484a76644739306558426c4c6e4e6f636d34395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357063326879626968304b58307362793577636d3930623352356347557564584e6f636d34395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357064584e6f636d346f64436c394c47387563484a76644739306558426c4c6e526c6333527550575a31626d4e30615739754b4851706532346f496d353162574a6c6369493950585235634756765a6942304a695a30506a30774b547432595849675a5431304a5449324c4849394b4851745a536b764d6a5973615430785044786c4f334a6c644856796269456f64476870637935735a57356e64476738505849704a6959684953683061476c7a4c6e6476636d527a57334a644a6d6b70665378764c6e42796233527664486c775a5335706257467a613234395a6e5675593352706232346f64436c3762696769626e5674596d5679496a303964486c775a57396d4948516d4a6e512b505441704f335a686369426c5058516c4d6a5973636a306f6443316c4b5338794e6a74705a6968754b4441395054313061476c7a4c6d356c5a32463061585a6c4c434a706257467a613234676432397961334d6762323573655342336158526f4948427663326c3061585a6c494d080247353162574a6c636e4d694b53783061476c7a4c6d786c626d64306144773963696c795a585231636d346764476870637a74705a696777495430395a53596d636973724c48526f61584d75624756755a33526f505531686447677562576c754b48497364476870637935735a57356e644767704c4441685054316c4b58743259584967615430324e7a45774f4467324d3134324e7a45774f4467324d7a342b506d553850475537644768706379353362334a6b6331743061476c7a4c6d786c626d64306143307858535939615831795a585231636d34676447687063793566633352796158416f4b58307362793577636d393062335235634755756257467a613234395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b5335706257467a6132346f64436c394c47387563484a76644739306558426c4c6d6c685a47527550575a31626d4e30615739754b48517065334a6c64485679626942754b434a75645731695a584969505431306558426c6232596764436b7362696830504459334d5441344f4459304b5378305044412f6447687063793570633356696269677464436b364d4345395058526f61584d75626d566e59585270646d552f4d5430395058526f61584d75624756755a33526f4a69596f4d48783061476c7a4c6e6476636d527a577a42644b5477396444386f64476870634d080279353362334a6b63317377585431304c5367776648526f61584d75643239795a484e624d4630704c48526f61584d75626d566e59585270646d55394d43783061476c7a4b546f6f64476870637935755a57646864476c325a5430774c48526f61584d7561584e31596d346f64436b7364476870637935755a57646864476c325a5430784c48526f61584d704f6e526f61584d7558326c685a4752754b485170665378764c6e42796233527664486c775a5335666157466b5a4734395a6e5675593352706232346f64436c37644768706379353362334a6b63317377585373396444746d6233496f646d4679494755394d44746c5048526f61584d75624756755a33526f4a695a3061476c7a4c6e6476636d527a57325664506a30324e7a45774f4467324e44746c4b797370644768706379353362334a6b6331746c585330394e6a63784d4467344e6a51735a5430395058526f61584d75624756755a33526f4c54452f644768706379353362334a6b6331746c4b7a466450544536644768706379353362334a6b6331746c4b7a46644b797337636d563064584a754948526f61584d75624756755a33526f5055316864476775625746344b48526f61584d75624756755a33526f4c4755724d536b73644768706333307362793577636d3930623352356347557561584e31596d34395a6e5675593352706232346f64436c376157596f62696769624d08026e5674596d5679496a303964486c775a57396d494851704c47346f644477324e7a45774f4467324e436b73644477774b584a6c644856796269423061476c7a4c6d6c685a4752754b4331304b5474705a6967774954303964476870637935755a57646864476c325a536c795a585231636d346764476870637935755a57646864476c325a5430774c48526f61584d756157466b5a47346f64436b7364476870637935755a57646864476c325a5430784c48526f61584d376157596f644768706379353362334a6b6331737758533039644377785054303964476870637935735a57356e6447676d4a6e526f61584d75643239795a484e624d4630384d436c3061476c7a4c6e6476636d527a577a42645053313061476c7a4c6e6476636d527a577a42644c48526f61584d75626d566e59585270646d55394d54746c62484e6c49475a7663696832595849675a5430774f32553864476870637935735a57356e6447676d4a6e526f61584d75643239795a484e625a5630384d44746c4b797370644768706379353362334a6b6331746c585373394e6a63784d4467344e6a5173644768706379353362334a6b6331746c4b7a46644c5430784f334a6c644856796269423061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a5335685a47527550575a31626d4e30615739754b48517065334a6c6448567962694230614d0802476c7a4c6d4e736232356c4b436b756157466b5a47346f64436c394c47387563484a76644739306558426c4c6e4e31596d34395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357063335669626968304b58307362793577636d3930623352356347557561574669637a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d356c5a32463061585a6c50544173644768706333307362793577636d3930623352356347557559574a7a50575a31626d4e30615739754b436c37636d563064584a754948526f61584d7559327876626d556f4b53357059574a7a4b436c394c47387563484a76644739306558426c4c6c397063326873626e4e31596d31316244316d6457356a64476c76626968304c47557363696c37646d467949476b736279787a50585175624756755a33526f4b33493764476870637935665a5868775957356b4b484d704f335a6863694268505441375a6d39794b476b394d44747050485175624756755a33526f4f326b724b796c37627a306f4d48783061476c7a4c6e6476636d527a57326b72636c30704b324537646d4679494855394b4442386443353362334a6b6331747058536b715a5474685053676f627930394e6a63784d4467344e6a4d6d64536b2b506a49324b53306f645338324e7a45774f4467324e4877774b537830614d0802476c7a4c6e6476636d527a57326b72636c30394e6a63784d4467344e6a4d6d6233316d6233496f4f326b3864476870637935735a57356e64476774636a74704b7973705954306f627a306f4d48783061476c7a4c6e6476636d527a57326b72636c30704b324570506a34794e69783061476c7a4c6e6476636d527a57326b72636c30394e6a63784d4467344e6a4d6d627a74705a6967775054303959536c795a585231636d34676447687063793566633352796158416f4b54746d6233496f626967744d543039505745704c4745394d437870505441376154783061476c7a4c6d786c626d6430614474704b7973705954306f627a30744b444238644768706379353362334a6b6331747058536b7259536b2b506a49324c48526f61584d75643239795a484e62615630394e6a63784d4467344e6a4d6d627a74795a585231636d346764476870637935755a57646864476c325a5430784c48526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6c393362334a6b52476c3250575a31626d4e30615739754b4851735a536c37646d4679494849394b48526f61584d75624756755a33526f4c485175624756755a33526f4b5378755058526f61584d7559327876626d556f4b53787050585173637a307766476b75643239795a484e62615335735a57356e644767744d5630374d43453950536879505449324c4d080258526f61584d7558324e7664573530516d6c306379687a4b536b6d4a69687050576b7564584e6f6247346f63696b736269357064584e6f6247346f63696b73637a307766476b75643239795a484e62615335735a57356e644767744d5630704f335a68636942684c485539626935735a57356e64476774615335735a57356e644767376157596f496d31765a4349685054316c4b58736f595431755a58636762796875645778734b536b75624756755a33526f505855724d5378684c6e6476636d527a5057356c64794242636e4a68655368684c6d786c626d643061436b375a6d39794b485a686369426f50544137614478684c6d786c626d64306144746f4b7973705953353362334a6b6331746f5854307766585a686369426d5057347559327876626d556f4b53356661584e6f6247357a64574a746457776f615377784c4855704f7a41395054316d4c6d356c5a32463061585a6c4a69596f626a316d4c47456d4a6968684c6e6476636d527a57335664505445704b54746d6233496f646d467949477739645330784f32772b50544137624330744b58743259584967597a30324e7a45774f4467324e436f6f4d4878754c6e6476636d527a57326b75624756755a33526f4b3278644b53736f4d4878754c6e6476636d527a57326b75624756755a33526f4b3277744d5630704f325a766369686a505531686447677562576c754b474d76634d08023377774c4459334d5441344f44597a4b5378754c6c397063326873626e4e31596d3131624368704c474d7362436b374d43453950573475626d566e59585270646d55374b574d744c5378754c6d356c5a32463061585a6c505441736269356661584e6f6247357a64574a746457776f615377784c4777704c47347561584e615a584a764b436c38664368754c6d356c5a32463061585a6c586a30784b5474684a69596f5953353362334a6b633174735854316a4b5831795a585231636d34675953596d59533566633352796158416f4b5378754c6c397a64484a70634367704c434a6b61585969495430395a53596d4d4345395058496d4a6d34756158567a61484a754b4849704c48746b6158593659587838626e56736243787462325136626e31394c47387563484a76644739306558426c4c6d5270646d31765a44316d6457356a64476c76626968304c47557363696c37636d563064584a754947346f4958517561584e615a584a764b436b704c48526f61584d7561584e615a584a764b436b2f65325270646a70755a586367627967774b53787462325136626d56334947386f4d436c394f6a41685054313061476c7a4c6d356c5a32463061585a6c4a69597750543039644335755a57646864476c325a54386f5954313061476c7a4c6d356c5a7967704c6d5270646d31765a4368304c4755704c434a7462325169495430395a53596d4b4d0802476b395953356b61585975626d566e4b436b704c434a6b61585969495430395a53596d4b484d395953357462325175626d566e4b436b736369596d4d43453950584d75626d566e59585270646d556d4a6e4d756157466b5a4368304b536b7365325270646a70704c4731765a44707a66536b364d4430395058526f61584d75626d566e59585270646d556d4a6a4168505431304c6d356c5a32463061585a6c507968685058526f61584d755a476c326257396b4b485175626d566e4b436b735a536b73496d31765a4349685054316c4a69596f615431684c6d5270646935755a57636f4b536b7365325270646a70704c4731765a4470684c6d31765a4830704f6a41685053683061476c7a4c6d356c5a32463061585a6c4a6e5175626d566e59585270646d5570507968685058526f61584d75626d566e4b436b755a476c326257396b4b485175626d566e4b436b735a536b73496d5270646949685054316c4a69596f637a31684c6d31765a4335755a57636f4b5378794a69597749543039637935755a57646864476c325a53596d63793570633356694b4851704b5378375a476c324f6d45755a476c324c4731765a44707a66536b36644335735a57356e6447672b64476870637935735a57356e644768386648526f61584d75593231774b4851705044412f65325270646a70755a586367627967774b5378746232513664476870633330364d4d080254303950585175624756755a33526f50794a6b61585969505430395a5439375a476c324f6e526f61584d755a476c32626968304c6e6476636d527a577a42644b53787462325136626e567362483036496d31765a4349395054316c5033746b61585936626e56736243787462325136626d56334947386f644768706379357462325279626968304c6e6476636d527a577a42644b536c394f6e746b61585936644768706379356b61585a754b485175643239795a484e624d4630704c4731765a4470755a5863676279683061476c7a4c6d31765a484a754b485175643239795a484e624d4630704b5830366447687063793566643239795a455270646968304c4755704f335a68636942704c484d735958307362793577636d393062335235634755755a476c3250575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d5270646d31765a4368304c434a6b615859694c4345784b53356b61585a394c47387563484a76644739306558426c4c6d31765a44316d6457356a64476c76626968304b5874795a585231636d3467644768706379356b61585a746232516f644377696257396b496977684d536b756257396b665378764c6e42796233527664486c775a5335316257396b50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d5270646d31765a4368304c434a74623251694c4d08024345774b533574623252394c47387563484a76644739306558426c4c6d5270646c4a766457356b50575a31626d4e30615739754b48517065335a686369426c5058526f61584d755a476c326257396b4b4851704f326c6d4b4755756257396b4c6d6c7a576d5679627967704b584a6c644856796269426c4c6d5270646a743259584967636a3077495430395a53356b61585975626d566e59585270646d552f5a5335746232517561584e31596968304b54706c4c6d31765a4378755058517564584e6f636d346f4d536b73615431304c6d46755a4778754b4445704c4738396369356a6258416f62696b37636d563064584a75494738384d4878384d54303950576b6d4a6a413950543176503255755a476c324f6a41685054316c4c6d5270646935755a57646864476c325a54396c4c6d52706469357063335669626967784b54706c4c6d5270646935705957526b626967784b58307362793577636d393062335235634755756257396b636d34395a6e5675593352706232346f64436c37646d467949475539644477774f32556d4a696830505331304b5378754b485138505459334d5441344f44597a4b54746d6233496f646d4679494849394b444538504449324b5356304c476b394d4378765058526f61584d75624756755a33526f4c544537627a34394d4474764c5330706154306f636970704b7967776648526f61584d75643239795a4d0802484e62623130704b5356304f334a6c644856796269426c507931704f6d6c394c47387563484a76644739306558426c4c6d31765a4734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d756257396b636d346f64436c394c47387563484a76644739306558426c4c6d6c6b61585a7550575a31626d4e30615739754b48517065335a686369426c505851384d44746c4a69596f6444307464436b7362696830504430324e7a45774f4467324d796b375a6d39794b485a6863694279505441736154313061476c7a4c6d786c626d6430614330784f326b2b50544137615330744b58743259584967627a306f4d48783061476c7a4c6e6476636d527a57326c644b5373324e7a45774f4467324e4370794f33526f61584d75643239795a484e62615630396279393066444173636a31764a585239636d563064584a754948526f61584d7558334e30636d6c774b436b735a54393061476c7a4c6d6c755a57636f4b54703061476c7a665378764c6e42796233527664486c775a53356b61585a7550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e736232356c4b436b7561575270646d346f64436c394c47387563484a76644739306558426c4c6d566e593251395a6e5675593352706232346f64436c376269677750543039644335755a57646864476c325a536b7362696768644d08024335706331706c636d386f4b536b37646d46794947553964476870637978795058517559327876626d556f4b54746c505441685054316c4c6d356c5a32463061585a6c50325575645731765a4368304b54706c4c6d4e736232356c4b436b375a6d39794b485a68636942705057356c647942764b4445704c484d39626d56334947386f4d436b73595431755a586367627967774b5378315057356c647942764b4445704c4767394d44746c4c6d6c7a52585a6c626967704a695a794c6d6c7a52585a6c626967704f796c6c4c6d6c3163326879626967784b5378794c6d6c3163326879626967784b5377724b3267375a6d39794b485a686369426d5058497559327876626d556f4b5378735057557559327876626d556f4b5473685a5335706331706c636d386f4b54737065325a766369683259584967597a30774c4751394d5473775054306f5a53353362334a6b6331737758535a6b4b53596d597a77794e6a73724b324d735a447738505445704f326c6d4b474d2b4d436c6d6233496f5a53357064584e6f636d346f59796b3759793074494434774f796b6f615335706330396b5a4367706648787a4c6d6c7a5432526b4b436b704a69596f615335705957526b4b4759704c484d7561584e31596968734b536b736153357064584e6f636d346f4d536b736379357064584e6f636d346f4d536b375a6d39794b485a6863694277505441735a4d08027a30784f7a4139505368794c6e6476636d527a577a42644a6d63704a695a77504449324f7973726343786e504477394d536b376157596f634434774b575a76636968794c6d6c3163326879626968774b5474774c533067506a41374b5368684c6d6c7a5432526b4b436c386648557561584e505a47516f4b536b6d4a6968684c6d6c685a47516f5a696b7364533570633356694b4777704b5378684c6d6c3163326879626967784b5378314c6d6c3163326879626967784b54746c4c6d4e74634368794b5434394d44386f5a533570633356694b4849704c476b7561584e31596968684b53787a4c6d6c7a6457496f64536b704f6968794c6d6c7a6457496f5a536b7359533570633356694b476b704c48557561584e315969687a4b536c39636d563064584a7565324573596a70314c47646a5a4470794c6d6c31633268736269686f4b5831394c47387563484a76644739306558426c4c6c3970626e5a746344316d6457356a64476c76626968304b5874754b444139505431304c6d356c5a32463061585a6c4b5378754b4346304c6d6c7a576d5679627967704b547432595849675a54313061476c7a4c4849396443356a624739755a5367704f3255394d43453950575575626d566e59585270646d552f5a5335316257396b4b4851704f6d557559327876626d556f4b54746d6233496f646d467949476b73637a31755a586367627967784b4d08025378685057356c647942764b4441704c4855396369356a624739755a5367704f32557559323177626967784b5434774a695a794c6d4e746347346f4d536b2b4d44737065325a766369683259584967614430774c4759394d5473775054306f5a53353362334a6b6331737758535a6d4b53596d614477794e6a73724b3267735a6a7738505445704f326c6d4b47672b4d436c6d6233496f5a53357064584e6f636d346f61436b3761433074494434774f796c7a4c6d6c7a5432526b4b436b6d4a6e4d756157466b5a4368314b53787a4c6d6c3163326879626967784b54746d6233496f646d4679494777394d43786a505445374d4430394b484975643239795a484e624d46306d59796b6d4a6d77384d6a59374b7974734c474d38504430784b5474705a696873506a41705a6d39794b4849756158567a61484a754b4777704f3277744c53412b4d447370595335706330396b5a4367704a695a684c6d6c685a47516f64536b735953357064584e6f636d346f4d536b375a53356a6258416f63696b2b5054412f4b47557561584e31596968794b53787a4c6d6c7a6457496f59536b704f6968794c6d6c7a6457496f5a536b7359533570633356694b484d704b5831795a585231636d346f61543077505430395a53356a625842754b44457050334d3659536b7559323177626967774b5477774a695a704c6d6c685a47516f64436b7361583073624d0802793577636d393062335235634755755a324e6b50575a31626d4e30615739754b48517065326c6d4b48526f61584d7561584e615a584a764b436b70636d563064584a754948517559574a7a4b436b376157596f644335706331706c636d386f4b536c795a585231636d34676447687063793568596e4d6f4b547432595849675a54313061476c7a4c6d4e736232356c4b436b73636a31304c6d4e736232356c4b436b375a5335755a57646864476c325a5430774c484975626d566e59585270646d55394d44746d6233496f646d4679494734394d44746c4c6d6c7a52585a6c626967704a695a794c6d6c7a52585a6c626967704f3234724b796c6c4c6d6c3163326879626967784b5378794c6d6c3163326879626967784b54746d6233496f4f7a737065325a76636967375a533570633056325a57346f4b5473705a53357064584e6f636d346f4d536b375a6d39794b4474794c6d6c7a52585a6c626967704f796c794c6d6c3163326879626967784b547432595849676154316c4c6d4e74634368794b5474705a6968705044417065335a6863694276505755375a5431794c4849396233316c62484e6c49476c6d4b4441395054317066487777505430396369356a625842754b4445704b574a795a5746724f32557561584e31596968794b5831795a585231636d34676369357064584e6f6247346f62696c394c47387563484a7664473930654d080258426c4c6d6c75646d30395a6e5675593352706232346f64436c37636d563064584a754948526f61584d755a57646a5a4368304b5335684c6e56746232516f64436c394c47387563484a76644739306558426c4c6d6c7a52585a6c626a316d6457356a64476c766269677065334a6c64485679626941775054306f4d535a3061476c7a4c6e6476636d527a577a42644b58307362793577636d3930623352356347557561584e505a4751395a6e5675593352706232346f4b5874795a585231636d34674d5430394b44456d644768706379353362334a6b6331737758536c394c47387563484a76644739306558426c4c6d46755a47787550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6e6476636d527a577a42644a6e52394c47387563484a76644739306558426c4c6d4a70626d4e7550575a31626d4e30615739754b4851706532346f496d353162574a6c6369493950585235634756765a6942304b547432595849675a5431304a5449324c4849394b4851745a536b764d6a5973615430785044786c4f326c6d4b48526f61584d75624756755a33526f504431794b584a6c644856796269423061476c7a4c6c396c65484268626d516f636973784b53783061476c7a4c6e6476636d527a57334a64664431704c48526f61584d375a6d39794b485a686369427650576b73637a31794f7a4168505431764a4d0802695a7a5048526f61584d75624756755a33526f4f334d724b796c37646d4679494745394d48783061476c7a4c6e6476636d527a57334e644f3238394b47457250573870506a342b4d6a5973595359394e6a63784d4467344e6a4d73644768706379353362334a6b6331747a5854316866584a6c6448567962694177495430396279596d4b48526f61584d75643239795a484e62633130396279783061476c7a4c6d786c626d6430614373724b53783061476c7a665378764c6e42796233527664486c775a5335706331706c636d38395a6e5675593352706232346f4b5874795a585231636d34674d5430395058526f61584d75624756755a33526f4a69597750543039644768706379353362334a6b633173775858307362793577636d3930623352356347557559323177626a316d6457356a64476c76626968304b587432595849675a537879505851384d4474705a6967774954303964476870637935755a57646864476c325a53596d49584970636d563064584a754c5445376157596f4d4430395058526f61584d75626d566e59585270646d556d4a6e4970636d563064584a75494445376157596f6447687063793566633352796158416f4b53783061476c7a4c6d786c626d6430614434784b5755394d54746c62484e6c6533496d4a696830505331304b5378754b485138505459334d5441344f44597a4c434a4f645731695a584967614d0802584d676447397649474a705a7949704f335a686369427050544238644768706379353362334a6b633173775854746c50576b3950543130507a413661547830507930784f6a4639636d563064584a75494441685054313061476c7a4c6d356c5a32463061585a6c507a42384c5755365a58307362793577636d393062335235634755755932317750575a31626d4e30615739754b48517065326c6d4b4441685054313061476c7a4c6d356c5a32463061585a6c4a69597750543039644335755a57646864476c325a536c795a585231636d34744d5474705a6967775054303964476870637935755a57646864476c325a53596d4d43453950585175626d566e59585270646d5570636d563064584a7549444537646d4679494755396447687063793531593231774b4851704f334a6c64485679626941774954303964476870637935755a57646864476c325a5438776643316c4f6d56394c47387563484a76644739306558426c4c6e566a625841395a6e5675593352706232346f64436c376157596f64476870637935735a57356e6447672b644335735a57356e64476770636d563064584a75494445376157596f64476870637935735a57356e64476738644335735a57356e64476770636d563064584a754c5445375a6d39794b485a686369426c50544173636a313061476c7a4c6d786c626d6430614330784f33492b50544137636930744b4d080258743259584967626a30776648526f61584d75643239795a484e62636c30736154307766485175643239795a484e62636c30376157596f6269453950576b70653234386154396c505330784f6d342b6153596d4b4755394d536b37596e4a6c5957743966584a6c644856796269426c665378764c6e42796233527664486c775a53356e644734395a6e5675593352706232346f64436c37636d563064584a75494445395054313061476c7a4c6d4e746347346f64436c394c47387563484a76644739306558426c4c6d643050575a31626d4e30615739754b48517065334a6c644856796269417850543039644768706379356a6258416f64436c394c47387563484a76644739306558426c4c6d64305a5734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559323177626968304b5434394d48307362793577636d393062335235634755755a33526c50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e74634368304b5434394d48307362793577636d393062335235634755756248527550575a31626d4e30615739754b48517065334a6c644856796269307850543039644768706379356a625842754b485170665378764c6e42796233527664486c775a5335736444316d6457356a64476c76626968304b5874795a585231636d34744d5430395058526f61584d75594d08023231774b485170665378764c6e42796233527664486c775a5335736447567550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e746347346f64436b38505442394c47387563484a76644739306558426c4c6d78305a54316d6457356a64476c76626968304b5874795a585231636d3467644768706379356a6258416f64436b38505442394c47387563484a76644739306558426c4c6d5678626a316d6457356a64476c76626968304b5874795a585231636d34674d4430395058526f61584d7559323177626968304b58307362793577636d393062335235634755755a5845395a6e5675593352706232346f64436c37636d563064584a75494441395054313061476c7a4c6d4e74634368304b583073627935795a5751395a6e5675593352706232346f64436c37636d563064584a754947356c647942424b485170665378764c6e42796233527664486c775a53353062314a6c5a44316d6457356a64476c76626968304b5874795a585231636d34676269676864476870637935795a575173496b4673636d56685a486b6759534275645731695a58496761573467636d566b64574e306157397549474e76626e526c654851694b5378754b4441395054313061476c7a4c6d356c5a32463061585a6c4c434a795a5751676432397961334d6762323573655342336158526f4948427663326c3061585a6c634d08027949704c48517559323975646d5679644652764b48526f61584d704c6c396d62334a6a5a564a6c5a4368304b58307362793577636d393062335235634755755a6e4a7662564a6c5a44316d6457356a64476c766269677065334a6c64485679626942754b48526f61584d75636d566b4c434a6d636d3974556d566b49486476636d747a4947397562486b6764326c3061434275645731695a584a7a49476c7549484a6c5a48566a64476c766269426a623235305a58683049696b7364476870637935795a57517559323975646d567964455a796232306f6447687063796c394c47387563484a76644739306558426c4c6c396d62334a6a5a564a6c5a44316d6457356a64476c76626968304b5874795a585231636d346764476870637935795a5751396443783061476c7a665378764c6e42796233527664486c775a53356d62334a6a5a564a6c5a44316d6457356a64476c76626968304b5874795a585231636d34676269676864476870637935795a575173496b4673636d56685a486b6759534275645731695a58496761573467636d566b64574e306157397549474e76626e526c654851694b53783061476c7a4c6c396d62334a6a5a564a6c5a4368304b58307362793577636d39306233523563475575636d566b5157526b50575a31626d4e30615739754b48517065334a6c64485679626942754b48526f61584d75636d566b4c434a795a4d08025752425a4751676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a5751755957526b4b48526f61584d7364436c394c47387563484a76644739306558426c4c6e4a6c5a456c425a4751395a6e5675593352706232346f64436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a456c425a4751676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a5751756157466b5a43683061476c7a4c485170665378764c6e42796233527664486c775a5335795a575254645749395a6e5675593352706232346f64436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a464e315969423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a43357a6457496f64476870637978304b58307362793577636d39306233523563475575636d566b53564e31596a316d6457356a64476c76626968304b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b53564e315969423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a433570633356694b48526f61584d7364436c394c4d080247387563484a76644739306558426c4c6e4a6c5a464e6f6244316d6457356a64476c76626968304b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b5532687349486476636d747a4947397562486b6764326c30614342795a575167626e5674596d5679637949704c48526f61584d75636d566b4c6e4e6f6243683061476c7a4c485170665378764c6e42796233527664486c775a5335795a57524e645777395a6e5675593352706232346f64436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a4531316243423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a433566646d567961575a354d69683061476c7a4c4851704c48526f61584d75636d566b4c6d31316243683061476c7a4c485170665378764c6e42796233527664486c775a5335795a57524a5458567350575a31626d4e30615739754b48517065334a6c64485679626942754b48526f61584d75636d566b4c434a795a57524e645777676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a57517558335a6c636d6c6d6554496f64476870637978304b53783061476c7a4c6e4a6c5a433570625856734b48526f61584d7364436c394c47387563484a7664473930654d080258426c4c6e4a6c5a464e78636a316d6457356a64476c766269677065334a6c64485679626942754b48526f61584d75636d566b4c434a795a575254635849676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a57517558335a6c636d6c6d6554456f6447687063796b7364476870637935795a575175633346794b48526f61584d70665378764c6e42796233527664486c775a5335795a57524a5533467950575a31626d4e30615739754b436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a456c54635849676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a57517558335a6c636d6c6d6554456f6447687063796b7364476870637935795a57517561584e786369683061476c7a4b58307362793577636d39306233523563475575636d566b553346796444316d6457356a64476c766269677065334a6c64485679626942754b48526f61584d75636d566b4c434a795a57525463584a3049486476636d747a4947397562486b6764326c30614342795a575167626e5674596d5679637949704c48526f61584d75636d566b4c6c39325a584a705a6e6b784b48526f61584d704c48526f61584d75636d566b4c6e4e78636e516f6447687063796c394c473875634d0802484a76644739306558426c4c6e4a6c5a456c75646d30395a6e5675593352706232346f4b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b535735326253423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a433566646d567961575a354d53683061476c7a4b53783061476c7a4c6e4a6c5a433570626e5a744b48526f61584d70665378764c6e42796233527664486c775a5335795a57524f5a5763395a6e5675593352706232346f4b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b546d566e49486476636d747a4947397562486b6764326c30614342795a575167626e5674596d5679637949704c48526f61584d75636d566b4c6c39325a584a705a6e6b784b48526f61584d704c48526f61584d75636d566b4c6d356c5a79683061476c7a4b58307362793577636d39306233523563475575636d566b5547393350575a31626d4e30615739754b48517065334a6c64485679626942754b48526f61584d75636d566b4a695968644335795a575173496e4a6c5a4642766479687562334a745957784f6457307049696b7364476870637935795a57517558335a6c636d6c6d6554456f6447687063796b7364476870637935795a575175634739334b48526f61584d7364436c394f335a6863694269504d08025874724d6a55324f6d353162477773634449794e447075645778734c4841784f544936626e5673624378774d6a55314d546b36626e5673624830375a6e56755933527062323467545368304c4755706533526f61584d75626d46745a5431304c48526f61584d75634431755a5863676279686c4c4445324b53783061476c7a4c6d343964476870637935774c6d4a706445786c626d6430614367704c48526f61584d75617a31755a586367627967784b53357064584e6f6247346f64476870637935754b533570633356694b48526f61584d7563436b736447687063793530625841396447687063793566644731774b436c395a6e567559335270623234675879677065303075593246736243683061476c7a4c434a724d6a5532496977695a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d55675a6d5a6d5a6d5a6a4d6d59694b58316d6457356a64476c76626942464b436c375453356a595778734b48526f61584d73496e41794d6a51694c434a6d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a6941774d4441774d4441774d4341774d4441774d4441774d4341774d4441774d4441774d53497066575a31624d08026d4e306157397549464d6f4b58744e4c6d4e686247776f6447687063797769634445354d694973496d5a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6c49475a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d49696c395a6e567559335270623234675569677065303075593246736243683061476c7a4c4349794e5455784f534973496a646d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a5751694b58316d6457356a64476c76626942424b48517065326c6d4b434a7a64484a70626d6369505431306558426c6232596764436c37646d4679494755396279356663484a706257556f64436b376447687063793574505755756343783061476c7a4c6e42796157316c505756395a57787a5a5342754b4851755a3352754b4445704c434a74623252316248567a4947313163335167596d55675a334a6c5958526c6369423061474675494445694b53783061476c7a4c6d30396443783061476c7a4c6e42796157316c50573531624778395a6e56755933527062323467516968304b5874424c6d4e686247776f64476870637978304b53783061476c7a4c6e4e6f61575a305058526f61584d75624d08025335696158524d5a57356e6447676f4b53783061476c7a4c6e4e6f61575a304a544932495430774a69596f644768706379357a61476c6d644373394d6a5974644768706379357a61476c6d644355794e696b7364476870637935795057356c647942764b4445704c6d6c31633268736269683061476c7a4c6e4e6f61575a304b53783061476c7a4c6e49795058526f61584d75615731765a43683061476c7a4c6e4975633346794b436b704c48526f61584d75636d6c75646a313061476c7a4c6e497558326c75646d31774b48526f61584d7562536b736447687063793574615735325058526f61584d75636d6c75646935746457776f64476870637935794b53357063335669626967784b53356b6158596f64476870637935744b53783061476c7a4c6d3170626e59396447687063793574615735324c6e56746232516f64476870637935794b53783061476c7a4c6d3170626e593964476870637935794c6e4e315969683061476c7a4c6d3170626e59706655307563484a76644739306558426c4c6c3930625841395a6e5675593352706232346f4b58743259584967644431755a58636762796875645778734b5474795a585231636d34676443353362334a6b637a31755a58636751584a7959586b6f545746306143356a5a576c734b48526f61584d75626938784d796b704c4852394c45307563484a76644739306558426c4c6d6c795a4d0802575231593255395a6e5675593352706232346f64436c37646d467949475573636a31304f3252766533526f61584d75633342736158516f6369783061476c7a4c6e527463436b735a54306f636a306f636a313061476c7a4c6d6c746457784c4b4849704b5335705957526b4b48526f61584d75644731774b536b75596d6c30544756755a33526f4b436c39643268706247556f5a54353061476c7a4c6d34704f335a6863694275505755386447687063793575507930784f6e497564574e746343683061476c7a4c6e41704f334a6c644856796269417750543039626a386f6369353362334a6b63317377585430774c484975624756755a33526f505445704f6d342b4d4439794c6d6c7a6457496f64476870637935774b54703262326c6b49444168505431794c6e4e30636d6c7750334975633352796158416f4b5470794c6c397a64484a70634367704c484a394c45307563484a76644739306558426c4c6e4e7762476c3050575a31626d4e30615739754b4851735a536c376443357064584e6f636d346f64476870637935754c4441735a536c394c45307563484a76644739306558426c4c6d6c746457784c50575a31626d4e30615739754b48517065334a6c64485679626942304c6d6c746457776f64476870637935724b583073615368664c4530704c46387563484a76644739306558426c4c6e4e7762476c3050575a31626d4e30614d08025739754b4851735a536c375a6d39794b485a6863694279505451784f54517a4d444d73626a314e5958526f4c6d3170626968304c6d786c626d6430614377354b53787050544137615478754f326b724b796c6c4c6e6476636d527a57326c6450585175643239795a484e62615630376157596f5a5335735a57356e64476739626978304c6d786c626d6430614477394f536c795a585231636d34676443353362334a6b63317377585430774c485a766157516f644335735a57356e644767394d536b37646d4679494738396443353362334a6b633173355854746d6233496f5a53353362334a6b6331746c4c6d786c626d643061437372585431764a6e4973615430784d44747050485175624756755a33526f4f326b724b796c37646d467949484d394d4878304c6e6476636d527a57326c644f335175643239795a484e62615330784d4630394b484d6d63696b3850445238627a342b506a49794c47383963333176506a342b505449794c485175643239795a484e62615330784d46303962797777505430396279596d644335735a57356e6447672b4d54412f644335735a57356e64476774505445774f6e5175624756755a33526f4c543035665378664c6e42796233527664486c775a53357062585673537a316d6457356a64476c76626968304b5874304c6e6476636d527a57335175624756755a33526f585430774c485175643239795a4d0802484e62644335735a57356e644767724d5630394d4378304c6d786c626d6430614373394d6a746d6233496f646d4679494755394d43787950544137636a78304c6d786c626d6430614474794b79737065335a6863694275505442386443353362334a6b633174795854746c4b7a30354e7a6371626978304c6e6476636d527a57334a64505459334d5441344f44597a4a6d55735a5430324e4370754b79686c4c7a59334d5441344f4459306644417066584a6c6448567962694177505430396443353362334a6b633174304c6d786c626d6430614330785853596d4b485175624756755a33526f4c5330734d44303950585175643239795a484e62644335735a57356e644767744d56306d4a6e5175624756755a33526f4c5330704c4852394c476b6f5253784e4b5378704b464d7354536b73615368534c4530704c46497563484a76644739306558426c4c6d6c746457784c50575a31626d4e30615739754b48517065325a7663696832595849675a5430774c4849394d44747950485175624756755a33526f4f3349724b796c37646d4679494734394d546b714b4442386443353362334a6b6331747958536b725a537870505459334d5441344f44597a4a6d3437626a342b506a30794e6978304c6e6476636d527a57334a6450576b735a54317566584a6c6448567962694177495430395a53596d4b485175643239795a484e62644335735a4d080257356e644767724b3130395a536b73644830736279356663484a70625755395a6e5675593352706232346f64436c376157596f596c743058536c795a585231636d3467596c743058547432595849675a5474705a696769617a49314e694939505431304b575539626d5633494638375a57787a5a5342705a696769634449794e434939505431304b575539626d5633494555375a57787a5a5342705a696769634445354d694939505431304b575539626d563349464d375a57787a5a5874705a696769634449314e54453549694539505851706447687962336367626d563349455679636d39794b434a56626d747562336475494842796157316c4943497264436b375a5431755a586367556e31795a585231636d3467596c74305854316c4c4756394c45457563484a76644739306558426c4c6c39325a584a705a6e6b7850575a31626d4e30615739754b4851706532346f4d44303950585175626d566e59585270646d5573496e4a6c5a43423362334a7263794276626d783549486470644767676347397a61585270646d567a49696b73626968304c6e4a6c5a437769636d566b49486476636d747a4947397562486b6764326c30614342795a575167626e5674596d567963794970665378424c6e42796233527664486c775a533566646d567961575a354d6a316d6457356a64476c76626968304c4755706532346f4d4430394b485175624d08026d566e59585270646d56385a5335755a57646864476c325a536b73496e4a6c5a43423362334a7263794276626d783549486470644767676347397a61585270646d567a49696b73626968304c6e4a6c5a43596d644335795a5751395054316c4c6e4a6c5a437769636d566b49486476636d747a4947397562486b6764326c30614342795a575167626e5674596d567963794970665378424c6e42796233527664486c775a5335706257396b50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6e42796157316c5033526f61584d7563484a706257557561584a6c5a48566a5a5368304b5335665a6d3979593256535a57516f6447687063796b364b47596f644378304c6e56746232516f64476870637935744b5335665a6d3979593256535a57516f6447687063796b704c485170665378424c6e42796233527664486c775a5335755a5763395a6e5675593352706232346f64436c37636d563064584a754948517561584e615a584a764b436b2f6443356a624739755a5367704f6e526f61584d756253357a6457496f64436b7558325a76636d4e6c556d566b4b48526f61584d70665378424c6e42796233527664486c775a5335685a4751395a6e5675593352706232346f6443786c4b58743061476c7a4c6c39325a584a705a6e6b794b4851735a536b37646d467949484939644335685a47516f5a536b37634d08026d563064584a7549484975593231774b48526f61584d7562536b2b5054416d4a6e497561584e315969683061476c7a4c6d30704c48497558325a76636d4e6c556d566b4b48526f61584d70665378424c6e42796233527664486c775a5335705957526b50575a31626d4e30615739754b4851735a536c376447687063793566646d567961575a354d6968304c4755704f335a6863694279505851756157466b5a43686c4b5474795a585231636d34676369356a6258416f64476870637935744b5434394d43596d63693570633356694b48526f61584d7562536b73636e307351533577636d393062335235634755756333566950575a31626d4e30615739754b4851735a536c376447687063793566646d567961575a354d6968304c4755704f335a686369427950585175633356694b4755704f334a6c64485679626942794c6d4e746347346f4d436b384d43596d636935705957526b4b48526f61584d7562536b73636935665a6d3979593256535a57516f6447687063796c394c45457563484a76644739306558426c4c6d6c7a645749395a6e5675593352706232346f6443786c4b58743061476c7a4c6c39325a584a705a6e6b794b4851735a536b37646d46794948493964433570633356694b4755704f334a6c64485679626942794c6d4e746347346f4d436b384d43596d636935705957526b4b48526f61584d7562536b73636e3073514d0802533577636d393062335235634755756332687350575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7558335a6c636d6c6d6554456f64436b7364476870637935706257396b4b48517564584e6f6247346f5a536b70665378424c6e42796233527664486c775a5335706258567350575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7558335a6c636d6c6d6554496f6443786c4b53783061476c7a4c6d6c746232516f64433570625856734b4755704b58307351533577636d393062335235634755756258567350575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7558335a6c636d6c6d6554496f6443786c4b53783061476c7a4c6d6c746232516f644335746457776f5a536b70665378424c6e42796233527664486c775a5335706333467950575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d6c746457776f644378304c6d4e736232356c4b436b70665378424c6e42796233527664486c775a53357a635849395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75625856734b48517364436c394c45457563484a76644739306558426c4c6e4e78636e51395a6e5675593352706232346f64436c376157596f644335706331706c636d386f4b536c795a585231634d08026d34676443356a624739755a5367704f335a686369426c5058526f61584d7562533568626d52736269677a4b5474705a6968754b47556c4d6a30394d536b734d7a30395057557065335a68636942795058526f61584d75625335685a47516f626d56334947386f4d536b704c6d6c3163326879626967794b5474795a585231636d346764476870637935776233636f644378794b58316d6233496f646d467949476b3964476870637935744c6e4e31596d346f4d536b73637a30774f7946704c6d6c7a576d5679627967704a6959775054303961533568626d5273626967784b547370637973724c476b756158567a61484a754b4445704f32346f49576b7561584e615a584a764b436b704f335a68636942685057356c647942764b4445704c6e5276556d566b4b48526f61584d704c485539595335795a57524f5a57636f4b53786f5058526f61584d756253357a64574a754b4445704c6d6c3163326879626967784b53786d5058526f61584d75625335696158524d5a57356e6447676f4b54746d6233496f5a6a31755a586367627967794b6d59715a696b75644739535a57516f6447687063796b374d4345395058526f61584d75634739334b47597361436b75593231774b4855704f796c6d4c6e4a6c5a456c425a47516f64536b375a6d39794b485a68636942735058526f61584d75634739334b47597361536b73597a313061476c7a4c4d08026e4276647968304c476b755957526b626967784b53357064584e6f636d346f4d536b704c47513964476870637935776233636f644378704b53787750584d374d43453950575175593231774b4745704f796c375a6d39794b485a686369426e50575173625430774f7a41685054316e4c6d4e74634368684b5474744b7973705a7a316e4c6e4a6c5a464e78636967704f32346f625478774b547432595849676554313061476c7a4c6e4276647968734c47356c647942764b4445704c6d6c3163326873626968774c5730744d536b704f324d39597935795a57524e6457776f65536b73624431354c6e4a6c5a464e78636967704c4751395a4335795a57524e6457776f62436b736344317466584a6c644856796269426a665378424c6e42796233527664486c775a533570626e5a7450575a31626d4e30615739754b48517065335a686369426c5058517558326c75646d31774b48526f61584d7562536b37636d563064584a75494441685054316c4c6d356c5a32463061585a6c5079686c4c6d356c5a32463061585a6c5054417364476870637935706257396b4b4755704c6e4a6c5a45356c5a7967704b54703061476c7a4c6d6c746232516f5a536c394c45457563484a76644739306558426c4c6e4276647a316d6457356a64476c76626968304c47557065326c6d4b47557561584e615a584a764b436b70636d563064584a754947356c644d08027942764b4445704c6e5276556d566b4b48526f61584d704f326c6d4b4441395054316c4c6d4e746347346f4d536b70636d563064584a754948517559327876626d556f4b54743259584967636a31755a58636751584a7959586b6f4d5459704f334a624d463039626d56334947386f4d536b75644739535a57516f6447687063796b73636c7378585431304f325a766369683259584967626a30794f323438636935735a57356e64476737626973724b584a62626c303964476870637935746457776f636c74754c5446644c4851704f335a686369427050584a624d463073637a30774c4745394d43783150575575596d6c30544756755a33526f4b436b6c4d6a59375a6d39794b444139505431314a69596f645430794e696b73626a316c4c6d786c626d6430614330784f32342b50544137626930744b58746d6233496f646d4679494767395a53353362334a6b633174755853786d505855744d54746d506a30774f3259744c536c37646d4679494777396144342b5a6959784f326b6850543179577a42644a69596f6154313061476c7a4c6e4e78636968704b536b734d43453950577838664441685054317a5079687a504477394d53787a664431734c436730505430394b79746866487777505430396269596d4d443039505759704a69596f6154313061476c7a4c6d3131624368704c484a62633130704c4745394d43787a505441704b4d080254706850544239645430794e6e31795a585231636d34676158307351533577636d3930623352356347557559323975646d56796446527650575a31626d4e30615739754b48517065335a686369426c50585175645731765a43683061476c7a4c6d30704f334a6c644856796269426c505430396444396c4c6d4e736232356c4b436b365a58307351533577636d3930623352356347557559323975646d567964455a79623230395a6e5675593352706232346f64436c37646d4679494755396443356a624739755a5367704f334a6c644856796269426c4c6e4a6c5a443175645778734c4756394c473875625739756444316d6457356a64476c76626968304b5874795a585231636d3467626d56334945496f64436c394c476b6f516978424b5378434c6e42796233527664486c775a53356a623235325a584a30564738395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75615731765a4368304c6e567a614778754b48526f61584d75633268705a6e51704b58307351693577636d3930623352356347557559323975646d567964455a79623230395a6e5675593352706232346f64436c37646d46794947553964476870637935706257396b4b485175625856734b48526f61584d75636d6c7564696b704f334a6c644856796269426c4c6e4a6c5a443175645778734c4756394c45497563484a7664473930654d080258426c4c6d6c74645777395a6e5675593352706232346f6443786c4b5874705a6968304c6d6c7a576d5679627967706648786c4c6d6c7a576d5679627967704b584a6c64485679626942304c6e6476636d527a577a426450544173644335735a57356e644767394d5378304f335a686369427950585175615731316243686c4b537875505849756257467a6132346f644768706379357a61476c6d64436b75625856734b48526f61584d7562576c7564696b7561573168633274754b48526f61584d75633268705a6e51704c6d31316243683061476c7a4c6d30704c476b3963693570633356694b4734704c6d6c31633268796269683061476c7a4c6e4e6f61575a304b53787650576b37636d563064584a7549476b75593231774b48526f61584d7562536b2b5054412f627a31704c6d6c7a6457496f64476870637935744b5470704c6d4e746347346f4d436b384d43596d4b473839615335705957526b4b48526f61584d7562536b704c47387558325a76636d4e6c556d566b4b48526f61584d70665378434c6e42796233527664486c775a533574645777395a6e5675593352706232346f6443786c4b5874705a6968304c6d6c7a576d5679627967706648786c4c6d6c7a576d5679627967704b584a6c64485679626942755a586367627967774b5335665a6d3979593256535a57516f6447687063796b37646d46794948493964433574644d080257776f5a536b73626a31794c6d3168633274754b48526f61584d75633268705a6e51704c6d31316243683061476c7a4c6d3170626e59704c6d6c7459584e726269683061476c7a4c6e4e6f61575a304b5335746457776f64476870637935744b5378705058497561584e31596968754b53357064584e6f636d346f644768706379357a61476c6d64436b73637a31704f334a6c64485679626942704c6d4e746343683061476c7a4c6d3070506a307750334d3961533570633356694b48526f61584d7562536b366153356a625842754b4441705044416d4a69687a50576b756157466b5a43683061476c7a4c6d30704b53787a4c6c396d62334a6a5a564a6c5a43683061476c7a4b58307351693577636d39306233523563475575615735326254316d6457356a64476c76626968304b5874795a585231636d346764476870637935706257396b4b48517558326c75646d31774b48526f61584d7562536b75625856734b48526f61584d75636a49704b5335665a6d3979593256535a57516f6447687063796c396653683050584975626d316b4b4851704c48526f61584d70665377334e6a51364b4851735a5378794b54302b65794a31633255676333527961574e30496a746a6232357a644342755058496f4e7a51794b5378705058496f4e6a51314b53787650534a6d6457356a64476c766269493950585235634756765a69425465573169624d080232776d4a694a6d6457356a64476c766269493950585235634756765a69425465573169623277755a6d397950314e3562574a766243356d6233496f496d35765a4756716379353164476c734c6d6c756333426c593351755933567a6447397449696b36626e56736244746c4c6b4a315a6d5a6c636a31314c4755755532787664304a315a6d5a6c636a316d6457356a64476c76626968304b587372644345396443596d4b4851394d436b37636d563064584a75494855755957787362324d6f4b3351706653786c4c6b6c4f55314246513152665455465958304a5a56455654505455774f324e76626e4e3049484d394d6a45304e7a51344d7a59304e7a746d6457356a64476c76626942684b48517065326c6d4b48512b63796c3061484a76647942755a586367556d46755a325646636e4a766369676e5647686c49485a686248566c4943496e4b3351724a79496761584d6761573532595778705a43426d62334967623342306157397549434a7a6158706c496963704f324e76626e4e3049475539626d563349465670626e513451584a7959586b6f64436b37636d563064584a7549453969616d566a6443357a5a585251636d393062335235634756505a69686c4c48557563484a76644739306558426c4b53786c66575a31626d4e30615739754948556f6443786c4c48497065326c6d4b434a75645731695a584969505431306558426c624d080232596764436c376157596f496e4e30636d6c755a79493950585235634756765a69426c4b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a534169633352796157356e49694268636d6431625756756443427464584e3049474a6c4947396d4948523563475567633352796157356e4c6942535a574e6c61585a6c5a4342306558426c4947353162574a6c636963704f334a6c64485679626942734b48517066584a6c644856796269426f4b4851735a5378794b58316d6457356a64476c766269426f4b4851735a5378794b5874705a696769633352796157356e496a303964486c775a57396d49485170636d563064584a7549475a31626d4e30615739754b4851735a536c37496e4e30636d6c755a79493950585235634756765a69426c4a69596949694539505756386643686c50534a316447593449696b376157596f4958557561584e46626d4e765a476c755a79686c4b536c3061484a76647942755a58636756486c775a555679636d39794b434a56626d747562336475494756755932396b6157356e4f6941694b3255704f324e76626e4e30494849394d48786e4b4851735a536b376247563049473439595368794b54746a6232357a644342705057347564334a706447556f6443786c4b547470495430396369596d4b4734396269357a62476c6a5a5367774c476b704b5474795a585231636d3467624d08026e306f6443786c4b5474705a696842636e4a6865554a315a6d5a6c6369357063315a705a58636f64436b70636d563064584a7549475a31626d4e30615739754b48517065326c6d4b466b6f64437856615735304f454679636d46354b536c3759323975633351675a5431755a58636756576c7564446842636e4a68655368304b5474795a585231636d34675a43686c4c6d4a315a6d5a6c6369786c4c6d4a35644756505a6d5a7a5a5851735a5335696558526c544756755a33526f4b5831795a585231636d3467597968304b58306f64436b376157596f626e56736244303964436c3061484a76647942755a58636756486c775a555679636d39794b434a55614755675a6d6c796333516759584a6e6457316c626e51676258567a644342695a534276626d55676232596764486c775a53427a64484a70626d637349454a315a6d5a6c6369776751584a7959586c4364575a6d5a58497349454679636d46354c43427663694242636e4a68655331736157746c49453969616d566a64433467556d566a5a576c325a57516764486c775a5341694b335235634756765a6942304b5474705a69685a4b48517351584a7959586c4364575a6d5a584970664878304a695a5a4b485175596e566d5a6d56794c454679636d4635516e566d5a6d56794b536c795a585231636d34675a4368304c47557363696b376157596f496e56755a47566d6157356c5a4d080243496850585235634756765a694254614746795a575242636e4a6865554a315a6d5a6c6369596d4b466b6f64437854614746795a575242636e4a6865554a315a6d5a6c63696c386648516d4a6c6b6f6443356964575a6d5a58497355326868636d566b51584a7959586c4364575a6d5a5849704b536c795a585231636d34675a4368304c47557363696b376157596f496d353162574a6c6369493950585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a534169646d467364575569494746795a3356745a5735304947313163335167626d393049474a6c4947396d4948523563475567626e5674596d56794c6942535a574e6c61585a6c5a4342306558426c4947353162574a6c636963704f324e76626e4e304947343964433532595778315a55396d4a695a304c6e5a686248566c5432596f4b5474705a69687564577873495431754a695a754954303964436c795a585231636d34676453356d636d39744b4734735a5378794b54746a6232357a6443427050575a31626d4e30615739754b48517065326c6d4b48557561584e4364575a6d5a58496f64436b7065324e76626e4e30494755394d4878774b485175624756755a33526f4b5378795057456f5a536b37636d563064584a7549444139505431794c6d786c626d6430614878386443356a623342354b4849734d4377774c4d08024755704c484a396157596f646d39705a43417749543039644335735a57356e64476770636d563064584a75496d353162574a6c6369496850585235634756765a6942304c6d786c626d643061487838537968304c6d786c626d643061436b2f595367774b54706a4b4851704f326c6d4b434a4364575a6d5a58496950543039644335306558426c4a695a42636e4a686553357063304679636d46354b4851755a47463059536b70636d563064584a7549474d6f6443356b595852684b58306f64436b376157596f61536c795a585231636d3467615474705a6967696457356b5a575a70626d566b4969453964486c775a57396d49464e3562574a766243596d626e56736243453955336c74596d39734c6e527655484a7062576c3061585a6c4a6959695a6e56755933527062323469505431306558426c6232596764467454655731696232777564473951636d6c7461585270646d56644b584a6c64485679626942314c6d5a796232306f64467454655731696232777564473951636d6c7461585270646d56644b434a7a64484a70626d63694b53786c4c4849704f33526f636d39334947356c647942556558426c52584a796233496f496c526f5a53426d61584a7a64434268636d6431625756756443427464584e3049474a6c494739755a5342765a6942306558426c49484e30636d6c755a797767516e566d5a6d56794c434242636e4a68654d0802554a315a6d5a6c6369776751584a7959586b734947397949454679636d46354c5778706132556754324a715a574e304c6942535a574e6c61585a6c5a4342306558426c4943497264486c775a57396d4948517066575a31626d4e30615739754947596f64436c376157596f496d353162574a6c6369496850585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f4a794a7a6158706c49694268636d6431625756756443427464584e3049474a6c4947396d4948523563475567626e5674596d56794a796b376157596f644477774b58526f636d39334947356c647942535957356e5a555679636d39794b43645561475567646d467364575567496963726443736e4969427063794270626e5a6862476c6b49475a76636942766348527062323467496e4e70656d55694a796c395a6e56755933527062323467624368304b5874795a585231636d34675a6968304b5378684b4851384d4438774f6a4238634368304b536c395a6e56755933527062323467597968304b58746a6232357a6443426c50585175624756755a33526f5044412f4d446f776648416f644335735a57356e644767704c4849395953686c4b54746d6233496f62475630494734394d44747550475537626973394d536c7957323564505449314e535a30573235644f334a6c644856796269427966575a31626d4e3061573975494d080247516f6443786c4c48497065326c6d4b4755384d487838644335696558526c544756755a33526f504755706447687962336367626d563349464a68626d646c52584a796233496f4a794a765a6d5a7a5a58516949476c7a4947393164484e705a47556762325967596e566d5a6d567949474a766457356b637963704f326c6d4b485175596e6c305a55786c626d64306144786c4b796879664877774b536c3061484a76647942755a586367556d46755a325646636e4a766369676e496d786c626d64306143496761584d676233563063326c6b5a5342765a69426964575a6d5a584967596d3931626d527a4a796b376247563049473437636d563064584a7549473439646d39705a434177505430395a53596d646d39705a43417750543039636a39755a58636756576c7564446842636e4a68655368304b54703262326c6b49444139505431795032356c64794256615735304f454679636d46354b4851735a536b36626d563349465670626e513451584a7959586b6f6443786c4c4849704c453969616d566a6443357a5a585251636d393062335235634756505a6968754c48557563484a76644739306558426c4b53787566575a31626d4e30615739754948416f64436c376157596f6444343963796c3061484a76647942755a586367556d46755a325646636e4a7663696769515852305a573177644342306279426862477876593246305a4d080253424364575a6d5a584967624746795a3256794948526f5957346762574634615731316253427a6158706c4f694177654349726379353062314e30636d6c755a7967784e696b72496942696558526c637949704f334a6c6448567962694177664852395a6e567559335270623234675a7968304c47557065326c6d4b48557561584e4364575a6d5a58496f64436b70636d563064584a7549485175624756755a33526f4f326c6d4b454679636d4635516e566d5a6d56794c6d6c7a566d6c6c647968304b587838575368304c454679636d4635516e566d5a6d56794b536c795a585231636d3467644335696558526c544756755a33526f4f326c6d4b434a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636756486c775a555679636d39794b43645561475567496e4e30636d6c755a79496759584a6e6457316c626e51676258567a644342695a534276626d55676232596764486c775a53427a64484a70626d637349454a315a6d5a6c636977676233496751584a7959586c4364575a6d5a58497549464a6c59325670646d566b49485235634755674a7974306558426c6232596764436b375932397563335167636a31304c6d786c626d643061437875505746795a3356745a573530637935735a57356e6447672b4d69596d4954413950543168636d64316257567564484e624d6c30376157596f494d080257346d4a6a4139505431794b584a6c64485679626941774f32786c64434270505345784f325a76636967374f796c7a64326c305932676f5a536c375932467a5a534a6863324e70615349365932467a5a534a7359585270626a45694f6d4e6863325569596d6c7559584a35496a70795a585231636d3467636a746a59584e6c496e56305a6a67694f6d4e68633255696458526d4c5467694f6e4a6c64485679626942484b4851704c6d786c626d64306144746a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d563064584a7549444971636a746a59584e6c496d686c65434936636d563064584a754948492b506a34784f324e6863325569596d467a5a545930496a70795a585231636d3467576968304b5335735a57356e644767375a47566d59585673644470705a6968704b584a6c6448567962694275507930784f6b636f64436b75624756755a33526f4f3255394b4349694b3255704c6e5276544739335a584a4459584e6c4b436b73615430684d4831395a6e56755933527062323467625368304c47557363696c376247563049473439495445376157596f4b485a76615751674d44303950575638664755384d436b6d4a69686c505441704c47552b64476870637935735a57356e64476770636d5630644d0802584a75496949376157596f4b485a76615751674d44303950584a386648492b64476870637935735a57356e644767704a69596f636a313061476c7a4c6d786c626d643061436b73636a77394d436c795a585231636d3469496a74705a69676f636a342b506a30774b5477394b47552b506a34394d436b70636d563064584a75496949375a6d39794b4852386643683050534a316447593449696b374f796c7a64326c305932676f64436c375932467a5a534a6f5a5867694f6e4a6c64485679626942504b48526f61584d735a5378794b54746a59584e6c496e56305a6a67694f6d4e68633255696458526d4c5467694f6e4a6c64485679626942424b48526f61584d735a5378794b54746a59584e6c496d467a59326c70496a70795a585231636d34675443683061476c7a4c47557363696b375932467a5a534a7359585270626a45694f6d4e6863325569596d6c7559584a35496a70795a585231636d34676179683061476c7a4c47557363696b375932467a5a534a6959584e6c4e6a51694f6e4a6c64485679626942534b48526f61584d735a5378794b54746a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d563064584a754946516f644768706379786c4c4849704f32526c5a6d4631624851366157596f624d0802696c3061484a76647942755a58636756486c775a555679636d39794b434a56626d747562336475494756755932396b6157356e4f6941694b3351704f3351394b485172496949704c6e5276544739335a584a4459584e6c4b436b73626a30684d4831395a6e56755933527062323467655368304c47557363696c375932397563335167626a3130573256644f3352625a563039644674795853783057334a64505735395a6e56755933527062323467647968304c475573636978754c476b7065326c6d4b444139505431304c6d786c626d643061436c795a585231636d34744d5474705a696769633352796157356e496a303964486c775a57396d4948492f4b47343963697879505441704f6e492b4d6a45304e7a51344d7a59304e7a3979505449784e4463304f444d324e446336636a77744d6a45304e7a51344d7a59304f43596d4b4849394c5449784e4463304f444d324e4467704c45736f636a307263696b6d4a69687950576b2f4d4470304c6d786c626d6430614330784b5378795044416d4a69687950585175624756755a33526f4b3349704c48492b50585175624756755a33526f4b5874705a6968704b584a6c64485679626930784f334939644335735a57356e644767744d58316c62484e6c49476c6d4b4849384d436c376157596f49576b70636d563064584a754c544537636a307766576c6d4b434a7a64484a70626d6369504d08025431306558426c623259675a53596d4b4755396453356d636d39744b47557362696b704c48557561584e4364575a6d5a58496f5a536b70636d563064584a75494441395054316c4c6d786c626d6430614438744d5470324b4851735a5378794c47347361536b376157596f496d353162574a6c6369493950585235634756765a69426c4b584a6c644856796269426c4a6a30794e545573496d5a31626d4e3061573975496a303964486c775a57396d49465670626e513451584a7959586b7563484a76644739306558426c4c6d6c755a4756345432592f61543956615735304f454679636d46354c6e42796233527664486c775a533570626d526c6545396d4c6d4e686247776f6443786c4c4849704f6c5670626e513451584a7959586b7563484a76644739306558426c4c6d78686333524a626d526c6545396d4c6d4e686247776f6443786c4c4849704f6e596f644378625a563073636978754c476b704f33526f636d39334947356c647942556558426c52584a796233496f496e5a686243427464584e3049474a6c49484e30636d6c755a797767626e5674596d56794947397949454a315a6d5a6c6369497066575a31626d4e30615739754948596f6443786c4c484973626978704b5874735a5851676279787a50544573595431304c6d786c626d64306143783150575575624756755a33526f4f326c6d4b485a76615751674d434539504d080257346d4a69676964574e7a4d6949395054306f626a315464484a70626d636f62696b756447394d6233646c636b4e686332556f4b536c3866434a3159334d744d69493950543175664877696458526d4d545a735a53493950543175664877696458526d4c544532624755695054303962696b7065326c6d4b485175624756755a33526f50444a3866475575624756755a33526f50444970636d563064584a754c544537637a30794c47457650544973645338394d6978794c7a307966575a31626d4e30615739754947676f6443786c4b5874795a585231636d34674d54303950584d2f6446746c585470304c6e4a6c59575256535735304d545a435253686c4b6e4d7066576c6d4b476b706532786c64434275505330784f325a766369687650584937627a78684f3238724b796c705a69686f4b48517362796b395054316f4b4755734c54453950543175507a4136627931754b536c376157596f4c544539505431754a69596f626a31764b5378764c5734724d54303950585570636d563064584a75494734716333316c62484e6c4c544568505431754a69596f62793039627931754b5378755053307866575673633255675a6d39794b484972645435684a69596f636a31684c5855704c473839636a7476506a30774f3238744c536c376247563049484939495441375a6d39794b47786c6443427550544137626a78314f3234724b796c705a4d080269686f4b485173627974754b5345395057676f5a5378754b536c37636a30684d547469636d5668613331705a6968794b584a6c644856796269427666584a6c644856796269307866575a31626d4e30615739754947496f6443786c4c48497362696c37636a314f645731695a58496f63696c38664441375932397563335167615431304c6d786c626d6430614331794f32342f4b473439546e5674596d56794b4734704b5435704a69596f626a31704b54707550576b375932397563335167627a316c4c6d786c626d6430614474735a585167637a746d6233496f626a35764c7a496d4a696875505738764d696b73637a30774f334d38626a73724b334d7065324e76626e4e3049473439634746796332564a626e516f5a53357a64574a7a6448496f4d69707a4c4449704c4445324b5474705a69684c4b4734704b584a6c644856796269427a4f3352626369747a5854317566584a6c644856796269427a66575a31626d4e30615739754945306f6443786c4c48497362696c37636d563064584a754946596f5279686c4c485175624756755a33526f4c5849704c485173636978754b58316d6457356a64476c76626942664b4851735a5378794c47347065334a6c64485679626942574b475a31626d4e30615739754b48517065324e76626e4e3049475539573130375a6d39794b47786c6443427950544137636a78304c6d786c626d6430614d08024473724b3349705a53357764584e6f4b4449314e535a304c6d4e6f59584a446232526c5158516f63696b704f334a6c644856796269426c6653686c4b5378304c48497362696c395a6e56755933527062323467525368304c475573636978754b5874795a585231636d3467566968614b4755704c485173636978754b58316d6457356a64476c76626942544b4851735a5378794c47347065334a6c64485679626942574b475a31626d4e30615739754b4851735a536c376247563049484973626978704f324e76626e4e3049473839573130375a6d39794b47786c6443427a50544137637a78304c6d786c626d64306143596d4953676f5a5330394d696b384d436b374b79747a4b5849396443356a614746795132396b5a5546304b484d704c473439636a342b4f4378705058496c4d6a55324c4738756348567a614368704b5378764c6e42316332676f62696b37636d563064584a75494739394b475573644335735a57356e6447677463696b73644378794c47347066575a31626d4e30615739754946496f6443786c4c48497065334a6c6448567962694177505430395a53596d636a303950585175624756755a33526f503234755a6e4a7662554a3564475642636e4a68655368304b5470754c6d5a79623231436558526c51584a7959586b6f6443357a62476c6a5a53686c4c4849704b58316d6457356a64476c76626942424b4851735a4d08025378794b587479505531686447677562576c754b485175624756755a33526f4c4849704f324e76626e4e3049473439573130376247563049476b395a54746d6233496f4f326b38636a737065324e76626e4e304947553964467470585474735a585167627a3175645778734c484d395a5434794d7a6b2f4e44706c506a49794d7a387a4f6d552b4d546b78507a49364d5474705a6968704b334d38505849706532786c644342794c473473595378314f334e336158526a6143687a4b58746a59584e6c494445365a5477784d6a676d4a696876505755704f324a795a5746724f324e68633255674d6a70795058526261537378585377784d6a6739505367784f54496d63696b6d4a6968315053677a4d535a6c4b5477384e6e77324d795a794c48552b4d5449334a69596f627a31314b536b37596e4a6c595773375932467a5a53417a4f6e4939644674704b7a46644c473439644674704b7a4a644c4445794f4430394b4445354d695a794b53596d4d5449345054306f4d546b794a6d34704a69596f6454306f4d54556d5a536b3850444579664367324d795a794b5477384e6e77324d795a754c48552b4d6a41304e79596d4b4855384e5455794f545a386648552b4e54637a4e444d704a69596f627a31314b536b37596e4a6c595773375932467a5a5341304f6e4939644674704b7a46644c473439644674704b7a4a644c474539644674704b4d08027a4e644c4445794f4430394b4445354d695a794b53596d4d5449345054306f4d546b794a6d34704a6959784d6a6739505367784f54496d59536b6d4a696831505367784e535a6c4b5477384d5468384b44597a4a6e4970504477784d6e776f4e6a4d6d62696b3850445a384e6a4d6d59537831506a59314e544d314a695a31504445784d5451784d54496d4a696876505855704b583139626e5673624430395057382f4b4738394e6a55314d7a4d73637a30784b547076506a59314e544d314a69596f627930394e6a55314d7a59736269357764584e6f4b47382b506a34784d4359784d44497a664455314d6a6b324b537876505455324d7a4977664445774d6a4d6d62796b736269357764584e6f4b4738704c476b7250584e39636d563064584a7549475a31626d4e30615739754b48517065324e76626e4e3049475539644335735a57356e644767376157596f5a54773951696c795a585231636d3467553352796157356e4c6d5a7962323144614746795132396b5a533568634842736553685464484a70626d637364436b37624756304948493949694973626a30774f325a7663696737626a786c4f796c794b7a315464484a70626d63755a6e4a7662554e6f59584a446232526c4c6d4677634778354b464e30636d6c755a7978304c6e4e7361574e6c4b4734736269733951696b704f334a6c6448567962694279665368754b58316c4c4d08026d744e5958684d5a57356e64476739637978314c6c525a5545564558304653556b465a58314e5655464250556c51395a6e5675593352706232346f4b587430636e6c375932397563335167644431755a58636756576c7564446842636e4a68655367784b53786c5058746d623238365a6e5675593352706232346f4b5874795a585231636d34674e444a39665474795a585231636d346754324a715a574e304c6e4e6c644642796233527664486c775a55396d4b47557356576c7564446842636e4a6865533577636d393062335235634755704c453969616d566a6443357a5a585251636d393062335235634756505a6968304c4755704c445179505430396443356d6232386f4b58316a5958526a614368304b5874795a585231636d34684d5831394b436b734958557556466c515255526651564a5351566c6655315651554539535643596d496e56755a47566d6157356c5a43496850585235634756765a69426a6232357a6232786c4a695a6a6232357a6232786c4c6d5679636d39794c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368314c6e42796233527664486c775a537769634746795a573530496978375a5735316257567959574a735a546f684d43786e5a5851365a6e5675593352706232346f4b5874705a6968314c6d6c7a516e566d5a6d56794b48526f61584d704b584a6c6448567962694230614d0802476c7a4c6d4a315a6d5a6c636e31394b537850596d706c593351755a47566d6157356c55484a766347567964486b6f64533577636d39306233523563475573496d396d5a6e4e6c64434973653256756457316c636d466962475536495441735a3256304f6d5a31626d4e30615739754b436c376157596f6453357063304a315a6d5a6c6369683061476c7a4b536c795a585231636d346764476870637935696558526c54325a6d63325630665830704c4855756347397662464e70656d55394f4445354d6978314c6d5a79623230395a6e5675593352706232346f6443786c4c48497065334a6c644856796269426f4b4851735a5378794b58307354324a715a574e304c6e4e6c644642796233527664486c775a55396d4b48557563484a76644739306558426c4c465670626e513451584a7959586b7563484a76644739306558426c4b537850596d706c593351756332563055484a76644739306558426c5432596f64537856615735304f454679636d46354b5378314c6d46736247396a50575a31626d4e30615739754b4851735a5378794b5874795a585231636d34675a6e5675593352706232346f6443786c4c48497065334a6c644856796269426d4b4851704c4851385054412f595368304b54703262326c6b494441685054316c50794a7a64484a70626d6369505431306558426c62325967636a39684b4851704c6d5a706247776f5a4d08025378794b5470684b4851704c6d5a706247776f5a536b36595368304b58306f6443786c4c484970665378314c6d46736247396a5657357a59575a6c50575a31626d4e30615739754b48517065334a6c64485679626942734b485170665378314c6d46736247396a5657357a59575a6c55327876647a316d6457356a64476c76626968304b5874795a585231636d3467624368304b5830736453357063304a315a6d5a6c636a316d6457356a64476c76626968304b5874795a585231636d3467626e5673624345396443596d49544139505431304c6c397063304a315a6d5a6c6369596d644345395058557563484a76644739306558426c665378314c6d4e7662584268636d55395a6e5675593352706232346f6443786c4b5874705a69685a4b48517356576c7564446842636e4a6865536b6d4a696830505855755a6e4a76625368304c48517562325a6d633256304c485175596e6c305a55786c626d643061436b704c466b6f5a537856615735304f454679636d46354b53596d4b4755396453356d636d39744b4755735a5335765a6d5a7a5a5851735a5335696558526c544756755a33526f4b536b734958557561584e4364575a6d5a58496f64436c38664346314c6d6c7a516e566d5a6d56794b4755704b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a534169596e566d4d53497349434a6964575979494d0802694268636d64316257567564484d676258567a644342695a534276626d55676232596764486c775a53424364575a6d5a5849676233496756576c7564446842636e4a68655363704f326c6d4b4851395054316c4b584a6c64485679626941774f32786c6443427950585175624756755a33526f4c4734395a5335735a57356e644767375a6d39794b47786c6443427050544173627a314e5958526f4c6d3170626968794c4734704f326b38627a73724b326b706157596f644674705853453950575662615630706533493964467470585378755057566261563037596e4a6c59577439636d563064584a7549484938626a38744d5470755048492f4d546f77665378314c6d6c7a5257356a62325270626d63395a6e5675593352706232346f64436c376333647064474e6f4b464e30636d6c755a7968304b53353062307876643256795132467a5a5367704b58746a59584e6c496d686c654349365932467a5a534a3164475934496a706a59584e6c496e56305a693034496a706a59584e6c496d467a59326c70496a706a59584e6c496d786864476c754d5349365932467a5a534a6961573568636e6b694f6d4e6863325569596d467a5a545930496a706a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d5630644d0802584a75495441375a47566d59585673644470795a585231636d34684d5831394c485575593239755932463050575a31626d4e30615739754b4851735a536c376157596f49554679636d46354c6d6c7a51584a7959586b6f64436b706447687962336367626d56334946523563475646636e4a766369676e496d787063335169494746795a3356745a5735304947313163335167596d55675957346751584a7959586b6762325967516e566d5a6d5679637963704f326c6d4b444139505431304c6d786c626d643061436c795a585231636d34676453356862477876597967774b5474735a585167636a74705a69683262326c6b494441395054316c4b575a766369686c50544173636a30774f334938644335735a57356e644767374b7974794b57557250585262636c3075624756755a33526f4f324e76626e4e30494734396453356862477876593156756332466d5a53686c4b5474735a585167615430774f325a766369687950544137636a78304c6d786c626d6430614473724b3349706532786c6443426c50585262636c30376157596f5753686c4c465670626e513451584a7959586b704b576b725a5335735a57356e6447672b626935735a57356e6447672f4b48557561584e4364575a6d5a58496f5a536c386643686c505855755a6e4a766253686c4b536b735a53356a623342354b47347361536b704f6c5670626e513451584a79594d0802586b7563484a76644739306558426c4c6e4e6c6443356a595778734b4734735a5378704b54746c62484e6c65326c6d4b4346314c6d6c7a516e566d5a6d56794b4755704b58526f636d39334947356c647942556558426c52584a796233496f4a794a7361584e3049694268636d6431625756756443427464584e3049474a6c4947467549454679636d46354947396d49454a315a6d5a6c636e4d6e4b54746c4c6d4e7663486b6f626978704b5831704b7a316c4c6d786c626d6430614831795a585231636d3467626e3073645335696558526c544756755a33526f5057637364533577636d3930623352356347557558326c7a516e566d5a6d5679505345774c48557563484a76644739306558426c4c6e4e33595841784e6a316d6457356a64476c766269677065324e76626e4e304948513964476870637935735a57356e644767376157596f64435579495430774b58526f636d39334947356c647942535957356e5a555679636d39794b434a4364575a6d5a58496763326c365a53427464584e3049474a6c494745676258567364476c7762475567623259674d545974596d6c30637949704f325a76636968735a5851675a5430774f3255386444746c4b7a30794b586b6f644768706379786c4c4755724d536b37636d563064584a754948526f61584e394c48557563484a76644739306558426c4c6e4e335958417a4d6a316d6457356a644d0802476c766269677065324e76626e4e304948513964476870637935735a57356e644767376157596f64435530495430774b58526f636d39334947356c647942535957356e5a555679636d39794b434a4364575a6d5a58496763326c365a53427464584e3049474a6c494745676258567364476c7762475567623259674d7a4974596d6c30637949704f325a76636968735a5851675a5430774f3255386444746c4b7a30304b586b6f644768706379786c4c4755724d796b736553683061476c7a4c4755724d53786c4b7a49704f334a6c644856796269423061476c7a665378314c6e42796233527664486c775a53357a643246774e6a51395a6e5675593352706232346f4b58746a6232357a644342305058526f61584d75624756755a33526f4f326c6d4b48516c4f4345394d436c3061484a76647942755a586367556d46755a325646636e4a7663696769516e566d5a6d567949484e70656d55676258567a644342695a53426849473131624852706347786c4947396d494459304c574a7064484d694b54746d6233496f62475630494755394d44746c504851375a5373394f436c354b48526f61584d735a53786c4b7a63704c486b6f644768706379786c4b7a45735a5373324b5378354b48526f61584d735a5373794c4755724e536b736553683061476c7a4c4755724d79786c4b7a51704f334a6c644856796269423061476c7a665378314c4d08026e42796233527664486c775a53353062314e30636d6c755a7a316d6457356a64476c766269677065324e76626e4e304948513964476870637935735a57356e64476737636d563064584a754944413950543130507949694f6a413950543168636d64316257567564484d75624756755a33526f5030456f64476870637977774c4851704f6d30755958427762486b6f6447687063797868636d64316257567564484d70665378314c6e42796233527664486c775a53353062307876593246735a564e30636d6c755a7a31314c6e42796233527664486c775a53353062314e30636d6c755a7978314c6e42796233527664486c775a53356c6358566862484d395a6e5675593352706232346f64436c376157596f4958557561584e4364575a6d5a58496f64436b706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a53426849454a315a6d5a6c636949704f334a6c644856796269423061476c7a50543039644878384d4430395058557559323974634746795a53683061476c7a4c485170665378314c6e42796233527664486c775a533570626e4e775a574e3050575a31626d4e30615739754b436c376247563049485139496949375932397563335167636a316c4c6b6c4f55314246513152665455465958304a5a564556544f334a6c64485679626942305058526f614d0802584d756447395464484a70626d636f496d686c654349734d4378794b5335795a58427359574e6c4b43386f4c6e737966536b765a7977694a44456749696b7564484a70625367704c48526f61584d75624756755a33526f506e496d4a6968304b7a3069494334754c6941694b53776950454a315a6d5a6c636941694b335172496a3469665378764a69596f64533577636d393062335235634756626231303964533577636d393062335235634755756157357a6347566a64436b7364533577636d3930623352356347557559323974634746795a54316d6457356a64476c76626968304c475573636978754c476b7065326c6d4b466b6f64437856615735304f454679636d46354b53596d4b4851396453356d636d39744b485173644335765a6d5a7a5a585173644335696558526c544756755a33526f4b536b734958557561584e4364575a6d5a58496f64436b706447687962336367626d56334946523563475646636e4a766369676e5647686c49434a3059584a6e5a585169494746795a3356745a5735304947313163335167596d55676232356c4947396d4948523563475567516e566d5a6d56794947397949465670626e513451584a7959586b7549464a6c59325670646d566b49485235634755674a7974306558426c6232596764436b376157596f646d39705a434177505430395a53596d4b4755394d436b73646d39705a434177504d08025430396369596d4b484939644439304c6d786c626d643061446f774b53783262326c6b49444139505431754a69596f626a30774b53783262326c6b49444139505431704a69596f6154313061476c7a4c6d786c626d643061436b735a54777766487879506e5175624756755a33526f664878755044423866476b2b64476870637935735a57356e644767706447687962336367626d563349464a68626d646c52584a796233496f496d3931644342765a6942795957356e5a534270626d526c654349704f326c6d4b47342b50576b6d4a6d552b50584970636d563064584a75494441376157596f626a343961536c795a585231636d34744d5474705a69686c506a31794b584a6c64485679626941784f326c6d4b48526f61584d39505431304b584a6c64485679626941774f32786c6443427650536870506a342b505441704c536875506a342b505441704c484d394b48492b506a34394d436b744b47552b506a34394d436b3759323975633351675954314e5958526f4c6d3170626968764c484d704c476739644768706379357a62476c6a5a5368754c476b704c4759396443357a62476c6a5a53686c4c4849704f325a76636968735a585167644430774f335138595473724b3351706157596f614674305853453950575a626446307065323839614674305853787a50575a6264463037596e4a6c59577439636d563064584a7549473838634d08027a38744d54707a5047382f4d546f77665378314c6e42796233527664486c775a533570626d4e736457526c637a316d6457356a64476c76626968304c47557363696c37636d563064584a754c5445685054313061476c7a4c6d6c755a4756345432596f6443786c4c484970665378314c6e42796233527664486c775a533570626d526c6545396d50575a31626d4e30615739754b4851735a5378794b5874795a585231636d34676479683061476c7a4c4851735a5378794c4345774b58307364533577636d393062335235634755756247467a64456c755a475634543259395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942334b48526f61584d736443786c4c48497349544570665378314c6e42796233527664486c775a533533636d6c305a54316d6457356a64476c76626968304c475573636978754b5874705a69683262326c6b494441395054316c4b573439496e56305a6a67694c48493964476870637935735a57356e644767735a5430774f325673633255676157596f646d39705a434177505430396369596d496e4e30636d6c755a79493950585235634756765a69426c4b5734395a5378795058526f61584d75624756755a33526f4c4755394d44746c62484e6c65326c6d4b43467063305a70626d6c305a53686c4b536c3061484a76647942755a58636752584a796233496f496b4a315a6d5a6c634d0802693533636d6c305a53687a64484a70626d6373494756755932396b6157356e4c4342765a6d5a7a5a5852624c4342735a57356e644768644b53427063794275627942736232356e5a58496763335677634739796447566b49696b375a54342b506a30774c476c7a526d6c756158526c4b48497050796879506a342b50544173646d39705a434177505430396269596d4b473439496e56305a6a67694b536b364b4734396369787950585a76615751674d436c3959323975633351676154313061476c7a4c6d786c626d64306143316c4f326c6d4b43683262326c6b494441395054317966487879506d6b704a69596f636a31704b5378304c6d786c626d6430614434774a69596f636a77776648786c504441706648786c506e526f61584d75624756755a33526f4b58526f636d39334947356c647942535957356e5a555679636d39794b434a426448526c6258423049485276494864796158526c4947393164484e705a475567596e566d5a6d567949474a766457356b637949704f3235386643687550534a316447593449696b376247563049473839495445375a6d39794b4473374b584e336158526a614368754b58746a59584e6c496d686c65434936636d563064584a754947496f64476870637978304c47557363696b375932467a5a534a3164475934496a706a59584e6c496e56305a693034496a70795a585231636d346754536830614d0802476c7a4c4851735a5378794b54746a59584e6c496d467a59326c70496a706a59584e6c496d786864476c754d5349365932467a5a534a6961573568636e6b694f6e4a6c64485679626942664b48526f61584d736443786c4c4849704f324e6863325569596d467a5a545930496a70795a585231636d34675253683061476c7a4c4851735a5378794b54746a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d563064584a7549464d6f64476870637978304c47557363696b375a47566d59585673644470705a6968764b58526f636d39334947356c647942556558426c52584a796233496f496c567561323576643234675a57356a62325270626d63364943497262696b37626a306f4969497262696b756447394d6233646c636b4e686332556f4b537876505345776658307364533577636d393062335235634755756447394b5530394f50575a31626d4e30615739754b436c37636d563064584a756533523563475536496b4a315a6d5a6c636949735a47463059547042636e4a6865533577636d393062335235634755756332787059325575593246736243683061476c7a4c6c3968636e4a386648526f61584d734d436c396654746a6232357a64434243505451774f5459375a6e56755933527062323467544d08024368304c47557363696c37624756304947343949694937636a314e5958526f4c6d3170626968304c6d786c626d6430614378794b54746d6233496f6247563049476b395a547470504849374b7974704b57347250564e30636d6c755a79356d636d397451326868636b4e765a47556f4d5449334a6e5262615630704f334a6c644856796269427566575a31626d4e30615739754947736f6443786c4c4849706532786c64434275505349694f33493954574630614335746157346f644335735a57356e6447677363696b375a6d39794b47786c6443427050575537615478794f79737261536c754b7a315464484a70626d63755a6e4a7662554e6f59584a446232526c4b485262615630704f334a6c644856796269427566575a31626d4e30615739754945386f6443786c4c48497065324e76626e4e3049473439644335735a57356e644767374b43466c6648786c504441704a69596f5a5430774b53776f49584a38664849384d487838636a35754b53596d4b48493962696b376247563049476b39496949375a6d39794b47786c6443427550575537626a78794f79737262696c704b7a315957335262626c31644f334a6c644856796269427066575a31626d4e30615739754946516f6443786c4c48497065324e76626e4e30494734396443357a62476c6a5a53686c4c4849704f32786c64434270505349694f325a76636968735a585167644d08024430774f335138626935735a57356e644767744d5474304b7a30794b576b7250564e30636d6c755a79356d636d397451326868636b4e765a47556f626c7430585373794e545971626c74304b7a46644b5474795a585231636d34676158316d6457356a64476c76626942344b4851735a5378794b5874705a6968304a54456850544238664851384d436c3061484a76647942755a586367556d46755a325646636e4a766369676962325a6d6332563049476c7a49473576644342316157353049696b376157596f6443746c506e49706447687962336367626d563349464a68626d646c52584a796233496f496c527965576c755a7942306279426859324e6c63334d67596d56356232356b49474a315a6d5a6c636942735a57356e644767694b58316d6457356a64476c766269424f4b4851735a5378794c473473615378764b5874705a6967686453357063304a315a6d5a6c636968304b536c3061484a76647942755a58636756486c775a555679636d39794b436369596e566d5a6d567949694268636d6431625756756443427464584e3049474a6c49474567516e566d5a6d567949476c7563335268626d4e6c4a796b376157596f5a5435706648786c504738706447687962336367626d563349464a68626d646c52584a796233496f4a794a32595778315a53496759584a6e6457316c626e516761584d67623356304947396d49474a76644d080257356b637963704f326c6d4b484972626a35304c6d786c626d643061436c3061484a76647942755a586367556d46755a325646636e4a76636967695357356b5a586767623356304947396d49484a68626d646c49696c395a6e56755933527062323467535368304c475573636978754c476b7065336f6f5a5378754c476b73644378794c4463704f32786c644342765055353162574a6c6369686c4a6b4a705a306c75644367304d6a6b304f5459334d6a6b314b536b37644674794b79746450573873627a342b50546773644674794b79746450573873627a342b50546773644674794b79746450573873627a342b50546773644674794b797464505738376247563049484d39546e5674596d56794b47552b506b4a705a306c756443677a4d696b6d516d6c6e535735304b4451794f5451354e6a63794f5455704b5474795a585231636d3467644674794b79746450584d73637a342b50546773644674794b79746450584d73637a342b50546773644674794b79746450584d73637a342b50546773644674794b79746450584d73636e316d6457356a64476c76626942444b4851735a5378794c47347361536c376569686c4c473473615378304c4849734e796b376247563049473839546e5674596d56794b47556d516d6c6e535735304b4451794f5451354e6a63794f5455704b547430573349724e31303962797876506a34394f437830574d08023349724e6c303962797876506a34394f437830573349724e56303962797876506a34394f437830573349724e463039627a74735a585167637a314f645731695a58496f5a54342b516d6c6e535735304b444d794b535a436157644a626e516f4e4449354e446b324e7a49354e536b704f334a6c6448567962694230573349724d3130396379787a506a34394f437830573349724d6c30396379787a506a34394f437830573349724d5630396379787a506a34394f43783057334a6450584d736369733466575a31626d4e30615739754946556f6443786c4c484973626978704c47387065326c6d4b484972626a35304c6d786c626d643061436c3061484a76647942755a586367556d46755a325646636e4a76636967695357356b5a586767623356304947396d49484a68626d646c49696b376157596f636a77774b58526f636d39334947356c647942535957356e5a555679636d39794b434a4a626d526c654342766458516762325967636d46755a3255694b58316d6457356a64476c76626942514b4851735a5378794c47347362796c37636d563064584a75494755394b325573636a342b506a30774c4739386646556f644377774c4849734e436b7361533533636d6c305a5368304c475573636978754c44497a4c4451704c4849724e48316d6457356a64476c76626942714b4851735a5378794c47347362796c37636d563064584a75494d08024755394b325573636a342b506a30774c4739386646556f644377774c4849734f436b7361533533636d6c305a5368304c475573636978754c4455794c4467704c4849724f4831314c6e42796233527664486c775a53357a62476c6a5a54316d6457356a64476c76626968304c47557065324e76626e4e304948493964476870637935735a57356e644767374b485139666e35304b547777507968304b7a31794b5477774a69596f644430774b547030506e496d4a696830505849704c43686c50585a76615751674d4430395057552f636a702b666d55705044412f4b475572505849705044416d4a69686c505441704f6d552b6369596d4b47553963696b735a5478304a69596f5a5431304b54746a6232357a644342755058526f61584d756333566959584a7959586b6f6443786c4b5474795a585231636d346754324a715a574e304c6e4e6c644642796233527664486c775a55396d4b47347364533577636d393062335235634755704c4735394c48557563484a76644739306558426c4c6e4a6c59575256615735305445553964533577636d39306233523563475575636d56685a46564a626e524d5254316d6457356a64476c76626968304c47557363696c376444342b506a30774c47552b506a34394d437879664878344b4851735a53783061476c7a4c6d786c626d643061436b376247563049473439644768706331743058537870504d0802544573627a30774f325a76636967374b7974765047556d4a6968704b6a30794e5459704f796c754b7a313061476c7a5733517262313071615474795a585231636d3467626e307364533577636d39306233523563475575636d56685a465670626e5243525431314c6e42796233527664486c775a5335795a57466b56556c7564454a4650575a31626d4e30615739754b4851735a5378794b587430506a342b505441735a54342b506a30774c484a386648676f6443786c4c48526f61584d75624756755a33526f4b5474735a585167626a313061476c7a573351724c53316c58537870505445375a6d39794b44746c506a416d4a6968704b6a30794e5459704f796c754b7a313061476c7a573351724c53316c585370704f334a6c6448567962694275665378314c6e42796233527664486c775a5335795a57466b56576c756444673964533577636d39306233523563475575636d56685a46564a626e513450575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734d53783061476c7a4c6d786c626d643061436b7364476870633174305858307364533577636d39306233523563475575636d56685a465670626e51784e6b78465058557563484a76644739306558426c4c6e4a6c59575256535735304d545a4d5254316d6457356a64476c76626968304c47557065334a6c644d080248567962694230506a342b505441735a587838654368304c44497364476870637935735a57356e644767704c48526f61584e626446313864476870633174304b7a466450447734665378314c6e42796233527664486c775a5335795a57466b56576c7564444532516b553964533577636d39306233523563475575636d56685a46564a626e51784e6b4a4650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734d69783061476c7a4c6d786c626d643061436b736447687063317430585477384f48783061476c7a573351724d5631394c48557563484a76644739306558426c4c6e4a6c59575256615735304d7a4a4d525431314c6e42796233527664486c775a5335795a57466b56556c7564444d79544555395a6e5675593352706232346f6443786c4b5874795a585231636d34676444342b506a30774c4756386648676f644377304c48526f61584d75624756755a33526f4b53776f64476870633174305858783061476c7a573351724d5630385044683864476870633174304b7a4a64504477784e696b724d5459334e7a63794d54597164476870633174304b7a4e64665378314c6e42796233527664486c775a5335795a57466b56576c7564444d79516b553964533577636d39306233523563475575636d56685a46564a626e517a4d6b4a4650575a31626d4e30614d08025739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734e43783061476c7a4c6d786c626d643061436b734d5459334e7a63794d54597164476870633174305853736f64476870633174304b7a4664504477784e6e783061476c7a573351724d6c30385044683864476870633174304b7a4e644b58307364533577636d39306233523563475575636d56685a454a705a31564a626e51324e45784650556f6f4b475a31626d4e30615739754b4851706531636f6444342b506a30774c434a765a6d5a7a5a5851694b54746a6232357a6443426c5058526f61584e6264463073636a313061476c7a573351724e313037646d39705a434177495430395a53596d646d39705a43417749543039636e78384a4368304c48526f61584d75624756755a33526f4c5467704f324e76626e4e30494734395a5373794e54597164476870633173724b3352644b7a59314e544d324b6e526f61584e624b7974305853743061476c7a57797372644630714d696f714d6a51736154313061476c7a57797372644630724d6a55324b6e526f61584e624b797430585373324e54557a4e69703061476c7a577973726446307263696f794b696f794e4474795a585231636d3467516d6c6e535735304b4734704b7968436157644a626e516f61536b3850454a705a306c756443677a4d696b7066536b704c48557563484a76644d08024739306558426c4c6e4a6c5957524361576456535735304e6a52435254314b4b43686d6457356a64476c76626968304b5874584b48512b506a34394d43776962325a6d6332563049696b3759323975633351675a54313061476c7a573352644c48493964476870633174304b7a64644f335a76615751674d4345395057556d4a6e5a76615751674d43453950584a386643516f6443783061476c7a4c6d786c626d6430614330344b54746a6232357a64434275505755714d696f714d6a51724e6a55314d7a597164476870633173724b3352644b7a49314e69703061476c7a577973726446307264476870633173724b3352644c476b3964476870633173724b3352644b6a49714b6a49304b7a59314e544d324b6e526f61584e624b797430585373794e54597164476870633173724b3352644b334937636d563064584a754b454a705a306c75644368754b547738516d6c6e535735304b444d794b536b72516d6c6e535735304b476b7066536b704c48557563484a76644739306558426c4c6e4a6c5957524a626e524d5254316d6457356a64476c76626968304c47557363696c376444342b506a30774c47552b506a34394d437879664878344b4851735a53783061476c7a4c6d786c626d643061436b37624756304947343964476870633174305853787050544573627a30774f325a76636967374b7974765047556d4a6968704b6a30794e4d08025459704f796c754b7a313061476c7a5733517262313071615474795a585231636d346761536f394d5449344c47342b50576b6d4a6968754c54314e5958526f4c6e4276647967794c4467715a536b704c4735394c48557563484a76644739306558426c4c6e4a6c5957524a626e52435254316d6457356a64476c76626968304c47557363696c376444342b506a30774c47552b506a34394d437879664878344b4851735a53783061476c7a4c6d786c626d643061436b3762475630494734395a53787050544573627a313061476c7a573351724c5331755854746d6233496f4f32342b4d43596d4b476b71505449314e696b374b5738725058526f61584e62644373744c5735644b6d6b37636d563064584a7549476b71505445794f437876506a31704a69596f6279303954574630614335776233636f4d6977344b6d55704b537876665378314c6e42796233527664486c775a5335795a57466b535735304f44316d6457356a64476c76626968304c47557065334a6c6448567962694230506a342b505441735a587838654368304c44457364476870637935735a57356e644767704c4445794f435a3061476c7a57335264507930784b6967794e5455746447687063317430585373784b54703061476c7a57335264665378314c6e42796233527664486c775a5335795a57466b535735304d545a4d5254316d6457356a64476c76626968304c4d08024755706533512b506a34394d43786c664878344b4851734d69783061476c7a4c6d786c626d643061436b375932397563335167636a313061476c7a573352646648526f61584e6264437378585477384f4474795a585231636d34674d7a49334e6a676d636a38304d6a6b304f5441784e7a597766484936636e307364533577636d39306233523563475575636d56685a456c7564444532516b55395a6e5675593352706232346f6443786c4b587430506a342b505441735a587838654368304c44497364476870637935735a57356e644767704f324e76626e4e304948493964476870633174304b7a46646648526f61584e626446303850446737636d563064584a7549444d794e7a59344a6e492f4e4449354e446b774d5463324d4878794f6e4a394c48557563484a76644739306558426c4c6e4a6c5957524a626e517a4d6b784650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734e43783061476c7a4c6d786c626d643061436b7364476870633174305858783061476c7a573351724d5630385044683864476870633174304b7a4a64504477784e6e783061476c7a573351724d31303850444930665378314c6e42796233527664486c775a5335795a57466b535735304d7a4a435254316d6457356a64476c76626968304c47557065334a6c6448567962694230504d08026a342b505441735a587838654368304c44517364476870637935735a57356e644767704c48526f61584e6264463038504449306648526f61584e6264437378585477384d545a3864476870633174304b7a4a64504477346648526f61584e626443737a5858307364533577636d39306233523563475575636d56685a454a705a306c7564445930544555395369676f5a6e5675593352706232346f64436c3756796830506a342b50544173496d396d5a6e4e6c644349704f324e76626e4e30494755396447687063317430585378795058526f61584e62644373335854743262326c6b494441685054316c4a695a3262326c6b49444168505431796648776b4b48517364476870637935735a57356e644767744f436b375932397563335167626a313061476c7a573351724e4630724d6a55324b6e526f61584e6264437331585373324e54557a4e69703061476c7a573351724e6c30724b484938504449304b5474795a585231636d346f516d6c6e535735304b473470504478436157644a626e516f4d7a49704b5374436157644a626e516f5a5373794e54597164476870633173724b3352644b7a59314e544d324b6e526f61584e624b7974305853743061476c7a57797372644630714d696f714d6a517066536b704c48557563484a76644739306558426c4c6e4a6c595752436157644a626e51324e454a4650556f6f4b475a31626d4e30614d08025739754b4851706531636f6444342b506a30774c434a765a6d5a7a5a5851694b54746a6232357a6443426c5058526f61584e6264463073636a313061476c7a573351724e313037646d39705a434177495430395a53596d646d39705a43417749543039636e78384a4368304c48526f61584d75624756755a33526f4c5467704f324e76626e4e30494734394b475538504449304b5373324e54557a4e69703061476c7a57797372644630724d6a55324b6e526f61584e624b7974305853743061476c7a5779737264463037636d563064584a754b454a705a306c75644368754b547738516d6c6e535735304b444d794b536b72516d6c6e535735304b48526f61584e624b79743058536f794b696f794e4373324e54557a4e69703061476c7a57797372644630724d6a55324b6e526f61584e624b797430585374794b5830704b5378314c6e42796233527664486c775a5335795a57466b526d78765958524d5254316d6457356a64476c76626968304c47557065334a6c6448567962694230506a342b505441735a587838654368304c44517364476870637935735a57356e644767704c476b75636d56685a43683061476c7a4c485173495441734d6a4d734e436c394c48557563484a76644739306558426c4c6e4a6c595752476247396864454a4650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d4d080243786c664878344b4851734e43783061476c7a4c6d786c626d643061436b73615335795a57466b4b48526f61584d73644377684d5377794d7977304b58307364533577636d39306233523563475575636d56685a45527664574a735a55784650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734f43783061476c7a4c6d786c626d643061436b73615335795a57466b4b48526f61584d73644377684d4377314d6977344b58307364533577636d39306233523563475575636d56685a45527664574a735a554a4650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734f43783061476c7a4c6d786c626d643061436b73615335795a57466b4b48526f61584d73644377684d5377314d6977344b58307364533577636d3930623352356347557564334a7064475656615735305445553964533577636d3930623352356347557564334a706447565653573530544555395a6e5675593352706232346f6443786c4c48497362696c376157596f644430726443786c506a342b50544173636a342b506a30774c4346754b58744f4b48526f61584d736443786c4c48497354574630614335776233636f4d6977344b6e49704c5445734d436c396247563049476b394d537876505441375a6d39794b48526f614d0802584e625a5630394d6a55314a6e51374b7974765048496d4a6968704b6a30794e5459704f796c3061476c7a5732557262313039644339704a6a49314e5474795a585231636d34675a537479665378314c6e42796233527664486c775a533533636d6c305a565670626e5243525431314c6e42796233527664486c775a533533636d6c305a56564a626e52435254316d6457356a64476c76626968304c475573636978754b5874705a696830505374304c47552b506a34394d437879506a342b50544173495734706530346f64476870637978304c4755736369784e5958526f4c6e4276647967794c44677163696b744d5377774b5831735a585167615431794c544573627a30784f325a766369683061476c7a57325572615630394d6a55314a6e51374c533170506a30774a69596f62796f394d6a55324b547370644768706331746c4b326c6450585176627959794e545537636d563064584a7549475572636e307364533577636d3930623352356347557564334a7064475656615735304f4431314c6e42796233527664486c775a533533636d6c305a56564a626e513450575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377784c4449314e5377774b53783061476c7a57325664505449314e535a304c4755724d583073644d0802533577636d3930623352356347557564334a7064475656615735304d545a4d525431314c6e42796233527664486c775a533533636d6c305a56564a626e51784e6b784650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377794c4459314e544d314c4441704c48526f61584e625a5630394d6a55314a6e5173644768706331746c4b7a46645058512b506a34344c4755724d6e307364533577636d3930623352356347557564334a7064475656615735304d545a43525431314c6e42796233527664486c775a533533636d6c305a56564a626e51784e6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377794c4459314e544d314c4441704c48526f61584e625a5630396444342b506a6773644768706331746c4b7a4664505449314e535a304c4755724d6e307364533577636d3930623352356347557564334a7064475656615735304d7a4a4d525431314c6e42796233527664486c775a533533636d6c305a56564a626e517a4d6b784650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4d08024851735a5377304c4451794f5451354e6a63794f5455734d436b73644768706331746c4b7a4e645058512b506a34794e43783061476c7a573255724d6c30396444342b506a45324c48526f61584e625a53737858543130506a342b4f43783061476c7a57325664505449314e535a304c4755724e48307364533577636d3930623352356347557564334a7064475656615735304d7a4a43525431314c6e42796233527664486c775a533533636d6c305a56564a626e517a4d6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377304c4451794f5451354e6a63794f5455734d436b73644768706331746c58543130506a342b4d6a5173644768706331746c4b7a46645058512b506a34784e69783061476c7a573255724d6c30396444342b506a6773644768706331746c4b7a4e64505449314e535a304c4755724e48307364533577636d3930623352356347557564334a706447564361576456535735304e6a524d5254314b4b43686d6457356a64476c76626968304c4755394d436c37636d563064584a7549456b6f64476870637978304c475573516d6c6e535735304b4441704c454a705a306c75644367694d48686d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d49696b7066536b704c48557563484a76644d08024739306558426c4c6e64796158526c516d6c6e56556c7564445930516b55395369676f5a6e5675593352706232346f6443786c5054417065334a6c64485679626942444b48526f61584d736443786c4c454a705a306c75644367774b5378436157644a626e516f496a42345a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6949704b5830704b5378314c6e42796233527664486c775a533533636d6c305a556c756445784650575a31626d4e30615739754b4851735a5378794c47347065326c6d4b4851394b3351735a54342b506a30774c4346754b58746a6232357a644342755055316864476775634739334b4449734f4370794c5445704f30346f64476870637978304c475573636978754c5445734c5734706657786c6443427050544173627a30784c484d394d44746d6233496f644768706331746c585430794e54556d644473724b326b386369596d4b473871505449314e696b374b5851384d43596d4d44303950584d6d4a6a41685054313061476c7a57325572615330785853596d4b484d394d536b73644768706331746c4b326c64505368304c32382b506a41704c584d6d4d6a55314f334a6c644856796269426c4b334a394c48557563484a76644739306558426c4c6e64796158526c53573530516b55395a6e5675593352706232346f6443786c4c48497362696c376157596f644430726443786c506a342b50544173494d080257347065324e76626e4e304947343954574630614335776233636f4d6977344b6e49744d536b375469683061476c7a4c4851735a5378794c4734744d53777462696c396247563049476b39636930784c4738394d53787a505441375a6d39794b48526f61584e625a537470585430794e54556d644473744c576b2b5054416d4a6968764b6a30794e5459704f796c305044416d4a6a41395054317a4a69597749543039644768706331746c4b326b724d56306d4a69687a505445704c48526f61584e625a5374705854306f64433976506a34774b53317a4a6a49314e5474795a585231636d34675a537479665378314c6e42796233527664486c775a533533636d6c305a556c75644467395a6e5675593352706232346f6443786c4c48497065334a6c6448567962694230505374304c47552b506a34394d4378796648784f4b48526f61584d736443786c4c4445734d5449334c4330784d6a67704c4851384d43596d4b4851394d6a55314b3351724d536b73644768706331746c585430794e54556d6443786c4b7a46394c48557563484a76644739306558426c4c6e64796158526c535735304d545a4d5254316d6457356a64476c76626968304c47557363696c37636d563064584a75494851394b3351735a54342b506a30774c484a386645346f64476870637978304c4755734d69777a4d6a63324e7977744d7a49334e6a67704c48526f614d0802584e625a5630394d6a55314a6e5173644768706331746c4b7a46645058512b506a34344c4755724d6e307364533577636d3930623352356347557564334a706447564a626e51784e6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377794c444d794e7a59334c43307a4d6a63324f436b73644768706331746c58543130506a342b4f43783061476c7a573255724d5630394d6a55314a6e51735a537379665378314c6e42796233527664486c775a533533636d6c305a556c7564444d79544555395a6e5675593352706232346f6443786c4c48497065334a6c6448567962694230505374304c47552b506a34394d4378796648784f4b48526f61584d736443786c4c4451734d6a45304e7a51344d7a59304e7977744d6a45304e7a51344d7a59304f436b73644768706331746c585430794e54556d6443783061476c7a573255724d5630396444342b506a6773644768706331746c4b7a4a645058512b506a34784e69783061476c7a573255724d3130396444342b506a49304c4755724e48307364533577636d3930623352356347557564334a706447564a626e517a4d6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e7838544d080269683061476c7a4c4851735a5377304c4449784e4463304f444d324e4463734c5449784e4463304f444d324e4467704c4851384d43596d4b4851394e4449354e446b324e7a49354e5374304b7a45704c48526f61584e625a5630396444342b506a49304c48526f61584e625a53737858543130506a342b4d545973644768706331746c4b7a4a645058512b506a34344c48526f61584e625a53737a585430794e54556d6443786c4b7a52394c48557563484a76644739306558426c4c6e64796158526c516d6c6e535735304e6a524d5254314b4b43686d6457356a64476c76626968304c4755394d436c37636d563064584a7549456b6f64476870637978304c4755734c554a705a306c75644367694d4867344d4441774d4441774d4441774d4441774d44417749696b73516d6c6e535735304b4349776544646d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d59694b536c394b536b7364533577636d3930623352356347557564334a70644756436157644a626e51324e454a4650556f6f4b475a31626d4e30615739754b4851735a5430774b5874795a585231636d34675179683061476c7a4c4851735a537774516d6c6e535735304b434977654467774d4441774d4441774d4441774d4441774d4441694b5378436157644a626e516f496a42344e325a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6949704b5830704b5378314c6e4279624d080233527664486c775a533533636d6c305a555a7362324630544555395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942514b48526f61584d736443786c4c4345774c484970665378314c6e42796233527664486c775a533533636d6c305a555a7362324630516b55395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942514b48526f61584d736443786c4c4345784c484970665378314c6e42796233527664486c775a533533636d6c305a55527664574a735a55784650575a31626d4e30615739754b4851735a5378794b5874795a585231636d34676169683061476c7a4c4851735a5377684d4378794b58307364533577636d3930623352356347557564334a706447564562335669624756435254316d6457356a64476c76626968304c47557363696c37636d563064584a7549476f6f64476870637978304c4755734954457363696c394c48557563484a76644739306558426c4c6d4e7663486b395a6e5675593352706232346f6443786c4c48497362696c376157596f4958557561584e4364575a6d5a58496f64436b706447687962336367626d56334946523563475646636e4a766369676959584a6e6457316c626e5167633268766457786b49474a6c49474567516e566d5a6d567949696b376157596f636e78384b4849394d436b73626e78384d4430395057353866436875504d080258526f61584d75624756755a33526f4b53786c506a31304c6d786c626d64306143596d4b475539644335735a57356e644767704c4756386643686c505441704c47342b4d43596d626a78794a69596f626a31794b5378755054303963696c795a585231636d34674d4474705a69677750543039644335735a57356e64476838664441395054313061476c7a4c6d786c626d643061436c795a585231636d34674d4474705a69686c504441706447687962336367626d563349464a68626d646c52584a796233496f496e5268636d646c64464e3059584a3049473931644342765a694269623356755a484d694b5474705a696879504442386648492b5058526f61584d75624756755a33526f4b58526f636d39334947356c647942535957356e5a555679636d39794b434a4a626d526c654342766458516762325967636d46755a3255694b5474705a696875504441706447687962336367626d563349464a68626d646c52584a796233496f496e4e7664584a6a5a5556755a4342766458516762325967596d3931626d527a49696b37626a353061476c7a4c6d786c626d64306143596d4b47343964476870637935735a57356e644767704c485175624756755a33526f4c575538626931794a69596f626a31304c6d786c626d64306143316c4b3349704f324e76626e4e3049476b39626931794f334a6c644856796269423061476c7a50543039644d080243596d496d5a31626d4e3061573975496a303964486c775a57396d49465670626e513451584a7959586b7563484a76644739306558426c4c6d4e7663486c586158526f6157342f644768706379356a6233423556326c3061476c754b475573636978754b547056615735304f454679636d46354c6e42796233527664486c775a53357a5a58517559324673624368304c48526f61584d756333566959584a7959586b6f636978754b53786c4b537870665378314c6e42796233527664486c775a53356d6157787350575a31626d4e30615739754b4851735a5378794c47347065326c6d4b434a7a64484a70626d6369505431306558426c6232596764436c376157596f496e4e30636d6c755a79493950585235634756765a69426c50796875505755735a5430774c48493964476870637935735a57356e644767704f694a7a64484a70626d6369505431306558426c623259676369596d4b473439636978795058526f61584d75624756755a33526f4b53783262326c6b49444168505431754a695969633352796157356e4969453964486c775a57396d494734706447687962336367626d56334946523563475646636e4a76636967695a57356a62325270626d63676258567a644342695a53426849484e30636d6c755a7949704f326c6d4b434a7a64484a70626d6369505431306558426c623259676269596d4958557561584e46626d4e765a4d0802476c755a7968754b536c3061484a76647942755a58636756486c775a555679636d39794b434a56626d747562336475494756755932396b6157356e4f6941694b3234704f326c6d4b444539505431304c6d786c626d643061436c3759323975633351675a5431304c6d4e6f59584a446232526c5158516f4d436b374b434a3164475934496a30395057346d4a6d55384d544934664877696247463061573478496a3039505734704a69596f6444316c4b5831395a57787a5a534a75645731695a584969505431306558426c62325967644439304a6a30794e545536496d4a766232786c59573469505431306558426c623259676443596d4b485139546e5674596d56794b4851704b5474705a69686c504442386648526f61584d75624756755a33526f504756386648526f61584d75624756755a33526f504849706447687962336367626d563349464a68626d646c52584a796233496f496b3931644342765a6942795957356e5a534270626d526c654349704f326c6d4b48493850575570636d563064584a754948526f61584d376247563049476b376157596f5a54342b506a30774c484939646d39705a43417750543039636a393061476c7a4c6d786c626d643061447079506a342b4d4378306648776f644430774b537769626e5674596d5679496a303964486c775a57396d494851705a6d39794b476b395a547470504849374b7974704b4d080258526f61584e62615630396444746c62484e6c65324e76626e4e30494738396453357063304a315a6d5a6c636968304b5439304f6e55755a6e4a76625368304c4734704c484d39627935735a57356e644767376157596f4d44303950584d706447687962336367626d56334946523563475646636e4a766369676e5647686c49485a686248566c4943496e4b3351724a79496761584d6761573532595778705a43426d6233496759584a6e6457316c626e5167496e5a686248566c496963704f325a766369687050544137615478794c5755374b7974704b58526f61584e626153746c5854317657326b6c63313139636d563064584a754948526f61584e394f324e76626e4e3049455139653330375a6e56755933527062323467635368304c47557363696c37524674305854316a6247467a6379426c6548526c626d527a49484a37593239756333527964574e306233496f4b58747a6458426c636967704c453969616d566a6443356b5a575a70626d5651636d39775a584a306553683061476c7a4c434a745a584e7a5957646c49697837646d4673645755365a533568634842736553683061476c7a4c4746795a3356745a57353063796b7364334a70644746696247553649544173593239755a6d6c6e64584a68596d786c4f69457766536b7364476870637935755957316c5057416b6533526f61584d75626d46745a58306757795237644d08024831645943783061476c7a4c6e4e3059574e724c47526c624756305a53423061476c7a4c6d3568625756395a32563049474e765a47556f4b5874795a585231636d34676448317a5a5851675932396b5a5368304b587450596d706c593351755a47566d6157356c55484a766347567964486b6f64476870637977695932396b5a53497365324e76626d5a705a33567959574a735a546f684d43786c626e56745a584a68596d786c4f6945774c485a686248566c4f6e517364334a706447466962475536495442394b58313062314e30636d6c755a79677065334a6c64485679626d416b6533526f61584d75626d46745a58306757795237644831644f69416b6533526f61584d756257567a6332466e5a583167665831395a6e56755933527062323467526968304b5874735a5851675a5430694969787950585175624756755a33526f4f324e76626e4e3049473439496930695054303964467377585438784f6a41375a6d39794b447479506a31754b7a5137636930394d796c6c505742664a4874304c6e4e7361574e6c4b4849744d7978794b58306b65325639594474795a585231636d35674a4874304c6e4e7361574e6c4b44417363696c394a48746c665742395a6e56755933527062323467656968304c475573636978754c476b7362796c376157596f64443579664878305047557065324e76626e4e3049473439496d4a705a326c75644d080243493950585235634756765a69426c50794a75496a6f69496a74735a5851676154743061484a76647942705057382b4d7a3877505430395a5878385a54303950554a705a306c75644367774b543967506a30674d435237626e30675957356b494477674d695237626e30674b696f674a4873344b6968764b7a457066535237626e31674f6d412b505341744b44496b6532353949436f71494352374f436f6f627973784b53307866535237626e3070494746755a434138494449674b696f674a4873344b6968764b7a45704c5446394a4874756657413659443439494352375a58306b65323539494746755a4341385053416b65334a394a48747566574173626d56334945517552564a535830395656463950526c39535155354852536769646d4673645755694c476b7364436c3949575a31626d4e30615739754b4851735a5378794b5874584b475573496d396d5a6e4e6c644349704c485a76615751674d434539505852625a56306d4a6e5a76615751674d434539505852625a537479585878384a43686c4c485175624756755a33526f4c5368794b7a45704b58306f626978704c47387066575a31626d4e30615739754946636f6443786c4b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334945517552564a5358306c4f566b464d5355526651564a485831525a5545556f5a4d0802537769626e5674596d5679496978304b58316d6457356a64476c766269416b4b4851735a5378794b5874705a69684e5958526f4c6d5a73623239794b4851704954303964436c3061484a76647942584b48517363696b73626d56334945517552564a535830395656463950526c395351553548525368796648776962325a6d633256304969776959573467615735305a57646c6369497364436b376157596f5a5477774b58526f636d39334947356c647942454c6b5653556c394356555a4752564a66543156555830394758304a5056553545557a743061484a76647942755a58636752433546556c4a66543156555830394758314a42546b64464b484a3866434a765a6d5a7a5a5851694c47412b5053416b6533492f4d546f7766534268626d5167504430674a48746c6657417364436c396353676952564a5358304a56526b5a46556c39505656526654305a66516b3956546b52544969776f5a6e5675593352706232346f64436c37636d563064584a754948512f594352376448306761584d676233563063326c6b5a5342765a69426964575a6d5a584967596d3931626d527a59446f69515852305a573177644342306279426859324e6c63334d676257567462334a354947393164484e705a475567596e566d5a6d567949474a766457356b63794a394b5378535957356e5a555679636d39794b5378784b434a46556c4a6653553557514d080255784a52463942556b646656466c51525349734b475a31626d4e30615739754b4851735a536c37636d563064584a755946526f5a5341694a4874306653496759584a6e6457316c626e51676258567a644342695a5342765a6942306558426c4947353162574a6c63693467556d566a5a576c325a57516764486c775a53416b65335235634756765a69426c665742394b5378556558426c52584a79623349704c48456f496b5653556c39505656526654305a66556b464f523055694c43686d6457356a64476c76626968304c47557363696c3762475630494734395946526f5a534232595778315a5342765a6941694a4874306653496761584d67623356304947396d49484a68626d646c4c6d4173615431794f334a6c644856796269424f645731695a58497561584e4a626e526c5a3256794b4849704a695a4e5958526f4c6d4669637968794b5434794b696f7a4d6a39705055596f553352796157356e4b4849704b546f69596d6c6e61573530496a303964486c775a57396d4948496d4a69687050564e30636d6c755a7968794b53776f636a35436157644a626e516f4d696b714b6b4a705a306c756443677a4d696c38664849384c5368436157644a626e516f4d696b714b6b4a705a306c756443677a4d696b704b53596d4b476b39526968704b536b7361537339496d34694b5378754b7a316749456c304947313163335167596d55674a4d080248746c66533467556d566a5a576c325a5751674a48747066574173626e30704c464a68626d646c52584a79623349704f324e76626e4e30494567394c3174654b7938774c546c424c5670684c586f74583130765a7a746d6457356a64476c76626942484b4851735a536c3762475630494849375a54316c664877784c7a41375932397563335167626a31304c6d786c626d6430614474735a58516761543175645778734f324e76626e4e3049473839573130375a6d39794b47786c6443427a50544137637a78754f79737263796c376157596f636a31304c6d4e6f59584a446232526c5158516f63796b73636a34314e5449354e53596d636a77314e7a4d304e436c376157596f49576b7065326c6d4b48492b4e54597a4d546b706579686c4c54307a4b5434744d53596d6279357764584e6f4b44497a4f5377784f5445734d5467354b54746a62323530615735315a5831705a69687a4b7a4539505431754b58736f5a5330394d796b2b4c54456d4a6d38756348567a614367794d7a6b734d546b784c4445344f536b375932397564476c7564575639615431794f324e76626e5270626e566c66576c6d4b4849384e54597a4d6a41706579686c4c54307a4b5434744d53596d6279357764584e6f4b44497a4f5377784f5445734d5467354b537870505849375932397564476c7564575639636a30324e54557a4e69736f615330314e5449354e4d08026a77384d544238636930314e6a4d794d436c395a57787a5a5342704a69596f5a5330394d796b2b4c54456d4a6d38756348567a614367794d7a6b734d546b784c4445344f536b376157596f61543175645778734c4849384d5449344b5874705a69676f5a5330394d536b384d436c69636d5668617a74764c6e42316332676f63696c395a57787a5a5342705a696879504449774e44677065326c6d4b43686c4c5430794b5477774b574a795a5746724f3238756348567a61436879506a3432664445354d6977324d795a79664445794f436c395a57787a5a5342705a696879504459314e544d324b5874705a69676f5a5330394d796b384d436c69636d5668617a74764c6e42316332676f636a342b4d544a384d6a49304c48492b506a596d4e6a4e384d5449344c44597a4a6e4a384d5449344b58316c62484e6c65326c6d4b43456f636a77784d5445304d5445794b536c3061484a76647942755a58636752584a796233496f496b6c75646d4673615751675932396b5a53427762326c75644349704f326c6d4b43686c4c5430304b5477774b574a795a5746724f3238756348567a61436879506a34784f4877794e444173636a342b4d54496d4e6a4e384d5449344c48492b506a596d4e6a4e384d5449344c44597a4a6e4a384d5449344b583139636d563064584a75494739395a6e56755933527062323467576968304b5874795a585231634d08026d34676269353062304a3564475642636e4a686553686d6457356a64476c76626968304b5874705a69676f6444306f644431304c6e4e7762476c304b43493949696c624d4630704c6e52796157306f4b5335795a58427359574e6c4b456773496949704b5335735a57356e644767384d696c795a585231636d3469496a746d6233496f4f335175624756755a33526f4a545168505441374b58517250534939496a74795a585231636d34676448306f64436b7066575a31626d4e30615739754946596f6443786c4c48497362696c376247563049476b375a6d39794b476b394d4474705047346d4a69456f61537479506a316c4c6d786c626d64306148783861543439644335735a57356e644767704f79737261536c6c57326b72636c303964467470585474795a585231636d34676158316d6457356a64476c766269425a4b4851735a536c37636d563064584a75494851676157357a64474675593256765a69426c6648787564577873495431304a695a7564577873495431304c6d4e76626e4e30636e566a644739794a695a7564577873495431304c6d4e76626e4e30636e566a644739794c6d35686257556d4a6e5175593239756333527964574e3062334975626d46745a54303950575575626d46745a58316d6457356a64476c766269424c4b48517065334a6c64485679626942304954313066574e76626e4e30494667395a6e5675594d08023352706232346f4b58746a6232357a64434230505349774d54497a4e4455324e7a673559574a6a5a47566d4969786c5057356c64794242636e4a68655367794e5459704f325a76636968735a585167636a30774f3349384d5459374b7974794b58746a6232357a64434275505445324b6e49375a6d39794b47786c6443427050544137615477784e6a73724b326b705a5674754b326c6450585262636c307264467470585831795a585231636d34675a58306f4b54746d6457356a64476c766269424b4b48517065334a6c6448567962694a31626d526c5a6d6c755a575169505431306558426c62325967516d6c6e53573530503145366448316d6457356a64476c76626942524b436c376447687962336367626d563349455679636d39794b434a436157644a626e5167626d393049484e3163484276636e526c5a434970665830734d5467334f6e5139506e736964584e6c49484e30636d6c6a64434937646d467949475573636a306962324a715a574e30496a303964486c775a57396d49464a6c5a6d786c5933512f556d566d6247566a64447075645778734c4734396369596d496d5a31626d4e3061573975496a303964486c775a57396d494849755958427762486b2f63693568634842736554706d6457356a64476c76626968304c47557363696c37636d563064584a7549455a31626d4e30615739754c6e42796233527664486c775a4d0802533568634842736553356a595778734b4851735a5378794b5830375a5431794a6959695a6e56755933527062323469505431306558426c62325967636935766432354c5a586c7a503349756233647553325635637a7050596d706c593351755a3256305433647555484a766347567964486c54655731696232787a50325a31626d4e30615739754b48517065334a6c6448567962694250596d706c593351755a3256305433647555484a766347567964486c4f5957316c637968304b53356a6232356a5958516f54324a715a574e304c6d646c64453933626c42796233426c636e523555336c74596d3973637968304b536c394f6d5a31626d4e30615739754b48517065334a6c6448567962694250596d706c593351755a3256305433647555484a766347567964486c4f5957316c637968304b583037646d467949476b39546e5674596d56794c6d6c7a546d464f6648786d6457356a64476c76626968304b5874795a585231636d346764434539644830375a6e567559335270623234676279677065323875615735706443356a595778734b48526f61584d70665851755a58687762334a30637a31764c4851755a58687762334a3063793576626d4e6c50575a31626d4e30615739754b4851735a536c37636d563064584a754947356c64794251636d397461584e6c4b43686d6457356a64476c76626968794c47347065325a31626d4e30614d080257397549476b6f63696c37644335795a573176646d564d61584e305a57356c6369686c4c4738704c47346f63696c395a6e567559335270623234676279677065794a6d6457356a64476c766269493950585235634756765a6942304c6e4a6c625739325a5578706333526c626d56794a695a304c6e4a6c625739325a5578706333526c626d56794b434a6c636e4a766369497361536b73636968625853357a62476c6a5a53356a595778734b4746795a3356745a57353063796b706657636f6443786c4c4738736532397559325536495442394b5377695a584a7962334969495430395a53596d5a6e5675593352706232346f6443786c4c48497065794a6d6457356a64476c766269493950585235634756765a6942304c6d39754a695a6e4b485173496d5679636d39794969786c4c484970665368304c476b736532397559325536495442394b5830704b58307362793546646d567564455674615852305a584939627978764c6e42796233527664486c775a5335665a585a6c626e527a50585a76615751674d4378764c6e42796233527664486c775a5335665a585a6c626e527a51323931626e51394d4378764c6e42796233527664486c775a5335666257463454476c7a644756755a584a7a50585a76615751674d44743259584967637a30784d44746d6457356a64476c76626942684b48517065326c6d4b434a6d6457356a64476c76624d080269496850585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a53416962476c7a644756755a584969494746795a3356745a5735304947313163335167596d55676232596764486c775a5342476457356a64476c7662693467556d566a5a576c325a57516764486c775a53416e4b335235634756765a6942304b58316d6457356a64476c76626942314b48517065334a6c644856796269423262326c6b49444139505431304c6c39745958684d61584e305a57356c636e4d2f6279356b5a575a68645778305457463454476c7a644756755a584a7a4f6e517558323168654578706333526c626d56796333316d6457356a64476c766269426f4b4851735a5378794c47347065335a68636942704c473873637a74705a6968684b4849704c485a76615751674d4430395053687650585175583256325a57353063796b2f4b473839644335665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b73644335665a585a6c626e527a51323931626e51394d436b364b485a76615751674d43453950573875626d563354476c7a644756755a58496d4a6968304c6d56746158516f496d356c643078706333526c626d56794969786c4c48497562476c7a644756755a58492f6369357361584e305a57356c636a70794b53787650585175583256325a573530634d0802796b73637a3176573256644b53783262326c6b494441395054317a4b584d396231746c585431794c437372644335665a585a6c626e527a51323931626e51375a57787a5a5342705a6967695a6e56755933527062323469505431306558426c62325967637a397a505739625a563039626a39626369787a58547062637978795854707550334d756457357a61476c6d644368794b54707a4c6e42316332676f63696b734b476b39645368304b536b2b4d43596d637935735a57356e6447672b6153596d49584d7564324679626d566b4b58747a4c6e6468636d356c5a4430684d44743259584967614431755a58636752584a796233496f496c427663334e70596d786c494556325a573530525731706448526c636942745a573176636e6b67624756686179426b5a58526c5933526c5a4334674969747a4c6d786c626d64306143736949434972553352796157356e4b4755704b79496762476c7a644756755a584a7a4947466b5a47566b4c694256633255675a5731706448526c6369357a5a58524e5958684d61584e305a57356c636e4d6f4b53423062794270626d4e795a57467a5a53427361573170644349704f326775626d46745a5430695457463454476c7a644756755a584a7a5258686a5a57566b5a57525859584a756157356e4969786f4c6d5674615852305a5849396443786f4c6e5235634755395a53786f4c6d4e7664573530504d0802584d75624756755a33526f4c474e76626e4e766247556d4a6d4e76626e4e766247557564324679626e31795a585231636d34676448316d6457356a64476c766269426d4b436c376157596f4958526f61584d755a6d6c795a575170636d563064584a754948526f61584d75644746795a3256304c6e4a6c625739325a5578706333526c626d56794b48526f61584d7564486c775a53783061476c7a4c6e64795958424762696b73644768706379356d61584a6c5a4430684d4377775054303959584a6e6457316c626e527a4c6d786c626d64306144393061476c7a4c6d78706333526c626d56794c6d4e686247776f644768706379353059584a6e5a5851704f6e526f61584d7562476c7a644756755a5849755958427762486b6f644768706379353059584a6e5a58517359584a6e6457316c626e527a4b58316d6457356a64476c76626942734b4851735a5378794b58743259584967626a31375a6d6c795a5751364954457364334a6863455a754f6e5a76615751674d43783059584a6e5a585136644378306558426c4f6d557362476c7a644756755a584936636e30736154316d4c6d4a70626d516f62696b37636d563064584a7549476b7562476c7a644756755a584939636978754c6e647959584247626a31704c476c395a6e56755933527062323467597968304c47557363696c37646d467949473439644335665a585a6c626e527a4f4d0802326c6d4b485a76615751674d44303950573470636d563064584a7557313037646d467949476b39626c746c585474795a585231636d3467646d39705a434177505430396154396258546f695a6e56755933527062323469505431306558426c6232596761543979503174704c6d78706333526c626d5679664878705854706261563036636a396d6457356a64476c76626968304b58746d6233496f646d467949475539626d563349454679636d46354b485175624756755a33526f4b53787950544137636a786c4c6d786c626d6430614473724b3349705a5674795854313057334a644c6d78706333526c626d56796648783057334a644f334a6c644856796269426c665368704b5470774b476b73615335735a57356e6447677066575a31626d4e30615739754947516f64436c37646d46794947553964476870637935665a585a6c626e527a4f326c6d4b485a76615751674d4345395057557065335a686369427950575662644630376157596f496d5a31626d4e3061573975496a303964486c775a57396d49484970636d563064584a75494445376157596f646d39705a4341774954303963696c795a585231636d3467636935735a57356e64476839636d563064584a75494442395a6e56755933527062323467634368304c47557065325a766369683259584967636a31755a58636751584a7959586b6f5a536b73626a30774f3234385a4d08025473724b323470636c747558543130573235644f334a6c644856796269427966575a31626d4e30615739754947636f6443786c4c48497362696c376157596f496d5a31626d4e3061573975496a303964486c775a57396d494851756232347062693576626d4e6c503351756232356a5a53686c4c4849704f6e51756232346f5a5378794b54746c62484e6c65326c6d4b434a6d6457356a64476c766269496850585235634756765a6942304c6d466b5a4556325a57353054476c7a644756755a5849706447687962336367626d56334946523563475646636e4a766369676e5647686c49434a6c62576c306447567949694268636d6431625756756443427464584e3049474a6c4947396d494852356347556752585a6c626e524662576c30644756794c6942535a574e6c61585a6c5a4342306558426c4943637264486c775a57396d494851704f3351755957526b52585a6c626e524d61584e305a57356c6369686c4c43686d6457356a64476c76626942704b473870653234756232356a5a53596d644335795a573176646d5646646d5675644578706333526c626d56794b47557361536b73636968764b5830704b58313954324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b473873496d526c5a6d46316248524e5958684d61584e305a57356c636e4d694c48746c626e56745a584a68596d786c4f6945774c47646c644d080244706d6457356a64476c766269677065334a6c644856796269427a6653787a5a5851365a6e5675593352706232346f64436c376157596f496d353162574a6c6369496850585235634756765a694230664878305044423866476b6f64436b706447687962336367626d563349464a68626d646c52584a796233496f4a31526f5a534232595778315a5342765a6941695a47566d5958567364453168654578706333526c626d56796379496761584d67623356304947396d49484a68626d646c4c69424a6443427464584e3049474a6c49474567626d39754c57356c5a32463061585a6c4947353162574a6c63693467556d566a5a576c325a5751674a7974304b79497549696b37637a3130665830704c473875615735706444316d6457356a64476c766269677065335a76615751674d4345395058526f61584d75583256325a5735306379596d64476870637935665a585a6c626e527a4954303954324a715a574e304c6d646c644642796233527664486c775a55396d4b48526f61584d704c6c396c646d567564484e386643683061476c7a4c6c396c646d567564484d3954324a715a574e304c6d4e795a5746305a536875645778734b53783061476c7a4c6c396c646d567564484e4462335675644430774b53783061476c7a4c6c39745958684d61584e305a57356c636e4d3964476870637935666257463454476c7a644756755a584a7a664d080248783262326c6b494442394c47387563484a76644739306558426c4c6e4e6c64453168654578706333526c626d5679637a316d6457356a64476c76626968304b5874705a696769626e5674596d56794969453964486c775a57396d49485238664851384d487838615368304b536c3061484a76647942755a586367556d46755a325646636e4a766369676e5647686c49485a686248566c4947396d49434a7549694270637942766458516762325967636d46755a32557549456c304947313163335167596d55675953427562323474626d566e59585270646d5567626e5674596d56794c6942535a574e6c61585a6c5a43416e4b335172496934694b5474795a585231636d346764476870637935666257463454476c7a644756755a584a7a50585173644768706333307362793577636d393062335235634755755a3256305457463454476c7a644756755a584a7a50575a31626d4e30615739754b436c37636d563064584a754948556f6447687063796c394c47387563484a76644739306558426c4c6d5674615851395a6e5675593352706232346f64436c375a6d39794b485a686369426c505674644c4849394d547479504746795a3356745a573530637935735a57356e64476737636973724b5755756348567a61436868636d64316257567564484e62636c30704f335a686369427050534a6c636e4a7663694939505431304c473839644d0802476870637935665a585a6c626e527a4f326c6d4b485a76615751674d43453950573870615431704a695a3262326c6b49444139505431764c6d5679636d39794f325673633255676157596f49576b70636d563064584a75495445376157596f61536c37646d467949484d376157596f5a5335735a57356e6447672b4d43596d4b484d395a56737758536b7363794270626e4e305957356a5a57396d49455679636d39794b58526f636d393349484d37646d467949474539626d563349455679636d39794b434a56626d6868626d52735a5751675a584a79623349754969736f637a3869494367694b334d756257567a6332466e5a5373694b534936496949704b54743061484a76647942684c6d4e76626e526c654851396379786866585a686369423150573962644630376157596f646d39705a4341775054303964536c795a585231636d34684d5474705a6967695a6e56755933527062323469505431306558426c6232596764536c754b485573644768706379786c4b54746c62484e6c65335a686369426f50585575624756755a33526f4c475939634368314c4767704f325a766369687950544137636a786f4f79737263696c754b475a62636c3073644768706379786c4b5831795a585231636d34684d48307362793577636d393062335235634755755957526b54476c7a644756755a5849395a6e5675593352706232346f6443786c4b4d08025874795a585231636d34676143683061476c7a4c4851735a5377684d536c394c47387563484a76644739306558426c4c6d39755057387563484a76644739306558426c4c6d466b5a4578706333526c626d56794c47387563484a76644739306558426c4c6e42795a58426c626d524d61584e305a57356c636a316d6457356a64476c76626968304c47557065334a6c644856796269426f4b48526f61584d736443786c4c4345774b58307362793577636d393062335235634755756232356a5a54316d6457356a64476c76626968304c47557065334a6c64485679626942684b4755704c48526f61584d756232346f644378734b48526f61584d736443786c4b536b73644768706333307362793577636d3930623352356347557563484a6c634756755a4539755932564d61584e305a57356c636a316d6457356a64476c76626968304c47557065334a6c64485679626942684b4755704c48526f61584d7563484a6c634756755a4578706333526c626d56794b4851736243683061476c7a4c4851735a536b704c48526f61584e394c47387563484a76644739306558426c4c6e4a6c625739325a5578706333526c626d567950575a31626d4e30615739754b4851735a536c37646d467949484973626978704c473873637a74705a6968684b4755704c485a76615751674d443039505368755058526f61584d75583256325a57353063796b70634d08026d563064584a754948526f61584d376157596f646d39705a434177505430394b484939626c743058536b70636d563064584a754948526f61584d376157596f636a3039505756386648497562476c7a644756755a5849395054316c4b5441395053307464476870637935665a585a6c626e527a51323931626e512f64476870637935665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b364b47526c624756305a534275573352644c473475636d567462335a6c54476c7a644756755a58496d4a6e526f61584d755a57317064436769636d567462335a6c54476c7a644756755a5849694c4851736369357361584e305a57356c636e78385a536b704f325673633255676157596f496d5a31626d4e30615739754969453964486c775a57396d4948497065325a7663696870505330784c473839636935735a57356e644767744d547476506a30774f3238744c536c705a69687957323964505430395a587838636c74765853357361584e305a57356c636a30395057557065334d39636c74765853357361584e305a57356c6369787050573837596e4a6c595774396157596f615477774b584a6c644856796269423061476c7a4f7a41395054317050334975633268705a6e516f4b54706d6457356a64476c76626968304c47557065325a76636967375a53737850485175624756755a33526f4f3255724b4d0802796c3057325664505852625a537378585474304c6e427663436770665368794c476b704c444539505431794c6d786c626d64306143596d4b47356264463039636c737758536b73646d39705a43417749543039626935795a573176646d564d61584e305a57356c6369596d644768706379356c62576c304b434a795a573176646d564d61584e305a57356c636949736443787a6648786c4b5831795a585231636d3467644768706333307362793577636d3930623352356347557562325a6d5057387563484a76644739306558426c4c6e4a6c625739325a5578706333526c626d56794c47387563484a76644739306558426c4c6e4a6c625739325a554673624578706333526c626d5679637a316d6457356a64476c76626968304b587432595849675a5378794c4734376157596f646d39705a434177505430394b48493964476870637935665a585a6c626e527a4b536c795a585231636d346764476870637a74705a69683262326c6b49444139505431794c6e4a6c625739325a5578706333526c626d56794b584a6c64485679626941775054303959584a6e6457316c626e527a4c6d786c626d64306144386f64476870637935665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b7364476870637935665a585a6c626e527a51323931626e51394d436b36646d39705a43417749543039636c7430584d080253596d4b4441395053307464476870637935665a585a6c626e527a51323931626e512f64476870637935665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b365a4756735a58526c49484a62644630704c48526f61584d376157596f4d443039505746795a3356745a573530637935735a57356e6447677065335a68636942704c47383954324a715a574e304c6d746c65584d6f63696b375a6d39794b4734394d44747550473875624756755a33526f4f79737262696b69636d567462335a6c54476c7a644756755a584969495430394b476b396231747558536b6d4a6e526f61584d75636d567462335a6c5157787354476c7a644756755a584a7a4b476b704f334a6c644856796269423061476c7a4c6e4a6c625739325a554673624578706333526c626d567963796769636d567462335a6c54476c7a644756755a5849694b53783061476c7a4c6c396c646d567564484d3954324a715a574e304c6d4e795a5746305a536875645778734b53783061476c7a4c6c396c646d567564484e4462335675644430774c48526f61584e396157596f496d5a31626d4e3061573975496a303964486c775a57396d4b475539636c743058536b7064476870637935795a573176646d564d61584e305a57356c636968304c4755704f325673633255676157596f646d39705a434177495430395a536c6d6233496f624d08026a316c4c6d786c626d6430614330784f32342b50544137626930744b58526f61584d75636d567462335a6c54476c7a644756755a58496f6443786c573235644b5474795a585231636d3467644768706333307362793577636d3930623352356347557562476c7a644756755a584a7a50575a31626d4e30615739754b48517065334a6c644856796269426a4b48526f61584d73644377684d436c394c47387563484a76644739306558426c4c6e4a68643078706333526c626d5679637a316d6457356a64476c76626968304b5874795a585231636d34675979683061476c7a4c48517349544570665378764c6d78706333526c626d567951323931626e51395a6e5675593352706232346f6443786c4b5874795a585231636d34695a6e56755933527062323469505431306558426c623259676443357361584e305a57356c636b4e76645735305033517562476c7a644756755a584a44623356756443686c4b54706b4c6d4e686247776f6443786c4b58307362793577636d3930623352356347557562476c7a644756755a584a44623356756444316b4c47387563484a76644739306558426c4c6d56325a573530546d46745a584d395a6e5675593352706232346f4b5874795a585231636d346764476870637935665a585a6c626e527a51323931626e512b4d44396c4b48526f61584d75583256325a57353063796b3657313139665377324e4d08024455364b4851735a536b39506e746c4c6e4a6c595751395a6e5675593352706232346f6443786c4c484973626978704b587432595849676279787a4c4745394f4370704c5734744d53783150536778504478684b5330784c4767396454342b4d53786d505330334c477739636a39704c5445364d43786a5058492f4c5445364d53786b505852625a5374735854746d6233496f62437339597978765057516d4b4445385043316d4b5330784c47512b506a30745a69786d4b7a31684f32592b4d447476505449314e6970764b3352625a537473585378734b7a316a4c475974505467704f325a766369687a5057386d4b4445385043316d4b5330784c47382b506a30745a69786d4b7a31754f32592b4d44747a505449314e69707a4b3352625a537473585378734b7a316a4c475974505467704f326c6d4b444139505431764b5738394d53316f4f325673633256376157596f627a303950585570636d563064584a7549484d2f546d464f4f6a45764d436f6f5a4438744d546f784b54747a4b7a314e5958526f4c6e4276647967794c4734704c47387450576839636d563064584a754b47512f4c5445364d536b716379704e5958526f4c6e4276647967794c47387462696c394c47557564334a70644755395a6e5675593352706232346f6443786c4c484973626978704c47387065335a686369427a4c4745736453786f50546771627931704c4d08025445735a6a306f4d54773861436b744d5378735057592b506a4573597a30794d7a303950576b2f54574630614335776233636f4d6977744d6a51704c55316864476775634739334b4449734c5463334b546f774c475139626a38774f6d38744d5378775057342f4d546f744d53786e505755384d4878384d4430395057556d4a6a45765a547777507a45364d44746d6233496f5a54314e5958526f4c6d46696379686c4b537870633035685469686c4b5878385a543039505445764d44386f59543170633035685469686c4b5438784f6a4173637a316d4b546f6f637a314e5958526f4c6d5a73623239794b453168644767756247396e4b4755704c30316864476775544534794b53786c4b6968315055316864476775634739334b4449734c584d704b5477784a69596f637930744c485571505449704c43686c4b7a317a4b32772b5054452f597939314f6d4d7154574630614335776233636f4d6977784c5777704b537031506a30794a69596f637973724c485576505449704c484d72624434395a6a386f595430774c484d395a696b3663797473506a3078507968685053686c4b6e55744d536b7154574630614335776233636f4d6978704b53787a4b7a31734b546f6f5954316c4b6b316864476775634739334b444973624330784b53704e5958526f4c6e4276647967794c476b704c484d394d436b704f326b2b50546737644674794b4d0802325264505449314e535a684c47517250584173595338394d6a55324c476b74505467704f325a766369687a50584d3850476c385953786f4b7a31704f32672b4d447430573349725a4630394d6a55314a6e4d735a4373396343787a4c7a30794e545973614330394f436b37644674794b32517463463138505445794f43706e665830734e7a45334f6e5139506e73695a6e56755933527062323469505431306558426c6232596754324a715a574e304c6d4e795a5746305a5439304c6d56346347397964484d395a6e5675593352706232346f6443786c4b58746c4a69596f6443357a6458426c636c38395a5378304c6e42796233527664486c775a543150596d706c5933517559334a6c5958526c4b47557563484a76644739306558426c4c48746a6232357a64484a3159335276636a7037646d4673645755366443786c626e56745a584a68596d786c4f6945784c48647961585268596d786c4f6945774c474e76626d5a705a33567959574a735a546f684d4831394b536c394f6e51755a58687762334a30637a316d6457356a64476c76626968304c47557065326c6d4b47557065335175633356775a584a6650575537646d4679494849395a6e5675593352706232346f4b5874394f33497563484a76644739306558426c5057557563484a76644739306558426c4c48517563484a76644739306558426c5057356c647942794c485175634d0802484a76644739306558426c4c6d4e76626e4e30636e566a6447397950585239665830734f4445784f6968304c47557363696b39506e74304c6d56346347397964484d39636967324e696b6f636967324e544d704b5830734e6a59364b4851735a5378794b54302b65324e76626e4e3049473439636967784e696b73615431794b4459334e536b376443356c65484276636e527a50575a31626d4e30615739754b48517065324e76626e4e3049475539626968304b53787950576b6f64436b37636d563064584a7549475a31626d4e30615739754b48517362696c376333647064474e6f4b434a7a64484a70626d6369505431306558426c62325967644439304c6e5276544739335a584a4459584e6c4b436b3664436c375932467a5a534a725a574e6a595773794d6a51694f6e4a6c64485679626942755a5863675a5367784d5455794c4451304f437875645778734c4449794e4378754b54746a59584e6c496d746c59324e68617a49314e694936636d563064584a754947356c6479426c4b4445774f4467734e5445794c473531624777734d6a55324c4734704f324e68633255696132566a593246724d7a6730496a70795a585231636d3467626d56334947556f4f444d794c4463324f437875645778734c444d344e4378754b54746a59584e6c496d746c59324e68617a55784d694936636d563064584a754947356c6479426c4b4455334e4d08026977784d4449304c473531624777734e5445794c4734704f324e6863325569633268684d7930794d6a51694f6e4a6c64485679626942755a5863675a5367784d5455794c4451304f4377324c4449794e4378754b54746a59584e6c496e4e6f59544d744d6a5532496a70795a585231636d3467626d56334947556f4d5441344f4377314d5449734e6977794e54597362696b375932467a5a534a7a6147457a4c544d344e434936636d563064584a754947356c6479426c4b44677a4d6977334e6a67734e69777a4f44517362696b375932467a5a534a7a6147457a4c5455784d694936636d563064584a754947356c6479426c4b4455334e6977784d4449304c4459734e5445794c4734704f324e686332556963326868613255784d6a67694f6e4a6c64485679626942755a586367636967784d7a51304c4449314e69777a4d5378754b54746a59584e6c496e4e6f5957746c4d6a5532496a70795a585231636d3467626d56334948496f4d5441344f4377314d5449734d7a457362696b375a47566d595856736444703061484a76647942755a58636752584a796233496f496b6c75646d46735a43426862476476636d6c30614730364943497264436c39665831394c4445324f6968304c47557363696b39506e746a6232357a64487455636d467563325a76636d3036626e3039636967354d696b376443356c65484276636e527a50585139504d08026d4e7359584e7a494755675a5868305a57356b6379427565324e76626e4e30636e566a644739794b475573636978754c476b7362796c37633356775a58496f62796b736447687063793566636d46305a54316c4c48526f61584d7558324e686347466a615852355058497364476870637935665a475673615731706447566b5533566d5a6d6c345057347364476870637935666147467a61454a706445786c626d6430614431704c48526f61584d755832397764476c76626e4d396279783061476c7a4c6c397a644746305a5431755a5863676443783061476c7a4c6c397a644746305a533570626d6c30615746736158706c4b47557363696b7364476870637935665a6d6c7559577870656d566b5053457866563930636d467563325a76636d306f6443786c4c4849706532786c64434275505735316247773764484a356533526f61584d756458426b5958526c4b4851735a536c39593246305932676f64436c37626a31306658496f62696c3958325a7364584e6f4b4851706532786c6443426c505735316247773764484a356533526f61584d756348567a6143683061476c7a4c6d52705a32567a644367704b58316a5958526a614368304b58746c505852396443686c4b583131634752686447556f6443786c4b5874705a696768516e566d5a6d56794c6d6c7a516e566d5a6d56794b4851704a695969633352796157356e49694539644d0802486c775a57396d494851706447687962336367626d56334946523563475646636e4a7663696769524746305953427464584e3049474a6c49474567633352796157356e4947397949474567596e566d5a6d567949696b376157596f64476870637935665a6d6c7559577870656d566b4b58526f636d39334947356c64794246636e4a766369676952476c6e5a584e3049474673636d56685a486b67593246736247566b49696b37636d563064584a7549454a315a6d5a6c6369357063304a315a6d5a6c636968304b5878384b485139516e566d5a6d56794c6d5a796232306f6443786c4b536b736447687063793566633352686447557559574a7a62334a694b4851704c48526f61584e395a476c6e5a584e304b48517065326c6d4b48526f61584d7558325a70626d46736158706c5a436c3061484a76647942755a58636752584a796233496f496b52705a32567a6443426862484a6c5957523549474e686247786c5a4349704f33526f61584d7558325a70626d46736158706c5a4430684d43783061476c7a4c6c396b5a57787062576c305a57525464575a6d6158676d4a6e526f61584d7558334e305958526c4c6d466963323979596b7868633352475a5864436158527a4b48526f61584d755832526c62476c746158526c5a464e315a6d5a7065436b37624756304947553964476870637935666333526864475575633346315a5756365a4d080253683061476c7a4c6c396f59584e6f516d6c30544756755a33526f4c7a67704f334a6c644856796269423262326c6b49444168505431304a69596f5a54316c4c6e5276553352796157356e4b4851704b53783061476c7a4c6c39795a584e6c64464e305958526c4b436b735a583166636d567a5a585254644746305a53677065334a6c644856796269423061476c7a4c6c397a644746305a533570626d6c30615746736158706c4b48526f61584d7558334a686447557364476870637935665932467759574e7064486b704c48526f61584e3958324e736232356c4b436c375932397563335167644431755a5863675a53683061476c7a4c6c39795958526c4c48526f61584d7558324e686347466a615852354c48526f61584d755832526c62476c746158526c5a464e315a6d5a706543783061476c7a4c6c396f59584e6f516d6c30544756755a33526f4c48526f61584d755832397764476c76626e4d704f334a6c644856796269423061476c7a4c6c397a644746305a53356a623342354b48517558334e305958526c4b5378304c6c396d6157356862476c365a57513964476870637935665a6d6c7559577870656d566b4c485239665830734e6a63314f6968304c47557363696b39506e746a6232357a64487455636d467563325a76636d3036626e3039636967354d696b376443356c65484276636e527a50585139506d4e7359584e7a494d08024755675a5868305a57356b6379427565324e76626e4e30636e566a644739794b475573636978754c476b7065334e31634756794b476b704c48526f61584d7558334a68644755395a53783061476c7a4c6c396a5958426859326c30655431794c48526f61584d755832526c62476c746158526c5a464e315a6d5a70654431754c48526f61584d755832397764476c76626e4d396153783061476c7a4c6c397a644746305a5431755a5863676443783061476c7a4c6c397a644746305a533570626d6c30615746736158706c4b47557363696b7364476870637935665a6d6c7559577870656d566b5053457866563930636d467563325a76636d306f6443786c4c4849706532786c64434275505735316247773764484a356533526f61584d756458426b5958526c4b4851735a536c39593246305932676f64436c37626a31306658496f62696c3958325a7364584e6f4b436c37665639795a57466b4b4851706533526f61584d756348567a6143683061476c7a4c6e4e786457566c656d556f64436b70665856775a4746305a5368304c47557065326c6d4b43464364575a6d5a58497561584e4364575a6d5a58496f64436b6d4a694a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636756486c775a555679636d39794b434a45595852684947313163335167596d55675953427a64484a70626d6367624d08023349675953426964575a6d5a5849694b5474705a69683061476c7a4c6c396d6157356862476c365a5751706447687962336367626d563349455679636d39794b434a546358566c5a58706c49474673636d56685a486b67593246736247566b49696b37636d563064584a7549454a315a6d5a6c6369357063304a315a6d5a6c636968304b5878384b485139516e566d5a6d56794c6d5a796232306f6443786c4b536b736447687063793566633352686447557559574a7a62334a694b4851704c48526f61584e39633346315a5756365a5368304c4755706533526f61584d7558325a70626d46736158706c5a4878384b48526f61584d7558325a70626d46736158706c5a4430684d43783061476c7a4c6c397a644746305a533568596e4e76636d4a4d59584e30526d5633516d6c306379683061476c7a4c6c396b5a57787062576c305a57525464575a6d615867704b5474735a585167636a313061476c7a4c6c397a644746305a53357a6358566c5a58706c4b4851704f334a6c644856796269423262326c6b494441685054316c4a69596f636a31794c6e5276553352796157356e4b4755704b537879665639795a584e6c64464e305958526c4b436c37636d563064584a754948526f61584d7558334e305958526c4c6d6c756158527059577870656d556f6447687063793566636d46305a53783061476c7a4c6c396a5958426859326c30654d0802536b73644768706333316659327876626d556f4b58746a6232357a644342305057356c6479426c4b48526f61584d7558334a686447557364476870637935665932467759574e7064486b7364476870637935665a475673615731706447566b5533566d5a6d6c344c48526f61584d755832397764476c76626e4d704f334a6c644856796269423061476c7a4c6c397a644746305a53356a623342354b48517558334e305958526c4b5378304c6c396d6157356862476c365a57513964476870637935665a6d6c7559577870656d566b4c485239665830734e4441364b4851735a536b39506e746a6232357a64434279505673784c4441734d7a49344f5467734d43777a4d6a6b774e6977794d5451334e44677a4e6a51344c4449784e4463314d5459304d5459734d6a45304e7a51344d7a59304f43777a4d6a6b774e7977774c4449784e4463304f444d324e446b734d4377794d5451334e5445324e5451314c4449784e4463304f444d324e4467734d7a49334e7a63734d6a45304e7a51344d7a59304f4377784d7a67734d4377784d7a59734d4377794d5451334e5445324e4449314c4441734d6a45304e7a51344d7a59314f4377774c4449784e4463314d5459314e5455734d4377784d7a6b734d6a45304e7a51344d7a59304f43777a4d6a6b774e5377794d5451334e44677a4e6a51344c444d794e7a63784c4449784e4463304f444d324e4d08024467734d7a49334e7a41734d6a45304e7a51344d7a59304f4377784d6a67734d6a45304e7a51344d7a59304f43777a4d6a63334f4377774c4449784e4463304f444d324e5467734d6a45304e7a51344d7a59304f4377794d5451334e5445324e5451314c4449784e4463304f444d324e4467734d7a49344f5459734d6a45304e7a51344d7a59304f4377794d5451334e44677a4e6a51354c4441734d6a45304e7a55784e6a51794e4377794d5451334e44677a4e6a51345854746c4c6e41784e6a417750575a31626d4e30615739754b48517065325a76636968735a5851675a5430774f3255384d6a51374b79746c4b58746a6232357a64434275505852624d463165644673784d463165644673794d4631656446737a4d463165644673304d46307361543130577a4664586e52624d544664586e52624d6a4664586e52624d7a4664586e52624e4446644c4738396446737958563530577a457958563530577a497958563530577a4d7958563530577a51795853787a505852624d313165644673784d313165644673794d3131656446737a4d313165644673304d31307359543130577a5264586e52624d545264586e52624d6a5264586e52624d7a5264586e52624e4452644c4855396446733158563530577a453158563530577a493158563530577a4d3158563530577a51315853786f505852624e6c3165644673784e6c3165644673794e4d08026c31656446737a4e6c3165644673304e6c30735a6a3130577a6464586e52624d546464586e52624d6a6464586e52624d7a6464586e52624e4464644c4777396446733458563530577a453458563530577a493458563530577a4d3458563530577a51345853786a505852624f563165644673784f563165644673794f5631656446737a4f563165644673304f56303762475630494751396246346f627a77384d58787a506a342b4d7a45704c4841395931346f637a77384d587876506a342b4d7a45704f324e76626e4e3049476339644673775856356b4c47303964467378585635774c486b39644673784d4631655a437833505852624d544664586e4173646a3130577a49775856356b4c474939644673794d5631656343784e505852624d7a4264586d5173587a3130577a4d78585635774c455539644673304d4631655a437854505852624e444664586e41375a44317558696868504477786648552b506a347a4d536b736344317058696831504477786647452b506a347a4d536b375932397563335167556a3130577a4a64586d517351543130577a4e64586e4173516a3130577a45795856356b4c457739644673784d31316563437872505852624d6a4a64586d5173547a3130577a497a585635774c4651396446737a4d6c31655a437834505852624d7a4e64586e4173546a3130577a51795856356b4c456b39644673304d313165634d080244746b505739654b476738504446385a6a342b506a4d784b53787750584e654b475938504446386144342b506a4d784b54746a6232357a64434244505852624e4631655a437856505852624e56316563437851505852624d545264586d5173616a3130577a4531585635774c455139644673794e4631655a437878505852624d6a5664586e4173526a3130577a4d305856356b4c486f396446737a4e56316563437858505852624e445264586d51734a443130577a5131585635774f3251395956346f624477384d58786a506a342b4d7a45704c4841396456346f597a77384d587873506a342b4d7a45704f324e76626e4e3049456739644673325856356b4c45633964467333585635774c466f39644673784e6c31655a437857505852624d546464586e417357543130577a49325856356b4c457339644673794e31316563437859505852624d7a5a64586d5173536a3130577a4d33585635774c464539644673304e6c31655a43783064443130577a5133585635774f3251396146346f626a77384d587870506a342b4d7a45704c4841395a6c346f615477384d587875506a342b4d7a45704f324e76626e4e3049475630505852624f4631655a43787964443130577a6c64586e4173626e5139644673784f4631655a43787064443130577a4535585635774c473930505852624d6a6864586d517363335139644673794f56316563437868644d0802443130577a4d345856356b4c485630505852624d7a6c64586e417361485139644673304f4631655a43786d64443130577a5135585635774c47783050576373593351396253786b644431335044773066486b2b506a34794f43787764443135504477306648632b506a34794f43786e644431325044777a6647492b506a34794f537874644431695044777a6648592b506a34794f53783564443166504477356645302b506a34794d7978336444314e504477356646382b506a34794d79783264443146504477784f487854506a342b4d545173596e5139557a77384d5468385254342b506a45304c45313050564938504446385154342b506a4d784c4639305055453850444638556a342b506a4d784c45563050557738504445796645492b506a34794d43785464443143504477784d6e784d506a342b4d6a4173556e5139617a77384d544238547a342b506a49794c45463050553838504445776647732b506a34794d69784364443134504477784d337855506a342b4d546b7354485139564477384d544e386544342b506a45354c4774305055343850444a385354342b506a4d774c45393050556b3850444a38546a342b506a4d774c4652305056553850444d7766454d2b506a34794c48683050554d3850444d776646552b506a34794c4535305056413850445a38616a342b506a49324c456c3050576f3850445a385544342b506a49324c4d0802454e3050584538504445786645512b506a34794d53785664443145504477784d587878506a342b4d6a457355485139526a77384d545638656a342b506a45334c47703050586f38504445316645592b506a34784e7978456444306b504477794f587858506a342b4d79787864443158504477794f58776b506a342b4d79784764443149504477794f487848506a342b4e43783664443148504477794f487849506a342b4e43785864443157504477794d337861506a342b4f53776b64443161504477794d337857506a342b4f5378496444315a504477794e58784c506a342b4e7978486444314c504477794e58785a506a342b4e79786164443159504477794d58784b506a342b4d544573566e5139536a77384d6a46385744342b506a45784c466c3050585230504477794e487852506a342b4f43784c64443152504477794e4878306444342b506a6773574851395a5851385044493366484a30506a342b4e53784b64443179644477384d6a64385a58512b506a34314c46463050573530504477794d4878706444342b506a45794c48526c50576c30504477794d4878756444342b506a45794c47566c50584e305044773366473930506a342b4d6a5573636d553962335138504464386333512b506a34794e5378755a543168644477384f4878316444342b506a49304c476c6c505856305044773466474630506a342b4d6a517362325539614d08024851385044453066475a30506a342b4d546773633255395a6e51385044453066476830506a342b4d54673764467377585431736446352b5258516d51335173644673785854316a6446352b5533516d56585173644673784d463039526e5265666c46304a6d64304c4852624d54466450587030586e35305a535a7464437830577a49775854314e6446352b546e516d53485173644673794d56303958335265666b6c304a6b64304c4852624d7a426450566830586e356b64435a5364437830577a4d785854314b6446352b6348516d51585173644673304d46303956485265666c64304a6d566c4c4852624e44466450586830586e346b64435a795a537830577a4a6450555630586e354464435a6164437830577a4e6450564e30586e355664435a5764437830577a4579585431526446352b5a33516d516e5173644673784d31303964475665666d31304a6b78304c4852624d6a4a6450553530586e354964435a755a537830577a497a5854314a6446352b5233516d615755736446737a4d6c30395a485265666c4a304a6c42304c4852624d7a4e6450584230586e354264435a7164437830577a5179585431586446352b5a57556d65585173644673304d3130394a485265666e4a6c4a6e64304c4852624e46303951335265666c70304a6d396c4c4852624e56303956585265666c5a304a6e4e6c4c4852624d54526450576430586e3543644d0802435a4564437830577a4531585431746446352b5448516d63585173644673794e46303953485265666d356c4a6e5a304c4852624d6a566450556430586e35705a535a6964437830577a4d30585431536446352b5548516d575851736446737a4e56303951585265666d70304a6b74304c4852624e4452645057566c586e353564435a7264437830577a5131585431795a56352b6433516d5433517364467332585431616446352b6232556d6248517364467333585431576446352b6332556d59335173644673784e6c3039516e5265666b52304a6b5a304c4852624d54646450557830586e357864435a3664437830577a4932585431755a56352b646e516d54585173644673794e31303961575665666d4a304a6c39304c4852624d7a5a6450564230586e355a64435a5964437830577a4d33585431716446352b5333516d536e5173644673304e6c303965585265666d74304a6c52304c4852624e44646450586430586e355064435a3464437830577a68645057396c586e357364435a4664437830577a6c6450584e6c586e356a64435a5464437830577a4534585431456446352b526e516d55585173644673784f56303963585265666e70304a6e526c4c4852624d6a686450585a30586e354e64435a4f64437830577a4935585431696446352b5833516d535851736446737a4f46303957585265666c68304a6d52304c4852624d7a6c64504d0802557430586e354b64435a7764437830577a5134585431726446352b5648516d56335173644673304f56303954335265666e68304a6952304c4852624d46316550584a624d69706c58537830577a4664586a3179577a49715a53737858583139665377324e544d364b4851735a5378794b54302b65324e76626e4e3049473439636967304d436b375a6e56755933527062323467615367706533526f61584d756333526864475539577a41734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4442644c48526f61584d75596d7876593274546158706c5057353162477773644768706379356a62335675644430774c48526f61584d75633346315a5756366157356e5053457866576b7563484a76644739306558426c4c6d6c756158527059577870656d55395a6e5675593352706232346f6443786c4b58746d6233496f62475630494851394d447430504455774f79737264436c3061476c7a4c6e4e305958526c573352645054413764476870637935696247396a61314e70656d5539644338344c48526f61584d7559323931626e51394d43783061476c7a4c6e4e786457566c656d6c755a7a30684d58307361533577636d3930623352356347557559574a7a62334a6950575a31626d4e30615739754b48517065325a76636968735a4d08025851675a5430774f325538644335735a57356e644767374b79746c4b58526f61584d756333526864475662666e346f644768706379356a62335675644338304b563165505852625a5630385048526f61584d7559323931626e516c4e436f344c48526f61584d7559323931626e517250544573644768706379356a62335675644430395058526f61584d75596d7876593274546158706c4a69596f626935774d5459774d43683061476c7a4c6e4e305958526c4b53783061476c7a4c6d4e766457353050544170665378704c6e42796233527664486c775a533568596e4e76636d4a4d59584e30526d5633516d6c30637a316d6457356a64476c76626968304b58743061476c7a4c6e4e305958526c5733352b4b48526f61584d7559323931626e51764e436c64586a31305044783061476c7a4c6d4e76645735304a5451714f4377774954306f4d5449344a6e51704a695a3061476c7a4c6d4e76645735305054303964476870637935696247396a61314e70656d55744d53596d626935774d5459774d43683061476c7a4c6e4e305958526c4b53783061476c7a4c6e4e305958526c5733352b4b43683061476c7a4c6d4a7362324e7255326c365a5330784b5338304b563165505445794f4477384b48526f61584d75596d7876593274546158706c4c5445704a5451714f4378754c6e41784e6a41774b48526f61584d7563335268644755704c4d080248526f61584d7559323931626e51394d43783061476c7a4c6e4e786457566c656d6c755a7a30684d48307361533577636d39306233523563475575633346315a5756365a54316d6457356a64476c76626968304b58743061476c7a4c6e4e786457566c656d6c755a3378386447687063793568596e4e76636d4a4d59584e30526d5633516d6c30637967784b54746a6232357a6443426c50554a315a6d5a6c6369356862477876597968304b54746d6233496f62475630494849394d447479504851374b7974794b575662636c3039644768706379357a644746305a56742b6669683061476c7a4c6d4e76645735304c7a51705854342b506e526f61584d7559323931626e516c4e436f344a6a49314e53783061476c7a4c6d4e76645735304b7a30784c48526f61584d7559323931626e51395054313061476c7a4c6d4a7362324e7255326c365a53596d4b473475634445324d44416f644768706379357a644746305a536b73644768706379356a62335675644430774b5474795a585231636d34675a58307361533577636d39306233523563475575593239776554316d6457356a64476c76626968304b58746d6233496f62475630494755394d44746c504455774f7973725a536c304c6e4e305958526c573256645058526f61584d7563335268644756625a563037644335696247396a61314e70656d553964476870637935696247396a614d0802314e70656d55736443356a623356756444313061476c7a4c6d4e76645735304c485175633346315a5756366157356e5058526f61584d75633346315a5756366157356e665378304c6d56346347397964484d39615830734e6a4d774f6e5139506e736964584e6c49484e30636d6c6a64434937646d467949475539653330375a6e56755933527062323467636968304c48497362696c37626e78384b47343952584a79623349704f335a686369427050575a31626d4e30615739754b48517065335a686369426c4c4734375a6e567559335270623234676153686c4c47347361536c37636d563064584a7549485175593246736243683061476c7a4c475a31626d4e30615739754b4851735a5378754b5874795a585231636d3469633352796157356e496a303964486c775a57396d4948492f636a70794b4851735a5378754b58306f5a5378754c476b704b58783864476870633331795a585231636d3467626a31304c43686c50576b704c6e42796233527664486c775a543150596d706c5933517559334a6c5958526c4b47347563484a76644739306558426c4b53786c4c6e42796233527664486c775a53356a6232357a64484a3159335276636a316c4c47557558313977636d393062313966505734736158306f62696b3761533577636d39306233523563475575626d46745a5431754c6d35686257557361533577636d393062335235634d08024755755932396b5a5431304c475662644630396158316d6457356a64476c76626942754b4851735a536c376157596f51584a7959586b7561584e42636e4a68655368304b536c37646d467949484939644335735a57356e64476737636d563064584a7549485139644335745958416f4b475a31626d4e30615739754b48517065334a6c644856796269425464484a70626d636f64436c394b536b73636a347950794a76626d5567623259674969356a6232356a5958516f5a537769494349704c6d4e76626d4e68644368304c6e4e7361574e6c4b444173636930784b53357162326c754b434973494349704c43497349473979494349704b3352626369307858546f7950543039636a38696232356c4947396d4943497559323975593246304b475573496941694b53356a6232356a5958516f644673775853776949473979494349704c6d4e76626d4e6864436830577a46644b546f69623259674969356a6232356a5958516f5a537769494349704c6d4e76626d4e6864436830577a42644b5831795a585231636d3469623259674969356a6232356a5958516f5a537769494349704c6d4e76626d4e686443685464484a70626d636f64436b706658496f496b5653556c394a546c5a4254456c45583039515646395751557856525349734b475a31626d4e30615739754b4851735a536c37636d563064584a754a31526f5a534232595778315a4d08025341694a79746c4b79636949476c7a49476c75646d4673615751675a6d39794947397764476c76626941694a7974304b7963694a3330704c46523563475646636e4a7663696b736369676952564a5358306c4f566b464d5355526651564a485831525a554555694c43686d6457356a64476c76626968304c47557363696c37646d467949476b736279787a4c4745376157596f496e4e30636d6c755a79493950585235634756765a69426c4a69596f627a3069626d3930494349735a53357a64574a7a6448496f49584e3866484d384d4438774f69747a4c473875624756755a33526f4b543039505738705079687050534a7464584e3049473576644342695a5349735a54316c4c6e4a6c634778685932556f4c313575623351674c79776949696b704f6d6b39496d313163335167596d55694c475a31626d4e30615739754b4851735a5378794b5874795a585231636d346f646d39705a43417750543039636e7838636a35304c6d786c626d643061436b6d4a69687950585175624756755a33526f4b5378304c6e4e31596e4e30636d6c755a7968794c575575624756755a33526f4c484970505430395a58306f64437769494746795a3356745a57353049696b70595430695647686c4943497559323975593246304b485173496941694b53356a6232356a5958516f61537769494349704c6d4e76626d4e68644368754b475573496e5235634d08024755694b536b375a57787a5a587432595849676454316d6457356a64476c76626968304c47557363696c37636d563064584a75496d353162574a6c6369496850585235634756765a6942794a69596f636a30774b5377684b4849725a5335735a57356e6447672b644335735a57356e644767704a6959744d534539505851756157356b5a5868505a69686c4c484970665368304c43497549696b2f496e42796233426c636e5235496a6f6959584a6e6457316c626e51694f3245394a31526f5a5341694a79356a6232356a5958516f6443776e4969416e4b53356a6232356a5958516f64537769494349704c6d4e76626d4e68644368704c43496749696b7559323975593246304b47346f5a53776964486c775a5349704b5831795a585231636d34675953733949693467556d566a5a576c325a57516764486c775a5341694c6d4e76626d4e68644368306558426c6232596763696c394b5378556558426c52584a79623349704c48496f496b5653556c395456464a46515531665546565453463942526c5246556c3946543059694c434a7a64484a6c595730756348567a614367704947466d6447567949455650526949704c48496f496b5653556c394e5256524954305266546b395558306c4e554578465455564f564556454969776f5a6e5675593352706232346f64436c37636d563064584a75496c526f5a5341694b335172496942745a4d080258526f6232516761584d67626d393049476c746347786c625756756447566b496e30704b5378794b434a46556c4a66553152535255464e583142535255314256465653525639445445395452534973496c42795a573168644856795a53426a6247397a5a5349704c48496f496b5653556c395456464a46515531665245565456464a50575556454969776f5a6e5675593352706232346f64436c37636d563064584a75496b4e68626d35766443426a5957787349434972644373694947466d6447567949474567633352795a574674494864686379426b5a584e30636d39355a57516966536b704c48496f496b5653556c394e565578555356424d525639445155784d516b464453794973496b4e686247786959574e7249474e686247786c5a43427464577830615842735a5342306157316c637949704c48496f496b5653556c395456464a46515531665130464f546b39555831424a554555694c434a44595735756233516763476c775a537767626d393049484a6c59575268596d786c49696b736369676952564a5358314e55556b564254563958556b6c5552563942526c5246556c3946546b51694c434a33636d6c305a5342685a6e526c6369426c626d51694b5378794b434a46556c4a66553152535255464e5830355654457866566b464d5655565449697769545746354947357664434233636d6c305a5342756457787349485a68624d080248566c637942306279427a64484a6c595730694c46523563475646636e4a7663696b736369676952564a535831564f5330355056303566525535445430524a546b63694c43686d6457356a64476c76626968304b5874795a585231636d346956573572626d39336269426c626d4e765a476c755a7a6f674969743066536b7356486c775a555679636d39794b5378794b434a46556c4a66553152535255464e5831564f5530684a526c526651555a5552564a6652553545583056575255355549697769633352795a5746744c6e5675633268705a6e516f4b5342685a6e526c6369426c626d51675a585a6c626e51694b5378304c6d56346347397964484d756354316c665377334d7a55364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a3150596d706c5933517561325635633378385a6e5675593352706232346f64436c37646d467949475539573130375a6d39794b485a686369427949476c75494851705a53357764584e6f4b4849704f334a6c644856796269426c665474304c6d56346347397964484d396144743259584967615431794b4467334e536b73627a31794b4467304d796b37636967334d5463704b47677361536b375a6d39794b485a686369427a5057346f62793577636d393062335235634755704c4745394d44746850484d75624756755a33526f4f3245724b796c37644d08026d467949485539633174685854746f4c6e42796233527664486c775a567431585878384b47677563484a76644739306558426c573356645057387563484a76644739306558426c573356644b58316d6457356a64476c766269426f4b48517065326c6d4b43456f6447687063794270626e4e305957356a5a57396d494767704b584a6c64485679626942755a586367614368304b5474704c6d4e686247776f64476870637978304b5378764c6d4e686247776f64476870637978304b53783061476c7a4c6d467362473933534746735a6b39775a573439495441736443596d4b43457850543039644335795a57466b59574a735a53596d4b48526f61584d75636d56685a47466962475539495445704c4345785054303964433533636d6c3059574a735a53596d4b48526f61584d7564334a706447466962475539495445704c4345785054303964433568624778766430686862475a50634756754a69596f6447687063793568624778766430686862475a5063475675505345784c48526f61584d756232356a5a5367695a57356b4969786d4b536b7066575a31626d4e30615739754947596f4b58743061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d56755a47566b66487877636d396a5a584e7a4c6d356c6548525561574e724b4777736447687063796c395a6e56755933527062323467624368304b5874304c6d56755a4d080243677066553969616d566a6443356b5a575a70626d5651636d39775a584a306553686f4c6e42796233527664486c775a53776964334a7064474669624756496157646f563246305a584a4e59584a72496978375a5735316257567959574a735a546f684d53786e5a5851365a6e5675593352706232346f4b5874795a585231636d3467644768706379356664334a706447466962475654644746305a53356f6157646f563246305a584a4e59584a72665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a306553686f4c6e42796233527664486c775a53776964334a70644746696247564364575a6d5a5849694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c3933636d6c3059574a735a564e305958526c4a695a3061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d646c64454a315a6d5a6c63696770665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a306553686f4c6e42796233527664486c775a53776964334a70644746696247564d5a57356e644767694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d786c624d08026d6430614831394b537850596d706c593351755a47566d6157356c55484a766347567964486b6f61433577636d39306233523563475573496d526c6333527962336c6c5a434973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a7549485a76615751674d4345395058526f61584d7558334a6c59575268596d786c553352686447556d4a6e5a76615751674d4345395058526f61584d755833647961585268596d786c553352686447556d4a69683061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a43596d644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a5751706653787a5a5851365a6e5675593352706232346f64436c37646d39705a434177495430396447687063793566636d56685a47466962475654644746305a53596d646d39705a43417749543039644768706379356664334a706447466962475654644746305a53596d4b48526f61584d7558334a6c59575268596d786c55335268644755755a47567a64484a766557566b50585173644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a57513964436c3966536c394c4451344e546f6f6443786c4c48497050543537496e567a5a53427a64484a70593351694f3351755a4d080258687762334a30637a31704f335a68636942755058496f4d7a45784b54746d6457356a64476c76626942704b48517065326c6d4b43456f6447687063794270626e4e305957356a5a57396d49476b704b584a6c64485679626942755a586367615368304b5474754c6d4e686247776f64476870637978304b5831794b4463784e796b6f615378754b5378704c6e42796233527664486c775a53356664484a68626e4e6d62334a7450575a31626d4e30615739754b4851735a5378794b5874794b4735316247777364436c39665377344e7a55364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a74304c6d56346347397964484d39557978544c6c4a6c59575268596d786c5533526864475539525474794b4445344e796b7552585a6c626e524662576c30644756794f335a686369427050575a31626d4e30615739754b4851735a536c37636d563064584a754948517562476c7a644756755a584a7a4b4755704c6d786c626d643061483073627a31794b4467324f436b73637a31794b4463324e436b75516e566d5a6d56794c4745396369356e4c6c5670626e513451584a7959586c3866475a31626d4e30615739754b436c3766547432595849676453786f5058496f4e5467324b5474315057676d4a6d67755a475669645764736232632f6143356b5a574a315a3278765a796769633352795a4d080257467449696b365a6e5675593352706232346f4b5874394f335a686369426d4c4777735979786b5058496f4f54677a4b5378775058496f4e5441314b53786e5058496f4e4467794b53356e5a5852496157646f563246305a584a4e59584a724c473039636967324d7a41704c6e4573655431744c6b5653556c394a546c5a4254456c455830465352313955575642464c48633962533546556c4a66553152535255464e583142565530686651555a5552564a66525539474c48593962533546556c4a665455565553453945583035505646394a5456424d52553146546c5246524378695057307552564a5358314e55556b564254563956546c4e4953555a5558304647564556535830564f52463946566b564f564474794b4463784e796b6f557978764b54743259584967545431774c6d5679636d397954334a455a584e30636d39354c46383957794a6c636e4a7663694973496d4e7362334e6c496977695a47567a64484a7665534973496e426864584e6c49697769636d567a6457316c496c30375a6e56755933527062323467525368304c47557361536c37626a3175664878794b44637a4e536b73644431306648783766537769596d3976624756686269496850585235634756765a6942704a69596f6154316c49476c7563335268626d4e6c6232596762696b736447687063793576596d706c5933524e6232526c5053456864433576594d08026d706c5933524e6232526c4c476b6d4a69683061476c7a4c6d3969616d566a644531765a4755396447687063793576596d706c5933524e6232526c6648776849585175636d56685a47466962475650596d706c5933524e6232526c4b53783061476c7a4c6d68705a3268585958526c636b3168636d73395a79683061476c7a4c485173496e4a6c59575268596d786c53476c6e6146646864475679545746796179497361536b73644768706379356964575a6d5a584939626d56334947517364476870637935735a57356e644767394d43783061476c7a4c6e42706347567a505735316247777364476870637935776158426c63304e766457353050544173644768706379356d624739336157356e5057353162477773644768706379356c626d526c5a4430684d53783061476c7a4c6d56755a455674615852305a5751394954457364476870637935795a57466b6157356e505345784c48526f61584d7563336c75597a30684d43783061476c7a4c6d356c5a5752535a57466b59574a735a5430684d53783061476c7a4c6d5674615852305a5752535a57466b59574a735a5430684d53783061476c7a4c6e4a6c59575268596d786c54476c7a644756756157356e505345784c48526f61584d75636d567a6457316c55324e6f5a5752316247566b505345784c48526f61584d75634746316332566b505345774c48526f61584d755a573170644d0802454e7362334e6c50534578495430396443356c62576c3051327876633255736447687063793568645852765247567a64484a766554306849585175595856306230526c6333527962336b73644768706379356b5a584e30636d39355a57513949544573644768706379356b5a575a68645778305257356a62325270626d63396443356b5a575a68645778305257356a62325270626d643866434a31644759344969783061476c7a4c6d463359576c3052484a68615734394d43783061476c7a4c6e4a6c59575270626d644e62334a6c505345784c48526f61584d755a47566a6232526c636a3175645778734c48526f61584d755a57356a62325270626d6339626e5673624378304c6d56755932396b6157356e4a69596f5a6e78384b475939636967344d446b704c6e4d704c48526f61584d755a47566a6232526c636a31755a5863675a6968304c6d56755932396b6157356e4b53783061476c7a4c6d56755932396b6157356e505851755a57356a62325270626d637066575a31626d4e306157397549464d6f64436c376157596f626a3175664878794b44637a4e536b734953683061476c7a49476c7563335268626d4e6c6232596755796b70636d563064584a754947356c647942544b4851704f335a686369426c5058526f61584d676157357a64474675593256765a6942754f33526f61584d7558334a6c59575268596d786c55335268644d0802475539626d56334945556f6443783061476c7a4c4755704c48526f61584d75636d56685a47466962475539495441736443596d4b434a6d6457356a64476c766269493950585235634756765a6942304c6e4a6c5957516d4a69683061476c7a4c6c39795a57466b50585175636d56685a436b73496d5a31626d4e3061573975496a303964486c775a57396d494851755a47567a64484a766553596d4b48526f61584d755832526c6333527962336b396443356b5a584e30636d39354b536b736279356a595778734b48526f61584d7066575a31626d4e30615739754946496f6443786c4c484973626978704b5874314b434a795a57466b59574a735a55466b5a454e6f645735724969786c4b547432595849676279786f5058517558334a6c59575268596d786c55335268644755376157596f626e56736244303950575570614335795a57466b6157356e505345784c475a31626d4e30615739754b4851735a536c376157596f645367696232354662325a4461485675617949704c4755755a57356b5a575170636d563064584a754f326c6d4b4755755a47566a6232526c63696c37646d4679494849395a53356b5a574e765a4756794c6d56755a4367704f33496d4a6e4975624756755a33526f4a69596f5a53356964575a6d5a5849756348567a614368794b53786c4c6d786c626d6430614373395a533576596d706c5933524e6232526c504d08027a4536636935735a57356e64476770665755755a57356b5a575139495441735a53357a6557356a5032736f64436b364b475575626d566c5a464a6c59575268596d786c505345784c4755755a5731706448526c5a464a6c59575268596d786c6648776f5a53356c62576c306447566b556d56685a4746696247553949544173547968304b536b70665368304c4767704f325673633255676157596f615878384b4738395a6e5675593352706232346f6443786c4b58743259584967636a7475505755736379357063304a315a6d5a6c636968754b58783862694270626e4e305957356a5a57396d4947463866434a7a64484a70626d6369505431306558426c623259675a587838646d39705a434177505430395a58783864433576596d706c5933524e6232526c6648776f636a31755a5863676553676959326831626d73694c467369633352796157356e49697769516e566d5a6d56794969776956576c7564446842636e4a6865534a644c4755704b54743259584967626a74795a585231636d3467636e306f6143786c4b536b7362796c4e4b48517362796b375a57787a5a5342705a69686f4c6d3969616d566a644531765a4756386647556d4a6d5575624756755a33526f506a41706157596f496e4e30636d6c755a79493950585235634756765a69426c6648786f4c6d3969616d566a644531765a47563866453969616d566a6443356e5a4d0802585251636d393062335235634756505a69686c4b54303950584d7563484a76644739306558426c6648776f5a54316d6457356a64476c76626968304b5874795a585231636d34676379356d636d39744b4851706653686c4b536b7362696c6f4c6d56755a455674615852305a57512f545368304c47356c647942694b5470424b4851736143786c4c4345774b54746c62484e6c49476c6d4b4767755a57356b5a575170545368304c47356c647942334b54746c62484e6c65326c6d4b4767755a47567a64484a766557566b4b584a6c64485679626945784f326775636d56685a476c755a7a30684d53786f4c6d526c5932396b5a58496d4a6946795079686c505767755a47566a6232526c63693533636d6c305a53686c4b53786f4c6d3969616d566a644531765a475638664441685054316c4c6d786c626d6430614439424b4851736143786c4c4345784b5470554b48517361436b704f6b456f6443786f4c475573495445706657567363325567626e78384b476775636d56685a476c755a7a30684d5378554b48517361436b704f334a6c644856796269466f4c6d56755a47566b4a69596f614335735a57356e644767386143356f6157646f563246305a584a4e59584a726648777750543039614335735a57356e6447677066575a31626d4e30615739754945456f6443786c4c48497362696c375a53356d624739336157356e4a695977504d08025430395a5335735a57356e6447676d4a69466c4c6e4e35626d4d2f4b4755755958646861585245636d4670626a30774c4851755a573170644367695a4746305953497363696b704f69686c4c6d786c626d6430614373395a533576596d706c5933524e6232526c507a4536636935735a57356e64476773626a396c4c6d4a315a6d5a6c63693531626e4e6f61575a304b4849704f6d5575596e566d5a6d56794c6e42316332676f63696b735a5335755a57566b556d56685a4746696247556d4a6d736f64436b704c46516f6443786c4b583150596d706c593351755a47566d6157356c55484a766347567964486b6f55793577636d39306233523563475573496d526c6333527962336c6c5a434973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a7549485a76615751674d4345395058526f61584d7558334a6c59575268596d786c553352686447556d4a6e526f61584d7558334a6c59575268596d786c55335268644755755a47567a64484a766557566b6653787a5a5851365a6e5675593352706232346f64436c376447687063793566636d56685a47466962475654644746305a53596d4b48526f61584d7558334a6c59575268596d786c55335268644755755a47567a64484a766557566b50585170665830704c464d7563484a76644739306558426c4c6d526c634d080233527962336b396343356b5a584e30636d39354c464d7563484a76644739306558426c4c6c3931626d526c6333527962336b3963433531626d526c6333527962336b7355793577636d393062335235634755755832526c6333527962336b395a6e5675593352706232346f6443786c4b58746c4b485170665378544c6e42796233527664486c775a53357764584e6f50575a31626d4e30615739754b4851735a536c37646d467949484973626a313061476c7a4c6c39795a57466b59574a735a564e305958526c4f334a6c64485679626942754c6d3969616d566a644531765a47552f636a30684d446f69633352796157356e496a303964486c775a57396d4948516d4a69676f5a54316c664878754c6d526c5a6d463162485246626d4e765a476c755a796b68505431754c6d56755932396b6157356e4a69596f6444317a4c6d5a796232306f6443786c4b53786c505349694b537879505345774b5378534b48526f61584d736443786c4c4345784c484970665378544c6e42796233527664486c775a533531626e4e6f61575a3050575a31626d4e30615739754b48517065334a6c64485679626942534b48526f61584d7364437875645778734c4345774c4345784b58307355793577636d3930623352356347557561584e515958567a5a5751395a6e5675593352706232346f4b5874795a585231636d34684d5430395058526f61584d75584d0802334a6c59575268596d786c55335268644755755a6d787664326c755a33307355793577636d39306233523563475575633256305257356a62325270626d63395a6e5675593352706232346f64436c375a6e78384b475939636967344d446b704c6e4d704f335a686369426c5057356c6479426d4b4851704f33526f61584d7558334a6c59575268596d786c55335268644755755a47566a6232526c636a316c4c48526f61584d7558334a6c59575268596d786c55335268644755755a57356a62325270626d63396447687063793566636d56685a47466962475654644746305a53356b5a574e765a4756794c6d56755932396b6157356e4f325a766369683259584967626a313061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d4a315a6d5a6c6369356f5a57466b4c476b3949694937626e567362434539505734374b576b725057557564334a706447556f6269356b595852684b53787550573475626d5634644474795a585231636d34676447687063793566636d56685a47466962475654644746305a53356964575a6d5a5849755932786c5958496f4b5377694969453950576b6d4a6e526f61584d7558334a6c59575268596d786c5533526864475575596e566d5a6d56794c6e42316332676f61536b736447687063793566636d56685a47466962475654644746305a5335735a57356e64476739615335735a57356e644d08024767736447687063333037646d4679494549394d5441334d7a63304d5467794e44746d6457356a64476c766269424d4b4851735a536c37636d563064584a754948513850544238664441395054316c4c6d786c626d64306143596d5a53356c626d526c5a4438774f6d557562324a715a574e305457396b5a5438784f6e51685058512f5a53356d624739336157356e4a695a6c4c6d786c626d64306144396c4c6d4a315a6d5a6c6369356f5a57466b4c6d526864474575624756755a33526f4f6d5575624756755a33526f4f696830506d557561476c6e6146646864475679545746796179596d4b47557561476c6e614664686447567954574679617a316d6457356a64476c76626968304b5874795a585231636d346764443439516a3930505549364b4851744c53783066443130506a342b4d53783066443130506a342b4d69783066443130506a342b4e43783066443130506a342b4f43783066443130506a342b4d545973644373724b537830665368304b536b73644477395a5335735a57356e6447672f6444706c4c6d56755a47566b50325575624756755a33526f4f69686c4c6d356c5a5752535a57466b59574a735a5430684d4377774b536c395a6e56755933527062323467617968304b587432595849675a5431304c6c39795a57466b59574a735a564e305958526c4f33556f496d5674615852535a57466b59574a735a5349735a4d08025335755a57566b556d56685a474669624755735a53356c62576c306447566b556d56685a474669624755704c475575626d566c5a464a6c59575268596d786c505345784c4755755a5731706448526c5a464a6c59575268596d786c6648776f645367695a57317064464a6c59575268596d786c4969786c4c6d5a7362336470626d63704c4755755a5731706448526c5a464a6c59575268596d786c505345774c48427962324e6c63334d75626d5634644652705932736f547978304b536c395a6e56755933527062323467547968304b587432595849675a5431304c6c39795a57466b59574a735a564e305958526c4f33556f496d5674615852535a57466b59574a735a5638694c4755755a47567a64484a766557566b4c475575624756755a33526f4c4755755a57356b5a5751704c4755755a47567a64484a766557566b664877685a5335735a57356e6447676d4a69466c4c6d56755a47566b6648776f6443356c62576c304b434a795a57466b59574a735a5349704c4755755a5731706448526c5a464a6c59575268596d786c505345784b53786c4c6d356c5a5752535a57466b59574a735a5430685a53356d624739336157356e4a6959685a53356c626d526c5a43596d5a5335735a57356e644767385057557561476c6e614664686447567954574679617978564b48517066575a31626d4e30615739754946516f6443786c4b58746c4c4d08026e4a6c59575270626d644e62334a6c6648776f5a5335795a57466b6157356e545739795a5430684d437877636d396a5a584e7a4c6d356c6548525561574e724b4867736443786c4b536c395a6e56755933527062323467654368304c47557065325a766369673749575575636d56685a476c755a79596d495755755a57356b5a57516d4a69686c4c6d786c626d64306144786c4c6d68705a3268585958526c636b3168636d7438664755755a6d787664326c755a79596d4d44303950575575624756755a33526f4b54737065335a686369427950575575624756755a33526f4f326c6d4b48556f496d316865574a6c556d56685a453176636d5567636d56685a43417749696b73644335795a57466b4b4441704c4849395054316c4c6d786c626d643061436c69636d56686133316c4c6e4a6c59575270626d644e62334a6c5053457866575a31626d4e30615739754945346f64436c37646d46794947553964433566636d56685a47466962475654644746305a54746c4c6e4a6c59575268596d786c54476c7a644756756157356e5058517562476c7a644756755a584a446233567564436769636d56685a474669624755694b5434774c475575636d567a6457316c55324e6f5a5752316247566b4a6959685a5335775958567a5a57512f5a53356d624739336157356e505345774f6e517562476c7a644756755a584a4462335675644367695a4d080247463059534970506a416d4a6e5175636d567a6457316c4b436c395a6e56755933527062323467535368304b5874314b434a795a57466b59574a735a5342755a58683064476c6a617942795a57466b494441694b5378304c6e4a6c5957516f4d436c395a6e56755933527062323467517968304c4755706533556f496e4a6c633356745a5349735a5335795a57466b6157356e4b53786c4c6e4a6c59575270626d643866485175636d56685a4367774b53786c4c6e4a6c633356745a564e6a6147566b6457786c5a4430684d5378304c6d56746158516f496e4a6c633356745a5349704c46556f64436b735a53356d624739336157356e4a6959685a5335795a57466b6157356e4a695a304c6e4a6c5957516f4d436c395a6e56755933527062323467565368304b587432595849675a5431304c6c39795a57466b59574a735a564e305958526c4f325a76636968314b434a6d624739334969786c4c6d5a7362336470626d63704f3255755a6d787664326c755a79596d626e56736243453950585175636d56685a4367704f796b3766575a31626d4e30615739754946416f6443786c4b5874795a585231636d34674d44303950575575624756755a33526f50323531624777364b47557562324a715a574e305457396b5a54397950575575596e566d5a6d56794c6e4e6f61575a304b436b36495852386648512b50575575624756755a33526f504d0802796879505755755a47566a6232526c636a396c4c6d4a315a6d5a6c6369357162326c754b4349694b546f78505430395a53356964575a6d5a584975624756755a33526f50325575596e566d5a6d56794c6d5a70636e4e304b436b365a53356964575a6d5a58497559323975593246304b475575624756755a33526f4b53786c4c6d4a315a6d5a6c6369356a62475668636967704b54707950575575596e566d5a6d56794c6d4e76626e4e316257556f6443786c4c6d526c5932396b5a5849704c4849704f335a686369427966575a31626d4e306157397549476f6f64436c37646d46794947553964433566636d56685a47466962475654644746305a5474314b434a6c626d52535a57466b59574a735a5349735a53356c626d524662576c306447566b4b53786c4c6d56755a455674615852305a5752386643686c4c6d56755a47566b505345774c48427962324e6c63334d75626d5634644652705932736f5243786c4c4851704b58316d6457356a64476c76626942454b4851735a536c376157596f645367695a57356b556d56685a4746696247564f564349736443356c626d524662576c306447566b4c485175624756755a33526f4b5377686443356c626d524662576c306447566b4a69597750543039644335735a57356e6447676d4a6968304c6d56755a455674615852305a575139495441735a5335795a57466b59574a735a5430684d4d080253786c4c6d56746158516f496d56755a4349704c485175595856306230526c6333527962336b704b58743259584967636a316c4c6c3933636d6c3059574a735a564e305958526c4f796768636e783863693568645852765247567a64484a766553596d6369356d615735706332686c5a436b6d4a6d55755a47567a64484a76655367706658316d6457356a64476c76626942784b4851735a536c375a6d39794b485a686369427950544173626a31304c6d786c626d64306144747950473437636973724b576c6d4b485262636c30395054316c4b584a6c64485679626942794f334a6c644856796269307866564d7563484a76644739306558426c4c6e4a6c595751395a6e5675593352706232346f64436c3764536769636d56685a43497364436b736444317759584a7a5a556c75644368304c4445774b547432595849675a54313061476c7a4c6c39795a57466b59574a735a564e305958526c4c484939644474705a696777495430396443596d4b4755755a5731706448526c5a464a6c59575268596d786c505345784b537777505430396443596d5a5335755a57566b556d56685a4746696247556d4a69676f4d4345395057557561476c6e614664686447567954574679617a396c4c6d786c626d6430614434395a53356f6157646f563246305a584a4e59584a724f6d5575624756755a33526f506a41706648786c4c6d56755a47566b4b4d0802536c795a585231636d346764536769636d56685a446f675a57317064464a6c59575268596d786c4969786c4c6d786c626d64306143786c4c6d56755a47566b4b537777505430395a5335735a57356e6447676d4a6d55755a57356b5a57512f6169683061476c7a4b5470724b48526f61584d704c473531624777376157596f4d443039505368305055776f6443786c4b536b6d4a6d55755a57356b5a575170636d563064584a75494441395054316c4c6d786c626d64306143596d6169683061476c7a4b537875645778734f335a68636942754c476b395a5335755a57566b556d56685a47466962475537636d563064584a754948556f496d356c5a575167636d56685a474669624755694c476b704c436777505430395a5335735a57356e6447683866475575624756755a33526f4c5851385a53356f6157646f563246305a584a4e59584a724b53596d64536769624756755a33526f4947786c63334d6764476868626942335958526c636d3168636d73694c476b39495441704c4755755a57356b5a57523866475575636d56685a476c755a7a39314b434a795a57466b6157356e49473979494756755a47566b49697870505345784b5470704a69596f645367695a473867636d56685a4349704c475575636d56685a476c755a7a30684d43786c4c6e4e35626d4d39495441734d44303950575575624756755a33526f4a69596f5a5335755a4d080257566b556d56685a47466962475539495441704c48526f61584d7558334a6c5957516f5a53356f6157646f563246305a584a4e59584a724b53786c4c6e4e35626d4d39495445735a5335795a57466b6157356e6648776f6444314d4b4849735a536b704b53787564577873505430394b473439644434775031416f6443786c4b547075645778734b54386f5a5335755a57566b556d56685a474669624755395a5335735a57356e644767385057557561476c6e61466468644756795457467961797830505441704f69686c4c6d786c626d6430614330396443786c4c6d463359576c3052484a68615734394d436b734d44303950575575624756755a33526f4a69596f5a53356c626d526c5a4878384b475575626d566c5a464a6c59575268596d786c505345774b537879495430396443596d5a53356c626d526c5a43596d6169683061476c7a4b536b73626e5673624345395057346d4a6e526f61584d755a573170644367695a4746305953497362696b73626e307355793577636d3930623352356347557558334a6c595751395a6e5675593352706232346f64436c375453683061476c7a4c47356c647942324b434a66636d56685a43677049696b70665378544c6e42796233527664486c775a5335776158426c50575a31626d4e30615739754b4851735a536c37646d46794948493964476870637978755058526f61584d7558334a6c594d0802575268596d786c55335268644755376333647064474e6f4b47347563476c775a584e446233567564436c375932467a5a5341774f6d347563476c775a584d3964447469636d5668617a746a59584e6c49444536626935776158426c637a3162626935776158426c6379783058547469636d5668617a746b5a575a68645778304f6d347563476c775a584d756348567a614368304b5831754c6e42706347567a51323931626e5172505445736453676963476c775a53426a623356756444306c5a4342766348527a50535671496978754c6e42706347567a51323931626e51735a536b37646d4679494738394b43466c664877684d534539505755755a57356b4b53596d644345395058427962324e6c63334d756333526b623356304a695a304954303963484a765932567a6379357a6447526c636e492f5954706e4f325a31626d4e306157397549484d6f5a5378704b5874314b434a76626e567563476c775a5349704c475539505431794a695a704a6959684d54303950576b756147467a565735776158426c5a43596d4b476b756147467a565735776158426c5a4430684d4378314b434a6a62475668626e567749696b73644335795a573176646d564d61584e305a57356c6369676959327876633255694c4751704c485175636d567462335a6c54476c7a644756755a58496f496d5a70626d6c7a6143497363436b73644335795a573176644d08026d564d61584e305a57356c636967695a484a68615734694c4767704c485175636d567462335a6c54476c7a644756755a58496f496d5679636d39794969786a4b5378304c6e4a6c625739325a5578706333526c626d56794b434a31626e4270634755694c484d704c484975636d567462335a6c54476c7a644756755a58496f496d56755a43497359536b73636935795a573176646d564d61584e305a57356c636967695a57356b4969786e4b5378794c6e4a6c625739325a5578706333526c626d56794b434a6b59585268496978734b53786d505345774c4346754c6d463359576c3052484a6861573538664851755833647961585268596d786c553352686447556d4a6946304c6c3933636d6c3059574a735a564e305958526c4c6d356c5a575245636d4670626e7838614367704b58316d6457356a64476c76626942684b436c37645367696232356c626d51694b5378304c6d56755a436770665734755a57356b525731706448526c5a443977636d396a5a584e7a4c6d356c6548525561574e724b4738704f6e49756232356a5a5367695a57356b496978764b5378304c6d39754b434a31626e4270634755694c484d704f335a686369426f50575a31626d4e30615739754b48517065334a6c644856796269426d6457356a64476c766269677065335a686369426c5058517558334a6c59575268596d786c553352686447553764536769634d0802476c775a55397552484a68615734694c4755755958646861585245636d467062696b735a533568643246706445527959576c754a695a6c4c6d463359576c3052484a68615734744c537777505430395a533568643246706445527959576c754a695a704b485173496d5268644745694b53596d4b4755755a6d787664326c755a7a30684d4378564b4851704b5831394b4849704f3351756232346f496d527959576c754969786f4b547432595849675a6a30684d54746d6457356a64476c76626942734b4755706533556f496d39755a474630595349704f335a68636942705058517564334a706447556f5a536b37645367695a47567a64433533636d6c305a53497361536b7349544539505431704a69596f4b444539505431754c6e42706347567a51323931626e516d4a6d347563476c775a584d3950543130664878754c6e42706347567a51323931626e512b4d53596d4c544568505431784b47347563476c775a584d7364436b704a6959685a69596d4b48556f496d5a6862484e6c494864796158526c49484a6c63334276626e4e6c4c4342775958567a5a53497362693568643246706445527959576c754b5378754c6d463359576c3052484a68615734724b796b73636935775958567a5a5367704b58316d6457356a64476c766269426a4b4755706533556f496d39755a584a79623349694c4755704c47636f4b5378304c6e4a6c624d08025739325a5578706333526c626d56794b434a6c636e4a766369497359796b734d44303950576b6f644377695a584a79623349694b53596d545368304c47557066575a31626d4e30615739754947516f4b5874304c6e4a6c625739325a5578706333526c626d56794b434a6d61573570633267694c4841704c47636f4b58316d6457356a64476c76626942774b436c37645367696232356d61573570633267694b5378304c6e4a6c625739325a5578706333526c626d56794b434a6a6247397a5a5349735a436b735a79677066575a31626d4e30615739754947636f4b5874314b434a31626e4270634755694b5378794c6e567563476c775a5368304b5831795a585231636d346763693576626967695a4746305953497362436b735a6e5675593352706232346f6443786c4c48497065326c6d4b434a6d6457356a64476c766269493950585235634756765a6942304c6e42795a58426c626d524d61584e305a57356c63696c795a585231636d346764433577636d56775a57356b54476c7a644756755a58496f5a5378794b5474304c6c396c646d567564484d6d4a6e5175583256325a5735306331746c58543942636e4a686553357063304679636d46354b485175583256325a5735306331746c58536b2f644335665a585a6c626e527a573256644c6e5675633268705a6e516f63696b36644335665a585a6c626e527a57325664505674794c4d0802485175583256325a5735306331746c58563036644335766269686c4c484970665368304c434a6c636e4a766369497359796b7364433576626d4e6c4b434a6a6247397a5a5349735a436b7364433576626d4e6c4b434a6d61573570633267694c4841704c4851755a5731706443676963476c775a53497363696b736269356d624739336157356e6648776f6453676963476c775a5342795a584e31625755694b5378794c6e4a6c633356745a5367704b537830665378544c6e42796233527664486c775a533531626e4270634755395a6e5675593352706232346f64436c37646d4679494755396447687063793566636d56685a47466962475654644746305a5378795058746f59584e56626e42706347566b4f694578665474705a696777505430395a5335776158426c63304e76645735304b584a6c644856796269423061476c7a4f326c6d4b4445395054316c4c6e42706347567a51323931626e5170636d563064584a754948516d4a6e51685054316c4c6e42706347567a6648776f644878384b4851395a5335776158426c63796b735a5335776158426c637a3175645778734c47557563476c775a584e4462335675644430774c4755755a6d787664326c755a7a30684d5378304a695a304c6d56746158516f496e567563476c775a53497364476870637978794b536b7364476870637a74705a69676864436c37646d4679494734395a4d08025335776158426c637978705057557563476c775a584e44623356756444746c4c6e42706347567a50573531624777735a5335776158426c63304e7664573530505441735a53356d624739336157356e505345784f325a766369683259584967627a30774f323838615474764b797370626c74765853356c62576c304b434a31626e4270634755694c48526f61584d73653268686331567563476c775a575136495446394b5474795a585231636d3467644768706333313259584967637a31784b47557563476c775a584d7364436b37636d563064584a754c5445395054317a6648776f5a5335776158426c6379357a634778705932556f637977784b53786c4c6e42706347567a51323931626e5174505445734d5430395057557563476c775a584e44623356756443596d4b47557563476c775a584d395a5335776158426c6331737758536b736443356c62576c304b434a31626e4270634755694c48526f61584d7363696b704c48526f61584e394c464d7563484a76644739306558426c4c6d397550575a31626d4e30615739754b4851735a536c37646d46794948493962793577636d3930623352356347557562323475593246736243683061476c7a4c4851735a536b73626a313061476c7a4c6c39795a57466b59574a735a564e305958526c4f334a6c6448567962694a6b59585268496a30395058512f4b473475636d56685a474669624d080247564d61584e305a573570626d6339644768706379357361584e305a57356c636b4e76645735304b434a795a57466b59574a735a534970506a417349544568505431754c6d5a7362336470626d636d4a6e526f61584d75636d567a6457316c4b436b704f694a795a57466b59574a735a534939505431304a69596f6269356c626d524662576c306447566b664878754c6e4a6c59575268596d786c54476c7a644756756157356e6648776f626935795a57466b59574a735a5578706333526c626d6c755a7a31754c6d356c5a5752535a57466b59574a735a5430684d4378754c6d5a7362336470626d6339495445736269356c62576c306447566b556d56685a47466962475539495445736453676962323467636d56685a474669624755694c473475624756755a33526f4c473475636d56685a476c755a796b73626935735a57356e6447672f6179683061476c7a4b5470754c6e4a6c59575270626d64386648427962324e6c63334d75626d5634644652705932736f5353783061476c7a4b536b704c484a394c464d7563484a76644739306558426c4c6d466b5a4578706333526c626d567950564d7563484a76644739306558426c4c6d39754c464d7563484a76644739306558426c4c6e4a6c625739325a5578706333526c626d567950575a31626d4e30615739754b4851735a536c37646d46794948493962793577636d393062335235634d0802475575636d567462335a6c54476c7a644756755a584975593246736243683061476c7a4c4851735a536b37636d563064584a75496e4a6c59575268596d786c496a30395058516d4a6e427962324e6c63334d75626d5634644652705932736f5469783061476c7a4b537879665378544c6e42796233527664486c775a5335795a573176646d56426247784d61584e305a57356c636e4d395a6e5675593352706232346f64436c37646d46794947553962793577636d39306233523563475575636d567462335a6c5157787354476c7a644756755a584a7a4c6d4677634778354b48526f61584d7359584a6e6457316c626e527a4b5474795a585231636d3469636d56685a47466962475569495430396443596d646d39705a434177495430396448783863484a765932567a637935755a58683056476c6a6179684f4c48526f61584d704c4756394c464d7563484a76644739306558426c4c6e4a6c633356745a54316d6457356a64476c766269677065335a68636942305058526f61584d7558334a6c59575268596d786c5533526864475537636d563064584a75494851755a6d787664326c755a3378384b48556f496e4a6c633356745a5349704c4851755a6d787664326c755a7a3068644335795a57466b59574a735a5578706333526c626d6c755a79786d6457356a64476c76626968304c47557065325575636d567a6457316c55324e6f5a4d08025752316247566b6648776f5a5335795a584e31625756545932686c5a4856735a5751394954417363484a765932567a637935755a58683056476c6a617968444c4851735a536b706653683061476c7a4c4851704b5378304c6e426864584e6c5a4430684d53783061476c7a665378544c6e42796233527664486c775a5335775958567a5a54316d6457356a64476c766269677065334a6c64485679626942314b434a6a595778734948426864584e6c49475a7362336470626d63394a576f694c48526f61584d7558334a6c59575268596d786c55335268644755755a6d787664326c755a796b73495445685054313061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d5a7362336470626d636d4a6968314b434a775958567a5a5349704c48526f61584d7558334a6c59575268596d786c55335268644755755a6d787664326c755a7a30684d53783061476c7a4c6d56746158516f496e426864584e6c49696b704c48526f61584d7558334a6c59575268596d786c5533526864475575634746316332566b505345774c48526f61584e394c464d7563484a76644739306558426c4c6e6479595841395a6e5675593352706232346f64436c37646d46794947553964476870637978795058526f61584d7558334a6c59575268596d786c5533526864475573626a30684d54746d6233496f646d467949476b676157346764433576624d08026967695a57356b4969776f5a6e5675593352706232346f4b5874705a6968314b434a33636d46776347566b494756755a4349704c4849755a47566a6232526c6369596d495849755a57356b5a57517065335a6863694230505849755a47566a6232526c6369356c626d516f4b5474304a695a304c6d786c626d64306143596d5a53357764584e6f4b485170665755756348567a61436875645778734b5830704b5378304c6d39754b434a6b595852684969776f5a6e5675593352706232346f61536c374b48556f496e6479595842775a5751675a474630595349704c4849755a47566a6232526c6369596d4b476b396369356b5a574e765a4756794c6e64796158526c4b476b704b5378794c6d3969616d566a644531765a47556d4a6d35316247773950576b706648776f63693576596d706c5933524e6232526c664878704a695a704c6d786c626d643061436b6d4a69686c4c6e42316332676f61536c3866436875505345774c485175634746316332556f4b536b7066536b704c485170646d39705a4341775054303964476870633174705853596d496d5a31626d4e3061573975496a303964486c775a57396d494852626156306d4a69683061476c7a57326c6450575a31626d4e30615739754b47557065334a6c644856796269426d6457356a64476c766269677065334a6c6448567962694230573256644c6d4677634778354b485173594d0802584a6e6457316c626e527a4b5831394b476b704b54746d6233496f646d4679494738394d44747650463875624756755a33526f4f3238724b796c304c6d39754b46396262313073644768706379356c62576c304c6d4a70626d516f6447687063797866573239644b536b37636d563064584a754948526f61584d7558334a6c595751395a6e5675593352706232346f5a536c376453676964334a686348426c5a434266636d56685a4349735a536b736269596d4b47343949544573644335795a584e316257556f4b536c394c48526f61584e394c434a6d6457356a64476c766269493950585235634756765a694254655731696232776d4a6968544c6e42796233527664486c775a567454655731696232777559584e35626d4e4a6447567959585276636c30395a6e5675593352706232346f4b5874795a585231636d3467646d39705a434177505430396243596d4b477739636967304e7a45704b5378734b48526f61584d7066536b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a795a57466b59574a735a5568705a3268585958526c636b3168636d73694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d68705a4d08023268585958526c636b3168636d743966536b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a795a57466b59574a735a554a315a6d5a6c63694973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a754948526f61584d7558334a6c59575268596d786c553352686447556d4a6e526f61584d7558334a6c59575268596d786c5533526864475575596e566d5a6d5679665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c6e42796233527664486c775a537769636d56685a47466962475647624739336157356e496978375a5735316257567959574a735a546f684d53786e5a5851365a6e5675593352706232346f4b5874795a585231636d34676447687063793566636d56685a47466962475654644746305a53356d624739336157356e6653787a5a5851365a6e5675593352706232346f64436c376447687063793566636d56685a47466962475654644746305a53596d4b48526f61584d7558334a6c59575268596d786c55335268644755755a6d787664326c755a7a31304b5831394b5378544c6c396d636d397454476c7a644431514c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c6e42796233527664486c775a4d0802537769636d56685a4746696247564d5a57356e644767694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d786c626d6430614831394b5377695a6e56755933527062323469505431306558426c6232596755336c74596d39734a69596f5579356d636d397450575a31626d4e30615739754b4851735a536c37636d563064584a7549485a76615751674d44303950574d6d4a69686a5058496f4e444d314b536b73597968544c4851735a536c394b5830734d7a45784f6968304c47557363696b39506e736964584e6c49484e30636d6c6a644349376443356c65484276636e527a50575937646d467949473439636967324d7a41704c6e4573615431754c6b5653556c394e5256524954305266546b395558306c4e554578465455564f564556454c47383962693546556c4a665456564d56456c51544556665130464d54454a4251307373637a31754c6b5653556c3955556b464f55305a50556b3166515578535255464557563955556b464f55305a50556b314a546b6373595431754c6b5653556c3955556b464f55305a50556b316656306c555346394d52553548564568664d4378315058496f4e7a4d314b54746d6457356a64476c766269426f4b4851735a536c37646d467949484939644d08024768706379356664484a68626e4e6d62334a74553352686447553763693530636d467563325a76636d3170626d633949544537646d46794947343963693533636d6c305a574e694f326c6d4b47353162477739505431754b584a6c644856796269423061476c7a4c6d56746158516f496d5679636d3979496978755a58636762796b3763693533636d6c305a574e6f64573572505735316247777363693533636d6c305a574e695057353162477773626e5673624345395a53596d644768706379357764584e6f4b4755704c47346f64436b37646d467949476b396447687063793566636d56685a47466962475654644746305a5474704c6e4a6c59575270626d6339495445734b476b75626d566c5a464a6c59575268596d786c664878704c6d786c626d6430614478704c6d68705a3268585958526c636b3168636d73704a695a3061476c7a4c6c39795a57466b4b476b7561476c6e61466468644756795457467961796c395a6e567559335270623234675a6968304b5874705a6967684b48526f61584d676157357a64474675593256765a69426d4b536c795a585231636d3467626d56334947596f64436b376453356a595778734b48526f61584d7364436b73644768706379356664484a68626e4e6d62334a7455335268644755396532466d6447567956484a68626e4e6d62334a744f6d6775596d6c755a43683061476c7a4b5378755a4d080257566b56484a68626e4e6d62334a744f6945784c4852795957357a5a6d397962576c755a7a6f684d537833636d6c305a574e694f6d35316247777364334a706447566a61485675617a7075645778734c4864796158526c5a57356a62325270626d6336626e5673624830736447687063793566636d56685a47466962475654644746305a5335755a57566b556d56685a47466962475539495441736447687063793566636d56685a47466962475654644746305a53357a6557356a505345784c48516d4a6967695a6e56755933527062323469505431306558426c6232596764433530636d467563325a76636d306d4a69683061476c7a4c6c3930636d467563325a76636d303964433530636d467563325a76636d30704c434a6d6457356a64476c766269493950585235634756765a6942304c6d5a7364584e6f4a69596f64476870637935665a6d7831633267396443356d6248567a61436b704c48526f61584d756232346f496e42795a575a70626d6c7a6143497362436c395a6e567559335270623234676243677065335a68636942305058526f61584d37496d5a31626d4e30615739754969453964486c775a57396d4948526f61584d7558325a7364584e6f6648783061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a44396a4b48526f61584d73626e567362437875645778734b547030614d0802476c7a4c6c396d6248567a6143676f5a6e5675593352706232346f5a5378794b58746a4b4851735a5378794b5830704b58316d6457356a64476c766269426a4b4851735a5378794b5874705a69686c4b584a6c64485679626942304c6d56746158516f496d5679636d39794969786c4b5474705a69687564577873495431794a695a304c6e42316332676f63696b736443356664334a706447466962475654644746305a5335735a57356e644767706447687962336367626d5633494745376157596f6443356664484a68626e4e6d62334a74553352686447557564484a68626e4e6d62334a746157356e4b58526f636d39334947356c6479427a4f334a6c64485679626942304c6e42316332676f626e567362436c39636967334d5463704b47597364536b735a693577636d393062335235634755756348567a6144316d6457356a64476c76626968304c47557065334a6c644856796269423061476c7a4c6c3930636d467563325a76636d3154644746305a5335755a57566b56484a68626e4e6d62334a74505345784c48557563484a76644739306558426c4c6e423163326775593246736243683061476c7a4c4851735a536c394c47597563484a76644739306558426c4c6c3930636d467563325a76636d30395a6e5675593352706232346f6443786c4c4849706533496f626d563349476b6f496c3930636d467563325a76636d306f4b4d08025349704b5830735a693577636d39306233523563475575583364796158526c50575a31626d4e30615739754b4851735a5378794b58743259584967626a313061476c7a4c6c3930636d467563325a76636d3154644746305a5474705a6968754c6e64796158526c59324939636978754c6e64796158526c59326831626d7339644378754c6e64796158526c5a57356a62325270626d63395a53776862693530636d467563325a76636d3170626d637065335a68636942705058526f61584d7558334a6c59575268596d786c55335268644755374b473475626d566c5a4652795957357a5a6d397962587838615335755a57566b556d56685a4746696247563866476b75624756755a33526f50476b7561476c6e61466468644756795457467961796b6d4a6e526f61584d7558334a6c5957516f6153356f6157646f563246305a584a4e59584a724b5831394c47597563484a76644739306558426c4c6c39795a57466b50575a31626d4e30615739754b48517065335a686369426c5058526f61584d75583352795957357a5a6d397962564e305958526c4f323531624777395054316c4c6e64796158526c59326831626d74386647557564484a68626e4e6d62334a746157356e50325575626d566c5a4652795957357a5a6d3979625430684d446f6f5a533530636d467563325a76636d3170626d633949544173644768706379356664484a68624d08026e4e6d62334a744b47557564334a706447566a614856756179786c4c6e64796158526c5a57356a62325270626d63735a5335685a6e526c636c52795957357a5a6d397962536b706653786d4c6e42796233527664486c775a5335665a47567a64484a766554316d6457356a64476c76626968304c4755706533557563484a76644739306558426c4c6c396b5a584e30636d39354c6d4e686247776f64476870637978304c43686d6457356a64476c76626968304b58746c4b48517066536b70665830734f44517a4f6968304c47557363696b39506e736964584e6c49484e30636d6c6a644349375a6e56755933527062323467626968304b587432595849675a54313061476c7a4f33526f61584d75626d563464443175645778734c48526f61584d755a573530636e6b39626e56736243783061476c7a4c6d5a70626d6c7a6144316d6457356a64476c76626967706579466d6457356a64476c76626968304c47557363696c37646d4679494734396443356c626e5279655474304c6d567564484a3550573531624777375a6d39794b4474754f796c37646d467949476b396269356a59577873596d466a617a746c4c6e426c626d5270626d646a596930744c476b6f63696b73626a31754c6d356c654852395a53356a62334a725a5752535a5846315a584e3063305a795a575575626d5634644431306653686c4c4851706658313259584967614d08025474304c6d56346347397964484d39557978544c6c647961585268596d786c55335268644755395254743259584967627a31375a475677636d566a5958526c4f6e496f4f5449334b583073637a31794b4467324f436b73595431794b4463324e436b75516e566d5a6d56794c4855396369356e4c6c5670626e513451584a7959586c3866475a31626d4e30615739754b436c3766547432595849676143786d5058496f4e5441314b5378735058496f4e4467794b53356e5a5852496157646f563246305a584a4e59584a724c474d39636967324d7a41704c6e45735a44316a4c6b5653556c394a546c5a4254456c455830465352313955575642464c48413959793546556c4a665455565553453945583035505646394a5456424d52553146546c52465243786e50574d7552564a53583031565446524a5545784658304e425445784351554e4c4c47303959793546556c4a66553152535255464e58304e42546b355056463951535642464c486b3959793546556c4a66553152535255464e583052465531525354316c465243783350574d7552564a5358314e55556b56425456394f5655784d58315a42544656465579783250574d7552564a5358314e55556b564254563958556b6c5552563942526c5246556c3946546b5173596a316a4c6b5653556c3956546b744f5431644f5830564f51303945535535484c4530395a69356c636e4a76634d08026b39795247567a64484a766554746d6457356a64476c76626942664b436c3766575a31626d4e30615739754945556f6443786c4c47387065326b3961587838636967334d7a55704c4851396448783865333073496d4a766232786c59573469495431306558426c623259676279596d4b4738395a534270626e4e305957356a5a57396d49476b704c48526f61584d7562324a715a574e305457396b5a5430684958517562324a715a574e305457396b5a5378764a69596f6447687063793576596d706c5933524e6232526c5058526f61584d7562324a715a574e305457396b5a587838495346304c6e647961585268596d786c54324a715a574e305457396b5a536b73644768706379356f6157646f563246305a584a4e59584a725057776f64476870637978304c434a33636d6c3059574a735a5568705a3268585958526c636b3168636d73694c4738704c48526f61584d755a6d6c7559577844595778735a5751394954457364476870637935755a57566b52484a686157343949544573644768706379356c626d5270626d633949544573644768706379356c626d526c5a4430684d53783061476c7a4c6d5a70626d6c7a6147566b505345784c48526f61584d755a47567a64484a766557566b505345784f335a686369427a50534578505430396443356b5a574e765a47565464484a70626d647a4f33526f61584d755a47566a6232526c554d08023352796157356e637a30686379783061476c7a4c6d526c5a6d463162485246626d4e765a476c755a7a31304c6d526c5a6d463162485246626d4e765a476c755a337838496e56305a6a67694c48526f61584d75624756755a33526f505441736447687063793533636d6c306157356e505345784c48526f61584d75593239796132566b50544173644768706379357a6557356a505345774c48526f61584d75596e566d5a6d567955484a765932567a63326c755a7a30684d53783061476c7a4c6d397564334a70644755395a6e5675593352706232346f64436c3749575a31626d4e30615739754b4851735a536c37646d4679494849396443356664334a706447466962475654644746305a5378755058497563336c75597978705058497564334a706447566a596a74705a6967695a6e56755933527062323469495431306558426c6232596761536c3061484a76647942755a5863675a7a74705a69686d6457356a64476c76626968304b5874304c6e647961585270626d63394954457364433533636d6c305a574e695057353162477773644335735a57356e644767745058517564334a70644756735a57347364433533636d6c305a57786c626a3077665368794b53786c4b53466d6457356a64476c76626968304c475573636978754c476b70657930745a5335775a57356b6157356e59324973636a386f63484a765932567a637935755a4d080258683056476c6a617968704c4734704c48427962324e6c63334d75626d5634644652705932736f547978304c4755704c4851755833647961585268596d786c55335268644755755a584a7962334a4662576c306447566b505345774c45306f644378754b536b364b476b6f62696b736443356664334a706447466962475654644746305a53356c636e4a76636b5674615852305a57513949544173545368304c4734704c45386f6443786c4b536c394b485173636978754c47557361536b375a57787a5a58743259584967627a314d4b484970664878304c6d526c6333527962336c6c5a447476664878794c6d4e76636d746c5a4878386369356964575a6d5a584a51636d396a5a584e7a6157356e664877686369356964575a6d5a584a6c5a464a6c6358566c633352386645496f644378794b5378755033427962324e6c63334d75626d5634644652705932736f515378304c484973627978704b5470424b485173636978764c476b706658306f5a5378304b5830736447687063793533636d6c305a574e6950573531624777736447687063793533636d6c305a57786c626a30774c48526f61584d75596e566d5a6d56795a5752535a5846315a584e305057353162477773644768706379357359584e30516e566d5a6d56795a5752535a5846315a584e30505735316247777364476870637935775a57356b6157356e593249394d437830614d0802476c7a4c6e42795a575a70626d6c7a6147566b505345784c48526f61584d755a584a7962334a4662576c306447566b505345784c48526f61584d755a57317064454e7362334e6c50534578495430396443356c62576c3051327876633255736447687063793568645852765247567a64484a766554306849585175595856306230526c6333527962336b73644768706379356964575a6d5a584a6c5a464a6c6358566c6333524462335675644430774c48526f61584d75593239796132566b556d56786457567a64484e47636d566c5057356c647942754b48526f61584d7066575a31626d4e306157397549464d6f64436c37646d4679494755396447687063794270626e4e305957356a5a57396d4b476b3961587838636967334d7a55704b5474705a6967685a53596d4957677559324673624368544c48526f61584d704b584a6c64485679626942755a586367557968304b54743061476c7a4c6c3933636d6c3059574a735a564e305958526c5057356c647942464b485173644768706379786c4b53783061476c7a4c6e647961585268596d786c505345774c48516d4a6967695a6e56755933527062323469505431306558426c6232596764433533636d6c305a53596d4b48526f61584d75583364796158526c5058517564334a70644755704c434a6d6457356a64476c766269493950585235634756765a6942304c6e64796158526c644d080269596d4b48526f61584d75583364796158526c646a31304c6e64796158526c64696b73496d5a31626d4e3061573975496a303964486c775a57396d494851755a47567a64484a766553596d4b48526f61584d755832526c6333527962336b396443356b5a584e30636d39354b5377695a6e56755933527062323469505431306558426c623259676443356d615735686243596d4b48526f61584d7558325a70626d4673505851755a6d6c75595777704b53787a4c6d4e686247776f6447687063796c395a6e56755933527062323467556968304c475573636978754c476b736279787a4b58746c4c6e64796158526c62475675505734735a533533636d6c305a574e6950584d735a533533636d6c306157356e505345774c47557563336c75597a30684d43786c4c6d526c6333527962336c6c5a44396c4c6d397564334a706447556f626d563349486b6f496e64796158526c49696b704f6e492f6443356664334a70644756324b476b735a533576626e64796158526c4b5470304c6c3933636d6c305a5368704c4738735a533576626e64796158526c4b53786c4c6e4e35626d4d39495446395a6e56755933527062323467515368304c475573636978754b5874796648786d6457356a64476c76626968304c475570657a41395054316c4c6d786c626d64306143596d5a5335755a57566b52484a686157346d4a69686c4c6d356c5a575245634d08026d4670626a30684d5378304c6d56746158516f496d527959576c7549696b70665368304c4755704c475575634756755a476c755a324e694c533073626967704c45386f6443786c4b58316d6457356a64476c76626942434b4851735a536c375a53356964575a6d5a584a51636d396a5a584e7a6157356e505345774f335a686369427950575575596e566d5a6d56795a5752535a5846315a584e304f326c6d4b485175583364796158526c6469596d6369596d636935755a5868304b587432595849676154316c4c6d4a315a6d5a6c636d566b556d56786457567a64454e76645735304c473839626d563349454679636d46354b476b704c484d395a53356a62334a725a5752535a5846315a584e3063305a795a5755376379356c626e5279655431794f325a766369683259584967595430774c48553949544137636a737062317468585431794c48497561584e4364575a3866436831505345784b53787950584975626d5634644378684b7a30784f32387559577873516e566d5a6d5679637a31314c46496f6443786c4c4345774c475575624756755a33526f4c473873496949736379356d61573570633267704c475575634756755a476c755a324e694b7973735a53357359584e30516e566d5a6d56795a5752535a5846315a584e305057353162477773637935755a5868305079686c4c6d4e76636d746c5a464a6c6358566c6333527a524d08026e4a6c5a54317a4c6d356c65485173637935755a58683050573531624777704f6d5575593239796132566b556d56786457567a64484e47636d566c5057356c647942754b4755704c475575596e566d5a6d56795a5752535a5846315a584e3051323931626e51394d48316c62484e6c65325a7663696737636a737065335a686369426f5058497559326831626d73735a6a31794c6d56755932396b6157356e4c4777396369356a59577873596d466a617a74705a6968534b4851735a5377684d53786c4c6d3969616d566a644531765a47552f4d54706f4c6d786c626d64306143786f4c47597362436b73636a31794c6d356c654851735a53356964575a6d5a584a6c5a464a6c6358566c6333524462335675644330744c47557564334a7064476c755a796c69636d56686133317564577873505430396369596d4b4755756247467a64454a315a6d5a6c636d566b556d56786457567a64443175645778734b58316c4c6d4a315a6d5a6c636d566b556d56786457567a644431794c475575596e566d5a6d567955484a765932567a63326c755a7a30684d58316d6457356a64476c766269424d4b48517065334a6c64485679626942304c6d56755a476c755a79596d4d44303950585175624756755a33526f4a695a7564577873505430396443356964575a6d5a584a6c5a464a6c6358566c6333516d4a6946304c6d5a70626d6c7a6147566b4a4d080269596864433533636d6c306157356e66575a31626d4e30615739754947736f6443786c4b5874304c6c396d615735686243676f5a6e5675593352706232346f63696c375a5335775a57356b6157356e593249744c5378794a695a4e4b48517363696b735a533577636d566d615735706332686c5a4430684d4378304c6d56746158516f496e42795a575a70626d6c7a614349704c45386f6443786c4b5830704b58316d6457356a64476c76626942504b4851735a536c37646d4679494849395443686c4b5474705a6968794a69596f5a6e5675593352706232346f6443786c4b58746c4c6e42795a575a70626d6c7a6147566b6648786c4c6d5a70626d4673513246736247566b6648776f496d5a31626d4e30615739754969453964486c775a57396d4948517558325a70626d46736648786c4c6d526c6333527962336c6c5a44386f5a533577636d566d615735706332686c5a4430684d4378304c6d56746158516f496e42795a575a70626d6c7a614349704b546f6f5a5335775a57356b6157356e593249724b79786c4c6d5a70626d4673513246736247566b505345774c48427962324e6c63334d75626d5634644652705932736f617978304c4755704b536c394b4851735a536b734d44303950575575634756755a476c755a324e694a69596f5a53356d615735706332686c5a4430684d4378304c6d56746158516f496d5a70626d6c7a614d08024349704c475575595856306230526c6333527962336b704b536c37646d46794947343964433566636d56685a47466962475654644746305a54736f4957353866473475595856306230526c6333527962336b6d4a6d34755a57356b525731706448526c5a436b6d4a6e51755a47567a64484a766553677066584a6c64485679626942796658496f4e7a45334b5368544c484d704c45557563484a76644739306558426c4c6d646c64454a315a6d5a6c636a316d6457356a64476c766269677065325a7663696832595849676444313061476c7a4c6d4a315a6d5a6c636d566b556d56786457567a6443786c505674644f3351374b5755756348567a614368304b53783050585175626d5634644474795a585231636d34675a5830735a6e5675593352706232346f4b587430636e6c3754324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b45557563484a76644739306558426c4c434a6964575a6d5a5849694c48746e5a5851366279356b5a5842795a574e686447556f4b475a31626d4e30615739754b436c37636d563064584a754948526f61584d755a325630516e566d5a6d56794b436c394b5377695833647961585268596d786c5533526864475575596e566d5a6d567949476c7a4947526c63484a6c593246305a5751754946567a5a53426664334a706447466962475654644746305a53356e5a58524364575a6d5a4d08025849676157357a644756685a4334694c434a45525641774d44417a49696c394b58316a5958526a614368304b587439665367704c434a6d6457356a64476c766269493950585235634756765a694254655731696232776d4a6c4e3562574a766243356f59584e4a626e4e305957356a5a53596d496d5a31626d4e3061573975496a303964486c775a57396d49455a31626d4e30615739754c6e42796233527664486c775a56745465573169623277756147467a5357357a64474675593256645079686f50555a31626d4e30615739754c6e42796233527664486c775a56745465573169623277756147467a5357357a64474675593256644c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c464e3562574a766243356f59584e4a626e4e305957356a5a537837646d4673645755365a6e5675593352706232346f64436c37636d563064584a754953466f4c6d4e686247776f64476870637978304b58783864476870637a303950564d6d4a6968304a695a304c6c3933636d6c3059574a735a564e305958526c49476c7563335268626d4e6c6232596752536c3966536b704f6d67395a6e5675593352706232346f64436c37636d563064584a75494851676157357a64474675593256765a69423061476c7a665378544c6e42796233527664486c775a5335776158426c50575a31626d4e30615739754b436c37544d080253683061476c7a4c47356c647942744b58307355793577636d3930623352356347557564334a70644755395a6e5675593352706232346f6443786c4c48497065335a68636942754c476b39644768706379356664334a706447466962475654644746305a537876505345784c484d3949576b7562324a715a574e305457396b5a53596d4b473439644378684c6d6c7a516e566d5a6d56794b4734706648787549476c7563335268626d4e6c6232596764536b37636d563064584a7549484d6d4a6946684c6d6c7a516e566d5a6d56794b4851704a69596f6444316d6457356a64476c76626968304b5874795a585231636d34675953356d636d39744b485170665368304b536b73496d5a31626d4e3061573975496a303964486c775a57396d4947556d4a696879505755735a543175645778734b53787a50325539496d4a315a6d5a6c636949365a5878384b4755396153356b5a575a68645778305257356a62325270626d63704c434a6d6457356a64476c766269496850585235634756765a6942794a69596f636a31664b5378704c6d56755a476c755a7a396d6457356a64476c76626968304c47557065335a68636942795057356c647942324f30306f644378794b537877636d396a5a584e7a4c6d356c6548525561574e724b47557363696c394b48526f61584d7363696b364b484e3866475a31626d4e30615739754b4851735a5378794c4d080247347065335a68636942704f334a6c64485679626942756457787350543039636a39705057356c647942334f694a7a64484a70626d6369505431306558426c62325967636e78385a533576596d706c5933524e6232526c6648776f615431755a5863675a43676959326831626d73694c467369633352796157356e49697769516e566d5a6d5679496c307363696b704c4346706648776f545368304c476b704c48427962324e6c63334d75626d5634644652705932736f626978704b5377684d536c394b48526f61584d73615378304c4849704b53596d4b476b75634756755a476c755a324e694b797373627a316d6457356a64476c76626968304c475573636978754c476b7362796c376157596f4958497065335a686369427a50575a31626d4e30615739754b4851735a5378794b5874304c6d3969616d566a644531765a47563866434578505430396443356b5a574e765a47565464484a70626d647a66487769633352796157356e4969453964486c775a57396d494756386643686c505745755a6e4a766253686c4c4849704b5474795a585231636d34675a58306f5a5378754c476b704f3234685054317a4a69596f636a30684d43787050534a6964575a6d5a5849694c47343963796c39646d4679494855395a533576596d706c5933524e6232526c507a4536626935735a57356e644767375a5335735a57356e6447677250585537644d08026d4679494767395a5335735a57356e644767385a53356f6157646f563246305a584a4e59584a724f3268386643686c4c6d356c5a575245636d4670626a30684d436b376157596f5a533533636d6c306157356e6648786c4c6d4e76636d746c5a436c37646d4679494759395a53357359584e30516e566d5a6d56795a5752535a5846315a584e304f3255756247467a64454a315a6d5a6c636d566b556d56786457567a6444313759326831626d73366269786c626d4e765a476c755a7a70704c476c7a516e566d4f6e49735932467362474a6859327336627978755a5868304f6d3531624778394c47592f5a6935755a586830505755756247467a64454a315a6d5a6c636d566b556d56786457567a6444706c4c6d4a315a6d5a6c636d566b556d56786457567a6444316c4c6d78686333524364575a6d5a584a6c5a464a6c6358566c633351735a53356964575a6d5a584a6c5a464a6c6358566c6333524462335675644373394d58316c62484e6c4946496f6443786c4c4345784c485573626978704c4738704f334a6c644856796269426f6653683061476c7a4c476b73637978304c47557363696b704c4739394c464d7563484a76644739306558426c4c6d4e76636d73395a6e5675593352706232346f4b58743061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d4e76636d746c5a437372665378544c6e427962335276644d0802486c775a533531626d4e76636d73395a6e5675593352706232346f4b587432595849676444313061476c7a4c6c3933636d6c3059574a735a564e305958526c4f335175593239796132566b4a69596f6443356a62334a725a5751744c5378304c6e647961585270626d643866485175593239796132566b664878304c6d4a315a6d5a6c636c427962324e6c63334e70626d6438664346304c6d4a315a6d5a6c636d566b556d56786457567a644878385169683061476c7a4c4851704b58307355793577636d39306233523563475575633256305247566d59585673644556755932396b6157356e50575a31626d4e30615739754b48517065326c6d4b434a7a64484a70626d6369505431306558426c623259676443596d4b4851396443353062307876643256795132467a5a5367704b5377684b46736961475634496977696458526d4f434973496e56305a6930344969776959584e6a61576b694c434a6961573568636e6b694c434a6959584e6c4e6a51694c434a3159334d794969776964574e7a4c5449694c434a31644759784e6d786c496977696458526d4c544532624755694c434a795958636958533570626d526c6545396d4b4368304b7949694b53353062307876643256795132467a5a5367704b5434744d536b706447687962336367626d56334947496f64436b37636d563064584a754948526f61584d755833647961585268594d08026d786c55335268644755755a47566d59585673644556755932396b6157356e50585173644768706333307354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a33636d6c3059574a735a554a315a6d5a6c63694973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a754948526f61584d755833647961585268596d786c553352686447556d4a6e526f61584d755833647961585268596d786c55335268644755755a325630516e566d5a6d56794b436c3966536b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a33636d6c3059574a735a5568705a3268585958526c636b3168636d73694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d68705a3268585958526c636b3168636d743966536b7355793577636d39306233523563475575583364796158526c50575a31626d4e30615739754b4851735a5378794b5874794b47356c647942774b434a6664334a706447556f4b5349704b58307355793577636d39306233523563475575583364796158526c646a3175645778734c4d0802464d7563484a76644739306558426c4c6d56755a44316d6457356a64476c76626968304c47557363696c37646d467949473439644768706379356664334a706447466962475654644746305a5474795a585231636d34695a6e56755933527062323469505431306558426c623259676444386f636a31304c485139626e56736243786c50573531624777704f694a6d6457356a64476c766269493950585235634756765a69426c4a69596f636a316c4c475539626e567362436b73626e5673624345396443596d6447687063793533636d6c305a5368304c4755704c473475593239796132566b4a69596f6269356a62334a725a5751394d53783061476c7a4c6e567559323979617967704b5378754c6d56755a476c755a3378385a6e5675593352706232346f6443786c4c484970653255755a57356b6157356e505345774c45386f6443786c4b5378794a69596f5a53356d615735706332686c5a443977636d396a5a584e7a4c6d356c6548525561574e724b4849704f6e51756232356a5a5367695a6d6c7561584e6f496978794b536b375a53356c626d526c5a4430684d4378304c6e647961585268596d786c505345786653683061476c7a4c47347363696b73644768706333307354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a33636d6c3059574a735a55786c624d08026d643061434973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a754948526f61584d755833647961585268596d786c5533526864475575624756755a33526f665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c6e42796233527664486c775a5377695a47567a64484a766557566b496978375a5735316257567959574a735a546f684d53786e5a5851365a6e5675593352706232346f4b5874795a585231636d3467646d39705a43417749543039644768706379356664334a706447466962475654644746305a53596d644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a5752394c484e6c6444706d6457356a64476c76626968304b58743061476c7a4c6c3933636d6c3059574a735a564e305958526c4a69596f644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a57513964436c3966536b7355793577636d393062335235634755755a47567a64484a766554316d4c6d526c6333527962336b7355793577636d39306233523563475575583356755a47567a64484a766554316d4c6e56755a47567a64484a76655378544c6e42796233527664486c775a5335665a47567a64484a766554316d6457356a64476c76626968304c475570654d080232556f64436c39665377304e7a45364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a746d6457356a64476c76626942704b4851735a5378794b5874795a585231636d34675a5342706269423050303969616d566a6443356b5a575a70626d5651636d39775a584a30655368304c47557365335a686248566c4f6e49735a5735316257567959574a735a546f684d43786a6232356d61576431636d4669624755364954417364334a706447466962475536495442394b54703057325664505849736448313259584967627a31794b4445344e696b73637a3154655731696232776f496d7868633352535a584e7662485a6c49696b7359543154655731696232776f496d7868633352535a57706c593351694b53783150564e3562574a76624367695a584a79623349694b53786f50564e3562574a76624367695a57356b5a5751694b53786d50564e3562574a76624367696247467a6446427962323170633255694b53787350564e3562574a7662436769614746755a47786c55484a7662576c7a5a5349704c474d3955336c74596d39734b434a7a64484a6c595730694b54746d6457356a64476c766269426b4b4851735a536c37636d563064584a7565335a686248566c4f6e51735a4739755a54706c6658316d6457356a64476c76626942774b48517065335a686369426c5058526263313037614d080257596f626e5673624345395057557065335a68636942795058526259313075636d56685a4367704f32353162477768505431794a69596f6446746d58543175645778734c48526263313039626e5673624378305732466450573531624777735a53686b4b484973495445704b536c3966575a31626d4e30615739754947636f64436c3763484a765932567a637935755a58683056476c6a617968774c48517066585a686369427450553969616d566a6443356e5a585251636d393062335235634756505a69676f5a6e5675593352706232346f4b5874394b536b7365543150596d706c593351756332563055484a76644739306558426c5432596f4b476b6f626a31375a32563049484e30636d56686253677065334a6c644856796269423061476c7a57324e64665378755a5868304f6d5a31626d4e30615739754b436c37646d467949485139644768706379786c5058526f61584e62645630376157596f626e56736243453950575570636d563064584a75494642796232317063325575636d56715a574e304b4755704f326c6d4b48526f61584e6261463070636d563064584a75494642796232317063325575636d567a623278325a53686b4b485a76615751674d4377684d436b704f326c6d4b48526f61584e62593130755a47567a64484a766557566b4b584a6c64485679626942755a58636755484a7662576c7a5a53676f5a6e5675594d08023352706232346f5a5378794b587477636d396a5a584e7a4c6d356c6548525561574e724b43686d6457356a64476c7662696770653352626456302f63696830573356644b54706c4b47516f646d39705a4341774c4345774b536c394b536c394b536b37646d467949484973626a313061476c7a57325a644f326c6d4b473470636a31755a58636755484a7662576c7a5a53686d6457356a64476c76626968304c47557065334a6c644856796269426d6457356a64476c76626968794c473470653351756447686c6269676f5a6e5675593352706232346f4b58746c573268645033496f5a43683262326c6b49444173495441704b54706c573278644b48497362696c394b5378754b5831394b4734736447687063796b704f32567363325637646d467949476b39644768706331746a585335795a57466b4b436b376157596f626e56736243453950576b70636d563064584a75494642796232317063325575636d567a623278325a53686b4b476b73495445704b5474795057356c64794251636d397461584e6c4b48526f61584e626246307066584a6c644856796269423061476c7a57325a6450584973636e31394c464e3562574a766243356863336c7559306c305a584a68644739794c43686d6457356a64476c766269677065334a6c644856796269423061476c7a66536b704c476b6f62697769636d563064584a754969776f5a6e5675594d08023352706232346f4b587432595849676444313061476c7a4f334a6c64485679626942755a58636755484a7662576c7a5a53676f5a6e5675593352706232346f5a5378794b58743057324e644c6d526c6333527962336b6f626e56736243776f5a6e5675593352706232346f64436c37644439794b4851704f6d556f5a43683262326c6b49444173495441704b5830704b5830704b5830704b5378754b5378744b5474304c6d56346347397964484d395a6e5675593352706232346f64436c37646d467949475573636a3150596d706c5933517559334a6c5958526c4b486b734b476b6f5a5431376653786a4c487432595778315a5470304c48647961585268596d786c4f69457766536b736153686c4c484d7365335a686248566c4f6d35316247777364334a706447466962475536495442394b5378704b47557359537837646d467364575536626e567362437833636d6c3059574a735a546f684d4830704c476b6f5a5378314c487432595778315a547075645778734c48647961585268596d786c4f69457766536b736153686c4c47677365335a686248566c4f6e517558334a6c59575268596d786c55335268644755755a57356b525731706448526c5a437833636d6c3059574a735a546f684d4830704c476b6f5a5378734c487432595778315a54706d6457356a64476c76626968304c47557065335a686369427550584a6259313075634d08026d56685a4367704f32342f4b484a625a6c3039626e56736243787957334e645057353162477773636c746858543175645778734c48516f5a4368754c4345784b536b704f69687957334e6450585173636c74685854316c4b58307364334a706447466962475536495442394b53786c4b536b37636d563064584a7549484a625a6c3039626e5673624378764b4851734b475a31626d4e30615739754b48517065326c6d4b48516d4a694a46556c4a66553152535255464e583142535255314256465653525639445445395452534968505431304c6d4e765a47557065335a686369426c50584a6259563037636d563064584a7549473531624777685054316c4a69596f636c746d58543175645778734c484a6263313039626e5673624378795732466450573531624777735a5368304b536b73646d39705a436879573356645058517066585a686369427550584a6263313037626e5673624345395057346d4a69687957325a645057353162477773636c747a58543175645778734c484a6259563039626e5673624378754b47516f646d39705a4341774c4345774b536b704c484a6261463039495442394b536b736443357662696769636d56685a474669624755694c476375596d6c755a436875645778734c4849704b537879665830734f54677a4f6968304c47557363696b39506e736964584e6c49484e30636d6c6a644349375a6e5675594d080233527062323467626968304c47557065335a686369427950553969616d566a644335725a586c7a4b4851704f326c6d4b453969616d566a6443356e5a58525064323551636d39775a584a3065564e3562574a7662484d7065335a686369427550553969616d566a6443356e5a58525064323551636d39775a584a3065564e3562574a7662484d6f64436b375a53596d4b4734396269356d615778305a58496f4b475a31626d4e30615739754b47557065334a6c6448567962694250596d706c593351755a3256305433647555484a766347567964486c455a584e6a636d6c77644739794b4851735a536b755a5735316257567959574a735a5830704b536b736369357764584e6f4c6d4677634778354b48497362696c39636d563064584a7549484a395a6e56755933527062323467615368304c47557363696c37636d563064584a75494755676157346764443950596d706c593351755a47566d6157356c55484a766347567964486b6f6443786c4c487432595778315a5470794c4756756457316c636d46696247553649544173593239755a6d6c6e64584a68596d786c4f6945774c48647961585268596d786c4f69457766536b366446746c585431794c4852395a6e56755933527062323467627968304c47557065325a766369683259584967636a30774f3349385a5335735a57356e64476737636973724b58743259584967626a316c574d0802334a644f3234755a5735316257567959574a735a5431754c6d56756457316c636d466962475638664345784c473475593239755a6d6c6e64584a68596d786c505345774c434a32595778315a534a70626942754a69596f62693533636d6c3059574a735a5430684d436b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b485173626935725a586b7362696c3966585a686369427a5058496f4e7a59304b53354364575a6d5a584973595431794b4445794d436b756157357a6347566a644378315057456d4a6d45755933567a64473974664877696157357a6347566a644349376443356c65484276636e527a50575a31626d4e30615739754b436c375a6e56755933527062323467644367706579466d6457356a64476c76626968304c47557065326c6d4b43456f64434270626e4e305957356a5a57396d494755704b58526f636d39334947356c647942556558426c52584a796233496f496b4e68626d35766443426a59577873494745675932786863334d6759584d675953426d6457356a64476c76626949706653683061476c7a4c4851704c48526f61584d75614756685a443175645778734c48526f61584d756447467062443175645778734c48526f61584d75624756755a33526f50544239646d4679494755736369786f4f334a6c644856796269426c50585173636a31626532746c65546f696348567a614d0802434973646d4673645755365a6e5675593352706232346f64436c37646d4679494755396532526864474536644378755a5868304f6d3531624778394f33526f61584d75624756755a33526f506a412f644768706379353059576c734c6d356c654851395a54703061476c7a4c6d686c595751395a53783061476c7a4c6e5268615777395a5377724b33526f61584d75624756755a33526f665830736532746c65546f696457357a61476c6d64434973646d4673645755365a6e5675593352706232346f64436c37646d4679494755396532526864474536644378755a5868304f6e526f61584d75614756685a4830374d4430395058526f61584d75624756755a33526f4a69596f644768706379353059576c73505755704c48526f61584d75614756685a44316c4c43737264476870637935735a57356e6447683966537837613256354f694a7a61476c6d64434973646d4673645755365a6e5675593352706232346f4b5874705a6967774954303964476870637935735a57356e6447677065335a68636942305058526f61584d75614756685a43356b595852684f334a6c64485679626941785054303964476870637935735a57356e6447672f644768706379356f5a57466b5058526f61584d756447467062443175645778734f6e526f61584d75614756685a44313061476c7a4c6d686c59575175626d5634644377744c58526f61584d75624d08024756755a33526f4c485239665830736532746c65546f695932786c595849694c485a686248566c4f6d5a31626d4e30615739754b436c37644768706379356f5a57466b5058526f61584d756447467062443175645778734c48526f61584d75624756755a33526f5054423966537837613256354f694a7162326c7549697832595778315a54706d6457356a64476c76626968304b5874705a6967775054303964476870637935735a57356e64476770636d563064584a75496949375a6d39794b485a686369426c5058526f61584d75614756685a437879505349694b3255755a4746305954746c50575575626d563464447370636973396443746c4c6d526864474537636d563064584a7549484a3966537837613256354f694a6a6232356a595851694c485a686248566c4f6d5a31626d4e30615739754b48517065326c6d4b4441395054313061476c7a4c6d786c626d643061436c795a585231636d34676379356862477876597967774b54746d6233496f646d467949475573636978754c476b396379356862477876593156756332466d5a536830506a342b4d436b73627a313061476c7a4c6d686c59575173595430774f3238374b5755396279356b595852684c484939615378755057457363793577636d39306233523563475575593239776553356a595778734b475573636978754b5378684b7a31764c6d526864474575624756755a4d080233526f4c473839627935755a5868304f334a6c6448567962694270665830736532746c65546f6959323975633356745a534973646d4673645755365a6e5675593352706232346f6443786c4b58743259584967636a74795a585231636d34676444783061476c7a4c6d686c595751755a474630595335735a57356e6447672f4b484939644768706379356f5a57466b4c6d526864474575633278705932556f4d4378304b53783061476c7a4c6d686c595751755a4746305954313061476c7a4c6d686c595751755a4746305953357a62476c6a5a5368304b536b36636a313050543039644768706379356f5a57466b4c6d526864474575624756755a33526f5033526f61584d75633268705a6e516f4b54706c5033526f61584d755832646c64464e30636d6c755a7968304b54703061476c7a4c6c396e5a58524364575a6d5a58496f64436b73636e31394c4874725a586b36496d5a70636e4e3049697832595778315a54706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d686c595751755a474630595831394c4874725a586b36496c396e5a58525464484a70626d63694c485a686248566c4f6d5a31626d4e30615739754b48517065335a686369426c5058526f61584d75614756685a43787950544573626a316c4c6d5268644745375a6d39794b48517450573475624756755a33526f4f3255395a5335755a4d08025868304f796c37646d467949476b395a53356b595852684c473839644435704c6d786c626d6430614439704c6d786c626d6430614470304f326c6d4b473839505431704c6d786c626d6430614439754b7a31704f6d347250576b75633278705932556f4d4378304b5377775054306f6443303962796b7065323839505431704c6d786c626d64306144386f4b7974794c475575626d56346444393061476c7a4c6d686c595751395a5335755a5868304f6e526f61584d75614756685a44313061476c7a4c6e526861577739626e567362436b364b48526f61584d75614756685a44316c4c4755755a474630595431704c6e4e7361574e6c4b4738704b547469636d5668613330724b334a39636d563064584a754948526f61584d75624756755a33526f4c5431794c47353966537837613256354f694a665a325630516e566d5a6d567949697832595778315a54706d6457356a64476c76626968304b587432595849675a54317a4c6d46736247396a5657357a59575a6c4b4851704c484939644768706379356f5a57466b4c4734394d54746d6233496f6369356b595852684c6d4e7663486b6f5a536b73644330396369356b595852684c6d786c626d64306144747950584975626d56346444737065335a6863694270505849755a474630595378765058512b615335735a57356e6447672f615335735a57356e64476736644474705a6968704c4d08026d4e7663486b6f5a53786c4c6d786c626d6430614331304c44417362796b734d4430394b485174505738704b58747650543039615335735a57356e6447672f4b437372626978794c6d356c6548512f644768706379356f5a57466b50584975626d56346444703061476c7a4c6d686c59575139644768706379353059576c7350573531624777704f69683061476c7a4c6d686c59575139636978794c6d5268644745396153357a62476c6a5a5368764b536b37596e4a6c595774394b79747566584a6c644856796269423061476c7a4c6d786c626d6430614330396269786c665830736532746c655470314c485a686248566c4f6d5a31626d4e30615739754b4851735a536c37636d563064584a754947456f644768706379786d6457356a64476c76626968304b58746d6233496f646d4679494755394d54746c504746795a3356745a573530637935735a57356e644767375a5373724b58743259584967636a31756457787349543168636d64316257567564484e625a56302f59584a6e6457316c626e527a573256644f6e74394f32556c4d6a39754b453969616d566a644368794b5377684d436b755a6d39795257466a6143676f5a6e5675593352706232346f5a536c37615368304c475573636c746c58536c394b536b3654324a715a574e304c6d646c64453933626c42796233426c636e52355247567a59334a7063485276636e4d2f544d0802324a715a574e304c6d526c5a6d6c755a5642796233426c636e52705a584d6f64437850596d706c593351755a3256305433647555484a766347567964486c455a584e6a636d6c7764473979637968794b536b3662696850596d706c5933516f63696b704c6d5a76636b56685932676f4b475a31626d4e30615739754b47557065303969616d566a6443356b5a575a70626d5651636d39775a584a30655368304c47557354324a715a574e304c6d646c64453933626c42796233426c636e52355247567a59334a7063485276636968794c4755704b5830704b5831795a585231636d34676448306f653330735a5378375a475677644767364d43786a64584e306232314a626e4e775a574e304f69457866536b70665831644c48496d4a6d386f5a533577636d3930623352356347557363696b736143596d6279686c4c4767704c4852394b436c394c4455774e54703050543537496e567a5a53427a64484a70593351694f325a31626d4e30615739754947556f6443786c4b5874754b4851735a536b73636968304b58316d6457356a64476c76626942794b485170653351755833647961585268596d786c553352686447556d4a6946304c6c3933636d6c3059574a735a564e305958526c4c6d5674615852446247397a5a58783864433566636d56685a47466962475654644746305a53596d4958517558334a6c59575268596d786c55335268644d08024755755a57317064454e7362334e6c664878304c6d56746158516f496d4e7362334e6c49696c395a6e56755933527062323467626968304c475570653351755a573170644367695a584a79623349694c475570665851755a58687762334a30637a31375a47567a64484a766554706d6457356a64476c76626968304c476b7065335a68636942765058526f61584d73637a313061476c7a4c6c39795a57466b59574a735a564e305958526c4a695a3061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a4378685058526f61584d755833647961585268596d786c553352686447556d4a6e526f61584d755833647961585268596d786c55335268644755755a47567a64484a766557566b4f334a6c644856796269427a664878685079687050326b6f64436b366443596d4b48526f61584d755833647961585268596d786c553352686447552f644768706379356664334a706447466962475654644746305a53356c636e4a76636b5674615852305a5752386643683061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d5679636d3979525731706448526c5a4430684d437877636d396a5a584e7a4c6d356c6548525561574e724b47347364476870637978304b536b3663484a765932567a637935755a58683056476c6a617968754c48526f61584d7364436b704c48526f61584d704f4d080269683061476c7a4c6c39795a57466b59574a735a564e305958526c4a69596f6447687063793566636d56685a47466962475654644746305a53356b5a584e30636d39355a575139495441704c48526f61584d755833647961585268596d786c553352686447556d4a69683061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d526c6333527962336c6c5a4430684d436b7364476870637935665a47567a64484a766553683066487875645778734c43686d6457356a64476c76626968304b5873686153596d644439764c6c3933636d6c3059574a735a564e305958526c503238755833647961585268596d786c55335268644755755a584a7962334a4662576c306447566b5033427962324e6c63334d75626d5634644652705932736f636978764b546f6f6279356664334a706447466962475654644746305a53356c636e4a76636b5674615852305a5751394954417363484a765932567a637935755a58683056476c6a6179686c4c47387364436b704f6e427962324e6c63334d75626d5634644652705932736f5a5378764c4851704f6d6b2f4b48427962324e6c63334d75626d5634644652705932736f636978764b5378704b4851704b547077636d396a5a584e7a4c6d356c6548525561574e724b48497362796c394b536b736447687063796c394c4856755a47567a64484a766554706d6457356a64476c7662696770654d080233526f61584d7558334a6c59575268596d786c553352686447556d4a69683061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a4430684d53783061476c7a4c6c39795a57466b59574a735a564e305958526c4c6e4a6c59575270626d6339495445736447687063793566636d56685a47466962475654644746305a53356c626d526c5a4430684d53783061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d56755a455674615852305a575139495445704c48526f61584d755833647961585268596d786c553352686447556d4a69683061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d526c6333527962336c6c5a4430684d53783061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d56755a47566b505345784c48526f61584d755833647961585268596d786c55335268644755755a57356b6157356e505345784c48526f61584d755833647961585268596d786c55335268644755755a6d6c7559577844595778735a57513949544573644768706379356664334a706447466962475654644746305a533577636d566d615735706332686c5a4430684d53783061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d5a70626d6c7a6147566b505345784c48526f61584d755833647961585268596d786c55335268644755755a584a79624d0802334a4662576c306447566b505345784b5830735a584a7962334a50636b526c6333527962336b365a6e5675593352706232346f6443786c4b58743259584967636a31304c6c39795a57466b59574a735a564e305958526c4c4734396443356664334a706447466962475654644746305a5474794a695a794c6d4631644739455a584e30636d3935664878754a695a754c6d4631644739455a584e30636d3935503351755a47567a64484a766553686c4b5470304c6d56746158516f496d5679636d39794969786c4b583139665377784f4459364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a31794b44597a4d436b7563533546556c4a66553152535255464e58314253525531425646565352563944544539545254746d6457356a64476c76626942704b436c37665851755a58687762334a30637a316d6457356a64476c76626942304b475573636978764b5874705a6967695a6e56755933527062323469505431306558426c6232596763696c795a585231636d34676443686c4c4735316247777363696b37636e78384b484939653330704c4738395a6e5675593352706232346f64436c37646d46794947553949544537636d563064584a7549475a31626d4e30615739754b436c376157596f4957557065325539495441375a6d39794b485a6863694279505746795a3356745a573530634d08027935735a57356e64476773626a31755a58636751584a7959586b6f63696b73615430774f326b38636a74704b797370626c747058543168636d64316257567564484e626156303764433568634842736553683061476c7a4c473470665831394b47393866476b704f335a686369427a50584975636d56685a474669624756386643457849543039636935795a57466b59574a735a53596d5a5335795a57466b59574a735a5378685058497564334a706447466962475638664345784954303963693533636d6c3059574a735a53596d5a533533636d6c3059574a735a53783150575a31626d4e30615739754b436c375a533533636d6c3059574a735a5878385a6967706653786f505755755833647961585268596d786c553352686447556d4a6d55755833647961585268596d786c55335268644755755a6d6c7561584e6f5a5751735a6a316d6457356a64476c76626967706532453949544573614430684d43787a664878764c6d4e686247776f5a536c394c4777395a533566636d56685a47466962475654644746305a53596d5a533566636d56685a47466962475654644746305a53356c626d524662576c306447566b4c474d395a6e5675593352706232346f4b58747a505345784c47773949544173595878386279356a595778734b4755706653786b50575a31626d4e30615739754b48517065323875593246736243686c4c485170664d080253787750575a31626d4e30615739754b436c37646d467949485137636d563064584a7549484d6d4a6946735079686c4c6c39795a57466b59574a735a564e305958526c4a695a6c4c6c39795a57466b59574a735a564e305958526c4c6d56755a47566b6648776f644431755a58636762696b736279356a595778734b47557364436b704f6d456d4a69466f5079686c4c6c3933636d6c3059574a735a564e305958526c4a695a6c4c6c3933636d6c3059574a735a564e305958526c4c6d56755a47566b6648776f644431755a58636762696b736279356a595778734b47557364436b704f6e5a76615751674d4830735a7a316d6457356a64476c766269677065325575636d56784c6d39754b434a6d61573570633267694c475970665474795a585231636d34685a6e5675593352706232346f64436c37636d563064584a754948517563325630534756685a4756794a6959695a6e56755933527062323469505431306558426c6232596764433568596d39796448306f5a536b2f5953596d495755755833647961585268596d786c553352686447556d4a69686c4c6d39754b434a6c626d51694c4855704c4755756232346f496d4e7362334e6c496978314b536b364b4755756232346f496d4e76625842735a58526c4969786d4b53786c4c6d39754b434a68596d39796443497363436b735a5335795a58452f5a7967704f6d55756232346f494d08026e4a6c6358566c633351694c4763704b53786c4c6d39754b434a6c626d51694c474d704c4755756232346f496d5a70626d6c7a614349735a696b7349544568505431794c6d5679636d39794a695a6c4c6d39754b434a6c636e4a76636949735a436b735a5335766269676959327876633255694c4841704c475a31626d4e30615739754b436c375a5335795a573176646d564d61584e305a57356c63696769593239746347786c644755694c4759704c475575636d567462335a6c54476c7a644756755a58496f496d466962334a30496978774b53786c4c6e4a6c625739325a5578706333526c626d56794b434a795a5846315a584e304969786e4b53786c4c6e4a6c6353596d5a5335795a584575636d567462335a6c54476c7a644756755a58496f496d5a70626d6c7a614349735a696b735a5335795a573176646d564d61584e305a57356c636967695a57356b496978314b53786c4c6e4a6c625739325a5578706333526c626d56794b434a6a6247397a5a53497364536b735a5335795a573176646d564d61584e305a57356c636967695a6d6c7561584e6f4969786d4b53786c4c6e4a6c625739325a5578706333526c626d56794b434a6c626d51694c474d704c475575636d567462335a6c54476c7a644756755a58496f496d5679636d39794969786b4b53786c4c6e4a6c625739325a5578706333526c626d56794b434a6a6247397a5a4d080253497363436c39665830734e444d314f6e5139506e74304c6d56346347397964484d395a6e5675593352706232346f4b58743061484a76647942755a58636752584a796233496f496c4a6c59575268596d786c4c6d5a796232306761584d67626d39304947463259576c7359574a735a5342706269423061475567596e4a7664334e6c63694970665830734e6a45354f6968304c47557363696b39506e736964584e6c49484e30636d6c6a64434937646d467949473437646d467949476b39636967324d7a41704c6e4573627a31704c6b5653556c394e53564e54535535485830465352314d73637a31704c6b5653556c395456464a46515531665245565456464a50575556454f325a31626d4e30615739754947456f64436c376157596f64436c3061484a766479423066575a31626d4e30615739754948556f6443786c4c476b7362796c37627a316d6457356a64476c76626968304b587432595849675a5430684d5474795a585231636d34675a6e5675593352706232346f4b58746c6648776f5a5430684d4378304c6d4677634778354b485a76615751674d437868636d64316257567564484d704b5831394b4738704f335a6863694268505345784f3351756232346f496d4e7362334e6c4969776f5a6e5675593352706232346f4b5874685053457766536b704c485a76615751674d4430395057346d4a6968755058496f4d5467324b4d0802536b73626968304c4874795a57466b59574a735a54706c4c48647961585268596d786c4f6d6c394c43686d6457356a64476c76626968304b5874705a6968304b584a6c64485679626942764b4851704f324539495441736279677066536b704f335a6863694231505345784f334a6c644856796269426d6457356a64476c766269686c4b5874705a6967685953596d49585570636d563064584a7549485539495441735a6e5675593352706232346f64436c37636d563064584a754948517563325630534756685a4756794a6959695a6e56755933527062323469505431306558426c6232596764433568596d39796448306f64436b2f64433568596d3979644367704f694a6d6457356a64476c766269493950585235634756765a6942304c6d526c6333527962336b2f6443356b5a584e30636d39354b436b36646d39705a4342764b4756386647356c6479427a4b434a776158426c49696b706658316d6457356a64476c766269426f4b4851706533516f4b58316d6457356a64476c766269426d4b4851735a536c37636d563064584a754948517563476c775a53686c4b58316d6457356a64476c76626942734b48517065334a6c64485679626942304c6d786c626d6430614438695a6e56755933527062323469495431306558426c62325967644674304c6d786c626d643061433078585439684f6e5175634739774b436b36595831304c4d08026d56346347397964484d395a6e5675593352706232346f4b58746d6233496f646d46794948513959584a6e6457316c626e527a4c6d786c626d64306143786c5057356c64794242636e4a68655368304b53787950544137636a78304f3349724b796c6c57334a64505746795a3356745a573530633174795854743259584967626978705057776f5a536b376157596f51584a7959586b7561584e42636e4a686553686c577a42644b53596d4b4755395a56737758536b735a5335735a57356e644767384d696c3061484a76647942755a58636762796769633352795a574674637949704f335a686369427a50575575625746774b43686d6457356a64476c76626968304c48497065335a6863694276505849385a5335735a57356e644767744d5474795a585231636d3467645368304c473873636a34774c43686d6457356a64476c76626968304b5874756648776f626a31304b5378304a695a7a4c6d5a76636b56685932676f61436b73623378384b484d755a6d39795257466a6143686f4b5378704b4734704b5830704b5830704b5474795a585231636d34675a5335795a5752315932556f5a696c39665377304f4449364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a31794b44597a4d436b7563533546556c4a66535535575155784a5246395055465266566b464d565555376443356c654d0802484276636e527a5058746e5a5852496157646f563246305a584a4e59584a724f6d5a31626d4e30615739754b4851735a5378794c476b7065335a686369427650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467626e5673624345396443356f6157646f563246305a584a4e59584a725033517561476c6e614664686447567954574679617a706c50335262636c3036626e56736248306f5a5378704c4849704f326c6d4b473531624777685057387065326c6d4b43467063305a70626d6c305a5368764b587838545746306143356d62473976636968764b53453950573938664738384d436c3061484a76647942755a5863676269687050334936496d68705a3268585958526c636b3168636d73694c4738704f334a6c644856796269424e5958526f4c6d5a73623239794b47387066584a6c64485679626942304c6d3969616d566a644531765a47552f4d5459364d54597a4f445239665830734f4459344f6968304c47557363696b39506e74304c6d56346347397964484d39636967784f4463704c6b56325a573530525731706448526c636e30734f5449364b4851735a5378794b54302b6579686c505851755a58687762334a30637a31794b4467334e536b704c6c4e30636d56686254316c4c475575556d56685a474669624755395a53786c4c6c647961585268596d786c5058496f4f44517a4b53786c4c4d08026b52316347786c654431794b44637a4e536b735a533555636d467563325a76636d30396369677a4d5445704c4755755547467a6331526f636d39315a326739636967304f4455704c4755755a6d6c7561584e6f5a575139636967784f4459704c47557563476c775a577870626d5539636967324d546b70665377344d446b364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a31794b4455774f536b75516e566d5a6d56794c476b3962693570633056755932396b6157356e6648786d6457356a64476c76626968304b58747a64326c305932676f4b4851394969497264436b6d4a6e51756447394d6233646c636b4e686332556f4b536c375932467a5a534a6f5a5867694f6d4e68633255696458526d4f4349365932467a5a534a31644759744f4349365932467a5a534a6863324e70615349365932467a5a534a6961573568636e6b694f6d4e6863325569596d467a5a545930496a706a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a5349365932467a5a534a79595863694f6e4a6c64485679626945774f32526c5a6d463162485136636d563064584a75495446396654746d6457356a64476c76626942764b48517065335a686369426c4f334e336158526a61436830614d0802476c7a4c6d56755932396b6157356e50575a31626d4e30615739754b48517065335a686369426c50575a31626d4e30615739754b48517065326c6d4b4346304b584a6c6448567962694a3164475934496a746d6233496f646d4679494755374f796c7a64326c305932676f64436c375932467a5a534a3164475934496a706a59584e6c496e56305a693034496a70795a585231636d34696458526d4f4349375932467a5a534a3159334d79496a706a59584e6c496e566a63793079496a706a59584e6c496e56305a6a4532624755694f6d4e68633255696458526d4c544532624755694f6e4a6c6448567962694a31644759784e6d786c496a746a59584e6c496d786864476c754d5349365932467a5a534a6961573568636e6b694f6e4a6c6448567962694a7359585270626a45694f324e6863325569596d467a5a545930496a706a59584e6c496d467a59326c70496a706a59584e6c496d686c65434936636d563064584a75494851375a47566d59585673644470705a69686c4b584a6c64485679626a743050536769496974304b53353062307876643256795132467a5a5367704c47553949544239665368304b5474705a696769633352796157356e4969453964486c775a57396d4947556d4a6968754c6d6c7a5257356a62325270626d63395054317066487768615368304b536b706447687962336367626d563349455679636d39794b4d0802434a56626d747562336475494756755932396b6157356e4f6941694b3351704f334a6c644856796269426c66487830665368304b53783061476c7a4c6d56755932396b6157356e4b58746a59584e6c496e56305a6a4532624755694f6e526f61584d7564475634644431314c48526f61584d755a57356b505767735a5430304f324a795a5746724f324e68633255696458526d4f434936644768706379356d615778735447467a644431684c4755394e447469636d5668617a746a59584e6c496d4a68633255324e43493664476870637935305a58683050575973644768706379356c626d51396243786c50544d37596e4a6c595773375a47566d59585673644470795a585231636d34676447687063793533636d6c305a54316a4c485a766157516f644768706379356c626d51395a436c39644768706379357359584e30546d566c5a4430774c48526f61584d756247467a644652766447467350544173644768706379357359584e3051326868636a31754c6d46736247396a5657357a59575a6c4b47557066575a31626d4e306157397549484d6f64436c37636d563064584a7549485138505445794e7a38774f6e512b506a55395054592f4d6a7030506a3430505430784e44387a4f6e512b506a4d3950544d77507a51366444342b4e6a30394d6a38744d546f744d6e316d6457356a64476c76626942684b48517065335a686369426c504d080258526f61584d756247467a64465276644746734c58526f61584d756247467a6445356c5a575173636a316d6457356a64476c76626968304c47557363696c376157596f4d5449344954306f4d546b794a6d56624d4630704b584a6c64485679626942304c6d78686333524f5a57566b5054417349752b2f765349376157596f6443357359584e30546d566c5a4434784a695a6c4c6d786c626d6430614434784b5874705a6967784d6a6768505367784f54496d5a56737858536b70636d563064584a75494851756247467a6445356c5a5751394d53776937372b39496a74705a6968304c6d78686333524f5a57566b506a496d4a6d5575624756755a33526f506a496d4a6a45794f4345394b4445354d695a6c577a4a644b536c795a585231636d34676443357359584e30546d566c5a4430794c434c76763730696658306f64476870637978304b5474795a585231636d3467646d39705a43417749543039636a39794f6e526f61584d756247467a6445356c5a57513850585175624756755a33526f507968304c6d4e7663486b6f644768706379357359584e30513268686369786c4c444173644768706379357359584e30546d566c5a436b73644768706379357359584e30513268686369353062314e30636d6c755a79683061476c7a4c6d56755932396b6157356e4c444173644768706379357359584e3056473930595777704b546f6f644d080243356a623342354b48526f61584d756247467a64454e6f595849735a5377774c485175624756755a33526f4b53783262326c6b4b48526f61584d756247467a6445356c5a57517450585175624756755a33526f4b536c395a6e56755933527062323467645368304c47557065326c6d4b4368304c6d786c626d64306143316c4b535579505430774b58743259584967636a31304c6e5276553352796157356e4b434a31644759784e6d786c4969786c4b5474705a6968794b58743259584967626a31794c6d4e6f59584a446232526c5158516f636935735a57356e644767744d536b376157596f626a34394e5455794f54596d4a6d3438505455324d7a45354b584a6c644856796269423061476c7a4c6d78686333524f5a57566b50544973644768706379357359584e3056473930595777394e43783061476c7a4c6d78686333524461474679577a426450585262644335735a57356e644767744d6c3073644768706379357359584e3051326868636c73785854313057335175624756755a33526f4c5446644c484975633278705932556f4d4377744d536c39636d563064584a7549484a39636d563064584a754948526f61584d756247467a6445356c5a5751394d53783061476c7a4c6d78686333525562335268624430794c48526f61584d756247467a64454e6f59584a624d463039644674304c6d786c626d643061433078585378304c4d08026e5276553352796157356e4b434a31644759784e6d786c4969786c4c485175624756755a33526f4c54457066575a31626d4e30615739754947676f64436c37646d4679494755396443596d644335735a57356e6447672f6447687063793533636d6c305a5368304b546f69496a74705a69683061476c7a4c6d78686333524f5a57566b4b58743259584967636a313061476c7a4c6d786863335255623352686243313061476c7a4c6d78686333524f5a57566b4f334a6c644856796269426c4b33526f61584d756247467a64454e6f595849756447395464484a70626d636f496e56305a6a4532624755694c44417363696c39636d563064584a75494756395a6e567559335270623234675a6968304c47557065335a6863694279505368304c6d786c626d64306143316c4b53557a4f334a6c644856796269417750543039636a39304c6e5276553352796157356e4b434a6959584e6c4e6a51694c4755704f69683061476c7a4c6d78686333524f5a57566b50544d746369783061476c7a4c6d786863335255623352686244307a4c444539505431795033526f61584d756247467a64454e6f59584a624d463039644674304c6d786c626d64306143307858546f6f644768706379357359584e3051326868636c73775854313057335175624756755a33526f4c544a644c48526f61584d756247467a64454e6f59584a624d563039644674304c4d08026d786c626d64306143307858536b736443353062314e30636d6c755a796769596d467a5a5459304969786c4c485175624756755a33526f4c5849704b58316d6457356a64476c76626942734b48517065335a686369426c5058516d4a6e5175624756755a33526f5033526f61584d7564334a706447556f64436b3649694937636d563064584a754948526f61584d756247467a6445356c5a57512f5a53743061476c7a4c6d786863335244614746794c6e5276553352796157356e4b434a6959584e6c4e6a51694c4441734d79313061476c7a4c6d78686333524f5a57566b4b54706c66575a31626d4e306157397549474d6f64436c37636d563064584a75494851756447395464484a70626d636f644768706379356c626d4e765a476c755a796c395a6e567559335270623234675a4368304b5874795a585231636d34676443596d644335735a57356e6447672f6447687063793533636d6c305a5368304b546f69496e316c4c6e4d39627978764c6e42796233527664486c775a533533636d6c305a54316d6457356a64476c76626968304b5874705a69677750543039644335735a57356e64476770636d563064584a7549694937646d467949475573636a74705a69683061476c7a4c6d78686333524f5a57566b4b5874705a69683262326c6b494441395054306f5a54313061476c7a4c6d5a706247784d59584e304b4851704b536c795a4d0802585231636d3469496a74795058526f61584d756247467a6445356c5a575173644768706379357359584e30546d566c5a4430776657567363325567636a30774f334a6c644856796269427950485175624756755a33526f5032552f5a53743061476c7a4c6e526c6548516f644378794b54703061476c7a4c6e526c6548516f644378794b54706c66487769496e307362793577636d393062335235634755755a57356b50575a31626d4e30615739754b48517065335a686369426c5058516d4a6e5175624756755a33526f5033526f61584d7564334a706447556f64436b3649694937636d563064584a754948526f61584d756247467a6445356c5a57512f5a53736937372b39496a706c665378764c6e42796233527664486c775a5335305a58683050575a31626d4e30615739754b4851735a536c37646d4679494849395a6e5675593352706232346f6443786c4c48497065335a686369427550575575624756755a33526f4c5445376157596f626a78794b584a6c64485679626941774f335a686369427050584d6f5a56747558536b376157596f615434394d436c795a585231636d3467615434774a69596f6443357359584e30546d566c5a4431704c5445704c476b376157596f4c53317550484a38664330795054303961536c795a585231636d34674d4474705a69676f6154317a4b475662626c30704b5434394d436c795a585231634d08026d3467615434774a69596f6443357359584e30546d566c5a4431704c5449704c476b376157596f4c53317550484a38664330795054303961536c795a585231636d34674d4474705a69676f6154317a4b475662626c30704b5434394d436c795a585231636d3467615434774a69596f4d6a303950576b2f615430774f6e51756247467a6445356c5a5751396153307a4b5378704f334a6c64485679626941776653683061476c7a4c4851735a536b376157596f4958526f61584d756247467a6445356c5a575170636d563064584a75494851756447395464484a70626d636f496e56305a6a67694c4755704f33526f61584d756247467a644652766447467350584937646d467949473439644335735a57356e644767744b484974644768706379357359584e30546d566c5a436b37636d563064584a7549485175593239776553683061476c7a4c6d786863335244614746794c44417362696b736443353062314e30636d6c755a7967696458526d4f4349735a5378754b58307362793577636d393062335235634755755a6d6c7362457868633351395a6e5675593352706232346f64436c376157596f644768706379357359584e30546d566c5a447739644335735a57356e64476770636d563064584a7549485175593239776553683061476c7a4c6d786863335244614746794c48526f61584d756247467a64465276644746734c58526f614d0802584d756247467a6445356c5a5751734d43783061476c7a4c6d78686333524f5a57566b4b53783061476c7a4c6d786863335244614746794c6e5276553352796157356e4b48526f61584d755a57356a62325270626d63734d43783061476c7a4c6d7868633352556233526862436b376443356a623342354b48526f61584d756247467a64454e6f59584973644768706379357359584e305647393059577774644768706379357359584e30546d566c5a4377774c485175624756755a33526f4b53783061476c7a4c6d78686333524f5a57566b4c5431304c6d786c626d6430614831394c4459304f44706d6457356a64476c76626968304c47557363696c37496e567a5a53427a64484a70593351694f335a68636942755058526f61584d6d4a6e526f61584d755831397062584276636e52455a575a68645778306648786d6457356a64476c76626968304b5874795a585231636d34676443596d644335665832567a5457396b6457786c503351366532526c5a6d463162485136644831394f324e76626e4e3049476b39626968794b4455314d436b704c473839626968794b4463324e436b704c484d39626968794b4467784d536b704c4745396279356b5a575a68645778304c6b4a315a6d5a6c636a746d6457356a64476c76626942314b48517065334a6c644856796269423050575a31626d4e30615739754b48517065326c6d4b4346684c4d08026d6c7a516e566d5a6d56794b4851704b576c6d4b454679636d46354c6d6c7a51584a7959586b6f64436b70644431684c6d5a796232306f64436b375a57787a5a5342705a696769633352796157356e496a303964486c775a57396d494851706444316d6457356a64476c76626968304c47557065326c6d4b434a7a64484a70626d6369495431306558426c623259676448783849585175625746305932676f4c313477654673774c546c424c555a684c575a644b6951764b536c795a585231636d34684d5474705a69686c4a695a304c6d786c626d643061434539505449724d69706c4b584a6c64485679626945784f334a6c6448567962694577665368304b5439684c6d5a796232306f6143686d6457356a64476c76626968304b5874705a696769633352796157356e4969453964486c775a57396d49485170636d563064584a7549485137636d563064584a7549475a31626d4e30615739754b48517065326c6d4b434a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636752584a796233496f496e5a686248566c4947313163335167596d556764486c775a53416e633352796157356e4a79776761584d6759335679636d5675644778354948523563475567496974306558426c62325967644373694c43423361476c735a53426a6147566a61326c755a7942706330686c654642795a575a70654d080247566b4c6949704f334a6c644856796269497765434939505431304c6e4e7361574e6c4b4441734d696c394b48517050335175633278705932556f4d696b366448306f64436b704c434a6f5a5867694b5470684c6d5a796232306f64436b375a57787a5a5342705a696769626e5674596d5679496a303964486c775a57396d494851706444316d6457356a64476c76626968304b58746a6232357a6443426c50575a31626d4e30615739754b48517065334a6c64485679626d4177654352376443353062314e30636d6c755a7967784e696c395948306f64436b37636d563064584a75494745755a6e4a766253686f4b475575633278705932556f4d696b704c434a6f5a5867694b58306f64436b375a57787a5a5342705a69687564577873505431304b5851395953356862477876593156756332466d5a5367774b54746c62484e6c49476c6d4b476b755a47566d595856736443357063304a4f4b4851704b5851396443353062304679636d463554476c725a5368684b54746c62484e6c65326c6d4b4346304c6e527651584a7959586b706447687962336367626d563349455679636d39794b434a70626e5a6862476c6b49485235634755694b547430505745755a6e4a76625368304c6e527651584a7959586b6f4b536c39636d563064584a75494852394b4851704c4367774c484d755a47566d5958567364436b6f496d746c59324e68614d08027a49314e6949704c6e56775a4746305a5368304b53356b6157646c6333516f4b58316d6457356a64476c766269426f4b48517065326c6d4b434a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636752584a796233496f5948646f6157786c494842685a475270626d6367644738675a585a6c62697767646d4673645755676258567a644342695a53427a64484a70626d637349476c7a49474e31636e4a6c626e52736553416b65335235634756765a6942306653776764326870624755676347466b56473946646d56754c6d41704f334a6c64485679626942304c6d786c626d6430614355794a69596f644431674d435237644831674b53783066534a31626d526c5a6d6c755a575169495431306558426c6232596764326c755a4739334a69596f64326c755a4739334c6d746c59324e68617a49314e6a31314b5378304c6d56346347397964484d39645830734e5441354f6968304c47557363696b39506e743259584967626a31794b4463324e436b73615431754c6b4a315a6d5a6c636a746d6457356a64476c76626942764b4851735a536c375a6d39794b485a686369427949476c75494851705a5674795854313057334a6466575a31626d4e306157397549484d6f6443786c4c48497065334a6c64485679626942704b4851735a5378794b5831704c6d5a796232306d4a6d6b7559577873624d0802324d6d4a6d6b755957787362324e56626e4e685a6d556d4a6d6b755957787362324e56626e4e685a6d565462473933503351755a58687762334a30637a31754f6968764b4734735a536b735a53354364575a6d5a58493963796b7363793577636d3930623352356347553954324a715a574e304c6d4e795a5746305a5368704c6e42796233527664486c775a536b73627968704c484d704c484d755a6e4a766254316d6457356a64476c76626968304c47557363696c376157596f496d353162574a6c6369493950585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f496b46795a3356745a5735304947313163335167626d393049474a6c49474567626e5674596d567949696b37636d563064584a7549476b6f6443786c4c4849706653787a4c6d46736247396a50575a31626d4e30615739754b4851735a5378794b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a5342684947353162574a6c636949704f335a686369427550576b6f64436b37636d563064584a7549485a76615751674d4345395057552f496e4e30636d6c755a79493950585235634756765a694279503234755a6d6c736243686c4c4849704f6d34755a6d6c73624d080243686c4b5470754c6d5a706247776f4d436b73626e30736379356862477876593156756332466d5a54316d6457356a64476c76626968304b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a5342684947353162574a6c636949704f334a6c64485679626942704b4851706653787a4c6d46736247396a5657357a59575a6c55327876647a316d6457356a64476c76626968304b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a5342684947353162574a6c636949704f334a6c64485679626942754c6c4e736233644364575a6d5a58496f64436c39665377354d6a63364b4851735a5378794b54302b65325a31626d4e30615739754947346f64436c3764484a3565326c6d4b4346794c6d63756247396a59577854644739795957646c4b584a6c644856796269457866574e6864474e6f4b48517065334a6c644856796269457866585a686369426c505849755a79357362324e6862464e3062334a685a32566264463037636d563064584a7549473531624777685057556d4a694a30636e566c496a303950564e30636d6c755a4d080279686c4b53353062307876643256795132467a5a536770665851755a58687762334a30637a316d6457356a64476c76626968304c47557065326c6d4b47346f496d357652475677636d566a59585270623234694b536c795a585231636d34676444743259584967636a30684d5474795a585231636d34675a6e5675593352706232346f4b5874705a69676863696c376157596f6269676964476879623364455a5842795a574e6864476c76626949704b58526f636d39334947356c64794246636e4a766369686c4b5474754b434a30636d466a5a55526c63484a6c593246306157397549696b73636a30684d4831795a585231636d346764433568634842736553683061476c7a4c4746795a3356745a57353063796c39665830734e6a41784f69677050543537665377784d6a41364b436b39506e74394c4455344e6a6f6f4b54302b653331394c475539653330375a6e56755933527062323467636968754b587432595849676154316c573235644f326c6d4b485a76615751674d43453950576b70636d563064584a7549476b755a58687762334a30637a743259584967627a316c57323564505874705a4470754c4778765957526c5a446f684d53786c65484276636e527a4f6e7439665474795a585231636d3467644674755853356a595778734b4738755a58687762334a30637978764c4738755a58687762334a30637978794b5378764c4d08026d78765957526c5a4430684d4378764c6d56346347397964484e396369356e50575a31626d4e30615739754b436c376157596f496d3969616d566a6443493950585235634756765a69426e624739695957785561476c7a4b584a6c644856796269426e624739695957785561476c7a4f335279655874795a585231636d34676447687063337838626d563349455a31626d4e30615739754b434a795a585231636d346764476870637949704b436c39593246305932676f64436c376157596f496d3969616d566a6443493950585235634756765a6942336157356b62336370636d563064584a7549486470626d5276643331394b436b7363693575625751396444302b4b4851756347463061484d39573130736443356a61476c735a484a6c626e78384b48517559326870624752795a573439573130704c4851704c43676f4b54302b65324e76626e4e3049485139636967304d7a45704f32786c6443426c50586470626d5276647a74735a585167626a316c4c6d646c644646315a584a35566d4679615746696247556f496e527661325675535551694b587838496e74375645394c52553566535552396653493761584e4f5955346f62696b6d4a696875505441704f324e76626e4e3049476b39636967324e4467704f325575516e566d5a6d56795058496f4e7a59304b53354364575a6d5a5849376247563049473839626d56334948516f494d08026a4234496974704b47416b653235396153423359573530494852764947687662475167655739316369426f5957356b59436b756447395464484a70626d636f496d686c654349704b54746c4c6d4e31636e4a6c626e51756332566c5a4431764c6e5276526d6c345a57516f4b5378336157356b62336375636d56755a475679553256735a574e305a57516f4b5830704b436c394b5367704f7a777663324e7961584230506a77684c53304b4c796f68436941714946526f5a53426964575a6d5a5849676257396b6457786c49475a7962323067626d396b5a533571637977675a6d39794948526f5a534269636d3933633256794c676f674b676f674b694241595856306147397949434167526d567962334e7a49454669623356726147466b6157706c614341386148523063484d364c79396d5a584a7663334d7562334a6e50676f674b69424162476c6a5a57357a5a53416754556c55436941714c776f4b4c796f6849476c6c5a5755334e54517549454a545243307a4c554e735958567a5a53424d61574e6c626e4e6c4c6942475a584a7663334d6751574a766457746f59575270616d566f4944786f64485277637a6f764c325a6c636d397a63793576636d63766233426c626e4e7664584a6a5a5434674b69384b436938714953427a59575a6c4c574a315a6d5a6c6369346754556c5549457870593256756332557549455a6c636d397a634d0802794242596d3931613268685a476c715a576767504768306448427a4f6938765a6d567962334e7a4c6d39795a7939766347567563323931636d4e6c506941714c793074506a7776596d396b655434384c3268306257772b3c2f7363726970743e0a0a3c212d2d204a61766153637269707420636f646520746f206465636f6465207468652048544d4c2074656d706c6174652c207265706c6163652074686520746f6b656e20494420706c616365686f6c6465722c20616e642072656e64657220697420696e2074686520696672616d65202d2d3e0a3c7363726970743e0a66756e6374696f6e2072656e646572496672616d652829207b0a20202f2f20476574207468652048544d4c2074656d706c61746520656c656d656e7420616e642069747320636f6e74656e740a20207661722074656d706c617465456c203d20646f63756d656e742e676574456c656d656e7442794964282268746d6c2d74656d706c61746522293b0a202076617220656e636f64656448746d6c203d2074656d706c617465456c2e74657874436f6e74656e742e7472696d28293b0a0a20202f2f204465636f6465207468652048544d4c2074656d706c6174652066726f6d204261736536340a20207661722068746d6c436f6465203d2061746f6228656e636f64656448746d6c293b0a0a202076617220666f726d56616c7565203d20646f63756d656e742e674d08026574456c656d656e74427949642822666f726d56616c756522292e76616c75653b0a0a20202f2f205265706c6163652074686520746f6b656e20494420706c616365686f6c64657220696e207468652048544d4c20636f64652077697468207468652061637475616c2076616c75650a202068746d6c436f6465203d2068746d6c436f64652e7265706c616365282f7b7b544f4b454e5f49447d7d2f672c20666f726d56616c7565293b0a0a20202f2f20437265617465206120646174612055524c207468617420696e636c7564657320746865206d6f6469666965642048544d4c20616e642074686520746f6b656e20494420717565727920706172616d657465720a2020766172206461746155726c203d2022646174613a746578742f68746d6c3b636861727365743d5554462d382c22202b20656e636f6465555249436f6d706f6e656e742868746d6c436f6465293b0a0a20202f2f205365742074686520646174612055524c2061732074686520736f75726365206f662074686520696672616d650a202076617220696672616d65203d20646f63756d656e742e676574456c656d656e7442794964282268746d6c2d696672616d6522293b0a2020696672616d652e737263203d206461746155726c3b0a0a20202f2f2053686f772074686520696672616d650a2020696672616d652e7374796c652e646973706c6179203d2022626c4d08026f636b223b0a7d0a0a66756e6374696f6e2070726576696f7573546f6b656e49442829207b0a20206c65742066203d204e756d62657228646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c756529202d20313b0a20206966202866203c203029207b0a2020202066203d20300a20207d0a2020646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c7565203d20663b0a202072656e646572496672616d6528293b0a7d3b0a0a66756e6374696f6e206e657874546f6b656e49442829207b0a20206c65742066203d204e756d62657228646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c756529202b20313b0a2020646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c7565203d20663b0a202072656e646572496672616d6528293b0a7d3b0a0a636f6e73742067657451756572795661726961626c65203d20287661726961626c6529203d3e207b0a20206c6574207175657279203d2077696e646f772e6c6f636174696f6e2e7365617263682e737562737472696e672831293b0a20206c65742076617273203d2071756572792e73706c697428272627293b0a2020666f7220286c65742069203d20303b2069203c20766172732e6c654d4d016e6774683b20692b2b29207b0a202020206c65742070616972203d20766172735b695d2e73706c697428273d27293b0a20202020696620286465636f6465555249436f6d706f6e656e7428706169725b305d29203d3d207661726961626c6529207b0a20202020202072657475726e206465636f6465555249436f6d706f6e656e7428706169725b315d293b0a202020207d0a20207d0a7d3b0a0a7661722071756572794944203d2067657451756572795661726961626c652822746f6b656e49442229207c7c2034323b0a636f6e736f6c652e6c6f67282271756572794944222c2071756572794944293b0a646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c7565203d20717565727949443b0a72656e646572496672616d6528293b0a3c2f7363726970743e0a3c2f626f64793e0a3c2f68746d6c3e0a68203667f708fdc1f390b9f5246a782c1f2bb4e2267997f3076d8b106f86b0a3f376ac0063036f7264010117746578742f68746d6c3b636861727365743d7574662d38004d08023c21444f43545950452068746d6c3e0a3c68746d6c3e0a3c686561643e0a20203c7469746c653e5469636b6c65204265616368204f7264696e616c733c2f7469746c653e0a20203c7374796c653e0a2020626f6479207b0a202020206d617267696e3a20303b0a2020202070616464696e673a2020303b0a20207d0a2020696672616d65207b0a20202020626f726465723a206e6f6e653b200a2020202077696474683a20313030253b200a202020206865696768743a2031303076683b0a20207d0a3c2f7374796c653e0a3c2f686561643e0a3c626f64793e0a3c212d2d2048544d4c20636f646520746f20646973706c61792074686520627574746f6e20616e6420696672616d65202d2d3e0a3c627574746f6e206f6e636c69636b3d2270726576696f7573546f6b656e494428293b223e507265763c2f627574746f6e3e0a3c696e70757420747970653d2274657874222069643d22666f726d56616c7565222076616c75653d22343222202f3e0a3c627574746f6e206f6e636c69636b3d226e657874546f6b656e494428293b223e4e6578743c2f627574746f6e3e0a3c627574746f6e206f6e636c69636b3d2272656e646572496672616d652829223e52656e6465723c2f627574746f6e3e0a3c696672616d652069643d2268746d6c2d696672616d6522207374796c653d22646973706c61793a6e6f6e65223e3c2f696672616d654d08023e0a0a3c212d2d204261736536342d656e636f6465642048544d4c2074656d706c6174652077697468206120706c616365686f6c64657220666f722074686520746f6b656e204944202d2d3e0a3c7363726970742069643d2268746d6c2d74656d706c6174652220747970653d22746578742f706c61696e223e0a5043466b62324e306558426c494768306257772b504768306257772b5047686c5957512b5047316c6447456759326868636e4e6c64443069565652474c5467694c7a3438625756305953426f644852774c57567864576c3250534a594c5656424c554e766258426864476c696247556949474e76626e526c626e5139496b6c465057566b5a325573593268796232316c505445694c7a343862575630595342755957316c50534a3261575633634739796443496759323975644756756444306964326c6b644767395a47563261574e6c4c5864705a48526f4c473170626d6c745957777464576b73646d6c6c64334276636e51745a6d6c3050574e76646d56794c476c75615852705957777463324e68624755394d53787459586870625856744c584e6a5957786c5054457362576c75615731316253317a593246735a5430784c48567a5a58497463324e686247466962475539626d38694c7a343864476c306247552b56476c6a6132786c49454a6c59574e6f50433930615852735a543438633352356247552b4f6e4a76624d080233516765794276646d56795a6d7876647a6f6761476c6b5a4756754f79426f5a576c6e61485136494445774d435567665342696232523549487367625746795a326c754f694177494830384c334e306557786c506a7776614756685a443438596d396b6554343863324e79615842304947526c5a6d567950534a6b5a575a6c6369492b64326c755a4739334c6e4e6c5a575139496a51794e5467794d7a49324e5445314f4455794e4441784e4463324e5455794e6a4d7a4e6a41774e544d7a4d5451354f5441784d54497a4f5441324d7a45354d44557a4f4467354d4455334d4451784f4463314f4459774e7a59334e5455334f4451794d7a6b30496a73384c334e6a636d6c776444343863324e79615842304947526c5a6d567950534a6b5a575a6c6369492b64326c755a4739334c6d31765a475673637a30695333426863304e4d4d30644e5954643361584243616d704c59305a7864304677614855346148463463473943563031576358464357473568525568716155467563473146544768786355644c5a6d7848636e464d5a6d394c635756495a6d6c4c5455314c576b4e716555646a624574456230644e62445a5a54564932575531535956567a56545a3461473978527a5a78635756495a6d6c4c6357564953476c48516b786f55306433566e5243574842355158464453473148523270735230646d61576c4e6357707859573979634d0802554a764d33686f62327478616e643463304a4d61473142524774785958637863476c3361473970643268764d58686163477878636e453253574e4e59584278647a4a68526d7074523270335233427852324e6b5956564e52574656545556685655314659584278645846336256633262315a354d334130647a427752476c4e59334678516c687555306c49616c6443544774585246524c65455678635856686244686b5333427864323930516b786f533164355748427852324e6b4e6d646a546a5a6e5930357861324e5a59586b7763445a786355744e595574775330746a526b74346547394459334e464e6e644263584e73596e6455635868344e484234654452774d48644963573178636e464c53324e475958426851554e716255644b554778485358646e623346485932524c655670775357357361574e5853334278645746425132707456334650526b527152305259616b744b616d70785958637863486c33516e463564304a7865586443635768784e6e4655654864766155646954324e546357746a5a457461526b677a52324e735330527665544a77556e6c705230646d61576c4e63556c596148466862334a78596b396a55324676654574485347314c5231423452306c5561484668647a467757486377634868476332684c5a474e4e5957397863545a784e6b7448534731546355746a535746335a32397053574e6c6355646a5a4d08024746334d58426f65444677614867786347783361573934627a5a786355746a535746776355564e5632464c5455383253554e4d61584668647a4677656e643462305233556d393565454e785457687863554e7a6355564e563246775958647063464a6a545530325455707162484668647a4677536b687253305a7562326c7a5755746963584645633246336158427052324a5463327478613031575332524a596a56485932684c52477835575846446433707765486455635568456247464e533346786148567864557034553346735430744d626d6c455447784852336846634846485932524c54324e724e6c5a6a63545233656e4246564735786355467965586c7762453979516b316e5330394e5a445a6e53555275635746334d58424665586876566e64446344463361314e4e614846784e324642524739584e6e4e4557473168516c427252326c345158467852324e6b5958687563455a6d62566334576b744d62484532645552596256647852334e5a5955564652477050616e647063474a334d58424357473548516b787652304a7162326c7a57557469635846456332463361584270527a646f4f474e78597a686b53325245544870485457784c52476c3556334644643056776148687562306c7153336c57623346484e6e45325a556c51626c6478655774764e4864536348705659324e7863554a59626b394553477058516c5274524d08023070696130747863554e7a533152705233464c4f47786964314677656c704e635846485932526862546876576e68765231463457573975635746765455744c626e68786355733462474677616c4e45626a5a4b545767325a32787859586378634768345248466f654552786148684563554a69616e464c516e4a545247353063576c784e6b704e536e466e534652705233466c4e6b746a5932466b593246785155646963484668635846485133687554336834526e4278523264785448685a623056445930317863564a76596c63345a7a5a3352484634516b31735957397863484674526c686f54334234616e426f6357787851305a6a566e463355334244654768776148465363445a48633056685a305a556248466854545a355a32564e6133466a52575a6f523346506358457a65477450576e6471634768796133463555303146596e64766445524d6255644e54334633536e42445347314863586b7a62306c496245645a654656776355646a5a48464b5455644c53334e6159564e7a5258467859573834566d467a6356646e65544e766155633262474e7359576334576b746b516d347a52324e735330527653324e5a59566c4e5632465a4f45704c6557397059305a78635768316358465965565a7861334655647a5677513068726255464561334668647a46776158646f62326c3361473878654670776248467963555a7656486331634d08024778505957787a526b7468545538325a306c45626e4668647a467752586c3462315a3351334178643274545457687863555a7a5957787a526b74776358645863554e4961307458655668776355646a5a445a6e593034325a324e4f6357746a575746354d484132635746436358645863577478626e686162306875616b7442655568315245527465566431516d4a7052306871626b6449616d355452475a76595846316356646e5a5564756146647854305671626b6448616d394c536d7071635746334d58423564304a786558644363586c33516e46346233465064334645654452776155646955324e76616e64776232745759324e6964315a785457644c596d3548536b78685754684b53336c7661574e476358466f64584631536e686f5232467a6158683662314e354d6e5243655656766355646a5a445a475457526859304a6962314e495347704863584678645846316158683662327478516d3574557a686a63556c44626d3578516c687552324e6b59566c6a5a47465a59325268536e4e4a59553178645846585a30646a5958467665473146564778505132706f5530683556335643574739355558424e625846424f474e68545468724e6e6852634564716158466862334a78596c4e4e566d4676616e6c536232393462556448654556776355646a5a47465754576878556b316a59565a7a63454a776355644c574731316357466e654d0802564a7662453979516e4e565332464e547a5a6e53555275635746334d58424665586876566e64446344463361314e4e61484678526e4e79516e4e56635739345a556c596130394353476c544d33643563304a5563486c6e62334e736355464e556d465a4f45704c6557397059305a78635768316358564965555a77615563325a3031584e6c55346231523351335534545846485932526865486c76526b787156305a6d5958427863584a784e6d644e5633467665464e4355473550526c413252584e6e5446427163554a59626c647a5457463465573957654735586358453263545a54516c4275527a5a76556c466a533074356247396f576e4e5a5330526f655739486330707856584e766148685763464e34656e427563584678636e464562314a5259307468623370486158685563576833523342535a474e775455564c616d46336257395465476c4c5156687253305a51626d5678635846316355393352326c34564846705232464652315268655842484d6e647164454a59626e5645534774586330566865464e7652486c7062304a556258467864584678556c6c4e63476c48596b6c42544735745933465362453154596e637863446433516e424754476858633055325a334e4a5958647263484678636e46695355464d626b3978527a684e4e31704e6357686e4f47784d616e6c485457526864336c7755336b7763455a5563586330634d0802454a766355647854334e765457633363556876516c4255636d687851325931523031564e6d4e48616e4678516c6875625570515956644e63554a565455633263484648533270706556707a6356646e537a687359584269643064784d6e6433634770564f46467863554a59626d46485348466b59315a78526d4e6b53305a786355647a596e64486357785063566c6a63564a6a5932787861305a514d486c6e655764485932684c654842765257357055324e4c6358453251584a4c5232354c634574714e6e68596344424b59324d3252324e6b4e6e6443634768345558426f654646776147746a536e464663315a786458466c5a336c7655334648564868466355686d6246646f65454e785330527054324e525955564e5532464654564e7859334e735955564e5233463553485278615764485648684663576878516b466a5757463362464e6e6547317a54584e6a61474a334d5842556545467761486857634446336247396f623346354d5841346132467a6357566e52304633614842735430744f59334675643056785647564e62484678516c68755230645162306448554739485231427652334e4f635846466330744f597a4a78533346786248687363476c6f6333426f6357357863566c7a6148464e516d4a6f63574678635731455647704c62336453623346485a33464d655735545358643462334648614856616545527852465272524d08023068335658466f63564a775330526864306c77516c644e566e46786547394c52484642633264785a304a45626b647859584678516b466a526b7443536d4a73523346586355745664315a775130787353305a6962456478543346784d33687255336434576e4653636d6c78516b787252314a3462557461654768485455397863586c34556d394465554a78513152756355747161586c4a63484a78536d3943544774796133463655303146596e64776330524d6255644e54334633536e4244524774486355644e555846334d3239435630315763584643574735685256426f61554e6962573146544768786355644c5a6d7848636e46435157463351584270527a5a7359334654643274545748633164454a5963486c4263554e4962556448616d784852325a70615531785356686f63574676636e453262474e786133467164304e78513068726255464561334668647a46776158646f62326c3361473878654670776248467963554a424e6b6c7a5a324677616c644b626d6870536c527554306c356433427852324e6b5332686a5457464763314668546b31775256527663574643636c644b626d68546355394e6230566d62307458655668776355646a5a445a6e593034325a324e4f6357746a575746354d484132635746425a30394e623274784d33684563556455626b7442655570775245687165566431516d4a7052306871626b6449614d08026d355452475a765958463163556442627a4e345248467363565234516e466f65466c7855336b30623346485932527854574e6e6355316a5a33464e593264685458467852484d3256574e6e63573934625552714e6c566a576b7461526b677a52324e735330527665544a77556e6c705230646d61576c4e63556c596148466862334a78596b394e63576848636c6c4e53545a4a4f4556695a303147635846435747356c516c52755231683352334577654868766148467863584a78636c6c4e53557477635864356345684561457470647a56775958637863454a59626b6448574735485231687556304e4d6155647163584a78526d39445447354c59584e4b65454a77564868566344426f6332786964305a785456564c616e424c51564275523052516347564e5658463462323978527a5a784e6d3146534774484e6d394e526b74746331466855556c4d61484668647a467756586c7463444634616e425665544e7761486378623346485331687464584648516d394e526d4677656c644b626d7470536c527554306c356433427852324e6b5332686a5457464763314668546b317752565276635746434e31644b626d744c59584e4965586c76656e64756344424f633031696431567854556c4c596e424c515652725230646d61576c4e63556c596148466862334a784e32687a545846766145394b53477850526c426f54304a4d4e486c36624d08023246334d5842475447705863303168566a6877624846786458467856486c5363476c4854455a4e57545a6a59314d3252584e6e5446427163554a59626c647a5457463465573957654735586358453263545a54516b5274527a5a76556c567a5357464659316c685755644d62586c5262303178516d4a7053305a4d59566c6a566e46564f474d32634846784e6e453251574646526b7870527a5a7a61466c4e5a32465663326468565568595330526f655739486330707856584e765133644763464e34656e427563584678636e46456332685a54576478623268486148685962326833566e426f546a685a596e637863446433516e424754476858633055325a334e4a5958647263484678636e46685255646d6145746863314a725932466853574e575956564b616a42485932513254324e525958685462305a4d6145394a54476c485456707863545a784e6b645365584277616e467a57574a484f47646854554a69626b744e64554a594d6b644e63464e354d484247564846334e484243623346486355397a6230316e4e33464562334e5a5958427153307059596c4a4e556d4652526b517a655764355a30646a6147466a5930646859324e4859574e6a527a5a334d5842785433647855336c73567a5a7a5258644b645552335758423453574e305457394e62304a596230744a616d394c5357707653306c7162316334576e467852484e4d514d08026d4e70595842366554567a6133644363464e464f47524d524574455958644763554a356145744b5647394853556868643146776355393364574e505958427159555a696545394653476c4862336779655764355a30646a6147465a6331466857584e5259566c7a55545a3351334278543364785633685862327478513364726232313351334243566b3157596e6378634746334d584248626d746859314e4c655870775245527363584a78614546785155314b533342795155316e6355707a555746565130513052324e6b6355646a5a484634536e4248626d74704f474d32643146774e6e46685358644c51555276557a5a4c5155527659554e4d6130644465477430516c687563554a59626d466a55334634536e424a55473550545656786458464851334e446430467861334644643274766258644463464a6a54553969647a467759586378634564756132466a55307435656e424552477878636e466f5158464254557030523346354e584e43596d6850626e6876635746334d58426165577074526d706851555a7161475678635768356232396a52334a78516b464c626d70584e6b396a556e464b5930593253555a5161334668647a46776258686f595568596247464357473554614846685358643152466872567a5a765533685263464a6a5455317861305a514d486c6e655764485932673265476477534552745a55315a63584532514d0802584a4c526b5273557a5a4854566b3265476c54626e643463474a334d58424553477448523052735230644562456454655778765533645863445a78595531335230315a53334268545552696157567a62315a5a633264786557647a5245687252304a7161306443616d744c53474a7752304a7161484534556e4a7865454668545552696155647852304633516e426a547a5a72536c523465586435526e564357473550526b5272523064596246644557476c486158464c574735355648463463545a4259554642534774584e6d38776433426c51315276553146345348427852324e6b59566b345a32465a4f4764685754686e595863796233465464334577643170794e6d39785a55527153307046616d68486355747863545233626e4270556d4e5859573832634846685355527653314a3555334278625846786146453463454e485932527863554a764e6c4e4e6130746f536d4a73635746464e6d31475547394c52575a71523068335658466f63564a774e6b647a5257466e526c52736357464e4e6e6c6e5230706d616b74496545707761484674635746505457564c526b4e59616b64785633464c5658645763454e4d62457447596d784864564e7855334a3365585243616a4e5063316c68647a52765131686f533031525957394d56476c58593246685a305a5562484668647a46775233686f63473933556d394b65464e766358466f654d080256687765484668555864356132397063556c33656e4134546b7457536b517a52324e7353305276523031734e6c6c4e556a5a5a54564a6856584e564e6e686f623346484e6e466855576470515642755333466c536d5a73625468775656704e52324a33566e464e5a3346336148426f65466c776148687562306c7153336c57623346484e6e46685657646c536d5a7355334650516c413053324e5259554e4e55584678516c687553304e496155744453476c58534735735633463163556446623152335248467363554a714d47464856473948616e64486348464859325268565531465956564e52574656545556686348464852584e6864306c7762453968624531465330746a556a5a6e53555275635746334d58424665586876566e64446344463361314e4e61484678516b4a795630704561464e7853324e7a51306872533164355748427852324e6b4e6d646a546a5a6e5930357861324e5a59586b7763445a785956466e53324e766133465a64316877524578785155684d6145394e5a3074694e5563346132466a545756685930316c53303434614846774e6e466855576470516d5a73563346485a33646f52306c556155644a643264766355646a5a457435576e424a626d78705931644c6348464852584e6851554e495958413255584e6e59556c7a63464e354e47397852324e6b6355316a5a33464e5932647854574e6e59573978524d080230567a4e6c467a5a334676654731465a6e466e63314a4c576b5a494d30646a6245744562336b7963464a35615564485a6d6c705458464a574768785957397963574a544f48426f52334a5a593074785654686e596d644e526e4678516c68755a554a55626b6459643064784d486834623268786358467963584a5a5930744c63474633656e424e6133464a5132357563554a59626b646a5a47465a5932526857574e6b5955707a5357464e6358567852305676516c42755633464c516b527762554a754e6b6c4454476c7859586378634870336547394564314a76655868446355316f6358466f516e4a4c516b5277563346356245646f6547685056486c5a634846485932526865554a775533684b63556c4d62586c7463545a42636e6c735332467a576e685263454e356247387761484e73596e6447635531565332707753304651626b64455548426c54565678654739766355633263545a74526b5273567a5a7a5457784c537a684a59566c46564774785958637863445233556e465965484270524642755530316b63584634516a64355658467354334a4354564e4c53324e534e6d644a5247357859586378634556356547395764304e774d5864725530316f63584643516a646851577072567a5a7a525642705955465561456470654546786355646a5a474634626e42475a6d31584f46704c54477878595646336455565161566478654d0802577848654864536233704a63316b3252324e6b5958637863464a335133465364306c7853557874655731784e6b46796557784c59584e59655868766158684a6344424f633031696431567854556c4c596e424c515652725230646d61576c4e63556c596148466862334a784e32786a5457467763586435634668355748463652574e7363584643574735545155787154304649614574495447396c6358466f516e4a4c63324e68623346335748564352477850626e6876635746334d58426165577074526d706851555a7161475678635768356232396a52334a78516b4a78643168786245394c546d4e78626e644663555258635846435747354852314276523064516230644855473948633035786355567a5330356a4d6e464c635846586430707855304e4e593246764e6e427856306875625574556431647663573178635768524f48425559324e5363584643627a5a545455644c61454649616e466852545a74526c4276547a686e59574e42564842486355647363574a3355323943563031576358463462307845636e644663586c5359315a686233467763573145616d3550634868716347687862484644526d4e576358645463464e345633426f635770784e6d524e634652484f466c684e4574775958524355444a5063324d3364304e77516d4a7253324e474e6e646e634768316330567864316876516c644e566e4678516c6875594d08025552456347564853476c745255786f6358464853325a7352334a78516b4e4d5447684c5957394965464e7855336453635442475932566964315a7854576478643268776148685a63476834626d394a616b7435566d3978527a5a78635756465448425463553942574731545932526851303152635846435747354c5130687053304e4961566449626d78586358567852306c765248647363477850595649345255747463316b325a306c45626e4668647a467752586c3462315a3351334178643274545457687863554a43636c64465547685463575647544446506332394457574e6f4e6e644263584e73596e6455635868344e484234654452774d48644963573178636e4643517a5a5763315668634746586333426f643264766547784e634846485932524c655670775357357361574e585333427852306c7a5956647a634778785648686e62314a355647393565466c776355646a5a48464e5932647852584e736355567a6232687859576433635652345a32397052324a74545842556546527761315a6a59324a33566e464e5a307469626b644b5447465a4f45704c6557397059305a786357683163585661655774484e6e4e475348426c53473577523064346248427852324e6b63564a6a6345683362453948554731485231686f63574676614856785230707a526b68775332467a4e48644a63487033566e4177546e4e4e596e6456634d080255314a53324a7753304655613064485a6d6c705458464a57476878595739796355785054564e6863484a3362584d7864306c784d45354e5a5846335648564e54574a335632394464323177526d4a7061574e6c635846785158643151324a70563346354d6b646e65456877656d786a566a643365486c3363304a6961457442596d3148516b787761574e6c63584678515864786333427264555a75656b643464327448616e637763454a59613346435747354c5256427153305651616c644953476c48525668786557397a6355644a63305a75616b633253334e6a53326c4e52545a5251326f3065554a775958637863466c335758427565465a76534864556355523457473978635768316355644a63304e4d626b6468633152334d6d3971643368485356526f635746334d584259647a427765455a7a6145746b59303168623346784e6e453254304a69616c633262336c344e58426f566a686b4e6b3149616a4a35516e4268647a4677556e645563464a335648425364315277634846785258647865586731634778506357644e5457465a526d5a75543370346233526a555846485932524c65586477535552756155316a5332706f63545a42636b744a524770584e6b73345a474a526330314c61456469626b646a53307845656b647a526e46566332747865456c78516e64616358467851304533537a686b59584269647a523053586471624d0802304a534f47394452444a355a334e43596d684852474a6f5630314a53336c6e623270786355463364554a71626c633252324e52596b4645564735485648685a63454e454d6e6c6e63304a696145644a5647315854556c4c65576476616e467851586431516b6872567a5a4859334e6f5754685a5955314b5747394c54566c4d52486c4863305a4c655564775255687355324e4e4e6d39785330467a596e646f5233464c4f477869515531684e6d4e48616e4678516c6875625570515956644e63554a565455633263484648533270706556707a6355644a62304e6d634663326556567a516c564e6345524f4f4763336433683564334e43596d684c51574a7452304a4d63476c6a5a584678635546336455314759584279643370745230527454304a3356485644626b74456555647a614846426331706852584e7253336b316348467851304533537a68766245394c546d4e786248644a634774426330707863554a59626b64485547394852314276523064516230647a546e467852584e4c546d4d796355747863554a4e6330357859305255595738326348466853475a7653304a35576e467862584678614645346346526a59314a7863554a764e6b6443626d68545358643462334648614856616545527852464276523068335658466f63564a774e6b647a5257466e526c52736357464e4e6e6c6e52304e516255744a647a4e7661484674634d080257465054574e4c546b5669614564785633464c5658645763454e4d62457447596d78486355397863564e336247397252574e6f5954524c63484630516d4a6964316c3152457874523031506358645762304e75613064786558707651324a7752316c345658427852324e6b6355704e526b744c6331706855334e4663584668627a685759584e7853304e764f45314c63445a465932513365476877536e6442634846485932527853574e4a63556c6a5357466b5931646863445a7863556c6e54304a59626c633262315a355532387a6544467652476c4e59334678516c687555306c49616c6443544774585246524c654556786358566862484e465333424c52324e54596e647662304e6a6330553264304678633278696431527865486730634868344e484177643068786258467963576c425330646a55324677595546445547464e545842435130314a63584643574735705931644c6556707753573573553346786155467952326433616c647854305655626d566a614846725455397863554a59626b74455347394c52456876533052496230647863576c42636b39465647354c59584e4b6547784c52474a715531643465485243574842355158467a5a4746726332396f654735765357704c65565a766355633263545a74525668686233684c52325a71533046514d30644a5647687859586378634668334d484234526e4e6f5332526a544d08025746766358453263545a4c52325a71553346485931704d6544567661556c6a5a58464859325268647a467761486778634768344d58427364326c7665473832635846485931707862336874525770735330525961464e4965566431516c687665564677545731785154686a59553034617a5a3455584248616d6c785957397963574a5454566468634870355533457a6547704857586447635846485932524c54324e724e6c5a6a63545233656e4246564735786355313364584e725958423659554669624756495747705053586c33634846485932524c61474e4e59555a7a5557464f54584246564739784e6e5648643164776245394d626d316852574a7052326c345158467852324e6b5958683363455a45626c644e5930744d6158467853586431593246786233686c5357357153304a7161564d7a64336c7a516c527765576476633278785155315359566b34536b743562326c6a526e467861485678645568354e57397163574a56525552755230643562323968647a4630516d357261557069634564435647707454553032634846486357314d52486c7863556c6e63577878636b3145564846465230773165564e30516b5272527a6857635546785158464263584678555864786445747862554a4d6257316a59557457516d497952324e6b6355633455545a724f455532617a684659566c4e566a5a3452334678527a5a7863556c6e624d0802554a4d625574786155527561457446544739545258677a63304a69626e6c5663554e556230744a5647314853575a6f6255315859586b78623346484e6e4678565764705247356f567a5a764d48683563484233616e4236546b314e5330526f65564676516d4a705630464562564e47596d3554516c42765a5468476358463551584a5453457875567a5a76535668706255466d4e6c6c45554731355557394e5257463362573947643364765658684863465633564842495a6e46786555467961574e4b59584271533056355633464356584e6e59574e47544768355557394e525746336257394865564e7653586c725a556c6d6155394e536e467865554679533056355633466f5233466e5247707656304e454d306444596d39355557394e5257463362573959647a427765455a7a6145746b59303168623346784e6e4678537a5233535846735430783562484249654731776147644e5a55744561486c5262304a6961564d3453557434616d394655476c35556e467853304e7a54486c73634778785133687361556871626b3971643168785455564c5247684863306f325a7a68564e6d4e6a55545a4e63315a4c596e467865554679533056595958424d65454678516b464e62545a56526c4275655646765455566864323176516e685a63465235566d3943647a5277616e467854586431525552765633463561473953597a68765645704e554d080255744561486c5262304a6961556443544739485346427661584e5a53324a786355527a53306870533346505256527052304a33616d397155574e775455564c5247684859303578647a46765247356864316c77516d357063574676636e46456230523461323973547a5a72593146685355466961553971647a5230516c67316556703059325668647a527752466870547a684659586472623346506433465565554a776245394c566a686f59555643626d78505533647263304a594e586c6164474e6c59586330634552596155383452574633613239785433647856586849635778504e6b464e5a57464a5157357054304a355258524357445635576e526a5a5746334e48424557476c504f4556686432747663553933635552334e48426f63554e6d4e55644e56545a6a5232707863554a59626d314b5547465854584643565531484e6e42785230747161586c616333464c513239445a6e42584e6d397165484277626e644663555258635846435747354852314276523064516230644855473948633035786355567a4e6c6c6a5958524c635564445747394c4f455932593064496255646a5a48465059314668515570716230643564327876566e684963477078533270756458464c5257396f64305a78624856435648705452556871543068355533464357473578524568726255706d6145646f65476477625864556231563355584279534d080230567a596e63774d4846506358457a6544427752476c4e62474676635739785a5570596357644956476c486357567863566433616e42436154684e63584677635746465255686f54336834526e42785232647854486859623056445930317863564a76596d6b34556d46564f474e68575570556155647852327878596e645462304a5854565a78635868765445526861324e5863574e485747394863574678635456334e4842555954685a5957396863484652516c687353334e566356567a566d45305333413264454a514e55646a6455524d6255644e61584633566d3944524739486355733462474a4e54556332593064716358464357473574536c426856303178516c564e527a5a776355644c616d6c35576e4e785330647651325a77527a5a485931553364314677516c4e4e62484678516c68755955566d626d6c44596d31745255786f6358464853325a7352334a7861554a6964314a776155644c5130315763566c4e5a30746b516d347a52324e735330527653324e5a59566c4e5632465a4f45704c6557397059305a78635768316358464a64315677613346716432397a516c52736255464561334668647a46776158646f62326c3361473878654670776248467963576c434e6b6c4e53324677616d4642564731745255687354306c356433427852324e6b5332686a5457464763314668546b31775256527663545a7852336472634d08024774785358647264455a4d63554648544778505457644c596a56484f4774685930316c59574e4e5a55744f4f47687863445a7863566c6e615546556256647852336433566e423464306878516b4e4e53584678516c687561574e5853336c6163456c7562464e7863576c43636b643364315a7762484655654735766548645463564e354e47397852324e6b6355316a5a33464e5932647854574e6e595739785330647a4e6c5534536e46766547314554477854515578725531643465485243574842355158467a5a4746726332396f654735765357704c65565a766355633263545a74524578735232467a5533684663577034576e5643655656766355646a5a445a475457526859304a6962314e4953477048635846786458463155336846635774785132703455324e5763556c44626d3578516c687552324e6b59566c6a5a47465a59325268536e4e4a59553178645846785132706f5332467a4e58647455304649616c4e4965566431516c687665564677545731785154686a59553034617a5a3455584248616d6c785957397963574a50633342735430747562575649596e424852336846634846485932524c54324e724e6c5a6a63545233656e4246564735786355313363574e68595842365630705559564e6a56545a6e53555275635746334d58424665586876566e64446344463361314e4e614846784e31644b56474677656b744e5a4d08025746574f4752685355644562334668647a4677526d5a74567a68615958687563484e56635845335330316c635739345a5568696230394a564774544d33643563304a5563486c6e62334e736355464e556d465a4f45704c6557397059305a78635768316358557a654564786158467665454631513368706346566b5932646964305a78545656686433707656486c55623152355647396f654656776358466f6458464c52323976654546786245394c6155316e596e6c77634656535932316964305a785456567864326c765533643462304e336232394a544842786355744963307470545763326233463352585253617a68776545314e5a307855596e647363454a51616c644a53473948516c527152304669626d567863576878516e63786557647a6355744862304e5561316332627a4633526e466164314e77656b5a4e526e4678516c687556306c556246644555476c545356426f62584678655546795630525962316332637a46336232396164314e77656c4a6a635846485932526861453157595534345355746f4f4556686358464c52484e69546b314c5333427864326c684f47787857555255626e4668647a46776158646f62326c3361473878654670776248467963576c4363586470567a5a7a5245687456305a45614564486557687859586378634564355532394a6557746c53575a7052305255635846355154645059316c68624d080233684c526d357454305651655564495a6d787859586378634668334d484234526e4e6f5332526a545746766358453263545a4c526d35745533464c4f45303365476c7665556c6a5533464859325268647a467761486778634768344d58425665554677556e45326358465a5a30733454574677656e6c59635564346558426f5754685763584643574735544f456c4c654770765256427065564a78635574486330786d634664785330566d61476c49554778505248633162334648593251325a7a68564e6d4e6a55545a4e63315a4c596e4678655546795330566d6146633262304a55626d6c475647315465586454623346485932526852584e6e4e6e685362326c4c6358464451334a48545752686347704854575268576a686e53317045534739785958637863464a335133464465557078516c42755333467851304e795230316b595842715231563362316334597a5a4e53474a75635746334d5842535255317751336c4b635556596130747863554e44636b6456643239584e6d396f57584e4b5958683663454e705456567865565277516c687552314a336130744a626d3950593252786233464c53584e68535564696156633262306c3356484e436432397752336857634846485932526852554a556357646a61557434526e42706358466e6433464a64315276624539796544467a52336b796232687359314e4d56477478516c6875524d08023046696245744a626d394c6357397853306c7a636e67786232785059586377644774344d4842565355315754474a7363554a59626b644755476c7463315a7864323576615846785a336478516c5275567a5a76516c517a56306c69626c4e586432393063315a7852324e6b5956553453545a724f46567865476c4c6358464451334a4854575268634870684f47526954554645616b643565454631516d703565564677516c687653305269626b394a616d3954593064786233464c53584e7965444e77624539696545703061465a68545568714d45744e613078456345646a5a48464e63325132617a68725333686162326c786357643364555a75613163326333683355584d3164316c7861465534576d4a3356584e4e61324633566e4635647a4a7752486c7355324e486357397853306c7a596b314e52574677595864586356703562584255546d4e6c635846435747354c5155687754304a59616d6c7a57557478635574456332463356334670547a5a6a5930646852556c4562303944643370766355646a5a484633523342465247314859303978623346484e6e453251545a6a5930647862327058516d357052314634614842715154684e635846435747354c63314a4c65476477516d3571533346786148567854326458516d3570537a5a7652586c7663464a4e4f47733254555a45635846435747354c63314a4c65476477516d3571534d0802334678614856785432645453577074563346485457526852556c4562303956655778766355646a5a47464663326468597a686e53336c7063484e776355393363554a55626c633262304a554d326c4b626d78545133647164484e576355646a5a4746564f456b32617a6856635868705333467851304e795230316b5958423653303174596b564356476c5056336c7763334e565330687152324e4b5956553453545a724f46567865476c4c63584644517a644c5457316863477054524642745a554e6d6155395a63484678516e685263454a345558424365464677516c52786355567a5330343457585278616e45325a4531775645633457574676635739785a5570456130733065477476614846756357466b5932467852556c6d635846776357464a525759325255685961334668515846315257706f55306c336547397852326831576e68456355525162306449643156786148465363445a68545556685a305a556248466854545a356431647a526e466e51574a7052334668635846766430687756476c7a624746765958427855554a596245747a5658465663315a684e457477595856455a6a42485457453364326c77516d707153324e4763586452635768315130686f59574e70595764475647787859586378634564346433425965566477536e68546233467861486c59634868786357743353324e465333413253574e4e596e6454624d08023070335158427852324e6b63556c6a5358464a59306c685a474e5859584132635846725a303944534770586355747a6445643561334243536a6872635846435747354853474a7552306869626b6449596d35505930567863564e44636b747a63477850595777345a457450545751325a306c45626e4668647a467752586c3462315a3351334178643274545457687863564e44636c644b5a6d35546355744e59574a33553239706244685763584643574735505356687154306c59616b744b53473174545752786458464c536d3944616d315463576c4457476854593031785155684d6145394e5a3074694e5563346132466a545756685930316c53303434614846774e6e4678613264705131686f563346485a33647663464a35564842435130314a63584643574735705931644c65567077535735735533467855304e7952326433623342736356523464323934647a467655336b30623346485932527854574e6e6355316a5a33464e593264686233464c536e4d325655314e63573934625552756130744b574735545633683464454a5963486c4263584e6b5957747a62326834626d394a616b7435566d3978527a5a784e6d3145626d744859584e70654768776158685563304a355657397852324e6b4e6b5a4e5a47466a516d4a7655306849616b64786358463163585670654768776133464453476c4854556c7853554e75626e4643574d08024735485932526857574e6b59566c6a5a47464b63306c68545846316355394262304e49615664785230685961576c4852445a4a51307870635746334d5842446557684c526c68725330524961336c5662334650516e4e6859324e4b635739346255564d6345744b5647785453486c5864554a5962336c5263453174635545345932464e4f477332654646775232707063574676636e466955334e725958427165586c774e4864546347685354564a7863554a59626c644b5a6d6c7051305276563070716130647263545a4a6433467a59324677656d4642524739705246527554306c356433427852324e6b5332686a5457464763314668546b3177525652766358467264335648643046786245383364327877563364456347685a5457647863554a59626c6334576d4634626e42475a6d3135553342785330707a4e33647363476c484e3267345933466a4f47524c5a45524d656b644e6245744561586c5863554e335258426f654735765357704c65565a766355633263545a6c53564275563346356132395a65465277656b314e55584678516c68755430567561564e4b53473950515642705a584678616b467965577476616e464865473576516d5a75563146355248566a5a324a335533424552476c6c534770745230647162453946616d464a6358466f635552344d586c346333464c536d394865473576624538325555314f53316334564d0802545a4652323570635746334d5842736433426852556875543070596132567863577042636b3946564770505957397564304a78524864776347785a63315a4d5344524863315532643368765258686f62304a3355323954643146785133467852334668544568366358466c513068765233464c4f47786964314677656c704e635846485932526862546876576e68765231463457573975635746765455744c626e68786357746e537a687359584271553052754e6b704e61445a6e62484668647a467761486845635768345248466f65455278516d4a7163557443636c4e45626e527861584678516d4e5a6357644956476c4863575678635446346348423552584e47635846776357464a525759325255685961334668515846315257706f55306c336547397852326831576e68456355525162306449643156786148465363445a48633056685a305a556248466854545a355a32316a5358466e516d35765233466863584531647a527756474534575746765958427855554a596245747a5658465663315a68627a5a766357564956457447526c5272523352586355647a5757464652577075543274336133427852324e6b4e6e687363464a3556323947616e42786355394563324633615842736455314b595546495a6d35505248647362324a334d584243616d394852574a685654686e4e6e637a6344686b63584645516a6435617a524c634d0802474642636e643563304a714d6b397a575746334e4739445747684c54564668623074755958685263554a5854565a7863554a59626d4647626d357051324a746255564d614846785230746d62456479635652435332354c63445a4a5930316964314e76536e6442634846485932527853574e4a63556c6a5357466b5931646863445a784e6c566e54304e49616b39786454523362334243536a68726355646a5a474a334d58417a6430687851336c5563564a3351584673635746765955566a6445314a4e334671516e46584e6d395765544e774e4863776345527054574e7863554a59626c4e4a53477058516b7872563052555333684663584650526e4e686244686b5333427864323930516b786f533164355748427852324e6b4e6d646a546a5a6e5930357861324e5a59586b7763445a784e6c566e533031685333424c53324e475333683462304e6a6330553264304678633278696431527865486730634868344e4841776430687862584679635652435330746a526d467759554644616d3148536c427352306c335a32397852324e6b53336c6163456c7562476c6a5630747763553947633246425132707456334650526b527152305259616b744b616d70785958637863486c33516e463564304a7865586443635768784e6c5633635652346432397052324a5059314e7861324e6b5331704753444e485932784c524739354d6e4253654d0802576c4852325a70615531785356686f63574676636e466954324e54595739345330644962557448554868485356526f635746334d584259647a427765455a7a6145746b59303168623346784e6e45325330644962564e7853324e4a5958646e62326c4a5932567852324e6b59586378634768344d58426f6544467762486470623368764e6e45325657644c59306c7862336874525578775330705562464e4965566431516c687665564677545731785154686a59553034617a5a3455584248616d6c785957397963574a5463327468634770356558413064314e775532747a61334678516c68755630706d61576c445247397452305270523274784e6d4e3363584e6a595842365955464562326c455647355053586c33634846485932524c61474e4e59555a7a5557464f54584246564739784e6c56336455643351584673547a6433624842586430527761466c4e5a334678516c6875567a68615958687563455a6d62586c5463484650526e4d3364327877615563336144686a63574d345a45746b524578365230317353305270655664785133644663476834626d394a616b7435566d3978527a5a784e6d564a554735586355396a576d464c4f46553253554a7563484668647a46774d58687063466833556d387864314a78516e646f6233465053484d3264327877616e464a65444a745456564c526b46594e55646a62457445656b746a574d0802545a6b54574668575531585331706a595846785957396859324e30593031796357704353314e7a634778506357526a5a545a4e4f4530325930687561334668647a467752586c5262315234634539485747356c6331467863555244636d4649626d35484e6e4e4e623052596145744554476c7863575649616d3158535578765530647562564e7063584678636e4671516b784559573971523270334d30646a6257466a5157356f655764764f47684c534735505155787556306c4d62303948534768546158467863584a78616b4a6854554e6d5957397864316831516b52735432353462334668647a4677576e6c7162555a7159554647616d686c6358466f65573976593064796356524363586459635778505330356a635735335258465559553173635846435747354852314276523064516230644855473948633035786355567a5330356a4d6e464c635846435a30316163574e45596e424863575678635446346348423552584e47635846776357464a525759325255685961334668515846315257706f55306c336547397852326831576e6845635552516230644964315678614846536348464c63306c685a305a556248466854545a355a30394e5658466a52574a725233466863584531647a52775647567a546d46765958427855554a596245747a5658465663315a68627a5a76635756495645744352307872523352586355647a574d0802574652535642765431563361484668647a467753466874523070696147567a565846784e6d743363554a4d62566332655774766547746a527a5a4e5157357464554a59626b644e61574652633342536545527852475a7565544e776355394b6330785561584a6f6232467a524642365330315a4e336457623052756146644e543074345133466f63554a335633413252324e6b4e6b646a5a4746725930564c546b5259626c64426233467853306732645574435a306442596d78584e6b633165454e78556d787a6247466e54576469647a4677596e637863455a7562466446616d35585257707563584a5451584e696130684d6231647852316c3352335235526b31685957746a54324a334d584269647a4677556e6c7063464e4a59324e7851554a69616d303263555642636b645a643064776145747853306475626c4e4a643264786356644262305a4259554a6e635846784e6e564c516d637963576c786355743455584230567a5a4c5648645463304e535457733261304e4d63486c5763324e465330687653326834616b74426546687651314534526d465263314932635656424e30745564314e766145647952555255596d64435247744c6233644563474e475445686f65554a7855304d3452584646526d5a765230643553584653654556776358453264545a4c654864725632467a6157644e56584a4a536d4a7354323134626e426a524d08026b784961486c4363554e565457394455546847635546465a6d684852574a7264545a316157644e56574676656b73776547703056474e6a5332464b5132707065565a7a5930564c534739585456707851556c4d62306331654656766358467864584a5451334e445a44685a5957393653315a35556e565561324e7259557042596d7435566e4e6a52574633574842475647314c52336c6f62314a6c54555a78635846784e33467251584a56536b6877527a5a7a55314a4e5954644a51325a7756314a35516e426a526b78496145744e526d46346133427061474e4a5957744956476878635845326455744b643074476547397761453979565564594d6b394365445676624530345930745965486c5363304e456246644e576e465a53556870527a56345657397863584631636c4e4463314e615931707862334a4e516d3478537a4633526e46545a474e6e5331427863555a6d6231633461484656523235735330316a635845326457465264307455643170776248563552574e584e30314955476c5856486452634468766357466a61484634526e46536430567851314273645746526433563552574e586357397954554a754d5574566433707655324e4e613074516358464b616d464654573178597a687363586455634846784e334643516e4a4e516d3573636d68764e6e4e4455444650593064796430707852565277537a68614e6e6455634d08025574786357564b554768584f453168636d68785645646a59324a35655842536544567a516c687564554a59626b64425a6d7854526d5a7755336c336248467863574e764e33457751545a72516b68755233464c575867305230464962556447626e70485932513252324e6b59554534566d465359315a4c536b52716233467863574e76636e45775158466e526d70686232466a516b513052304a4d62456447626e70485932513252324e6b59554534566d465359315a4c536b566d6148467863574e76636e45775157466a516b5276523346585232593062574e585956566a54324a334d584269647a4677516e645963455a34566e427254574e56635846786557683163564e456232783453484670635442425931564d526b527162557445596d31786356647a55574634513342475447747863586c6f645846545257387751574e5663573832575564514d564e34643239776558647463484678526b787256334e52595868446348467859323979635556434e6c6c485547784c6355395464306c305655314e5958464e6331707863574634513342475447745863314678635574494e6e464c556d64505533644a63476c785532684e5655784752477074533052696258467856334e525958684463455a4d613346786557683163564e4662314e6f5456567862334642526b517a553368336233423564323177635846475447745863314668654d0802454e776358466a62334a7852554a7851555a45626b74785231563365585256545531686355317a576e46785958684463455a4d6131647a5558467853306732635574535a30645664336c7761584661647a56305655314e5958464e6331707863574634513342475447745863314678635574494e6e464c556d6474516d35755333464c5355677a55336833623342356432317763584647544774586331466865454e776358466a62334a7852554a785a324e6a595739685455705165464e4565473548526b787763554a594d30646a5a4746424f465a6853584e4b4e6b4643596d35786358466a62334a7856554a68545570516145733262326c4f59316c79526b314c5957744e536e467863574e4e6157465354555668516d64486432397863584a7861304a785755524962557332623056435456566857556c69626b644b56476c7863557449616d39585255526f52304e596255643362334678636e4672516b745351555273537a5a76556b316a5458465a5345786f52307055615846785330687162316446524768485131687452336476635846796357744359555645534770484e6b39776432707a5355687452305a75656b646a5a445a48593252685154685753315a6a5a55744b513142756358467859323833635442424e32744455476c48635664485a6d3954536b7835543046454e45646a5a445a48593252685154685753304a43544d08024768544d33673062334678533067326355746b5a3164485a6d394c63564e4564314a775645394e5258464e6331707863574634513342475447745863314678635574494e6e464c556d64545248645363476c78616c6f3456545a725245526f533052696258467856334e525958684463455a4d613346786557683163564e46623270614f465678627a5a4a516d7072547a5633555739356432317763584647544774586331466865454e776358466a62334a785255493253554a716130747853305a3555584255543031466355317a576e46785958684463455a4d6131647a5558467853306732635574535a30744765564677615846445655316a4e6d74455247684c52474a74635846586331466865454e77526b78726358463561485678553056765131564e5933467659564643544735504e58645262336c336258427863555a4d6131647a555746345133427863574e76636e4646516d4652516b787553334674516d3575547a5633555739356432317763584647544774586331466865454e776358466a62334a7852554a6852324e6c635739785a324e6a4e6d74455247684c52474a74635846586331466865454e77526b787263584635614856785530567651336c344d584676636e68426456566e63325278535564756348464357473578534735775a574e7453314a485a6d78786358453363555643636e684263576c785130466a564d080255784753574a75595552596133464357473578534735775a574e7463553145524778786358467963555643635546425347784c6355637965466c7a5657647a5a4746525346527852324e6b6355644e556d463352584270546d4e4c63584678645846545257396f5a4531486357394c536b6c694e464e4365544a776146553462334678534735775a574e74595546485748467863585678553056766132647a6148467659566c4954486c54516e6b79634868425932787863545a34576e4649626e424864336457623346784e6e464c556d64484d6e68704e47464a63564e7965476c3052574931557a68566358687063455a71616c4d345a4846706358467854574e6c59584a6f635746565355527851574e54596e637863474a334d58425364323976526b464c62574e776358464c53445a315332686e63576831634868536331524f633031785455316b596e637863474a334d58425465476476526c644e5230744b52475a705230525562584678527a5a315332783362556449614563326255644961453973647a52765133645263304a59626e5643574735485355786f56316c3457573943565531705955314e576e46785957383363565644596d466a52574676615846706544567752554e4e62334678526b4668516d64585157397863584631636c6442623352584e6b637a64306430516d466a634442534f47647964326c7659303578644d08023146786548633163477833524846535255317453324a716457464764335634546e4e53595842345331523352585253556b314e53327843524735485930704c5748424c63334247596d354c52307868566d4e585331427064545a316555564e556d46776545644b65545248615868546347744f54576c68647a427654565a7864316477526d4a755330644d59565a6a563074516158553264564a705458467352324a5a515667786255466962314e4564306c77516b787565554a7751325a6865444a776158687056305a7562486c7162334a31596c6c425747785859584e6f57574e70596d687a623056464f474e6864336c7759314678643235586332527857584e76566e68616344684a4e6e453352326c34536e467352324a4e5357497953336c3465484177536a686a6358645a63554a49616b644e576d46344d6e427065476c58526d357365577076636e566954556c696256646863304a72593278696130684d62564e72654768775132707352324e4e5958647356334e6b63566c7a62315a34576e413453545a784e30645265565a786245644d61584e57596c6c4757476c5465586455634552456145646a53574633616e4247596d354c52307868566d4e585331427064545a3153586c5863477848636d524e6458684e63324e4c516b46516345394e5257463361473943554731586332527857584e76566e68616344684a4e6e4533594d080255687159584133525546694d306448655778586148645a63304a714d486c5963554a5162306445626d35585131427652314a335758467a546a5a78566b453354304a334d6e4273527a644e53466777533152345158425759324e50596e645663454a454d336c4463555a69626b7448544746575931644c55476c314e6e563659324e535958423454316434576e4e5354324e6c59554a4a5a6e6c484f45316864326c7a54584247596d354c52307868566d4e585331427064545a31616c5a6a5232467765464e6e6431527a516c5934525574735346527265576477516c5177527a68615958677963476c3461566447626d7835616d3979645578435131426f5632467a4d46566a5a474a425131524c6145685161336c6e63454a554d456334576d46344d6e427065476c58526d357365577076636e564d546b5a59626c646863314e7363314669555556696146646f65465a31516d4a766558687a5930316865444a776158687056305a7562486c7162334a31636c564b5447745859584e4462574e48596b4649534770586433685764454a6962336c5364474e4e5958677963476c3461566447626d7835616d397964584a6e536d356f5632467a616b6c7a566a646f4f47644c624570514d30647a624574454e486c3462305a69626b7448544746575931644c55476c314e6e567153584e575958423454315a34536e5256655564775655646a534d0802574a335633464e5a307849616c647a5a48465a63323957654670774f456b3263546450566e684b63477831556b397a576d4a6a52474a7556304e356430646a63446852595863316347683364323956654768766348683663474e574e6e4657515464484e58647463477848636c564757444e48576e645263455a6f5457567864326c3557573944574842545457317853574e615332686a6130744d626e553264564e57593252686348684c656e645963314a4f6332394761484e4a6358645263584e6b635864746345567163457444574731545355687765586c77636e56795455526d6146646863304e6e633170695155644d6156644665554e77516d35706556527751325a735530317463556c6a576b746f5932744c544735314e6e56445a334e6159584234523239344e584d7964317076526d686a62474633634738345658463357484246616e424c5131687455306c4963486c3563484a31596d6448626d705859584e6f556e4e5a636b5647524746435346673053334e6a5958645362324e685333685a63576c336248424665564a7863324d32635464485233687063477848596c46475a6a5248626e685a62305a6e4f4656796432704859306c4c626e42545457317853574e615332686a6130744d626e553264554a574f476868634868485248677763304a4354577868526b4a594d45746a5a3246335158464e6155743457584670644d080232787752586c5363584e6a4e6e4533523052344d47397352324a4a5245777752336433626e425755553174636e644363554a4562336c4a6355567163457444574731545355687765586c77636e56695355524d613163325231683363484e545a7a684a59565a49534870485930564c626d74484f465668515531724e6d4e4e553074445455744c5647313159555a3364586847593074686348684c655863305231703461334257576e4e77516d706f655870505455564c65476848535735705530465561586c3562334a31636b6c45616d46776545644b6431647a516b747a55574661525770725230315053306777543031465333686f52306c7561564e4256476c356557397964574a7251574a6f5632467a556b4a6a64576853633268685a455a4d5958633064484e7a5245526f55324e76516e6c77623056336132397a54545a784e3064476433425859584e535654684b596c464a554842585358685663554a714d336c35543031465333686f52306c7561564e4256476c356557397964574a46526d5a705632467a65454a6a536e4a5a513152735630563453484643564731486331467964306877525568685a324e4c53304a4e536b744d616e553264586843593070686348684856486b7864454e6b59306c68566b52516155644e6147463361584e445a6d315459323943655842765258647262334e4e4e6e4533523152354d584273524d0802324a465256683553314e3564334273526b31505958645563554a4d4e45747a5a4574346145644a626d6c545156527065586c76636e5669525556596156646863316c354d457443643231774d554a4e576d4633564846435444524c6332524c65476848535735705530465561586c3562334a315447314e634778316556707a546d4a6a52474a75563168344d58524354445235656d3943596d31485130527155305a496157314855473535566e427956304a7a636d4e48596d705859584e5556574e68636b3145564774584d58637964454e6d5958647252334e615333685a63576c336248424665564a7863324d3263546450556e6877634778484e306c425544524863486872563235344d484244616d35484f453178643270775257707753304e5962564e4a53484235655842796454644a515642765632467a616d4d34536d4a56516d4a72595546345a3342445548424854556c7864316c765257707753304e5962564e4a53484235655842796454644a53475a705632467a656c6c6a59574a465155527059554635625739445548424854556c7864316c765257707753304e5962564e4a53484235655842796454644e523235745632467a6155467a576d4a7252566868566b68714d55646a5755746961586c546230567163457444574731545355687765586c77636e5679535546696256646863326c6e63316c695655704d6246644a644d0802314e7a516b687465544a766330564c65466c786158647363455635556e467a597a5a784e30744465576c776245647955554a494e55645465576c584e58686164454a4961336b7863484e765257707753304e5962564e4a534842356558427964584a52516b68775632467a55315a4e53324a6c4f475278516b4e496545646a55557459626e6c705530317463556c6a576b746f5932744c544735314e6e5654566b314c5958426954554a51636c6c4b5448425452336c6e537a68575958643353334e4b5955316a5a57464b4f47646852554a7163486b7962334a58516e4e6954554a515958423452305635516e565359584e6b533278445747744854565a4d5747744c5931706865444a776158687056305a7562486c7162334a31596c464a5347395859584e436130316e636b5648574770546258686163554a514d486b7963454e556346647a5a48465a63323957654670774f456b326354644855586c4263577848636b4a6a526e4a4e53574a715531523462336c6164574e506358644463455a69626b7448544746575931644c55476c314e6e564864315a766245646957546857636c564957476c5464336877655670315930397864304e77526d4a755330644d59565a6a5630745161585532645768345748427352324a6a526b51315432683357573946537a68575958644b63484e726358637962305a69626b7448544746575931644c554d0802476c314e6e5634566b317259584234523152344d5852715a30316b53315a49616d78485930394c5447394c6330356865444a776158687056305a7562486c7162334a31596b31475747355859584d3165466c30656c5534566b744f526d5a6f52324e6c5331427253334e4b5958677963476c3461566447626d7835616d397964574a6c5456646863486858536d5a34543274335748425654553177516d35756555527751324a7056334e6b63566c7a62315a34576e413453545a784e31644b5a6d68584e6b3877654442306555466a5a3246435130683553324e30516b527665565a786548633163477833524846535255317453324a7164574647643356455a45316b5958423454304e354d484e455654687359555a43534442484f456c4c5744463552584647596d354c52307868566d4e585331427064545a31616d644e546d467765453958655564305130747a525574735245786964326c766332784d574774586332527857584e76566e68616344684a4e6e453354316435523342735230784b5157593153315a34566e4177516d4e745447356f655456304f47526865444a776158687056305a7562486c7162334a31544570425a6e425859584e72576b3158636b314457473554526e644b64574e485332347a65544e77526d4a755330644d59565a6a56307451615855326457746154566468634868505a33637952316c3561316444644d08027a56484f45354d55486c354d473947596d354c52307868566d4e585331427064545a3152456c7a634778484e314646534452485348643363455a4a545746696432357a4f45564d564770586332527857584e76566e68616344684a4e6e453354305634516e4673527a646e52475a6956557055626c4e5a654452484f465a4d55444e3552584247596d354c52307868566d4e585331427064545a31524538346347784854457045596a4a4856586c536232746f59317069643168304f474e4d564774586332527857584e76566e68616344684a4e6e453355336c336258427364554e444f4768795255646963464e5965454e3151324930655442765457564c65576876524864466346643455573834597a5a786245453353306c3353484673527a6442516b52795655467162314e4a65554e31516b68736556707a516b7875547a6876556e687062327033566d396a5a7a5a784e3039526432645859584e4561303172636b3147534778545233684864553174533234775230316f4e6e647152305a4d6155394457476835516e467964546442536b52775632467a5647746a55334a46523270725531523457485134535574714e55646a547a5a33616b644754476c505131686f65554a78636e5533525570756131646863337042545656795155467161314e526554527a4f456c4c616a56485930383264327048526b787054304e5961486c43634d0802584a314e3031425247785859584e54556b3130556d314e526b746f526b513153324e4653314234655731775246426856584e4a4e6b6c6a526b74496233553264564e535458427352334a5a5247347a52316c344d6d3972526d4e315130684c55486c354d6e42455547465663306b3253574e475330687664545a316155356a5a574677654574596547787a6546706a565574535157353453324e565330777a655664775246426856584e4a4e6b6c6a526b74496233553264586c57593070686348684c4e486871633268614f465a4c526b706d4d45746a5655744d4d336c58634552515956567a53545a4a59305a4c534739314e6e56445a54684a5958427954554e4d4d55744465444a774d464a4e62484a335358413456574a336147466a5a48465263315a68536e4e5753314132635778424e30747164314e7762456479525546594d6b7446654735765655644e63304a4d4e45646a53574a334d323944596d35485131427153306451616e6c5363484a31636b56425747315859584e4457546852636b3147616d685456336c5464474e48596e646f63304a556145747a5a47464a4f4531785754684e5330687364545a3151316b34555746776545744264326c306156564e576b74535132597965554e315932464d616d784c633252685354684e63566b34545574496248553264554e4263316c6863486848536e684664464e5a5455704c524d08026b7049544577306558423054566478647a4a776148643662326c34656d396a56545a784e30644b6545567762456479565564556545744365464e774d47773463304e5565586c4664554e696130747a5a47464a4f4531785754684e5330687364545a315531704e526d4677654574476431643151316c4e6145745753557835533031475446513153334e4f6358637963476833656d397065487076593155326354644c526e645863577848636c46445a6e4a42516b78715531523552335644564446354d484e44596d784c633252685354684e63566b34545574496248553264554e4b4f48427352334a4e52565131523342345a32397252553146636e64566445314f636e645863454e69626b64445547704c5231427165564a77636e5679545556556345383253305a3552585244516b315663574e45596a464859305a4c544446485457527856554e4d62457448596d7848526d5a71567a686b6358466f63554a344d586c3463334a5852484e546145315359573936533164345258523561334e4f63577446554868505456564d5248424854557332565531464e6c564e5257467661486777634846784e6e5668556e644c5633684663476850636c6c43626a4a4c656e686163464e5759324d33643146305457746864323976526e6877563056755333687562314e344e47397863545a3159564a33533164336348426f54334a5652564130534d0802315634516e4236575464335558524e6132463362323947654842585257354c6547357655336730623346784e6e5668556e644c526e684563576850636c4649616a424c566e64556345565659303833643146305457746864323976526e6877563056755333687562314e344e47397863545a3159564a33537a42345358426f54334a525247497a53315a3456473956516b314f4e336452644531725958647662305a3463466446626b7434626d395465445276635845326457465364307377647a4a7761453979575564494d457436643170785530466a556a64335558524e6132463362323947654842585257354c6547357655336730623346784e6e5668556e644c6258684363476850636c5642626a4e4c52586c456358704b59305933643146305457746864323976526e6877563056755333687562314e344e47397863545a3159564a3353305a334e58426f54334a6a516b773053314e35556d3953566e4e574e336452644531725958647662305a3463466446626b7434626d39546544527663584532645746536430745964304e786145397959305a516555745465486c77556b6c6a536a64335558524e6132463362323947654842585257354c6547357655336730623346784e6e5668556e644c574868716232783151316c4e526a645251565268536b46456345644e6355314b596e6449634868334e58427364305278556b564e624d0802557469616e5668526e643151316c4e526d46776545637964326c3065564a6a5432464b52474a4c5a6a4a484f47647864326877526d4a755330644d59565a6a56307451615855326457684f63316c6863486848624864526447704e54577868526b56455445677852303177516b787556334e6b63566c7a62315a34576e413453545a784e3064736431467762456469545564494e55397664326476526b6c4e55574a33555852435347743556484647596d354c52307868566d4e585331427064545a3165466c6a613246776545645464304a304d46464e56557473516b777952303156596e6443634468725958677963476c3461566447626d7835616d397964574a4a516b68725632467a6157687a5554644e516d5a71563152336245647a556b78596358647763455a69626b7448544746575931644c55476c314e6e567061484e5259584234537a46334d6b387a6545687762455534566d46335233526a526e463363484247596d354c52307868566d4e585331427064545a315530357a63477848636b3145616a52546148687162315a4a4f474e686431643054565a78647a5677526d4a755330644d59565a6a563074516158553264586c4e54576c686348684c6548647464465657593239475355317059586458644531576358633163455a69626b7448544746575931644c55476c314e6e565454584e61595841335155464965553955644d0802314e7756564e4e6248463365484e7a63304a59616b6445626d35585131427652314a335758467a546a5a78566b4533543046336147397352334a4a52325a3554314635556d39575254684a596e645264554a454d6e6c4263555a69626b7448544746575931644c55476c314e6e56705754684b595842345332743455334e4561446853533268485548684854574e4d626b78456256647a5a48465a63323957654670774f456b326354644c6133685462327848636c6c49616e68504e58677a634656575933524352444635566e524e565746344d6e427065476c58526d357365577076636e5679575568716146646863304e686331464d556b4a71626c4e356547397a516b517865565a305456566865444a776158687056305a7562486c7162334a31636d64485447745859584e45566b3146636d7444524774586148685463554e4d596e646f633052456246647a5a48465a63323957654670774f456b326354645056586852623278484e316c425444425056486459634656485455357864336c485931453364314677526d4a755330644d59565a6a56307451615855326457704363314668634868506258684b645770735456564c576b6c55616b746a61324a3364335245524731586332527857584e76566e68616344684a4e6e453354323134536e4673527a646a524651775532643453484246566e4e76513067315230316a4e33646e634d0802455a69626b7448544746575931644c55476c314e6e5636546b31536445397854323134616e5255536b316863565a7a526d4a33566e424352486c4854575268565468735957396f6558647663586c6f63576831636c4e4b623270614f466b32627a5a56536b6834543156356547394864315a76516d497965565276516d707152305a6d634564686230314e6358466a623246764e334656517a5a56536b686f54334650523368446446526f54565678566e4e30516c68735230314a596e643562314e336432396f52307445616e464c534846484e6e564c624764505233684463477078564559345354645253564275595568596130644e62474633516e4243596d394853475a7052324e4a5958646f623031526358466a623246764e334656517a5a56516c427054334650526e6454633370724f477878526d4e76516d597752334e6e6358644263486834626d394353476c4859306c4c5247747853306878527a5a315332786e54305a3355323971635552575931553355557069614746495a6d70485457786864304a77516d3570533052695958646f62304a4961586c42634846356148466f64584a54536d3945566d4e564e6d3969536a686b4e315649626d746851325a745230316b53323576527a6847595655346247467661486c33623346356148466f64584a54536e4e73647a4e77616e56736430523156454a6a6132466b54577478644d0802314a30516c527053303157595655346247467661486c33623346356148466f64584a54536e4e7364305278616e5647655552315647686a5933464b4f465a68647a427759326c68643342775533643362326848533052716355744963556332645574736431644a554739504e6c6446626a465061336471595552596255644e5a4578456145647a526d466a4f45706864326876516b68706555467763586c6f63576831636c4e4b63305a34576e427164544234566e56365a334e766248673063304a6d65486c5963304a51614564495a6d6c4859306c68643268765456467863574e7659573833635656445447526a62445a76596d687a556a644e5345786f59555251626b644e5a4578456145644e5633464e6333424353476c4859306c4c5247747853306878527a5a315332783356306c696130383254315a35553352345a324e5259554934536d4a335258426a54324a3352584653654668786145644c5247707853306878527a5a315332783354315a3555334271645770614f4670695455565962564e47626d68484f46704d54476c4854553968565468735957396f6558647663586c6f63576831636c4e4b633270614f466f32627a645a51573569555552556256644253444a4854564a4c626e7048633031785255314e5957396f6558647663586c6f63576831636c4e4b6332704359334671645870536330356954555a4963466444614d08026d35485931706864326c76516d5a6f5230686d6155646a535746336147394e5558467859323968627a647856554d3359305669616b3832543235346133526f57574e525332513462304a716555647a62304e45615564495a6d6c4859306c68643268765456467863574e7659573833635656444e324e48564731504e6b394a6432313065466c6a5a57464b54564e6864327877516b787052324e686355317a63454a496155646a535574456133464c534846484e6e564c624864505358647463477031616c464e617a5a6a5130687056306c49616b6334614746336145644e576d46564f477868623268356432397865576878614856795530707a616c464e617a5a764e306c47554842505358647063444633556e4643564452484f456c6864306478556e685963576848533052716355744963556332645574736430395465465278616e567161324e6b4e6d4e435347705853575a72527a686f5958646f527a68775533643362326848533052716355744963556332645574736430395465544677616e56715a3031724e6d64495447686851574a7052324e615330687152324e776548687562304a496155646a535574456133464c534846484e6e564c6248645051336c5263577031616b6c7a52545a7251325a7656305259596e645763303158596e644363486834626d394353476c4859306c4c5247747853306878527a5a3153327833544d0802326c33557a5268535846486546633457557834616e5248534774504f474e78643270584f47526862324a35535856566548707a54584e4357473531516c68755230704961464d77643146764d4767345458467863586c6f64584a58526e4e4b616d394c59584e55556d4e7a61316b346148464654584278635556736332644c546b7051616b644b626d7478635845336354645652556878627a64565255684d536b646d6231646a5758467853314a4b5447395456486c3662305671625846786354647862454933565556495957393555306c55616d464e5355746b5132353652324e6b4e6b646a5a4746435a3164426230566f63315a78635846784e334657516b786f5455356862336c7454576c4d566a684e4e6c4642596e6c485932513252324e6b4e6c5644626e42544d486452627a426f4f453178635846784e334657516d4a3553544a7861584678596e6473623352504e6b737a65476c76616d4e7a5458466e4f466c69647a467759306469647a4677556e6c536230566d6245744e55584678635846346557647a636c644763336c6b63306b3262334a6e515641325355567161556447616a46486330564c616a524854566468555531565333685963454e45613346786357467a54556b3363565a43636d644255445a76636d4e45554768505533645362305233526e42435a6d6c354d484243544735485255527352334e6a63586442634d08024846786355644d52486c3159565a33537a4e335647397163564e6154565a4d526b464d6357633457574a334d58426a59574a334d58425365564a7652575a735330315263584678635868355a334e7956305a765531704e566a5a7663565643574442546548644863454e35575852435348423563484e43616d394852555273557a685763586442634846786355644d52486c3159565a6e53315a33526e427163576c435455314d526b645961453942574774484f455a4c56476c4863326468555531565958643563454e45613346786357467a54556b3363565a4363566c42524770504e6b745564304a3156566c6a5258464e59306469647a4e765932786964336c77655868556230566d6245744e55584678635846346557647a636c644963336c465932633262334a4e5256417a55314e335558425465476830516c527465544a7a516c52715230564562464d34566e46335158427863584648544552356457466b6430744565487077616e567056584e6a544570425a6e424c52574a7152324e7053325a4c616e42485255527352334e6a63586442634846786355644d52486c315957523353314e3465584271645652614f45567857556c516130744a55444a485932526864336c30516c68755230704961464d34566e4633515842786358464854455235645746576430397365465276616e5671536b314e63566c485748424c53576f78654d080258424863334e445447684852555273557a685763586442634846786355644d52486c3159565a335432313364323971645652535456647857554a4d616b3942574774484f48426a52574633616d394365464677516b78755330315263584678635868355a334e7956305a7a56464a4e567a5a7653307044626d4a5252324a7753306c514d6b646a5a4574554d45646a5a4746725930564c65466877513052726358467859584e4e53546478566b4a4c536b4e754e6d394c536b46514d3064736432687651336c5a64454a5161586c7263304a6962306446524778544f465a7864304677635846785230784565585668566d645451336436634770786132746a57574a5651564274543046596130633462457475616b646a575746525456566864336c77513052726358467859584e4e53546478566b4a4c536b704962553832543156334d33523656574e766158647363454a4d6230647a55574633575846436546467752575a735330315263584678635868355a334e795630687a524559345a445a764e30314a5a6a4e504d48645863586c33614842435a6a4635566d3943544739485255527352334e6a63586442634846786355644d52486c3159575233543052354d7a464c63484a565131517a533152354d573936643364764e6b644e6157464e54584234643274485255527163545a3159564633533278334d48427364564e4763306c79564d0802554e4d62464e49626d6878596e644a63555a516256633457574634563238326355527a636c564354476c584e6b745665476c7a6157744e5930746f4f466c7864554a716231633457574634616e4247596d6878636b393364554e5763306c4c63484a4e5131677a53327434566e4577647a5276516c687552334e5a4e33644363455a716231644e615846344e58427864584a5853584e3553574e6b5333427959305259636b3144596e42485256517852324e6b596e6470634746466331466852584e5263553034613346784e334643516e4a6a5246687862334a5a5356523453304e334d47394365455677516c677a655652766357644e546a5a3457584643616d787863586c6f64584a4852584e70614531476357397961307049656b744465444677516e684a6455524565586c716344685259566c4e576a5a3457584643616d787863586c6f64584a4852584e5462574e4e63573979593064694d55745665456878516e684663454a594d336c556233466e5455343265466c78516d707363584635614856795230567a6556707a566e56486158464364455275656c4e7a59334a346132394555476c5063314a4c654864776148564a54444254526c4236655864485932513252324e6b5957746a5257465352474a6862455a556133467863574e764e334657516b783551334271527a644e52566731615564456257566a627a5a3552484634554d08026d4e6f63555a4e623064336557397863584668613356796458705259327732627a644e52566731615564454d6d464e553346314f47646859305659623246435247464a5456567863584678516c646a63446478566b4d33545556596345647863306c4d4d464e47554770546258637864454a59626e5643574735586158685663555a4259554a6e635846784e6e5668566e647063314668634846465356417854304634516e565364314a30516c687564554a59626c6449596d68485133677763454e525455316863584a58526e4e7852556c51624664785a556449596c6c425a6a5648516b677852324e6b54477069647a46774d586858623268525457527851555645616d303263565a43636d5648534852786233464c5a44686a596e6473623352504e6b73306545647852454a7a536e466e4f466c69647a467759306469647a4677556e6c536230566d6245744e55584678635846346557647a636c644763304e6c6332673262334a7251575a74543052355532395365466c30516b786f65556c31516d70735230564562464d34566e4633515842786358464854455235645746576430744b64323577616e5644547a686b4e6b314657445a4259314a68643235765457526864336c77516e685263454a4d626b744e55584678635846346557647a636c644763304e504f47513262334652526d3430543342345757394465577030516c6875654d0802584230516c68755230704961464d34566e4633515842786358464854455235645746575a30745665457078616e4644526b316e54454a425447784c53576f7852324e7253323535523031705956464e565574345748424452477478635846686330314a4e334657516e4652516b52765433464c56586b786445564e59306b3251574e53595864596230314b5958644463554a34555842435447354c545646786358467865486c6e63334a58526d394462474e6b4e6d38335755646d626b745a647a4e7651336c7164454a59626b647a59324a334d58425365564a7652575a735330315263584678635868355a334e7956305a7a616c6f345a445a764e324e445748466a536d357653306c714d586c7752334e7a5130786f5230564562464d34566e46335158427863584648544552356457465764303975643278504e6b39586546527665564a7a536a5a4259314a6864323535556d394355476c485255527352334e6a63586442634846786355644d52486c3159565a3354316434564739716356564a54564a69545552516357633457574a334d58424e556d4a334d58425365564a7652575a735330315263584678635868355a334e7956305a7656556c4e556a5a7653304a4b626e684852486b7a62304e355758524355476c3561334e43596d394852555273557a685763586442634846786355644d52486c3159565a6e55314635576d3971634d080256566e4f48523457574e6c4e6b466a556d46335748466a543246336148424365464677516b78755330315263584678635868355a334e7956305a76565763346347703155316c7a576b744b5355687453306c514d6b646a5a474633556e524357473548536b686f557a685763586442634846786355644d52486c3159565a33533268346258427164576c426330314c536b6459626b6447616a4648545656686433684c54564668555531565333685963454e45613346786357467a54556b3363565a43636b6c42544770504e6b7443654552776130567a5a7a5a4259314a68643168766330316864315276516e685263454a4d626b744e55584678635846346557647a636c644763314e524f4645326232464a51325978553268344d48424465577030516c687552334e7a516c68755230704961464d34566e4633515842786358464854455235645746575a30647064316877616e465359324e6a54455a4a596d6c4c53576f7852303176516b677753324e76516e68526345566d6245744e55584678635846346557647a636c644762314a6a59324d326232464a52575a3455336c336133424564305a77516d5a4c534739484f456c68555531565958643563454e45613346786357467a54556b3363565a4359556c465a6d68504e6b39336545647756454e6a5658466e4f466c69647a4677516c683552324e6b5957746a5255743457484244524d0802477478635846686330314a4e334657516a644253474a72547a5a50654864746230527454564e785a30315854457870527a6852636e646162304a34555842465a6d784c545646786358467865486c6e63334a58526e4e5554584e4b4e6d383351556875624539766433425051566872527a68305931466864327077516e685263454a4d626b744e55584678635846346557647a636c64476330526a59316332627a5a5253555235533146335a33424465577030516c687565556431516c68755230704961464d34566e4633515842786358464854455235645746575a30394665576476616e4645556e4e56636b46475a6d684c53576f7852334e6e53324979527a68575956464e565574345748424452477478635846686330314a4e334657516a5a5252557873543346504d586435533264346547394564305a77516d5a7265566478516b7871523056456245647a59334633515842786358464854455235645746575a30387864326c504e6b7476654735505156427859324e52596e637863454a4d4d30646a5a4574575458425364336c7752577073635846486355644d52486c3159565a3353323934626b383254304633616b74485347744c5356424d626d46336555747a52545a4e4f466c6852584e6a5333685a63484678614846346557647a636c6447633052424f47397164554e50633146685455314b4e6b6b3453574633626e6c53624d0802304a51615539455547315054556c4c65466c776358466f635868355a334e7956305a7a5130397a55545a764e316c475248424c51316874533068496130646a5a4574456345646a5a4574575458425364336c7752577073635846486355644d52486c3159565a335431643455584671645770614f4530325754684b6357633462304a5161336c5263554a596345394555473148516b787555303158635846686232467a54556b3363565a434e316c48554770504e6b3976643270766158644863577033616e4e4456445248545852445a6d6850524642745430314a5333685a63484678614846346557647a636c64476330524c4f456b326230784b5256426f52305a4d62307449554735485930354d554739485457684c566b3177556e6435634556716248467852334648544552356457465764314e4465465276616e56565255314c63556c6a5933466a4f47746864336435536e4643524774505246427452304a4d626c4e4e56334678595739686330314a4e334657516b7847516d7070547a5a545248644963465233556d3936643364486332784d55486c484f4659325454685a4e6e646e623056716248467852334648544552356457465764314e4564306877616e5645557a6830576e6b7762314e3352484243574870355248464356473954526c526852584e6a5333685a63484678614846346557647a636c6447633052544f484271644d08025652485930314d54334e776158673164454a694e586c7163304a6d624539455547315054556c4c65466c776358466f635868355a334e7956305a7a5645646a54545a764e324e44544868745131687253304a516255644e63324e705958644263487033616e425364336c7752577073635846486355644d52486c3159565a3354323533557a426862324a42526c67795533643361323943526e4e7663586c6e62326c53593164686130524d62457436654452766358464c56476c31636d464263304a565931706862334a6b59303179525556716146644353484278533052705a5570496247464754484268513152705432787863586c5763446478523046795a474e4e5957396853556c454e55397365464676566e6876634846355a32395965564a775633685463544a34515846356233467859315932645846435a30644465564678624856566433427a6258647162306459616e464c52476c50515651326130316b6355316a6158463163554a33645656336347396f6457703461584e365455315a63555649524768785330527052304e34575739345354686b635531495747707863584534634464785230453357584e4a5957396856554a754d3039566430563053486444634846355a323953515531545955564a56476c48566e6c48635846785331687364584a6851573953526d4e6c59584133575564694d456435643342766548644b634d08025846355a3239456432744c526b527653305275623346795955467a4e316c48596d74484e6b644b53444654614868716233684763326869647a463054556c69647a46775132317a6132464e53577071615568455333427863574e484e6e5678516e6448536b6873523246766146707a5a7a646f5930397852555255626e464c52476c6c5132357361556c596130744565573177525842786355316f4e6e5678523231345133467364564a5a54566c795155464559555649524735785330527061574e745955567a5a445a3455584532635564424e30646f654764776248564352584e4b596d7449626d68485533645262334678526d70755a584e4b53336779627a5a7852304533523146336257396f54334a72545670795355465162316447616e427853305270533368346248425362584e6b59564645544731745a33467863546478526b467961303161595738335a304e714d6c4e4265576c77516b5a7a623346355a32396f5a334e72595774455447785052336434623346785332707064584a6851584e455330316859573833575556514e557444643264485533646e634846355a32395965564a775758645a6358684a63327332565846785331687364584a6851584e71556a6872595842695655466d4d6b744865565a77656d786a623346355a3239456432744c526b527653305275623346795955467a596c56425a6d31584e6b7445654d0802554e316557687a556a5a72525578786355314a4e6b6c6a595846525932396f654570784e6e46485154644c52486c4463576850636b56435244524c6558645763455a57633274786355314a4e6d64465a6d35504d58646f62304a5a59303168513346786358567959554a7a5530564e5a324677596c5644574452506433647563455270545574786355314a6355303452574672633031685a7a686e63585678516e6431556b706a61474677596d644a5a6a4250616e64526358706f4f48524e5355744561486c7462305233613074475247394c5247357663584a6851584e695a306c6d61316332523278335158524561474e584e6d644a544442355a32394e525574696155744555476848536b787152306c51623346795955467a596c5644524774484e6b387965454e305131707a54545a46513142766355744561556452654870765633685463554a524f456f32565846785331687364584a6851584e715a484e5259584279613068694e45645965566c7855305a6a5358467854556b325a334e616356564e5a7a5a4a63334132635564424e307331654564786248563459324e70596d7447626d394c545556786355314a5332524e55545a6e54584636654646784e6e464851546448656e684b635778316156464e56584a4252477073533031466358464e5358464a4f4670685a7a686f59574e6a5633463163554a3364576c5254565668634d0802484a425246686959304a694d55644e526e467854556c6851584e73595530346247464e59326478645846436433564454574e77624856465154687762586833634556556258464c52476c54536d4a4c516d4e4c6357746a6248463163554a33645556424f48426f5330783551335256654870765657684e556d4a334d584269647a4677526b4668516d645851573978635574494e6e5678516e647063314630527a5a48576e6859644652746330316857554e4d6133464c52476c485133685a62314a685931467854556859616e4678635468774e33465751324a72526d5a73527a5a7a516d686a53334a525245526f52305a33656e427865576476516b5277523231336257396f61324e535955357863584631636d464463304a6f59307468623370485748685663304e4f545752685a306c756248464c52476c485457746857554e6961556448655768764d57397863545a3163557033523168345657396f54334a42526d4a795557744853486875623346355a323943524842486258647462314a4f54576c68546e46786358567959554e7a5131567a63476850636b31445248704c5258687263464a6c633268786355314a595864526357684b633070685930647162466471635846784e33467451584a4e513052715233467a5355777755305a51656e6c3352324e6b4e6b646a5a4746435a31644262305a426358467863546478566b4e4d654d0802554d78595841335930646d4d6d46425a6d354c4f477468647a4e355133427a5933465663316c6852584e6a5333685a63445a784d6b453354323534626e42736457704b59334e5864315a77516e645262304a6d5445787265586c77513168786432784c593341326355527a4e316c44534746774e316c455a6a56685356427062574e4e5958637a65554e7763324e786432784c59334244574846314e6b4533547a4a33574846736458706159314a79536e4e565955316a5a3246334d336c4463454e49626c4d34624846336557396f63584a6852584d33593064596131633254306833513352736544527652555177655646305932687864304a78526b7732647a4677516d357463584a6852584d335930464d6131633254323533524851796545687752566874635574516231647a62304a756155646a5958463163564a336458704b4f4646686345784351576f30553064714e6e645363554e69596e645563554e755333685963554e4d616b647864584653643356465155317064556470635768305246513155324e305246686f547a684e5958673062305251616b647863557445596e637863474a334d58425365564a76526b4668516d64786358466a627a647856304a78567a5a5052464178543068516130646a64554a59626e56435747354c52573568613064496145744965477876553239795530467a4e3030345657467759565647594d08026e4a4a526c5277567a686b596e637863474a334d584235643278775532566a536e465a51566872523064516133564c516e6478556c5a7a63477878556e645863314e5763306c685655316e596e644263574a334d584254655778545347357254306c594e6e647162334a6852334e6852584e47595842785155524d6555645a6432784c5156423652324e6b4e6b646a5a445a726332784c526e4e7656486b7763455655626e5678576e64785130317a5357467763556c4e54324a725246527453304a514d45646a5a47463365484e435747354c52574a725630465961564e465447744c4f47513263573143636b7444616d705863575643626a4a484d48684763564e3352485243574735485933524357473548534735725430646d626b3944544846335a3239795955647a4e6b5a6a5957467759564644534870485658685862304e346158424357444e35513346435547394c513152765630464561314e425547784c5930343263573143636b6472643368766248463554574e3151304a4e545846424f453169647a4677596e6378634652355633465664326c50536c52755530316b4e6e4674516e4a4c656e64775633464c656e633154304635525842446433707a516c687565555630516c68755430706963464e435447466154574e4c65444277636d46486333464e52473568634574574f47633352555a4d61553942626d78485932524c624d08026e42485932527853584e5653305a7a6232783464334246564735316356703363565634524846736357686a59314d3356555a55626b39475a6a42485932526864305231516c68755330527162464e46534735685155686f557a68734e6e4674516e4a486558684b63477878556d464e5a54645a5245786f53304651656b646a5a4574554d45646a5a4846564f4778785754686b4e6c6c4e546e463363485678576e6478556d464e5a5746775330356a556d4a4e524759325155317a516c687565555630516c687552304e6d623064455447354853555274523031534e6e4674516e4a5452466872563346485248633164454e434f4559325155316e596e637863474a334d5842475a6d6c6c513068775955524d6155396a59545a7852484e6854554675626b64786233465a5932564c6145464563584668516d64585157394751584678635845336356644359584a4c635846784f456c68636d7031616b704e557a645a526c4270533070696555646a566d46335a334e4356473548526d5a77523246765455317863574e7659573833635656444e316c44616d74504e6b397464326830616c4a6a5758465254566468643231304f455668647a5276556e685963576848533052716355744963556332645574736430397464326877616e5636516d4e6b4e316c435247354853575a6964315a77516b523552334e4e6355564e5457467661486c33624d08023346356148466f64584a54536e4e36516d4e6b4e6d383359305a494e316c455247744c52314275523031735958644363454a69623064495a6d6c4859306c68643268765456467863574e7659573833635656444e324e4753445a764e324e46524456506258647553305a4d626b6334556d4a33513346445247744853475a7052324e4a5958646f623031526358466a623246764e334656517a646a52555277547a5a5053486c6f6331526b5458423565466c76516c527752324e525958647762336c336255646a535746336147394e5558467859323968627a647856554d3359306c496155397854305234656b6331647a4a7756486c5764554a596245644e53574a334d484253654668786145644c5247707853306878527a5a315332786e54305234616b3978543235334e484e53595531704e6d647a5657463362585134525746334e473953654668786145644c5247707853306878527a5a315332786e543235334e4739716358704a54574e6961306c59626b394655444e4859315a686432647a516b787153304a45616b64686230314e6358466a623246764e334656517a5a4e51305275543346505758685364564a435455644c516e4e465958645663554a496130647a6147466a4f45706864326876516b68706555467763586c6f63576831636c4e4b6230525859327332627a5a4e53565178527a5633656d397165466c76516d5977524d0802334e6e6358644263486834626d394353476c4859306c4c5247747853306878527a5a315332786e54305235565842716357707359324e6961304a4d6345394b626d31485457786864304a77516d3570533052695958646f62304a4961586c42634846356148466f64584a54536d397162474e6a4e6d39795655527165553942643342766158687462304a6d6345646a5357463356584253654668786145644c5247707853306878527a5a3153327833537a46336232397164564e474f4645335155684d616b644956477848545778696432704863327868565468735957396f6558647663586c6f63576831636c4e4b63314e474f46453262334a5652476f3153306c354d6e4243655770484f47786864326876516d5a785255314e5957396f6558647663586c6f63576831636c4e4b63314e4f5457303262334a56536b5234533170336258424465573177516c687465564a77516c6868597a684b5958646f62304a4961586c42634846356148466f64584a54536e4e546245314664453832547a52336157383165476c77516e6c7663304a596155644e53574a33625564475a6e42485957394e5458467859323968627a647856554d335a30524d61553832543070335558464351584e776148646163554a6965486c5562304a75595655346247467661486c33623346356148466f64584a54536e4e55513031724e6d38335a305a51626d3144524d0802484248536b517a52324e4b5958646e63304a5162457443524770485957394e5458467859323968627a647856554d335a305a51626b383254307035616d394352574e485957744e526d46335133464353476c4854553968597a684b5958646f62304a4961586c42634846356148466f64584a54536e4e556154684a4e6d383361306c7562456452655456776148643563454a714e45647a593346336558423465473576516b687052324e4a533052726355744963556332645574736430394b65567077616e564655553173595546425a6d46726332646864304e78516b68705330316a6355317a63454a496155646a535574456133464c534846484e6e564c6248645451586856635770785246593457584646526d7074543064596555646a536d46335a334e43596d46564f47786862326835643239786557687861485679553070765246593457545a764e6b314a5648424c556e6c70543046696230647a526b78516145646a63564a345748466f52307445616e464c534846484e6e564c6247645052486c56635770785245357a5258464651574a775430646d4d30646a536d46335a334e435547784c516b5271523246765455317863574e7659573833635656444e6c4645544768506355394564326c776155466a526a5a6a593239435447394859306c68647a52766548687562304a496155646a535574456133464c534846484e6e564c624d08024764505248647063477078616d747a546e464a53566875533070756255644e61574a33655842445447354853475a7052324e4a5958646f623031526358466a623246764e334656517a5a4a536d4a71543346505133685263564e724f47397165445677516b787652324e4a6358643363486c336255646a535746336147394e5558467859323968627a647856554d325355564563453832537a4e335758466f516b31706355314e625746334d58424353476c4863334253654668786145644c5247707853306878527a5a3153327833537a4e335758467164586c4f54576c685755566d6155644a5447394863315a696432704859314e68565468735957396f6558647663586c6f63576831636c4e4b63336c4f54576b3262334a6a5232357452306434576d395365465a76516c687552324e4a5958645a63464e336432396f52307445616e464c534846484e6e564c6248644c626e6877634770316557686a634868535455567851574e6f5958637763474e525958647363486834626d394353476c4859306c4c5247747853306878527a5a3153327833533068356245397853336c3357573958654735776158685663304a6d6545644e62474a3353484253654668786145644c5247707853306878527a5a315332786e53336c335757397163576c6a6331706862484e726355464e546d4a336247396a55324a3351334653654668786145644c524d080247707853306878527a5a315332786e53336c346258427163576c6e5932527861484e6163566c6a62574a3357484e435644564859334254643364766145644c5247707853306878527a5a315332786e53304e354d58427163586c4e63324e68546d4e766158687663304a5565486c5763304a59625564495a6d6c4859306c68643268765456467863574e765957383363565644635531455447355063557454655770776133685763464a3561556334576d463365573943616d784853475a7052324e4a5958646f623031526358466a623246764e3346565133464a536c42745433464c52486c4b63555a33565842706547397a516c523465565a7a516c426f533052695958646f62304a4961586c42634846356148466f64584a54536d39355a324e704e6d394d546b5a6d4e6d74495a6d315051573430527a6847596e645664554a6d613064475a6e42485957394e5458467859323968627a647856554e4d546b5a6d4e6d394d546b4a71625539616432704c5257343152324e4b5332347752334e6e595655346247467661486c33623346356148466f64584a54536e4d77525531684e6d394d546b467561314e42643231775648647364454a6d6545644e62474a3362457443524770485957394e5458467859323968627a647856554e4d546b46756130383255326c345533424556324e765648645564554a5565486c5763304a59625564495a4d08026d6c4859306c68643268765456467863574e76595738336356564454457048544778504e6c4e4564326877656d686a566e464e4f46706864323577516b78715230315859574d34536d46336147394353476c355158427865576878614856795530707a4d45466a57545a76544570425747745062336456634652335248564356486835566e4e435547684c52474a6864326876516b68706555467763586c6f63576831636c4e4b63327442593149326232466c545745326145316f63566c7a566d4a33566e524e62474a33566e4653654668786145644c5247707853306878527a5a315332786e625568716255397862555a7161325647596d704c5157707052324e615958645462304a75615564475a6e42485957394e5458467859323968627a647856554e68563031544e6d39686154684e4e6b354e63554a355a33524357444635565856435547744c516b5271523246765455317863574e76595738336356564459576b3454545a7659564e4e535846574f45567853574e6b596e64556355316f596e645863586834626d394353476c4859306c4c5247747853306878527a5a315332786e62555645615538325331703457585234516d4e4859556c4e56574a334d57394e5a474a33566e4653654668786145644c5247707853306878527a5a315332783353317034575842716455524e4f45316959304a6d616d464e5a32463362586c54634d0802454a75595655346247467661486c33623346356148466f64584a54536e4e455454684e4e6d3979613056754d456475654442766148643663304a59616e6b7764454a5161307443524770485957394e5458467859323968627a647856554e79613056756130383254314a3365484e34556d4e6859556b345930786d614563345a334a334d47393465473576516b687052324e4a533052726355744963556332645574736430395364336876616e5655565531316147684e61474634654739435a6b786d6155744e5932466a4f45706864326876516b68706555467763586c6f63576831636c4e4b6331525654584671645652564f4570695930704d6255644453445235574739435544524c5932747854584e77516b687052324e4a533052726355744963556332645574736430395365473576616e465461474e504e6b5647596d31505355773052324e4f5331517a52324e73595655346247467661486c33623346356148466f64584a54536d395461474e504e6d397856554a556130394365456c77616e645562304a695330787352324e78556e685963576848533052716355744963556332645574735a30745764305677616e4654624531544e6b5642534774505356677952324e4f5331517a527a68526355564e5457467661486c33623346356148466f64584a54536d3954624531544e6d397855555269624539536431647652486b79654d0802566876516c41305330314f59574d34536d46336147394353476c35515842786557687861485679553070765130357a566a5a766355314a626d3550516e6c5263565233616e42435a6b786d6155744e5932466a4f45706864326876516b68706555467763586c6f63576831636c4e4b62336c6e593255326233464e536b5274543364345647394565544235574739435544524c5932747854584e77516b687052324e4a533052726355744963556332645574735a30745565576477616e563557574e31566e6c336233683457585243564768485456706964323548526d5a77523246765455317863574e765957383363565644636b3148626a5a76636b314a616a4258526d5a7652304e4d59586458637a68575958647752305a6d634564686230314e6358466a623246764e33465651334a4e53577072547a5a4c56586456645446345533424b5544524854555a6864327430516c527353304a45616b64686230314e6358466a623246764e33465651334a52516c5277547a5a4c4d48685963305a33656d394365477076516c52716557354863315a68597a684b5958646f62304a4961586c42634846356148466f64584a54536e4e445a4468475957397063576c344e5842465130317663584647515746435a316442623346786358567959555a766445747852314a354d484e70556b31535955646a54557859616e6c556230315a5955564e544d08025746424f475132566e4e4e53315277635574494e6e56785a476448556e6b776232787861456c6a56334a525255527152304a3355335534555574494d486c6e63464a3364323943647a4e77553364765a584e76636d464a6332464a513235735333464855336c4464486c4263316c4c517a6872636e644663484e4a5958645a6345704d6247314e5458464f5457744c56476878533067326458466b5a30645465554e776248463451584e6e636b5646616d6c6852476f7853303153533078705230315859586c5463457045616b644a544739685456453263556444636b644564304e786248466f55553153636c5642626d6c486433645a64554e5561336c7062304a716247566a576a5a345248464365445676525735716458466f6433466f5555315363573968565546494d557448643052775748647563454e5961336b7763454e716257317a56574635643238796431467854555a7863574e764e334648513246565155687356334648566e6c4464576c6f4f455a68536a686f635864476345316b635864766345704d6247314e5457466e6332647865454677636d464a63324656536b787656334648616e684564454e5759314e685954684e635864476345316b6358647663456859625755345a3246525930394c65445676636d464a6332464e52314272533346485158637864476c7254575678566d4e6c636e633064484e5763586459624d08023064456156644e615574735455564c54473578533067326458466f5a306442647a46776248464b65466c306156467a5933464f54575279647a523063315a786431687652305270563031705955566a63555275616e567861486478536e685a63476c78516d527a61484a4e5245526f5a554a4d4d557334566b746d6145744e593246355533424b52477068524552776556567663586c6f64584a68535739435a484e6f63573968525556454e5574366545567852486c3663454e71656b646a545846336557394852476c5854576c4c6245314653307875635574494e6e567861476448516e685263576c786146464e61334a5653475a7454306c6d6345644e536d4a336547396a533346345a323947616d3954536b526f65586c7763586c6f64584a685357396f5555317263573832525556714d45747265454a7852486b7962304a59626e564357473548515652775230464d61325643574735354d48427865576831636d464a6231525254564e78623346725355527955555a596345394a596d70485932524c534442485932526865556878536c68735955684d62336b77623346356148567959556c7655326c4e62326c78656b6c4e566e4a565247707654306c69616b646a5a445a48593251326548427753475a755630467161486c55634846356148567959556c76656b6c4e566e467663576448596e6c4c52336476634552354d6d3943574d08024735356545646a5a47463461473946626e424c536b687765586c7663586c6f64584a685357394459584e4b6357383252554e694e4574726544567652586c7462304a594d336c5364554a59626c646a53557434576e463665454e786330317863574e764e334648517a5a4651324a76567a5a7661466c7a62484a5651574a7455305659626e467855304a51616c4e42554731505256427052306869625856786248647861466c7a6248524c4e6b64456433683052466c4e576a5a424f476868647a467754565a69647a467756486c746231523562573831654656774f47687863574e764e33464851324a4e515568755232467a6545466a597a644252315274595564456255646a5a4574554d55646a5a47464a63324d3252584e6f4e6d526a63584e4b6358464c626d6831636e563451574e6a635739365230523464334e5461574e574e6b4534614746334d58424e566d4a334d5842716432315051324a685a584e4b53324a72635574494e6e5532516e6448524868334e48467759584e4353486c354e57394e52557475626e6c52627a684663573968536d4e7259586858645556514e55646a5a484678616e647062336c344e473945596d6c785332707763584a78516b4a68536d4e724e6d394d654446765255687062553177516c687563574e4a63556c4e526d46336348424454473548516b7877635746766358427963554a4354486778624d0802326c4863574e7a54574a745455706952574e4f6355646a5a474a334d5842536557707653473576527a4634556e4245524770786358567863586c34655739706357783356584247596a56544f477469647a467763553942626d394c52325a755430316f53325a74635846316357564362327833565456786348467a516b68365230315a54473576655570314f474e4c5a6d744c63566447564735685457686864316430516c687563574e4a5330357a536a5a5259326b326430567863586c766345316b4e6e4532536d6458526c5275543346584f45564c65555a785133687163304a59626e46685255315859573943554739355358427863574634614739796357354259586855623268786248686f634564516557453462474a334d58413264304a7756586476537a68614e6e64766358467853324a3563545a4b5a3164485347314863566445626d31684f456c4c6546647a516c68756355524961314e4457476c4c4f466f32643239786358464c596e6c784e6b706e563052756255397852324e6b59586874623056716345646a536b78455445527052304e6d4e6e686e553031566358467863555271634856785a554e76516c687552334654526b526f5954684a6356566a54574a334d58413264304a775658645362305a59626b394e6358467863586c746333466c513239566546467661484672654442775231427052305a4d4d45646a5a4d08024846505931464c566b315863586448634552716358467863584e4b636e467551557461545752686232466b545670786547707a516e6c7364454a59626e46455347745051324a735330316f4e6e64596233467863586c746333466c51323878654774776145633265476848536d4a7554306c6d6555646a5a4578456145646a5a47464654555a685a574e6b6357746a566e46786358467963545a3461457468623064756557314a52486c48516d343152334e6f5958647363454e4561306443564768485356427152305a355158427863545a786357466a5332467659553834546b78535930644d57476c31516c687552324e6b5955707a624746344d584245616e46786358467a536e4a78626b4668547a684f64574678543078594e486c7664474e685332493165564a7854556c78623074614f465a78654778355258564357473531516c687554304645623039495747745059316c78635574494e6e4532546d645452325a7352324676516e68616230706d6345394a5347317863576c465547784851574a7252306469626e467863545a7863556446626d685063564e4e55334634516e464a5a6e70485932513254324e525955564e55574634513346455347317863586c6f63576831636d56466230567161306478523056756146647a5932466e4f455a786358465a54564e68643068786148467863545a784e6c4a6e5230567561456478614d08025546714d466447554846335233467852324e6b6355354e59324633576e42435a6d70786358453263545a535a326c42616d74484e6d394a564842744f47646954584e4e544552756558647a5455566855334e77516d4a7352304a55634564495347687863586c6f64584a485257394a564842796258457752334e5a5447353665565677516b787265576877545842706354423461314e7a617a5a3461484e43574735784e6b6c6a6258466e59314d326432357763586c5a63545a784e6c5a6e553068554e6d394d654646775131527053304e716145646a5a4846355558464365556478516d707864314678516e647263574676635868726458466c526e4e465247784c5957395365564e3161454534556d4a33656e4268647a4630516c687553304e756232314e6247466e5232357154334e476358453263584648536b7877533346545346524c65464e785345683552324e6b6358465564326876655867306230526961586c5963584678636e4675516b746b5458426f63556c3461485257655552305346417852324e6154456871655764776145747a5558465363314678635846484e6e4532566d647052556874636d31784d6e6c706444684b5446526f65555a3063324e4c564778486356644b5347393562584e4553444a485932513265544e776558677a63464a34656d3944574846786358467963544e435957786a5a7a5a7663586c43634d0802554a596255646a5a4846785533647763454a516345647a526e46786358467164584a6c534739686230744454584e7464315a7a526b683552324e6b54455271655764484e6e64576345643455334678635846316357564962306c335a30647854307069616e6c58633052494d6b646a5a457445636e645563586c344d334253654870765131687863584678636e457a516a5a72633035315958466c544734306558427a54564a4c596a4a356148427a556d467659564e6a645652345a323947524446485932524c52476c785246527659574e4859565a4e536e46786358467963555276536e6877523346745255513052314633536e524a616e68356233424e623031765246527659574e486355317a576e46786358467963555276536e6842635768486358646162305a33655842456557317a516c673065564676516c687552304a4d61473147616d704c536b5271635846784e6e567853324e4859573968556e4e6b59574e7a526d4a3365584e43574735785330354e6157465254573946534778786358453264545a4259564a7a5a474676635864736348683456323949554456485932527863567034536e46475547395459315678635846784e33464562304e59625563325530705962456449596e683555335643574735785330354e6157464e54566c4c65464a776358467864584a5064314e4b57477848635664465347354853474a34524d0802304e51656b646a5a4846785648684363454a3363473946534778786358453264545a4259564a6a593246765447784e6157466a63305a6953574e4a596e637863484650526d4a715230466d61464e6a56584678635845336355527a56586c4a63576878526e68346348683456334e70654870485932527863564e34513342485248425459315678635846784e33464562305a346548426f64555a33626b6449596e684c52314269647a467763557447544774685457744c65464a776358467864584a50643164425a6d467659564a6a5932466a633059335455316f596e63786348464853474a74595531725333685363484678635856795432645852556875527a5a58516b68755230686965453945564452485932527863586834625842485248425459315678635846784e33464563315a336548426f54307450633274785154686a54486c4b64554a59626e4668654764775257707555324e566358467863546478516b4a4c54334e725957397159554e456130744255444e7059326c69647a46776356644e575574344e4842465347787863584532645746525a324644524774484e6d387a647a46765133643664454a356545646a5a484678526b52745530316c533368536348467863585679523056764d3363786232685063565a4e545846424f474e7957553131516c6875635746345a334246616d355459315678635846784e334643514d08026e4657545531686232705851307875533046514d306449616a56485932527863555a4562564e4e5a557434556e427863584631636b6446623278336558426f5430744b633264785154686a636c6c4e52324a334d5842785630315a53336730634556496248467863545a315956466e55304e4d6230633263314a35626b744255444e7059326c69647a46776356644e575574344e4842465347787863584532645746526430644b5a6d4676656b744b5647354c5156417a52306c49596e63786348465854566c4c6544527752556873635846784e6e56685558644c536c5275527a5a7a526e647063454e33656e523465466c31516c6875635746345a334246616d355459315678635846784e334643516d4a4363316c686233705053473574533046514d307448616d4a334d5842785630315a53336730634556496248467863545a315956463354306875625563326330643351334244643370306158685a63304a59626e4668654764775257707555324e566358467863546478516b4a79516e4e5259573936553046556230744255444e7059326c69647a46776356644e575574344e48424653477878635845326457465264314e42564739796258464363324e6e54473536655656765932784d55476835566d396f63555a3356584649616a526c63326469647a46776355744b5547354c526d5a74547a68566358464c596d6878636e4649514d08023246435457773262324a33536e42485347686c59317068647a467763557447596d6c4c54575278647a527763584678557a5a784e6c5a3352324e545957394c55324e6c596d687a55574a5259307069647a46305457744c52445a33566e4643616d78685356526f635846784e6e4532566d647052573575636d787865486c56645531314f48426a526b784962586c56634768315245513156334e4a4e6c6c7a576e4678516c687556306c4d63464e47596d7050536b7871655652786358466a56545a784e6d7833543031725957393654303172596e6870623068336547397852324e6b63564a4e533246474f474e68535531575331427763584635556e427963554a434e336452635768785533645a64455a4d615574465647747854577868647a467752336c3463465235626d567a6344687263586c766555527759315532645746525a307443616d784c4e6b394e61324a346157397165473130516c687563554a59626b644952477048534552715955704562336c3563484635556e413363554a434e336452635768484e336452645778344d334258647a52766355646a5a4746424f4570785154685659586857635468726358464c53477831636e56455248424859584e455248425851325a7159554a71616e4668647a4677516e647562304e3356484247574842355648467863574e564e6e45325430317264566478533078756555647a544d08026b7875595864336230314b53307874527a5a355358423464306878516d746a62584678516c687555334e5259556c45596e46335632383461334678533068736458464852584e4e553246766358644264554a335758466f5754684f596e6378634846485558686f63455634566e4649596b74516348467a5a4846784e33464a5158463351584670635768425931466951574e4659553143564452505931453252324e6b5958685263455a55616d4534613074456248464c53477831636d6c426232684259314678627a5a735931566951574e4659553143564452505931453252324e6b5958685263455a55616d4534613074456248464c53477831636d6c4262316835556e42706357783362334e4364314a766545564e61446433516e4269647a4677526b52735630314f63586855635531566358466a56545a3153304e6e56304e71615574785330644d4e47464e5a57464a516d347754324e524e6b646a5a445a3361453834545746424f45564c524770785330687364584a705157397065454e7861584643654546305232707552314e33536e524553477431516c687554324e76524642715230465161486c3362334635556e413363556c425956464e55584676636d4e4e55334a344e48426f52574e544e33644363474a334d58424553445a33656d3943643152765455317863574e564e6e564c5133644c53477072537a5a4852486459634d0802314a33566d394352574e77595863786347464e5931566855574e5259566c7a546b74496133464c53477831636d6c42633368424f455a305333464c523235755230684563473143544870485932527852324e6b4e6e677762306855616b744e61334678533068736458467051573970654456776158467665457077516e6849635446335558524357473578516c68755530464561314e42524774505932784c596d7078533068736458467051573976654570776148564e5532464e4f476868566d4e4663584643574735546331453255574e786148684b634468726358464c5347783163576c436330315463573971533068596145644a5345744b63306c69647a46775958637863454a696230647a614746766148464c5347783163576c4262336c34566d39705432465254565a685930316f5956707a5a324a334d584268647a467752464273547a68565957396f635574496248567861554676516e6856634768786158687762304a356257397065476430516c687563554a59626c4d3454557434656d394354476c786358466a56545a7853304e6e5330647561556478523064495957647a536e465a54566c69647a46775958637863455651616c4d3454574633615739786355744962485678615546766148686f52334658593156685a334e4b63566c4e57574a334d584268647a467752564271557a684e595864706233467853306873644d0802584670515739475347784c63576c48626d744853566874563052454d55646a5a484648593252786544567652323571523074496148464c5347783163576c4462323934536e426f63554a72593074685a334e4b5955464b626d4a334d584268647a4677516d5a4c65487076516b78706358467859315532635574445a306452655842766148464b65567076516e6c7462304a725933564357473578516c6875527a68775256427152334e4a6358467865564a774e33464a51574670593064686230745859326c685a334e4b5955464b626d4a334d584268647a4677516d5a4c65487076516b78706358467859315532645574445a326c47626d39484e6d397065445677513364426345703552584269647a46774e6e6445634552516130647863584635556e427963554a4363566c6a5a57467654454a6a5957465654584579654446485932527852324e6b5958647463454e716145647a5358467863586c53634464784e45464d516d4e685957394d516d4e685956564e6356643361334e4357473578516c687552334e616358645a62304a4d6158467863574e564e6e564c5133645451573574527a5a4852574a7252306c696155645265545230516c687563554a59626b646a63555651616b647a5358467863586c536344647853554a6955584e536357394c59574e54595645346147464f54565669647a4677595863786346563356334656644d080231647852475a72655664775957396a56545a785956466e615564756130633253324e504e336473634774345558524357473578516c687553307045626c4e4255473148536d357165577477595739786458464852584e44626c52796148564552445648516c68745955524d635846435747354c52325a72527a42335a324646616d74786358466a56545a7853314e33543031725957393452304e49656b74475648424856586875623346485932527859334e72595559345258464e63324e7863584635556e427963574a4a59303168627a6433555856456432317651336b77634846485932526851553176556d746a535746565455397863584635556e427963566c434e336452635768505331646a615746524f453168525570594e55646a5a4846485932513264316c78516c687052334e4a6358467865564a774e334676516b745859326c68623270705156687752305651616b645365565a31516c687563554a59626b394e625746336247394354476c786358466a56545a315332466e6155465963456332623168346157394365487076556d746a62474a334d584268647a46775247707752324e4b59586470623346785330687364584a705232395965476b305958413263334e53596e647164454a4d61486c7563454a4962336c4963476878526d357055304a514e6b706a57574a336558427862556c6d53314e4e625746344d323978634d08025468525330687364584a7053473947626d6c486356646a53334a5a59334657643235775458467862556c6d53314e4e625746344d323978635468525330687364584a7053473947626d6c486356646a53324a4c5455566856556c4d6545647a59334678576e6c74527a4634515846475a6d7035616e466a635468525330687364584a7053473947626d6c486356646a5332465a545531685a44686b5330787263574642516b78746155567163466334546b745163584534555574496248567961556876526d357052324676526d357065544a76556d746a546b744d6133466852324e564e6c704e535846536332684c554846784f46464c53477831636e4647626d6c486357314b616e425459324e6854556849616e6c446348464852574a715a5564456156647a6145745163584534555574456248567861556c76576e6c5a63576878526d353562554e6d6155647564314e7a516b7875635574745455706854555a4553336861635846784f46464c53477831636d6c4b62305a756155647856324e4c59566c4e5457466b4f47524c544774785955744e5a7a5a6b5932746865464e7665486449635846355248426a56545a315332316e56324e4c645664785955786d4d55633461474a335a33424352486c35516e4244544770584e6b646a53334633613239496556467a524568726455524961326c4554473970524578766155524d62334679524d080230567a596e6477623278505332527a576e4633656e4253576b314e595864476445317a513068736155524d62314e42524735485348687163584a7451584e4c5a484e615958427156304e7561336b77623368334e573943574452355a323944544778705245787653306c75626b644965477078636d46456332464b59314e686348706c5356517a52334e4f4e6b5a4e62474633566e424e535464335a326c455447395052324a6859305651635856685233643153486b7763476c50596e647762304e4d6257564a524768485932527854324e526356564e5a5846565457564c54324e4c6358467864584a4852584e43626d6c796248457a52324e6e596e645464454a51595864556455316a53327075563346505346526f5954686e6356567a5a457851656e6c6e62304a6d6255744b54476c4c51325a6f533052496233467862554e7a4e6c564e63477878525863776445705962557449596b784561586c4263454a6d62557446596d394852306874533068556147567863584242636b394a5647314859584e5465486c77633268795554683054556c4c524774484f466f32526b316b59574e43596d395453456871523346786358567864586c34513346706356563357584e5364314a78525868766330314a53305272527a686163556c7a62314a35576e467065476477516d394c616d7878636e467751545a725458466f52324a5454565669534d0802574e52596d73345655784561586c4263454a6d625756435647354857486448635442346547396f63584678636e46695955315a595739365330524d616b646a5a4846525455744d52476c35515842435a6d316c516c527552305a33536e4243616d6848635846786458467452484e5465454e77614563325a334e6a595530345932464f59314669643239484f4764796433427656486844634868344d33426f5233467863585678635770346558426f6355523556585243626d6c4c5246417a52303178516c413053324e4c63566b34536d4634516e46536432647763584678645846745247397165455677614846456557787a5130526f5230524d6555644e63554a514e45746a5333465a4f45706865454a78526d5a6f635846784e6e4668553264505231686f537a5a766133685663554a34516e425765565a30516d7068643052315132357059574e6c5957396f635846484e6e453251557453545768786232705452325a6f5230564d616d4646616a4648545846435544524c59307478654456776145647863574676636e464562305634626b7332623152336248425364327468526c683652303178516c413053324e4c63586731634768486358466862334a785247395465565a77615538325254685a59555534535846434f457069643239484f4764796433427652323575523246766358466f645846505a30744b554778484e6d3936654d0802477477516e6c6e627a42335348566a61457845626b6334566e4633626e4235654768775533427063584678636e4661516a5a5654565a6862327050526d5a755330684d61464e4656444e35526e564e59324633574842445a6d314c534568745332784c635846786458467452323936647a4e776155383259324e5a533368556230564d5958647163304a516230394e5a7a5a6e5457466861324e776558685662304a7763584679635456424e6c566a5658467661464e44596e7048515770725955566d5445527065554677516d5a745230704d62556447616d3150516b687862334678636e464c516e4e4b6357397155304e754d3064465247395853574a72527a6852596e644563554a516246646a5a324634616c4e4a5a6d68355348464c596d3978636e4531516b744359324532623270545255677a53305a696245394a5347684863305669643370775458426f6545527751325a7255306c6d61486c496358467859584e6a54584a78536b4e4c536d4e5a5957397155305a554d6b74485447315453564269643239484f476479643342765648684463486c336257396f523346786358567862556c764d48645663476c786548687752305a716347567a566d4a33623063345a334a336347394b524746355a3064425247707863584679635842435956564e6258467661474534566d464e5455644c65564a30516d70686430523151323570564d0802303176526b5268654446776332397863584a785333684963476c786148645663454a344e484249626d4a33623063345a334a33634739445a6d744c4f4649326432647763584532635746745a3064425647744c635574485244524c53475a7661553172596e6476527a686e636e64776230704559586c6e52304645616e467863584a7863454a785555316a6357396f52305675656b744b616d357059327869643239484f47647964334276526b5268654764585932524c544846784e6e467852304e7561557478533046696555744a616b743552485243616d463352485644626d6c4c4f464a78643068775245527463584678636e46615132466e63307078627a5a4e633146785a3031465957647a576e4a3356584e6a57545a336432394752476c5854556c6865465a7863584532635746685a3039435447704c6356644a616e6c4c516b787159584e4f5958644564454a514e486c706230704559586c6e52304645616e467863584a7863454a68576b31486357396f595570754d30644b534778685930316864305230516c413065576c76526b5268654764585932524c544846784e6e467859556875625574785955564d4d307442544768684f47746864305230516c413065576c7651325a72537a68534e6e646e634846784e6e466862576468513078755333465851575a7053304e456157466a6132463352485243554452356157394b524d08024746355a30644252477078635846796358424353326734526e467661474643616d354c5255686f567a6877516c4177527a686e5445787056303176526b5268654446776332397863584a785957784e595846765956706a5933464e5456466865467077516c4177527a686e54457870537a685363586449634552456258467863584a78576b4e68556d4e6a4e6d39685a7a684f5958677a634652334d6b647a566b78456130644e59545a464f466c4c65464677516b78786357467659584e6a54584a78516b466e5230646d615539785430705961306444574746576331464d52476c355158426a613346344e58426f523346785957396863324e4e636e464351576450534668715433465053575a7452305a5161464e4b574774355758426a593074456347466a5a574676614846785233464854456836635746425157397165466877616e463665466c77556e6c5563465634576e464e56307449626e6c5263556475626b646862334678614846346558687a6355644251545a5654564d32627a5a5a59316478545468525330706a63453158533068756556467852323575523246766358466f6358683565484e78523046424e6c466a557a5a764e6c566a5a58466a633251325a7a684753327073655868775457747865445677614564786357467659584e6a54584a78516b466e5430527562553978563070696255644656477850516b5272524d0802324e6f5330673052334e564e6b55345758463362484243534774786355647852307849656e4668515546764d5868744e5746775958567a61474a335248526a635468525330684c626d784c6355744a53444a7451574a755a5531616355646a5a4846745457394b524746425455317863584631635564525158465a5931567862326850536c686951324e614e6e686e63554a59626b646a5a4746345a31644e62305a59626e6c7063584631635846366546567861584636647a4e7451574a705a584e4e5330777752324e4f596e643662304e6d61307334556a5a335a33427863545a785957316e54304a6d635739785a324e5a5330704e617a5a3461334268647a467759586c6e62553176516e6433623346784e6e466851554a766158685363476c484e6d746a634774336157564e623246334d5842435747355854573947524746344d58427a62334678636e4532593031736357383254546877613364536345684d616e6c4464454a59656b633454584633534842445a6d745054566c78635846316357314b6231523357484a6f63554a6d4d45644b5747354c5130686f63574a334d58427764317078616e645963555249626e467863574e4a4e6e566851554e7a63316b32623246525931466953554a696130744952473578516c677a52324e6c5956567a62304a75625574425747787863584678647a463565484e785232644259556c6a554d0802574676616b3834526b784754577332515531775958637864454a59626b644565566c77655864466347684863584678645846486430466864316879614846485344427451575a736154687663584647626d78586332526865486c776358467864584654535739465347704c635564445548707451575a736155316e6355646a5a4746334d584244574846336247567a614846786358567855306c76516e647162326878534749776255466d624564475a6d35786356646a563246526330357864304e78635846786458465453573947596d70486357466a5555744b5931564c655770786356646a563246344d6e424754473578635845326355746f5a314e6a5458467659556b345455744b5931564c655546785958637863454a59626b746a63454e594e6e6848635846784e6e464c61476448515642705233466c63314a4c536d4e56595655345a4846785958686163454a344d6d394454473978635845326355746f5a31647a546e524c63556443554456745347357854574e734e6e644364453152596e644763554e596358647353324e776358466a53545a7859554646623070516345747852304a4d4d476c44616d354c5246687454324e525445517752324e6f6358647353324e775131687863557449615856785230464359586c3562326c78516e645263455234576e4235643270765245677765554630516c687653324e7751316878644d080232787863586c6f62334a78516c466e615531566357396865584254536d35775330524d6345396a555578454d45646a614846336245746a63454e596358464c53476c3163556442516a5a3463484a7363554a7a5457527964314a3159317068643056784f477868643278776158566a617a5a425932687853555251616b646a5a4574456245646a5a48464a51316875553068716247566a593346785332707764584a4855554a7852555a6d6230633263304a4d625539485547784c6558643663304a59626b646a536d46334d58427053574e6b6356467a56584633526e467863584631636b646e516e464652575a7862334a5a5931464c526e4e7753586c4264454a59626b646a536e46336233426f65476c48516d707455334e6a63584668627a6478516d4e6e52316c356232397063586c334d48424665476c705355517752324e6b5958647362304e7162556448544746465457464c65486c776358466f64584a4864304a7854557055616b73326556647856486c7762305634566e52435747354859307078643239776148687052304a7162564e7a593346785957383363554a6a5a30745365486c776148464e5a33465654577868576e4e6e596e637863454a596155646a5a45743563484246626d354c59326878635846784e3346435a32644c6148684263476c3163305a7865445677516b5a6a59324a334d58424357476c4859325132654d08024768775346526f59556449626e467863546478526b467852555a516245733254324e465956493461474652516b677a52324e6b5958647362304a59626d566a57545a34565739746548687763584532645746435a30746f64316c7761584657655552785648686f634735336345744e523074456155394e617a5a34614842495647686c52327074635846784e3346475158466a526c427253334658536c5274543052696232564653484a3357584e4e53545a33555846495347316c54555932576e4e726358467864584a5851573935566b314b6357394d596d68685932564c65466830516c687552324e4b59586378634568496257564e526e466159324e7863584631636c644262314e564f465678627a6433556d3947654568785257597852324e6b5958647362304a59626d566a57545a34565739746548687763584532645746435a30746f64316b315958426852557869596e643563334e4f5331673165554a78633156786232464f5456564c554731505131417852324e6b4e6b396a55574634526e464757473968516d4a7763584678636e46436132645852455273527a5a7662486444644868335757397164315230516c6875645552496132567a536a5a34625739465a6d747863584532635746465157397364304e7761453968536e4e525955467a62445a4a4f465669647a46774e336443634568696157567a536b743453484278634d0802584631635564435157464b6331466862327058513077775230316b4e6b6b3456574a334d58413364304a7753474a705a584e4b53336849634846786358567852304a425955707a5558467659564a6a576a5a4e6331593253546856596e637863446433516e42556545467856486842635556696233467863584a78526b4668556d4e6163573968556d4e615330357a597a5a4a4f465669647a46774e336443634652336557395564336c765256687563584678636e464751574653593170786232465359317068536d4e4c4e6b6b3456574a334d58413364304a775533684763464e34526e4246574735786358467963555a4259564a6a576e4676595534345757464b5455593253546856596e637863446433516e424b57476c7459307068643235786358467963554a525a3164455547314c63566444626a4e585245527254304e514d55646a5a445a505931466865577876536c6870527a6877635845326357464252573973647a56776158464765486430524868556357703356484243574735784e6c564e5a7a5a565457644c6545647863584532635746435a3164465247354c6356644652444e5452555132535468565958637863484650516b787154304a4d616c4e6a5a4846786358567856304676526e683363476c78526e6833644446335633427164315277516c68756358465659314a7856574e5353336778634846784e6e4668514d08026d64585255527553334658524641795630647563453944554446485932513254324e5259586c736230705961556334634846784e6e4668515556764d58647163476c784d58647163444634526e467164315230516c6875645552496132316a536d4635624739435a6e4678635856785230464359553434575856586355643552324e5a596e6446644468615331687565586c76593252686232464654564e68555531724e6b303452545a33516e4269647a467756486c456355643351584645654735774f4774786355744962486c3563574646516d395364306c776145647854584e4b5445354e5957466f5457687864554a59626b64425a6d6c4c5156427356324e735331427763584635556e42796358464e633070686232684851316868555531724e6d524e546a5a33516e4269647a4677656e686e5630645163453944596d3135656e427863574e56533078796357464a5933426f5433464e63307068555531725332707154324e524e6b646a5a445a724f476332526b315859586834627a687263584678645846486145467854584e4b5957393655305271616b6446524842545230687354324e524e6b646a5a457447633030325554686153336858627a687263584678645846486145464d546b3150595739715230467562556446524842545230687354324e524e6b646a5a4574476330316855584e4a53336858627a687263584678644d08025846486145466851574e686445747853334e6a596b566a546d4642516d5a7164554a594d30733461445a5a4f46593257574e686356706a563346785457564c53445a315955564362304e4d626b7478595568754d306443574770485558637a62324a334d5852445a6d395052325a73543064756255746a634846785932383363564a465a324649626d354c4e6d4644616a4248516c6871523146334d323969647a463051325a765430646d62453948626d314c5933427863574e764e334653525864685132707252324676526d356f5330525961326c47616d3531516c677a537a686f59564934526a5a5a5932464c5a55317463584678635464785958686162326850596e64476445706d6130645264327830516d357364554a59626c4e43544770745130527655334e4753314277635846784e3346535358644859314a6862324a3362473945616e4248565864426345316e5330517852324e575955314e63455a695958644b6354687263586c5763584631636b646f51574a336247396f64554a4d656d566a526d465251555275655546785456566964315a7753475a7756334e77516d357665565278635845326457464651334e435446527961484644574768485246687156304659626e4668647a4677656e645463555a355532394b626d707863586c43635468765931493363564a4a5a30746a526e524c63557447616d7848526d706f594d080255704d6248566a624746334d58424362304a7651325a7063584678636e46535457644c526d70735333465452577068565531484e6b4a6a59334678516c6875523264485a307334536e4678635856785233684253314a4e63576c784d4868716445314b6355704e536e4678516c6875523264485a307334536e46786358567852336842533251345758467663574d34576b74756232464653444a354d6d3968647a4677516d394362304e6d6158467863584a78556b316e5330686d6255747861584e6153324a7459555a4d6258453462304a59626b646e5232644c4f4570786358463163556434515574356258427063556c696255744252473968525770736455314c5958637863454a76516d39445a6d6c786358467963564a4e5a326c7a576e467653336c746345523452584674654842356558424e566d46335a30646e5232644c4f4570786358463163556434515574356258427063586c3453484245654556786258685a6232463365473943574735485a30646e537a684b635846786458464865454678597a68536357394c556b316c4e6c567a546e466154564a4c554574596145744e526d46425955467864323576635845326357464652473946654452776158465665544676615868745955564d6133464e595746334d58424362304a7651325a7063584678636e465354576454536c687153334654536c687162574e6a63564a7a554d080258463562334243574735485a30646e537a684b63584678645846486545464c62474e4f6357394c576e4e4b4e6d63345a4846474f45707865573977516c6875523264485a307334536e467863585678523368425331707a536e46766358684563554a35656d394865576c7859323943574735485a30646e537a684b635846786458464865454678654551796357394d52477058513152705530684d626b646a5a484648593252685157464259586476627a687263586c61627a5a31595556456330314e6357394d524770585131527053306c696245646a5a4846485932526853584e6159554668643239764f47747863545a31595556456330314e6357393665586476526e647362314e346230646a5a4846485932513264337076516c427352334e615331427463584631636b3933655863305958426856574a3356585643524578556345647a566d463463473943596d784c6358464c6245566d635845326548687653456873563046766358464c574452315955464b62336c7354553578623346786248683562334678516e64705230464d6156644b616d78786358453363554a4363574e4b5647704c6358453252554651615846785230464d5955467a535574574f457078635746764e3346535557644c57486b7762326c314f47513261334e4f63556c4b52476c78516c687563565233576e465564317078556e6854635846784e6e5668524d0802555a766557687a576e467665486b7a634652354d6d39706130314a6355646a5a4846505246527254305255613064425647704863586c7663445a3163557449655731776158566a537a5a7263303578535570456158464357473578556e684563564a3452484643655731786358453363554a725a30744965565a766158466f6545687856486b7962326c7254556c68647a4677596e63786345567162464e4e5632466e6333427863545a315955464b62314e68633056786232465a63306f3261334e4f63554646596d7831516c687552324e6b5333685a634556716245644a596e46786358567952304a43635774485247784c4e6e6b7762314a335533425561574e4c6358466851584e76516e647062304e596233464c596d35484e6e5668525556766557784e62326c315455356852584e5659555a4b53473978635564425447464263306c7864305a7863586b7963476831636b6443516e466a536b527862307855616b6443544778686258645763584678516e64705230464d6155746a6148467863325268627a6478556c466e533168355a307332655442765345527562573134576e46786355646d616d4534566d4633626e464c596d35484e6e5668525556766557784e62326c315455356852584e56533074455547787863576c7a57557435513346445248427853324a75527a5a315955564662336c73545452685258464854466731524d0802324e6f54475a766554463059316c4c574746766355633461484a6163315a7864553156533368456346563453584248647a5276635846786458464861454a7852334678516d5931655552774e6e6c526345527161314e48596d706859324e4c65566877635845326357464652323968634846484f4767335a44685a6358564e5658466e4f464a68526d4e4c5330354e523246565931647863564a5a6433466862327078516d5a7961474e784e6e6c5263454a4d624756455747316851325a7252334e56635846786458464865454a78527a5a765958645463316c354e584e7a5555744565486c5263456c34616d39726544567651336453627a684f635846786458464852573968634770315932744d55324e4a6358564e56545a725455644c536d4e77564868766345314c63584643516e4a786145397852334e465447316a5430784d61336c52633031564e6d6734566b744f545539685a7a687353324a7663584678636e464b515846484e6d383253553161596d55345755784d61336c52633031565956593455584633516e426f6431707863326878635846316355644662324676616e46456433707052577076527a684e54455178655646766248685863554a51616c646a565574696233467863584a78516b4a78527a5a766356467a546d4a4253474a71527a684e5445517865564676526e687263454a51616c644e5255746962334678634d0802584a78516b4a78527a5a765957647a55574a505455644d5447743555584e4e5657465354564a68643370766148646163584e6f63584678645846485257396862327078536d497762554a694d6e6c44634531465445527356305649613063345457464a5932314c596d39786358467963554a4363556332623074754d32314652444a355133424e525578456246644657476c484f45303265456c7863326878635846316355644662324676616e56485448707053475a4d5447743555584e4e5657464f63315a68643370766148637763484e6f635846786458464852573968623270316148683364456c335233567a5555744565486c52634778336230647a536a5a3461586c48635846784e6e466855576478614539785230564965473144524735484f45314d524446355557395765456c77516c42715630317663326878635846316355644662324676616e4646534578445458567a5555744565486c5263444a3356584643626e42506333413462484678635856785230567659573971645570754e315a6a61324633656e4e4e565578456146644653474633656d3947564842355233467863545a785956466e635768504e6b64455a6a467053557876527a684e5445517865564676526e684663554a51616c644e624574696233467863584a78516b4a78527a5a76636d4e6a566b7848633252686433707a5456564d5247685852555270524d08027a684e5958685562334e6f635846786458464852573968623270316158645364544e3451584244626b784561486c5263455a34643342435547705854564e4c596d39786358467963554a4363556332627a644254564a6954334e5659586436633031565445526f56305269616b6334545746345358427a6148467863585678523056765957397164564e346432564356476c484f45314d524446355557394765486477516c4271567a684653324a7663584678636e4643516e46484e6d38335555317a6233685563554e755445526f655646775633647662304a59616d4534536b746d6233467863584a78516b4a78636c4a764e6e4e6a576d4a335258527a5a4574595446427265577477616e56435447315859325279516b3157596e645763554a554e45394e5357466e4f45314c576b316c59556c6a6148467859573978654778316355644351324a33615842716455684d626c633455584a4f63315a7964314a78516c51785330314f4e6d4e4e597a5a724f48424364327477556e427852334658545559326357464653584e49544735506357317a63455a716556644552486c356133424356484633516e42366548647756586c7262304a3451334653634846486356644e526a5a785955564a623070694e6d396953584e4f5333685964544a3365585244564739484f46567964314a77656e683363465235626b6442564731546358466f634d0802555a556148567852304a44596b6c7a546d4676656b7446626d74546331466955324e565330686f65586476516d4a725955466d625756465647685454576868623346784e6e46685255707a5133684b63476850636c466a63454e6d65576c42596e4235556d394e545746335233424864323577534868566230565562306478635846316355645351334a52597a5668525846545446413052334e304f47784c574739356147397a546d46765445787864304a3053486b78627a5a485932524c5430315663566c4e526d464f4f48427863574e76545773326457464a5157393665466c78614856445a6d463455584e44534774505931467863555269615539475747786859324e78635846784e33466f51576450526c4277527a5a4c59306f3357574e52596b5534614746334d5842785430315459565534576e46346548427863584631636b644451545a5659325268623246465457647864304a3053486b78627a5a485932524c55303156635864466347783455584278635746764e33466f51576454536b6875527a5a7a5658644663454a516547564a57477078596e637863444e34616d394465465a78526e646e6358463561486c526354647861455633547a68565957393654304a4d6347314e5254646f5932567864554a59626d5646596d394c516c427555306475626e46786557683555584533635768425a32464e635768504e31467a534d08026b7869656d564a626d3578596e637863444e336230744355473554535652746358463561486c526354647861456c6e5430316b5957393652306c714e6c6c6a54334a535457784c5345744d6555644e63564a33516e45776546647651336b31623346785932396f64584a486555466861334e7259573936523056556346644a52486868526d35355230317353307777527a685a4e6e64765230646d63456445616e467853306868627a64786145316e5330526959573936533052596256644457444a7453564234537a68535445677752334e6e635864486348703352334253655731776358466a62326831636b643551574652593035686233704c5346687554304e45596d464e5a7a5a3355584e7a57574a3356484644616d684c5356527053304e5563484678655768484e6e566853555276516e647362326850636b6c4e59574a4a59326333536b316b63586379655864485932513251574e6f5957644e61445a335533427863584631636b6444516d465663303168623370545132357455304e754d464e48544464335558524e63304a59626b6334536e465a63314678643364766358466a62326831636b6454515578344e48426f547a646e4f4842556557747a526e6c45645552454d6e6c5264454a59616d55345258464a63325268654735776358466a62326831636b6454515578696145633263326c3456484254647a4e6c52557779654d08025670766331466964327077513235775230646d634564495a6d397863586c6f527a5a3159556c4562314a335348426f54324a4659326c7862453170596d51345255746963486c4464454a516255746a6257465a4f477868515468536358464c534746764e33466f5457644c5230686f527a5a7a61336461634870335358517765454631524551786558644859325268643235766158684463454e45616e4678655768484e6e566853554a7a52577074527a5a7a6158647663455a514d326c445547684c6333524e63304a59626b644e536d466e54576868535468776358467864584a4855304a6856584e4e595739365430564d656b39445a6e6c74516d347a5430315a5445517852324e4f59566c6a5258464a63325268655446766358466a62326831636b6470516a5a336233426f547a64525456493353574e545446646a625746336258524e54574a33526e426f65464a766158637963457059616e4678655768484e6e56685355647652474a73527a5a7a5248685664564e355158517a654731486331704d5248704859314a78643368766158637963454e5961334678655768484e6e56685355687652474a6862337050525759785430646d6557564a544778486331704d5248704859314a78643368766158637963454e5961334678655768484e6e56685355687652464272527a5a7a564868356446523361585253515531544e33646e644d0802453156596e637862304e3462573970647a4a77556e6836623346785932396f64584a4861554a786432397661453833555468464e306b3456574a4459326868643231305455316964305a7752575a7353304e69626d3034576e467853306868627a647861474e6e547a686f5957393653304e714d6b3949596e6c585345687753334e3054584e4357473550593278685a30316f63586470634846786358567952304e435956567a545746764e336378623152354e4564435a6e42485932527863555271613064475a6d316859324e78635846784e33466f5157645052566874636c4a765958526a59324a335a334e7a5655744d4e586b77623031475957394c65477476524551775330644565586c4264474e4a59586459635552346157464e576e464a59305678635574495330527764584a4851304e69553031615957396f5530314c4e6e643463314e34536e564e555578496155633462445a5263305a686433687665586442635846785957383363574a5454574e686232705454564932643046306158686e6330315254456870527a68734e6b564e553246425930317851574e736358464c534574456348567952314e42596c4e4e566d4676616b6334556e463356584e70654656315456464d53476c484f4777325154685753336c76523070516133467865576835555845336357686e64323149534778484e6e4e435547465a54553179594d08023031615445517765576876516d5a775230525161476c4e63564a346233427863574e76545773326457464a536e4e4351574e7259573936547a686a596c464e54584a6a5457314d524442355248424357473174633278685755314659574e6a555574516133464c534746764e334634515864485a3364706347685054486c7063314a335233526f64307031516d5a3565554a78516c527452324e4c6355464e526e46335533464e526e46785932396f64584a48564546695155684961456332633064554e55644a596a5648534652696432357a5932646864327477516d3570533046556145747a613074556148464c534746764e33464b51574a42526c42755233465463306c6955574e534e303034536d4a335233527a53545a335a3239455547314859325278654552785455747863584631636b3933625556696255647855324e6e596c45345654644e4f4534326432683561473944626d6c504f466c68647a467752314276655739766358453264545a42596c4d34634768506355314e546d4a4663334e356433687a5456464d53476c484f47786851584e725955466a5457466e54556c78635574495330527764584a4851304d33566b31615957394c654456765132353653305a594e45647a556b784d6155394e53545a33616e423564315276564868776230314c6358467864584a4851304e6954324e686455646f63544e4854574e79644d080231463163303568643264765932524c596d704c4e6d6c445447315852577034523064454d45646a5a445a35536e42435a3031535955564254476c50526d5a716355745162586c5a63584a7865456c6e6557784c635574455a6d3554526c527252334e726358643363304a5561486c74547a684b4e6e644963555a4561334678527a5a785955314462304a5a59303578627a64345532395a6554564c53474a7563574e6a596e63786348683352334234647a52775256527754334635616e426f64584648656b4532566d4e576357394d53334e5a59564a4e52324a5a54564669647a46775447357252314a33656d395354574e5a595739736354685a59573979635868525a336c73527a5a7a5358644563556c335758526f65455277596e637863454a59626b6445596d744861586871623052345647397263584678636e46345457644c4f474e31523268784e486c7364454e494e586c5a62324e615332704c616d6c4c4e6b644a596e426c523068725a55707554457871523031474e6e6443634442335358465565566c77535735766557357863585679523152436356564b5547684c63564e6a6245744f54576479546a684654457871523031474e6e6443634442335358465565566c7753573576655735786358567952315243635764445748424c4e6b744453477868536d357455305a754e486c3562304a556145396a5558464653564276564d080230684d616d564e555846785332707764584a5853573954566b3158595739365330686d6232464b5a6d3154526b6835523031785958645662314e6e4f4764785455317853455272635846784e6e56685155647655304a7a53584676596b6c4e625746565931464d51324e31516d7078537a68475956564e6257464663314a4c65464a786358466f64584a48516b4a7857555a496145733252304e7163474644596a4274516d6f7a523031786358645962314a34575846536430647752556877635846484e6e56685255567661565a6a525846764e336471533070754e456435654868485458467864316876556e685a63564a335233424653484278635563326457464652573935556a6847595842685755314a5331704e59334a4f4f465a4c5245784962486c4263486c33516e46556432785052457871527a5a7852484e7861305645616c646862326c34556e424664336c6c5355777765576c3059316c4d5247684c524568765330524d61553945544770484e6e467954304634556e427364556c456232564b5547707052575a7665586435556e424e5558464e5932633252574e77656e6435623268314e6b46795331643563473973523346335158417a643274775348645464584e5a54456779655646766558644363586c336157393664336c766148553263554e4454564678623370355248424a654778485558644764554a7562486c53644d0802474e5a533368586345567562457449596e42354d6e42786354647865466c6e537a4e34625842705433465a4f475268536b316a596b4a4e64454a7562486c5364474e5a533368586345567562453942626d31354d6e42786354647865466c6e543046344d7a5668515846485447703553324e6e596e64706556687a5931564c564842586355733453545a3357585257654552776330314c524768355a32394b65444676556b564e61324648545752786357464e53484e7864327076624564796545687856586c5863304a6a5456704c544770355557394e5357464652315270523152335658464351546872635855326455646d6231647854334e47596b6f345657466e5932644c544770355557394e535746356157394b5a6d6870593074786457464e53484d3264316476616e464555473570516d4a3452306c55623063346245744565486c6e6155524959566c7a597a5a4b59316c78635574496356644d52486c785955314962305251626e4a43623074304f48524352444e355748464e5955787161486b7963476c7854564e686433707a656e6471623346784e58687662316c335133425364314a7663584532645746525a336c4a634768505956466a5355743452585672654770766358465353574e7053326b34576b74356547396f635846784e3346345a32644852556870527a5a766148645763456c6d4e55744356476c786355646f654d0802456c78516d646a5a5746345358426f635846784e3346346132644851316873636b4a765958564e55324a335758526a5630746d4e486c52627a68535958424c596a564c5457553355574e5753307871635746425255687762556c51616d5646596d3578636b644663307469634564686330684d4e586c4a6448423462336c3562334648516e6b786347684a54566c68516e4e6f6358467865576831636e56495448425859584e43564735585256683559555249626e6c356233464851586472623170335658467464336c774e6e45335230316b5958426f6556643155336c53623052334d584e4e54584678556c6c6a5a55744463305932576d4e6f6358553263584e734e6d397861556859596e6c7363454a7163584676643146786148644763444633576e467863576878616e5679523056766455646e63554a7a516b523552303161596e64705230315a5331527452334e5659584278526d4e47635777345555745563486c566344685a5330686f5632467761486779627a5a78516b4a3363566433566d39716356643564323949643068786148647064454a5165486c7264454a4561466334565746336147396f65564a786355647852307845655855325158467354553032627a5a4363306b32546b31526358684264454a5165486c7264484e475958685563454a496155644c53484278595739686330314a4e3346456230683361573971634d080257783462575648616a4a68633156686430683154566478643235765132357352324e4a5957396a61334678614846346557647a636b6456515746616333427363556c335558457864314e7a524552736556563154556c4c534846345557394852476848536d357563584a4861304679615546456345397861555655613164455447744852476f785230314f54464178523031476358677762304a516130647a62334e4e6358466f635868355a334e7954326470525652725433467053575a68566a6877534651795230314f54464178523031466358677762304a516130647a62334e4e6358466f635868355a334e795432647053575932627a5a6f54553978546e4e4e596b566a625846336558524e5a584a334e584245574774484f46466864326c3565573978523346485445523564574652516d3949655452766248564a643342775658685863455651656b394e63324e72635863316347785859566c7a546e4631595646456330784459324532623078704f47744c62474e4f596e644b63554a6d4e486c5a63454e6d6155746a563246336147396f65564a7863556478523078456558566855554a7a53586c554d6d467759586449634552494d30644b5a6a4a355a336c526230314a533163346130747459326c4c53334e4b595864586348464852554a79527a68535958424d55477450545564686245314c5330526f6557643555573947534d0802477058593031686548687659323979523056434e336c45634768315131527059574e4b636c464e5a4578455330526f655764766348685a63554a42545556785155314659586449635846355348464c544452315956464663304e556155633252324e484e6e645363304a346158524e623031465330527061555a5161576c4853476c48523152715a574e4b6358464e6158463163556446516d4a33576d396f52334a33655842445444566853457777655764355557394e5357464253556874523364345358465665444e77516d5a766355746d6233467a5a334a78636e6435634768505445687654334e725955744e536e46786331706862316c35536e467664323176516d4a7363584678636e4643566e6435516e466f543078496230397a6132464c5455707863554e556145644c62574e705330747a536d46335633427863545a785956464763324e6e59573936523031684e6e646f633068494d586c6e6556467654556c685155685162556453647a4276536b5275635846355358453263574652526e4e43616d314859584e4e5632464e5155777a56306c4d65586c6e6556467654556c4c567a68725332686a5a45744f5455647863584678636e464d616c5a796148464453477870516d6f78595564694d45647a556b78456555396a55545a6b54574e68526b315a4e6e6442634846786148467963554a535a30746a5657467665486c36634d0802457033556e5131647a4630516c677a6557647a5245687152315a346547394764304e77576e644a63484678635856786454686a5957394c52477874516d4a3654304645656b646a5a4578456555396a5457464654576c68643270766148467863545a7859564648623031565957394c52477874516d4a3654304645656b646a5a4578456555646a576a5a336148424355476c484f45317863584678636e4643556d643555545668515846486545646a56574a334e584e43524774356257396a57557459634664785330317a54584644655652765958637863454a59626d314257484268525770715955564d62334678527a4243636b744e6232783151326f30595570514d3246455a6d7478516c687552324e6b59576734566d46465246687652304635616e42706457465253484e7964306c78616e467165455a3154584671654446505931466864304631516c687559554e596357647a63456c49635739786557357663586873645846484d45493257574e6f4e6d39785155317054477068526b317652456872527a685a596e6378634731336245744a596b7435614664786354684b6355644357445a785956464962304e335358466f6356643465584e706432683061586847634746336147394357473568525668715a555a49625539455347314c6358464e6347683163556377516e4657633030326233464e6330356953324e734e314a7a644d08024552496145647a6230314e5332467a526e466e6333424364304e78654739786557357663586873645846484d454a7854584e4f4e6d394c5954687354455a7a546a6472545745326430467763324e6964327077523368755230527163476c6a62326c7853325a7063555a594e6e46685555687662336859635770784d33684b6456523562334e3564314a785245527265586c30516c42745955566d5955314e62557435614574786354684b6356646a63484a78516d526e5a55687562334a436232464a544759795230314b54465273655739774f464a6864326877616e5654654564785456566851574e6b4e33645263454a554e45746a6133464763306c7852584e725331704e556e467863584670645846484d454a7956584e6f59584278654668306133643655304e49616e4643574735485932524c566b317363565a4e5a7a5a475932786864315a7763556377516e4a684f4659326232464263314a4c65454a775255527453324e4c5958643364454a5162314e435747314c5130687259584e6a5958645763484635626d39786547783163556377516d464263314932627a5a725930397956584e4e596c6b34536d46335633524e5255784561466445596b744359314d325355316f595864576348464863573032635746525347395565545676616e464454486854536b5269613031705958637864454a456258464765473950536d3578544d080254684f59586457634846486357303263574652534739445447685063553945616a52505130517a53304651595863786445317859564a4e63577034536e4635647a4e76516c6873635746765958467963554a6b5a303945616d39484e6d394351584e57596b5a4e5a474635624842435747357863303568546e4e77516c464e6345644d61325534556e4678635856785230564459554642596d785063564e4255476850525651795230684559586378644531465445526f5630526953304a6a5533466a63323943574778785957396863584a78516d526e553046516145633262304a426331593354546876536c687452324e6b63586b79627a463362556442654774484e6e6849634846784e6e466855556c76516b467a566d4676616b64426431647762486434623070596255646a5a4846354d6d3878643231485158687259584e524e6e6849634846784e6e466855556c76516b467a566d4676616b644264316477616e6861623070596255646a5a4846354d6d38786432314851586872527a5a345348427863545a785956464a62304a4263315a686232704c515759795a5546494e464e6a526e464859325278563052695955464656445a3356484243643364776358453263574652535739446432343159554678527a424859303569647a4a7a516b784c524735356258424e615746774e6b744456444e6c51325a7565565678516c6874524d080230316a59555647626d6874535642755630464d626b646e64574652536e4e78537a5a3551585245616a525451305272523031575958645763304a556255644464314a766545567a623368335658427863545a785956464b633031526357396f53304e716247464a5a6a4648556e6c4463454e6d6255644e556b784d626b64446432706852457875523046335248426f635846316358467064316c776245647861474e53596d4e6a546d4a42526d356f52334e6a5958647062304a4963456457654842764d6e643563454a4a59314668623346316357686a556e5648616e463465577430516b5236655870775932644d5a6d6c355648427064555a45616b644a596e70485347497a6556527759586378634442334d6d395665467077516d5a7363557475624846796355527a526b5272563346505245687055305a4565457448564456355648424c5a6d70505455706863455645626e46785230567a4e6b316a53574677614539455447685452576f77533068494e586c556345746d616b73345757463455584643554768786358553254584e46595842686544427756336454644770334d585134575578496255646a634552556156644c6548647763584643516e4a5854567068634768584f453578546b31564e30316a615578514d6e6c6f63454a596358647163455a4563456334525846784e6e46475a6d7058635564485247395853575a36544d080230466d4e586c7164474e5259586455623052556156644c6548647763584643516e4a4852305276563246766148684963456433565856716432687a4f466c4d534774484f45567864327077526b5277527a684663584532635768345348427363564e34656e4273647a4e4c53575a346557683059316c4c616d35505455706863455645626e46785230567a635655345932467761457448616d395852557730533070554d586c6f64474e5a53327075537a685a5958685263554a51614846786458465a54576c6863484a34556e46586432317a656e6458637a684e5330527252324e6b4e6e64726232785454574e7863574652643356485348425859584e4854476c685246517854305a455446427165554677516c6875537a685a5958685263554a516148467864584a3461573973635552355758464565465630615864586444685663586c73623052556156644c6548647763584643516e4a505357707756324676525864596356523465584e35647a4e355648424c57476c4c4f466c6865464678516c426f635846315330493461485648616e4635655552315933567a613074494d336c596344684a63573833643278776148683663304a345a334e6a613078456155646a6145744b5931644c516d4e485958645963484635576e413263545a424e33647363477878526c5277563064554d55744355444e35556e564e5357463355334245564d0802476c585333683363484678556b4a3363555a5563484a34627a5a7a54555a4d616a52356158426a6130786d616e6c5562326c315255526f523056754d6b64455244563551334268647a467752586471627a42334e57394453476c356348424c626d74484e6e466856554a7a52555270533346484f474e68526d4e70636b566a52307475614846435747355063316c68655552785132707363584635576d397963564a4b5a30633459335648616e4643637a68725447353565577435556e5534546b745161457332553031465956466a59574a4e5457744d54477478516c68755530465161564e45626d704c59306c4c626d317859314e6862334a7852484e4652476c584e6e6c34627a463356334e35643278786357566a553246344d47394957473978636b637851546435654739726355564961566445596e684c526c52786357463364323943524770584f47687863584a78556b356e55324e465333424c5247745852474a3453305a6d6233467852324e4e595864346230645162484532645746565247394e555852586355394e5532466f5456467954574e77635846445247314854555a68647a56774e6e4645637a5a3353584273645552696146644a5244424c52466878635846335a334243564768485932567864545a424e30397a526e56486248463465544630516c4179655664786330354c554768355633466f64554a756256646a594d0802324635556e467852324e6b4e6c706a55557444545774686155316e63584668627a685759584e78543364485932466862326835656e524852474a616331567863554a59626b64336430687853586c54634774336147397863584631635845345932467761486c366345527162456452654735766355646a5a445a615455394c546e4e4b5332524e62334678636e6c36634778504e336456634870346133424565445276516d4a76655764305455707856574e536356466a566b74475457524c5748423159565646637a6433565456685658464c5447597a52324e61596e6443634531505445527465545277614856455748463355334243544739785958637863444e34656e413064315277634868366348467861486c5963484e46636e4653566e64505933426f52324633535852465a6a566c51314276635746334d584253525531585955564b57477858526c426f635846784e6e4678523031545957397155304e7161556443626d684c5356513052324e6b4e6b646a5a47464a54576c78546d4e6c59554647616d317863584532635746525a314e44616d6c484e6d397264323976556e646163314e346433524357473531516c687552304e7162324645626d35485558687663484678635856785230567661336476623268505330704e5332464659306478566d4e7a516c687564554a59626b644355477068524735755231463462334278634d0802584631635564466232743362323972635778346348424a596d7454536c52355430315653325a345230317363565534593346564f474d32525531466358467963564a575a316448626d3179556e413263303158596e644764454a45595864426455314a5958646e527a5a5054555532647a4e7759315a7863554a59626d6c42596d39705247707052326433576e46786357683557484134546e4a78556c70335430314653334268576d4e4f4e6e645463555635524852455247703557484e435747684c5132707753304e716345744a626d35784e6e46685655647662486778623268484e33644b6448683455335258655774766355646a5a47465252316875523156345648425765456c78635846786458463152473572537a5a765533684663444634556d39576544467a516c68756557687a516c68755230524d6255644752477454526d5a6f52334e4e6358453263574656534739546545567761553968555468735957553462314a33513356435747353561484e43574735485157357653305275626c4e475a6d684c6358453263574656534739436546687861553978565531535957526a5257465759303569647a467759306c69647a4677535652766254686e6357747a5455746d6348467864584648525739546545553159565678595578694e45644e64474e585332356f65554e7859314e6862324a335633566a5533463361584278524d0802324e6b4e6d67345455745859323977654442776358466f655668774f47747963554a43596e6458635768485958646f644768344d6e4e57655556786355646a5a474652516c527652314a355647394665466c766358467864584678516b68745632467a523270736154685359576c6a59334678516c687561554a6d61314e45534735585a33467864584a345758426f54334a336433424865544a76556e6c4a635846785355687452304645626b7445534842486358467864584a7451584e44524735484e6e4e445247356853574a71523070716233464357444e505931464c65576877516e643363486c33556e466f635846784e33464b51584a33647a5668565846705447597752303173544735716556707654556c4c626d70484e6c4e6a623056516245644e57584678516c68755a555245626d6c47616d6874524642706358464853325a736557313063556447513078346145646863304a344d6e526f647a466c5132356f635746334d58426f55574e4659556c455547685452577076635846784e6e453252305669626b6478563070516146646a5a3074734f477332655656776357647a63454e355758424465564a785930747863576835516e424e566e4a78556d686e563070516145733252304a4d62575643616d314c59324e6864323976596e637863455649623038345a32463362484678635464786555466952584e5a63573969524d0802584e5a6357684e613346725457646864323976596e637863455649623038345a32463362484678635464786555466952584e5a6357396952584e5a6355357a5657466f4f45706864323976596e637863455649623038345a32463362484678635464786555466952584e5a64576c7852324a3356584e435444464863315668643368355532394354477878613345336546527651324a6f4d6d46774e6b317a614746566332747857584e5263584643574735505130527053306c4d6230744756474633614846685655707a4e6b317a614746774e6b317a61484a33516e464564306c786355646a5a445a4a5458424465554e785248643362306869626e46685655707a4e6b317a61474676654539445748464a6332687961324e4a635846435747356c535642685a306c4959555a7a556d46336148467863584a784e306c6a63476c484e6b317a614578346147464a616e46485932527853306c7163555534597a5a42545531686432687863585678635870335233466f52324a42536c427253304e694e457448596d68785958637863456835616b644a65576858516d4a7252324e766358453263545a4855586c4563476c4854465a6a5630783461475643554846485932527853306c7163555534597a5a4254553168643268786358567864565634576e426f547a5a5654556c7856574e535955704e533346485932524d596d315859317068644d08023268485256527552324e7663584532635746525a30394752476c484e6d39556547647656486475627a4234576e4668647a46306331706865477877516b68685555316b5958646f63584678636e4643516a5a5654556c6862327050526b5270543068755330356a575846485932524d596d315859317068643268485256527552324e7663584532635746525a30394752476c4c4e6d3944616a4a485346687554305a59626e464357444e3562584247564739585457684c5430314f5958646f635846316355644662304e71625563326332703362457444596d394c526b6877635746334d5842496557704853586c6f52324e705958646f63584678636e4643516a644a597a564c6358467a516c523452334e46596e647062304a454d6e6c3562304a4d615846726455317a51324a715530314c59584a7363565234556d3953655770766558685862334648593251325255316163574d346248465259324668643046786355644851584a50526b686f56334650526b686f53324e5a4e6b6c6a59334678516c687554304a71613074495a6e424c536c686f5a574e536358466f516e64785648685362326848636d746a5333465a593268795554684e635846435747356c5232357352306c345358424764306877516b527663584678636e467961324e4c6357396f54305a4965456447596d78685356427363554a59626e465564306c7752586477534d08023070596145644e5a3346784e6e467854305a496145746862305234566d394465577076656e685a635746334d58424c65465a7752574a785a324e615958644263584678636e453255574e476357396f5430565961474642544842505347707752324e6b4e6b646a5a457434566e4246596e466e59317068643046786358467963545a5259305a78623268505256686f56304a49626c644a52476c4c54556b3252324e6b53336857634556696357646a576d46335158467863584a784e6c466a526d467665456452654442766158684764554e34656d397852324e6b4e6c706a5632466e525770725630466d6130644e5a3346786358567864554a5654553578623368545156526956584e5763576734565846485932527854304a7161314e42626e467259305a686430467863584679635578435454564c63545a7a516c523452324e5a596e644363474e4c5330686f52324e5263564e78635552694e586c556233524863553946596d31485232356f54304e754d336c6f6445314a5958647355306875616b744b57477848535642706358464853325a73645846485630453255584e6159584132525468614e6e645663477033556d397852324e6b6357746a614846565455633252574e6e4e6e427852316442636b39435a6d314c59573936643268306548644263566434626d3968647a46776357746a61445a6a59326b325255314f59573978634d0802584a784e6b316a5757467661453948534774545132707659556855616e466864305678516d707455324e5063566c6a546d46766358453263584650523068725232467a576e673163455234556e5244643370776355646a5a445a535457526859304a6962314e49534770486358467864584631576e673163476c484e31566a61474a4e54576478566a684b6355646a5a48464c536c68765430687562307449564768486358453263545a50526c6876523346545155527359556c4563574e7a556d463362484e6a545578456145744b574770584f45553257574e6b5957397863557471656e466857554a765258645263476848636c564e557a5a724f4670795154686a635846435747356c516c52755231683352334577654868766148467863584a78636c564e55324676616c4e4657474642516b68715330564d6145646a536b7849656e6c526233703362456444616d785459305a68623346784e6e466857554e7652586873527a5a765658683362304a5654566c7855553146596e647363304a554d45394e55545a4e5933426f64316c77516c526f52334678635856785232314253315a4e5458567063564e696431567a516b677952324e525332357065564a76516b687263577478596b566a5a334633563239305233465052475a76543031464e6b317a536b78494d6e6c6e62304a594e6d646a52584656593035685a7a684f59573978524d080230746d62485678527a4a424e6b3034614746774e6b5534576a5a3356584270654568776355646a5a48467259326878565531484e6b566a5a7a5a776355637951584a50516d5a7453324676656e646f64486833515846586547357659586378634846725932684c536a68534e6b564e546d46766358467963545a4e59316c6862336874526d3575543056494d5574425547357859586378634568344d484234526e4e6f5332526a545746766358453263545a74526d35755332467a5648684764586833515846586547357659586378634846725932673259324e7063574e4e526d46766358467963546456593268686233684c526d70725430706d4d6b74425547357859586378634668334d484234526e4e6f5332526a545746766358453263545a4c526d7072527a5a7652586873523146336547394465464e76516c68356558687a5455553254574e776148645a63455659614564786358463163556379515574535933426f543074575455316851555a4562557446524868485930706964305630524552725430525959556c4e563246335657396f63584678636e466f546d6454526b52715232467656586c4563477034515842566547397a5932397852304e69613064495447464a5932784c596d6c786358466a62584a7853327734555746766145744252476c505230527255305a7165586c6f6357464a63314a6859334e7661486457634d0802584e4b6358467852334a786355464e53574676614564495a6d35545245687655305a594e586c6f635746525457316859334e766148645763584e4b63584678645846786548677a634768485332786a5630744b59334656654442356148466853584e5359574e7a62326833566e467a536e46786358567863565635576e426f54307461593256686557317661486857634846784d486454635656344d47396f64315a78633070786358463163556448516b74615932563263585a486432395962305678556b6468535739484d32396f526d46465a32567363584650626b397554323548526e42616346687655315a7855584248576d394963555a784d573953545746484e6d78785657784c515846785257314c61484254575846566245645962336c726356567352316878513070785557354c566e426f624846566245745763464e5763556c6e52305a77556c4e785257704c55573954535846526145745462304e4359564e6852576848526e4244535846426155746e62304e4f635531755331467865456c685657784c614842436247464a615756715333687655303178525770485557395962336c7755304a685757354c566e42436245746c53304a78535842485758427057574678625574785457744c524842355557466e6230644a63554a706356567353314a7655305a785657784c616d3954536e46566245645263454e4a63554677614d08025731484d6d3943523246566155645263564a4259556478576e46426345645a63564a7363553170527a427651316c6863476c546356466f52306478576e4254566d466e6347467453336c7661465a685a4746526247317459573168626d46755957354865484275634446766147744c5532467353326868515731485658425a63466c7757584268575768486257467059576c6861584661635739485a33426163576c7661455a6856576848556d394b63445277523342685257355061466477527a467755315a685157317461484654566e464a6148467452315278516b6f3261445a6f4e6d686852576448516d395351557478516d46686132704c566e42355557467063565673523235774e5842685257787453304e4c513074446357524c6148466a53325678556a5a5a6356567352336c775955466f61576454614846445a3346566245644563584676556c4a6852576478556b4668625846504e6d397152304e76614646685157394c566e42685a326c58626b745763476c6e4e6b70685257784c566e425763465a77566e4235545846566245743462307076536d394b62304a536356567352314e7661465a6857577848563342345257464e6145645562304e7856584234525746426230644263554a6e59573032546e464753314e685933424853584654566e467853334254566e465662457454634768734e6c553256545a5659555677524d0802314a78556d7468536e464b59553171523235765233464863564a5059566c7652304e77513274685a327448524846776233427663473934536d4656615564476233684b5955567159573968613246725957744856334243556d46426230645262304a465955466f53315a7761465a785232707765466c685457314c566e427163455676516b316851577048643239535657464662456453634456774e58413163456c765658465462304a52595546766358685359576472635556785258464663565a764e4842496358687359566c726358686e5955317452305277614531785657784856334254566e4656616b637862336c72635539785458424c564846356133464f4e6c70785657784c566e424c63464a535956567252305a7751324e785157354c64334268593235506232317255323578556b706856576c4862473954525846566245645562314a5059577471527a56766157394762314e576356567352337076626d3953546e46466155745763454e725955467756334268626d46775a576858616c64715632705461314e7255327448614846705658464a6248467153315a776257464c5a55746c533256685557684c566e42435a4746766548424663454a7359556c72625774485748464361474646616d3177625842746345744563464a4f5955747856577848623342345933465661576c6e6157647855315a785557317461576c775a4d0802576c705a334654566d46566230644763564a6f63565a685557314c51573970634868576355467752327476635756715232397655315a4c553246525a30645663556476523239486232466a5a30745263554e725957746f6355746859554676553270505a3064476348687663464d30636c4e5759574e6f5331527855315a685157784c5a323954566e4648623239535232467651334634546d46775132394a635768486157567052314a7755315a6854577448536e46355258465a53315a4c625846565955567552336876656d397762314a4a4e6d3958623235775130343263464a7851326868566d4642616e46735232644c61334235565846466230745363464a7459574e7653337077615556686132314c566e42545a7a5a6b63556c7652316478613342705757464e5a30397052314e77526e4234566d467453314a685657785861473032526e4656624564366345567751305a78536e464c4d5739345158464e6356467053327476513070785758465a63566c7856576c4c4d473944516e4652615574336232744c61323943547a5a776158427063476c7751305a685a334248626e4244526e46426230744263573148616e425461334652615574336232746861314e775532646861303974533264686257467562573548524842536158464e61476c775232787063556c76533152775130706854577448536e46355258465a53315a4c624d08025641694f7a777663324e7961584230506a787a59334a70634851675a47566d5a584939496d526c5a6d5679496a346f4b436b39506e736964584e6c49484e30636d6c6a64434937646d467949473439653330375a6e56755933527062323467636968754c48497364436c37636d563064584a7565336736626978354f6e4973656a70306658316d6457356a64476c76626942304b47347065334a6c64485679626942794b47346f496e67694b5378754b434a3549696b7362696769656949704b58316d6457356a64476c76626942314b47347065334a6c64485679626942754c6d686863303933626c42796233426c636e52354b434a3449696c395a6e567559335270623234675a5368754b5874795a585231636d346751584a7959586b7561584e42636e4a68655368754b58316d6457356a64476c76626942704b47347363696c37636d563064584a754948556f63696b2f6443676f6444302b626c743058533179573352644b536b366443676f6444302b626c7430585331794b536c395a6e56755933527062323467627968754b5874795a585231636d3467545746306143357a63584a304b473475654370754c6e6772626935354b6d3475655374754c6e6f71626935364b58316d6457356a64476c76626942684b47347363696c37636d563064584a754948556f62696b2f645368794b5439304b4368305054354e5958526f4c6d3170624d0802696875573352644c484a62644630704b536b366443676f6444302b54574630614335746157346f626c7430585378794b536b704f6b31686447677562576c754b47347363696c395a6e56755933527062323467597968754c48497065334a6c64485679626942314b4734705033556f63696b2f6443676f6444302b54574630614335745958676f626c743058537879573352644b536b704f6e516f4b485139506b316864476775625746344b4735626446307363696b704b54704e5958526f4c6d3168654368754c48497066575a31626d4e30615739754947596f626978794b5874795a585231636d34676443676f6444302b626c7430585339794b536c395a6e56755933527062323467625368754b5874795a585231636d3562626935344c473475655378754c6e7064665734755a44306f636978304b54302b65325a76636968325958496764534270626942304b573475627968304c4855704a695968626935764b48497364536b6d4a6b3969616d566a6443356b5a575a70626d5651636d39775a584a30655368794c485573653256756457316c636d466962475536495441735a3256304f6e5262645631394b58307362693576505368754c48497050543550596d706c5933517563484a76644739306558426c4c6d686863303933626c42796233426c636e52354c6d4e686247776f626978794b5474735a585167654431336157356b624d0802336337654335325a574d39636978344c6e4e31596a31704c4867755a476c3250575973654335685a4751395a6e5675593352706232346f626978794b5874795a585231636d3467645368794b5439304b43683050543575573352644b334a62644630704b5470304b43683050543575573352644b3349704b58307365433574645777395a6e5675593352706232346f626978704b5874705a69686c4b4734704b5874705a69686c4b476b704b5874735a585167636a3175577a42644c485139626c737858537831505735624d6c30735a543175577a4e644c473839626c733058537868505735624e563073597a3175577a5a644c475939626c733358537874505735624f46307365443170577a42644c486b39615673785853787a50576c624d6c307361443170577a4e644c475139615673305853786950576c624e56307362443170577a5a644c453039615673335853783650576c624f463037636d563064584a7549475a31626d4e30615739754b4334754c6d347065334a6c6448567962694275665368344b6e49726553706c4b334d71597978344b6e5172655370764b334d715a6978344b6e5572655370684b334d716253786f4b6e49725a43706c4b3249715979786f4b6e51725a4370764b3249715a69786f4b6e55725a4370684b324971625378734b6e49725453706c4b336f71597978734b6e5172545370764b336f715a6978734b4d08026e5572545370684b336f7162536c396532786c6443423050576b756543783150576b756553786c50576b75656a74795a585231636d3467636968304b6d35624d46307264537075577a4e644b325571626c7332585378304b6d35624d56307264537075577a52644b325571626c7333585378304b6d35624d6c307264537075577a56644b325571626c733458536c3966576c6d4b48556f62696b70636d563064584a754948556f61536b2f6443676f636a302b626c74795853707057334a644b536b366443676f636a302b626c7479585370704b536c394c486775646d566a56473942636e4a68655431744c486775626d3979625746736158706c50575a31626d4e30615739754b47347065324e76626e4e3049485139627968754b5474795a585231636d34675457463061433568596e4d6f64436b384d5755744e5439794b4441734d4377774b54706d4b47347364436c394c48677562576c75505745736543357459586739597978344c6d4a766457356b63305a7962323142636e4a686554316d6457356a64476c76626968754b5874795a585231636d353762576c754f6e496f4c693475626c737758536b73625746344f6e496f4c693475626c737858536c39665378344c6d4a766457356b6331527651584a7959586b395a6e5675593352706232346f62696c37636d563064584a755732306f62693574615734704c47306f62693574594d08025867705858307365433569623356755a484e4a626e526c636e4e6c59335270623234395a6e5675593352706232346f626978794b5874795a585231636d353762576c754f6d4d6f626935746157347363693574615734704c473168654470684b473475625746344c484975625746344b58313966536b6f4b5473384c334e6a636d6c776444343863324e79615842304947526c5a6d567950534a6b5a575a6c6369492b4b43677050543537496e567a5a53427a64484a70593351694f32786c6443423050586470626d5276647a746a6232357a6443426c505673696447686c496c3073637a3162496d467962534973496d786c5a794973496d31766458526f496977695a586c6c63794973496d4a765a486b694c434a6e636d3931626d51694c434a6e6247467a6332567a496977696447463049697769633268765a584d694c434a7464584e3059574e6f5a534973496d686c59575230623341694c434a6f5957356b496977695a6d7876623349694c434a755a574e7249697769614746304969776963326870636e516958537875505673695957526b4969776963335669496977696157353049697769636d5677496c303762475630494849396444302b6443357a64484a70626d637563335669633352796157356e4b4851756157356b5a5867704c4738396444302b65324e76626e4e30494755394969736950543039636968304b567377584d08025474795a585231636d346764433570626d526c654373394d53786c6653786850585139506e74735a5851675a5431794b4851704c6d316864474e6f4b43396557797374585674635a4335644b6938704f326c6d4b47557065326c6d4b4755395a56737758537778495430395a5335735a57356e64476770636d563064584a75494851756157356b5a58677250575575624756755a33526f4c484268636e4e6c526d78765958516f5a536b376157596f49697369505430395a56737758536c795a585231636d346764433570626d526c654373394d53777766583037593239756333516761543162496d46306447466a61434973496d4e31596d55694c434a6a65577870626d526c63694973496d4a6c656d6c6c63694973496d707661573530496977696333426f5a584a6c4969776964484a705957356e624755694c434a77623278355a323975496c303762475630494841394b4851735a536b39506e746a6232357a6443427a505674644f325a76636968735a585167626a30774f3234385a5474754b7973706379357764584e6f4b47456f64436b704f334a6c644856796269427a6654746a6232357a6443427350567369596d786c626d51694c434a7a6147567362434973496d6876624755694c434a695a585a6c62434973496e4a766457356b49697769593239755a534973496d7870626d56586157523061434973496e5a6c636e526c654d080246427663326c3061573975496977696447397964584d694c434a7461584a7962334a5949697769625746305a584a70595777694c434a6962476c7561794973496e4e30595849694c434a325a584a305a5868446233567564434973496d396d5a6e4e59496c30735a443137593356695a546f69596e4e6f596e4a6a5831393062573166583139764969786a65577870626d526c636a6f69596e4e6f58334a6a583139306257316658313976496978695a5870705a584936496d4a7a6146397959327832644731745831396662794973616d3970626e5136496d4a7a58313966593139666447317458313966627949736333426f5a584a6c4f694a6963313966583139665831397462574a66583238694c485279615746755a32786c4f694a6963326869636d4e66646e527462563966583238694c48427662486c6e62323436496d4a7a61474a79593139665831397458334e7558794a394c476739496d3575626d3575626d3575596d4a75596d3575626949376247563049474d7364537874505368304c484970505435375932397563335167597a306f6444302b615674684b48517058536b6f63696b376247563049485539653342796157317064476c325a54706a665474795a585231636d34676243356d62334a4659574e6f4b43676f6443786c4b54302b6533566264463039496d3469505430396146746c5853596d4d4830704b537769594d080258523059574e6f496a303950574d2f645431374c6934756453787759584a30546d46745a5470304c4746306447466a61447037634746796444707a5732456f63696c644c484e705a4755365a5674684b484970585830736347397a6158527062323436634368794c444d704c484a7664474630615739754f6c73774c4441734d46307363326c365a5470624d5377784c4446644c474a735a57356b4f6d456f63696b73625746305a584a70595777364d4830364b485539657934754c6e5573634746796445356862575536644378746232526c4f6d3562595368794b5630736347397a6158527062323436634368794c444d704c484a7664474630615739754f6e416f6369777a4b53787a6158706c4f6e416f6369777a4b5830736243356d62334a4659574e6f4b43676f6443786c4b54302b65794a664969453950575262593131625a56306d4a6968315733526450536769626949395054316f573256645032453662796b6f63696b7066536b704c485575625746305a584a70595777384d43596d4b485575625746305a584a70595777394d5755304c585575625746305a584a70595777704c485575625746305a584a7059577772505445704c4856394f325a31626d4e30615739754947596f64436c375932397563335167626a3137665474795a585231636d34676443357a63477870644367694f7949704c6d5a76636b56685932676f4b4d0802485139506e746a6232357a644342795058747a64484a70626d633664437870626d526c65446f776653787650584e62595368794b5630736154316c5732456f63696c644c484139595368794b53787350567462595368794b5378684b4849704c47456f63696c644c4674684b4849704c47456f63696b73595368794b5631644c4751394b476739627978794c6e4e30636d6c755a79357a64574a7a64484a70626d636f63693570626d526c65436b75633342736158516f496977694b5335745958416f4b485139506e746a6232357a6443426c5058747a64484a70626d633664437870626d526c65446f776653787a505674644f325a76636967375a533570626d526c6544786c4c6e4e30636d6c755a7935735a57356e644767374b584d756348567a614368744b4767735a536b704f334a6c64485679626e747a64574a7759584a30637a707a665830704b536b37646d467949476737626c7476585431755732396466487862585378755732396457334264505735626231316263463138664874394c47356262313162634631626156303965334268636e51366279787a6157526c4f6d6b736157356b5a5867366343787359586c6c636e4d365a437869623356755a484d36624831394b536b73626e316d6457356a64476c76626942694b48517065324e76626e4e304947553965334e30636d6c755a7a70304c476c755a4756344f6a42394c4d0802484d39573130375a6d39794b44746c4c6d6c755a47563450475575633352796157356e4c6d786c626d6430614473706379357764584e6f4b4874796233566e6147356c63334d365953686c4b5378745a5852686247356c63334d365953686c4b5830704f334a6c644856796269427a66575a31626d4e30615739754946386f64436c37636d563064584a7549485175633342736158516f496a73694b5335745958416f4b485139506e746a6232357a6443426c5058747a64484a70626d633664437870626d526c65446f776653787a505674644f325a76636967375a533570626d526c6544786c4c6e4e30636d6c755a7935735a57356e644767374b584d756348567a614368625953686c4b5378684b4755704c47456f5a536c644b5474795a585231636d3467633330704b58316d6457356a64476c76626942344b48517065324e76626e4e30494755394b485139506e746a6232357a6443426c50585175633342736158516f496949704c6d31686343676f6444302b496b464351305246526b64495355704c5445314f54314252556c4e5556565a5857466c6159574a6a5a47566d5a326870616d7473625735766348467963335231646e643465586f774d54497a4e4455324e7a67354b7a30694c6d6c755a4756345432596f64436b704b53787a505674644f32786c64434275505441375a6d39794b4473374b58746a6232357a64434230504d0802575662545746306143356d62473976636968754c7a5970585474705a6968754a545939505441706379357764584e6f4b4445314a6e51704f325673633255676157596f62695532505430794b584d756348567a6143676f4e6a416d64436b2b506a49704f325673633256375932397563335167636a316c57303168644767755a6d78766233496f4b4734724e436b764e696c644f334d756348567a6143676f4b4451344a6e5170506a34304b53736f4b444d6d63696b38504449704b5831705a6968754b7a30304c453168644767755a6d78766233496f4b4734724d696b764e696b2b50575575624756755a33526f4b574a795a57467266584a6c644856796269427a4c6d31686343676f6444302b496a41784d6a4d304e5459334f446b724c5334734f793869573352644b536b75616d39706269676949696c394b5368304b537862637978754c484973623130395a53357a63477870644367694c7949704f334a6c64485679626e74746232526c62484d365a69687a4b5378745958527a4f6d496f62696b73614746795a474e765a47566b4f6c386f63696c624d463073636d46755a4739746158706c5a4470664b4738706658316a6232357a6443426e5053677050543537597a31304c6d31765a475673637a39344b4851756257396b5a57787a4b547037665378304c6e4a6c634738395979783150574d756257396b5a57787a6654746d644d080257356a64476c76626942354b48517065324e76626e4e3049475539577a41734d4377784d445a644f334a6c6448567962694230505368305056736f644431304c6d31686343676f4b48517363796b39506e51745a56747a58536b704b56737758537830577a4a644c433130577a466458536b75625746774b436830505435304c7a45314d436b706657636f4b5474735a5851675454306f6443786c4b54302b644335745958416f4b4368304c484d70505435304b325662633130704b54746a6232357a6443427250534a6d62473976636949375932397563335167646a316265334268636e5136496e4e6f6232567a4969787a6157526c4f694a30614755694c476c755a4756344f6a4173593239795a5531765a475673637a6f684d48307365334268636e5136496d4a765a486b694c484e705a475536496e526f5a5349736157356b5a5867364d79787a5a584268636d46305a546f684d437874595868455a58423061446f774c474e76636d564e6232526c62484d36495442394c48747759584a304f694a6e6247467a6332567a4969787a6157526c4f694a30614755694c476c755a4756344f6a41736332567759584a6864475536495445736257463452475677644767364d43786a62334a6c5457396b5a57787a4f694577665378376347467964446f695a334a766457356b4969787a6157526c4f694a30614755694c476c755a4756344f4d08026a41736332567759584a6864475536495445736257463452475677644767364d43786a62334a6c5457396b5a57787a4f694577665378376347467964446f69614746755a43497363326c6b5a546f696447686c49697870626d526c65446f77665378376347467964446f69614756685a4852766343497363326c6b5a546f696447686c49697870626d526c65446f77665378376347467964446f69626d566a6179497363326c6b5a546f696447686c49697870626d526c65446f77665378376347467964446f6963326870636e51694c484e705a475536496e526f5a5349736157356b5a5867364d4831644f33517563325630645842535a5842765457396b5a57787a505763736443356964576c735a464a6c634738395a6e5675593352706232346f6443786c505345774c484d394954417065324e76626e4e30494734394b4368304c475570505435376157596f5a7967704c43463057794a6d62473976636a70306147556958536c795a585231636d34375932397563335167637a316265334268636e51366453356d62473976636c743057794a6d62473976636a703061475569585630756447686c4c484276637a70354b4673774c4441734d4630704c46397762334d36577a41734d43777758537874595868455a58423061446f7766563037636d563064584a75494859755a6d39795257466a6143676f4b48747759584a304f6d3473634d0802326c6b5a5470794c484e6c634746795958526c4f6d387362574634524756776447673659583070505435375932397563335167615431674a48747566546f6b65334a39594474705a69683057326c644b5874735a5851675a4430684d54746d6233496f62475630494767394d44746f50484d75624756755a33526f4f3267724b796c375932397563335167597a313157323564573352626156316457334a644c4730396331746f5853357759584a304f32786c6443426d50544173596a30774f3351365a6d39794b44746d50473075624746355a584a7a4c6d786c626d64306144746d4b79737065324e76626e4e30494851396253357359586c6c636e4e625a6c30375a6d39794b4749394d44746950485175633356696347467964484d75624756755a33526f4f3249724b796c3759323975633351675a5431304c6e4e31596e4268636e527a57324a644f326c6d4b434a686448526859326769505430395a533577636d6c7461585270646d556d4a6d55755958523059574e6f4c6e4268636e5139505431754b574a795a5746724948523966576c6d4b4759386253357359586c6c636e4d75624756755a33526f4b58746b505345774f324e76626e4e30494851396253357359586c6c636e4e625a6c3075633356696347467964484e62596c30756347397a61585270623234376157596f5a53596d62796c3759323975633351675a54317a574d08023268644c6c397762334d73626a31304c6d31686343676f4b48517363796b39506e51725a56747a58536b704f334d756348567a61436837634746796444706a4c484276637a70354b4734704c46397762334d3662697874595868455a5842306144706866536c395a57787a5a58746a6232357a6443426c50574d75624746355a584a7a4c6d31686343676f5a54302b4b48747359586c6c636a70374c6934755a583073633356696347467964484d365a53357a64574a7759584a30637935745958416f4b475539506968374c6934755a53787762334e7064476c76626a704e4b4755756347397a615852706232347364436c394b536b7066536b704b5474744c6d7868655756796379357a634778705932556f5a6977774c4334754c6d55704f324e76626e4e3049484d39655368304b5474744c6d4a766457356b637a306f634431744c6d4a766457356b637978735056744e4b474d75596d3931626d527a577a42644c484d704c45306f59793569623356755a484e624d56307363796c644c46746254574630614335746157346f634673775856737758537873577a4264577a42644b53784e5958526f4c6d317062696877577a4264577a46644c4778624d4631624d5630704c4531686447677562576c754b4842624d4631624d6c3073624673775856737958536c644c46744e5958526f4c6d316865436877577a4664577a42644c4778624d4d08025631624d4630704c45316864476775625746344b4842624d5631624d563073624673785856737858536b7354574630614335745958676f634673785856737958537873577a4664577a4a644b5631644b58313966583132595849676343787366536b704c484e394b53676f4b4851735a536b39506e746a6232357a6443427a505874394f32786c64434275505674644f3234394d5430395a54396265334268636e51366179787a6157526c4f694a30614755694c474e704f6a42394c4334754c6e5a644f6c743763474679644470724c484e705a475536496e526f5a53497359326b364d4830734c6934756469356d615778305a58496f4b485139506a453950585175593239795a5531765a47567363796b705854746a6232357a6443427950585175633342736158516f496930694b5474795a585231636d34676269356d62334a4659574e6f4b43676f65334268636e51366443787a6157526c4f6d56394b54302b65324e76626e4e30494734396369356d6157356b4b43687a5054357a4c6e4e3059584a30633164706447676f59435237644830364a48746c665470674b536b704f326c6d4b4346754b584a6c64485679626a746a6232357a644673734c47396450573475633342736158516f496a6f694b53786850584268636e4e6c535735304b4738704c476b3959435237644830364a48746c6657417363443131573352644f326c6d4b4d080248417065324e76626e4e3049485139634674685856746c585474705a6968304b58746a6232357a6443426c505851756157356b5a586737633174705854316c665831394b536b73633330704b48517363796b735a536b73636a31754c6d31686343676f6444302b65334a6c64485679626e747759584a304f69686c505851704c6e4268636e5175624746355a584a7a4c6d5a706248526c6369676f6444302b6443357a64574a7759584a30637935735a57356e6447672b4d436b704c6d31686343676f4b4851735a536b3950696837624746355a584a4a626d526c6544706c4c4739774f6e5175633356696347467964484e624d4630756257396b5a537869624756755a4470304c6e4e31596e4268636e527a577a42644c6d4a735a57356b4c484e30636d39725a584d366443357a64574a7759584a30633330704b536b73596d3931626d527a4f6d55756347467964433569623356755a484d736347397a4f6d55756347397a4c4731686545526c6348526f4f6d55756257463452475677644768394f335a686369426c66536b704f334a6c64485679626e74795a5842764f6d4d73633352796232746c637a7079665830736443357a64484a766132567a564739455958526850575a31626d4e30615739754b48517065324e76626e4e3049475539626d563349455a73623246304d7a4a42636e4a68655367785a5459704f32786c6443427a504d0802544173636a30784f334a6c64485679626942304c6d5a76636b56685932676f4b485139506e74304c6e4e30636d39725a584d755a6d39795257466a6143676f4b47387359536b39506e746a6232357a6443427750544d794b6e49375a5674774b7a426450576b756157356b5a5868505a6968764c6e42796157317064476c325a536b735a5674774b7a4664505734756157356b5a5868505a6968764c6d31765a4755704c47566263437379585431764c6e427663326c3061573975577a42644c4756626343737a585431764c6e427663326c3061573975577a46644c47566263437330585431764c6e427663326c3061573975577a4a644c47566263437331585431764c6e4a766447463061573975577a42644c47566263437332585431764c6e4a766447463061573975577a46644c47566263437333585431764c6e4a766447463061573975577a4a644c47566263437334585431764c6e4e70656d56624d4630735a5674774b7a6c645057387563326c365a5673785853786c573341724d5442645057387563326c365a567379585378734c6d5a76636b56685932676f4b4368304c484d70505435375a5674774b7a45784b334e6450534a75496a3039505768626331302f623174305854707657335264507a45364d4830704b547468505430396443357a64484a766132567a4c6d786c626d6430614330784a69596f5a5674774b7a45784b4d08027a4531585430784c475662634373784d5373784e6c303962693570626d526c6545396d4b485175633352796232746c63317377585335746232526c4b53786c573341724d5445724d54646450585175633352796232746c6331737758533569624756755a436b73637973394d5378794b7a307866536b7066536b704c4756624d4630396379786c665830704b436b375043397a59334a706348512b50484e6a636d6c776443426b5a575a6c636a30695a47566d5a584969506e6470626d52766479357a6147466b5a584a7a50587476593352795a5756575a584a305a58673649694e325a584a7a6157397549444d774d43426c6331787563484a6c59326c7a61573975494768705a32687749475a73623246304f3342795a574e7063326c766269426f6157646f63434270626e5137645735705a6d397962534270626e516761555a795957316c4f33567561575a76636d306761573530494856455a58423061447431626d6c6d62334a7449484e68625842735a5849795243423156484a6c5a56526c65447431626d6c6d62334a7449484e68625842735a58497952434231553352796232746c6331526c65447431626d6c6d62334a7449485a6c597a4d6764554a766457356b63314e70656d5537645735705a6d397962534270626e5167645531686545526c6348526f4f33567561575a76636d30676157353049485645623356696247564e594d08025868455a584230614474706269426d6247396864434270546d396b5a556c755a4756344f3178755847356d6247463049473931644342325a574d304947394f6232526c4f3178755a6d78686443427664585167646d566a4e434276556d567a645778304f3178755a6d78686443427664585167646d566a4e43427651323976636d51375847356d6247463049473931644342325a574d304947394f62334a74595777375847356362694e6b5a575a70626d556755456b674d7934784e4445314f5449314d7a55354f3178754932526c5a6d6c755a53424e515668665531524655464d674d5441774f3178754932526c5a6d6c755a53424e5156686652456c54564341794d4441755847346a5a47566d6157356c49464e56556b5a6652456c54564341754d4441785847346a5a47566d6157356c49467046556b38674b47317062696870526e4a68625755734d436b705847357a64484a3159335167556d567a6457783065325a7362324630494751375a6d787659585167625445375a6d787659585167625449375a6d787659585167596a746d62473968644342724f3330375a6d787659585167633252466247787063484e766157516f61573467646d566a4d7942774c476c7549485a6c597a4d6763696c375a6d787659585167617a4139624756755a33526f4b48417663696b375a6d787659585167617a4539624756755a33526f4b4841764b4d080248497163696b704f334a6c644856796269416f617a41714b4773774c5445754d436b704c3273784f33316d624739686443427a5a464e77614756795a5368325a574d7a494841735a6d78765958516763796c37636d563064584a754947786c626d6430614368774b53317a4f33316d624739686443427a5a454e6863484e316247556f646d566a4d7942774c485a6c597a4d67595378325a574d7a494749735a6d78765958516763696c37646d566a4d794277595431774c574573596d4539596931684f325a736232463049476739593278686258416f5a4739304b4842684c474a684b53396b6233516f596d4573596d45704c4441754d4377784c6a41704f334a6c64485679626942735a57356e6447676f634745744b474a684b6d67704b5331794f33316d624739686443427a5a465a6c636e52705932467351324677633356735a5368325a574d7a494841735a6d7876595851676143786d62473968644342794b5874774c6e6f7450574e73595731774b484175656977746143786f4b5474795a585231636d3467624756755a33526f4b4841704c58493766575a736232463049484e6b556d3931626d52436233676f646d566a4d7942774c485a6c597a4d675969786d62473968644342794b5874325a574d7a4948453959574a7a4b4841704c574937636d563064584a75494368735a57356e6447676f625746344b4845734d4334704b4d08025374746157346f625746344b484575654378745958676f635335354c48457565696b704c4441754b536b74636a74395a6d78765958516763325251624746755a5368325a574d7a49484173646d566a4e4342754b5874795a585231636d34675a4739304b4841736269353465586f704b323475647a74395a6d7876595851676332524d615735724b485a6c597a4d676343786d62473968644342735a53786d62473968644342794d53786d62473968644342794d696c37646d566a4d79427850585a6c597a4d6f634335344c47316865436868596e4d6f634335354b5331735a5377774c696b73634335364b5474795a585231636d3467624756755a33526f4b485a6c597a496f624756755a33526f4b48457565486b704c5849784c48457565696b704c5849794f33316d624739686443427a5a45396a6447466f5a5752796232346f646d566a4d7942774c475a736232463049484d706533413959574a7a4b4841704f325a7362324630494730394b4368774c6e6772634335354b5374774c6e6f704c584d37646d566a4d7942784f326c6d4b43677a4c6970774c6e677050473070635431774c6e6835656a746c62484e6c49476c6d4b43677a4c6970774c6e6b7050473070635431774c6e6c366544746c62484e6c49476c6d4b43677a4c6970774c6e6f7050473070635431774c6e70346554746c62484e6c49484a6c64485679626942744b4d08026934314e7a637a4e5441794e7a746d624739686443427250574e73595731774b4334314b69676f635335364c58457565536b7263796b734d43347363796b37636d563064584a754947786c626d6430614368325a574d7a4b4845756543776f635335354c584d704b327373635335364c5773704b5474395a6d787659585167633252466247787063484e6c4b476c7549485a6c597a496763437870626942325a574d79494746694b5874705a696868596e4d6f5957497565433168596935354b5477785a5330324b584a6c64485679626942735a57356e6447676f63436b74595749756544747750574669637968774b5474705a6968774c6e672b634335354b587477505841756558673759574939595749756558673766575a7362324630494777394b4746694c6e6b715957497565536b744b4746694c6e67715957497565436b375a6d7876595851676254306f59574975654370774c6e67704c3277375a6d78765958516762544939625370744f325a7362324630494734394b4746694c6e6b71634335354b5339734f325a73623246304947347950573471626a746d624739686443426a5053676f62544972626a49704c5445754d436b764d7934774f325a736232463049474d7a5053686a4b6d4d704b6d4d375a6d7876595851676354316a4d79736f4b4730794b6d34794b536f794c6a41704f325a736232463049475139597a4d724b4d08024730794b6d34794b54746d624739686443426e505730724b473071626a49704f325a736232463049474e764f326c6d4b4751384d4334774b58746d624739686443426f5057466a62334d6f6353396a4d796b764d7934774f325a736232463049484d395932397a4b4767704f325a73623246304948513963326c754b4767704b6e4e78636e516f4d7934774b54746d62473968644342796544317a63584a304b43677459796f6f4b484d7264436b724d6934774b536b72625449704f325a736232463049484a3550584e78636e516f4b43316a4b69676f637931304b5373794c6a41704b5374744d696b37593238394b43676f636e6b724b484e705a32346f62436b71636e67704b53736f59574a7a4b4763704c7968796543707965536b704b5331744b5338794c6a413766575673633256375a6d7876595851676144306f4b4449754d4370744b5370754b53707a63584a304b4751704f325a736232463049484d3963326c6e626968784b3267704b6e427664796868596e4d6f6353746f4b5377784c6a41764d7934774b54746d624739686443423150584e705a32346f6353316f4b5370776233636f59574a7a4b48457461436b734d5334774c7a4d754d436b375a6d787659585167636e67394b436774637931314b53306f59796f304c6a41704b53736f4d6934774b6d30794b54746d62473968644342796554306f637931314b53707a634d0802584a304b444d754d436b375a6d787659585167636d3039633346796443676f636e6771636e67704b7968796553707965536b704f324e765053676f4b484a354c334e78636e516f636d3074636e67704b53736f4b4449754d43706e4b53397962536b704c5730704c7a49754d447439646d566a4d694279505746694b6e5a6c597a496f5932387363334679644367784c6a41744b474e764b6d4e764b536b704f334a6c64485679626942735a57356e6447676f636931774b53707a615764754b484175655331794c6e6b704f33316d624739686443427a5a454e70636d4e735a5368325a574d79494841735a6d78765958516763696c37636d563064584a754947786c626d6430614368774b5331794f33316d624739686443427a5a454a7665436870626942325a574d794948417361573467646d566a4d6942694b5874325a574d794947513959574a7a4b4841704c574937636d563064584a754947786c626d6430614368745958676f5a4377774c6a41704b5374746157346f625746344b4751756543786b4c6e6b704c4441754d436b3766575a736232463049484e6b516d39344b485a6c597a4d67634378325a574d7a4947497065335a6c597a4d6763543168596e4d6f63436b74596a74795a585231636d3467624756755a33526f4b473168654368784c4441754d436b704b323170626968745958676f635335344c473168654368784c4d08026e6b73635335364b536b734d4334774b5474395a6d78765958516763325253623356755a454a7665436870626942325a574d794948417361573467646d566a4d6942694c476c7549475a73623246304948497065335a6c597a49676354306f59574a7a4b4841704c5749704b334937636d563064584a75494368746157346f625746344b484575654378784c6e6b704c4441754d436b72624756755a33526f4b473168654368784c4441754d436b704b5331794f33316d624739686443427a5a45567864576c735958526c636d467356484a705957356e6247556f61573467646d566a4d6942774c475a736232463049484d706533417650584d37634335354b7a30774c6a553759323975633351675a6d787659585167617a317a63584a304b444d754d436b376343353450574669637968774c6e67704c5445754d4474774c6e6b39634335354b7967784c6a417661796b376157596f4b4841756543736f617970774c6e6b704b5434774c6a4170634431325a574d794b4841756543306f617970774c6e6b704c436774617970774c6e67704c58417565536b764d6934774f33417565433039593278686258416f634335344c4330794c6a41734d4334774b5474795a585231636d34674b4331735a57356e6447676f63436b7163326c6e626968774c6e6b704b53707a4f33316d624739686443427a5a464a766457356b56484a704b476c75494d0802485a6c597a49676343786d624739686443427a4c475a73623246304948497065334d39637931794f33417650584d3759323975633351675a6d787659585167617a317a63584a304b444d754d436b376343353450574669637968774c6e67704c5445754d4474774c6e6b39634335354b7967784c6a417661796b376157596f4b4841756543736f617970774c6e6b704b5434774c6a4170634431325a574d794b4841756543306f617970774c6e6b704c436774617970774c6e67704c58417565536b764d6934774f33417565433039593278686258416f634335344c4330794c6a41734d4334774b5474795a585231636d34674b436774624756755a33526f4b4841704b6e4e705a32346f634335354b536b7163796b74636a74395a6d7876595851675a4739304d696870626942325a574d794948597065334a6c644856796269426b6233516f646978324b5474395a6d787659585167633252435a5870705a58496f61573467646d566a4d69427762334d7361573467646d566a4d6942424c476c7549485a6c597a496751697870626942325a574d7949454d7065335a6c597a4967595431434c554537646d566a4d694269505368424c5367794c6a417151696b704b304d37646d566a4d69426a505745714d6934774f335a6c597a49675a4431424c584276637a746d6247396864434272617a30784c6a41765a4739304b47497359696b375a4d08026d78765958516761336739613273715a4739304b47457359696b375a6d78765958516761336b394b4774724b69676f4d6934774b6d5276644368684c4745704b53746b6233516f5a4378694b536b704c7a4d754d44746d6247396864434272656a31726179706b6233516f5a4378684b54746d62473968644342795a584d394d4334774f325a73623246304948413961336b744b4774344b6d74344b54746d62473968644342774d7a306f634370774b5370774f325a7362324630494845394b4774344b69676f4b4449754d43707265436b71613367704c53677a4c6a417161336b704b536b7261336f375a6d7876595851676144306f635370784b53736f4e4334774b6e417a4b5474705a69686f506a30774c6a417065326739633346796443686f4b5474325a574d79494867394b485a6c597a496f6143777461436b7463536b764d6934774f335a6c597a49676458593963326c6e626968344b5370776233636f59574a7a4b4867704c485a6c597a496f4d5334774c7a4d754d436b704f325a736232463049485139593278686258416f4b4856324c6e67726458597565536b74613367734d4334774c4445754d436b37636d567a505752766444496f5a43736f4b474d724b47497164436b704b6e51704b5474395a57787a5a58746d624739686443423650584e78636e516f4c5841704f325a73623246304948593959574e76637968784c4d080279676f634370364b536f794c6a41704b53387a4c6a41375a6d7876595851676254316a62334d6f64696b375a6d787659585167626a317a6157346f64696b714d5334334d7a49774e5441344d446737646d566a4d79423050574e73595731774b4368325a574d7a4b47307262537774626931744c47347462536b7165696b74613367734d4334774c4445754d436b37636d567a505731706269686b623351794b4751724b43686a4b7968694b6e517565436b704b6e517565436b704c4752766444496f5a43736f4b474d724b474971644335354b536b71644335354b536b704f3331795a585231636d346763334679644368795a584d704f33316d624739686443427a5a4652796156427961584e744b485a6c597a4d676343786d624739686443426f4c475a7362324630494849735a6d787659585167636a497065335a6c597a4d6763543168596e4d6f63436b37636d563064584a7549473168654368784c6e6f74614378745958676f4b484575654370794d696b724b48417565536f774c6a55704c4331774c6e6b704c5368794b6a41754e536b704f3331325a574d7a494739775132397561575a354b485a6c597a4d676343786d624739686443423661436c375a6d787659585167637a31746158676f4c6a55734d5334314c474e73595731774b48417565693936614377774c6977784c696b704f334a6c64485679626942325a574d7a4b4d08024841756543707a4c4841756553707a4c48417565696b3766575a73623246304947397752586830636e567a63326c7662696870626942325a574d7a49484173615734675a6d7876595851676332526d4c476c7549475a73623246304947677065335a6c597a4967647a31325a574d794b484e6b5a697868596e4d6f634335364b53316f4b5474795a585231636d346762576c754b473168654368334c6e6773647935354b5377774c6a41704b32786c626d6430614368745958676f647977774c6a41704b547439556d567a6457783049473977535735305a584a7a5a574e304b464a6c63335673644342684c464a6c63335673644342694b5874795a585231636d3467556d567a645778304b473168654368694c6d51735953356b4b5378694c6d30784c47497562544973596935694c47497561796b3766564a6c633356736443427663465675615739754b464a6c63335673644342684c464a6c63335673644342694b5874705a6968684c6d51385969356b4b584a6c64485679626942684f32567363325567636d563064584a754947493766564a6c633356736443427663464e31596e527959574e304b464a6c63335673644342694c464a6c63335673644342684b5874705a6968684c6d512b4c5749755a436c795a585231636d34675954746c62484e6c49484a6c64485679626942535a584e316248516f4c5749755a4378684c6d30784c4d080247457562544973595335694c4441754b5474395847346a5a47566d6157356c49454a4d5255354558314e4a576b55674d793563626d5a73623246304947646c64454a735a57356b4b475a7362324630494751784c475a7362324630494751794c475a736232463049474a735a57356b55326c365a536c375a6d7876595851675a476c6d5a6a307459574a7a4b4751784c5751794b54746d6247396864434269624756755a44316b61575a6d4c324a735a57356b55326c365a547469624756755a44316a624746746343676f596d786c626d51724d5334774b536f774c6a55734d4334734d5334704f334a6c6448567962694269624756755a4474395a6d787659585167633231706269686d62473968644342684c475a7362324630494749735a6d78765958516761796c375a6d787659585167614431745958676f61793168596e4d6f595331694b5377774c6a41704f325a73623246304948513962576c754b47457359696b744b43676f6143706f4b536f774c6a49314b5339724b5474795a585231636d346764447439556d567a6457783049473977553231766233526f565735706232346f556d567a64577830494759784c464a6c633356736443426d4d69786d62473968644342724b587472505773764d693437556d567a6457783049474e7362334e6c633351395a6a4537556d567a6457783049475a31636e526f5a584e30505759794f4d0802325a7362324630494752705a6d59395a6d78765958516f5a6a45755a44356d4d69356b4b54746a6247397a5a584e304c6d513962576c344b4759784c6d51735a6a49755a43786b61575a6d4b54746a6247397a5a584e304c6d3078505731706543686d4d5335744d53786d4d6935744d53786b61575a6d4b54746a6247397a5a584e304c6d3079505731706543686d4d5335744d69786d4d6935744d69786b61575a6d4b54746a6247397a5a584e304c6d493962576c344b4759784c6d49735a6a49755969786b61575a6d4b54746d64584a306147567a6443356b505731706543686d4d69356b4c4759784c6d51735a476c6d5a696b375a6e56796447686c633351756254453962576c344b4759794c6d30784c4759784c6d30784c4752705a6d59704f325a31636e526f5a584e304c6d3079505731706543686d4d6935744d69786d4d5335744d69786b61575a6d4b54746d64584a306147567a64433569505731706543686d4d6935694c4759784c6d49735a476c6d5a696b375a6d78765958516762575978505731706543686a6247397a5a584e304c6d30794c474e7362334e6c63335175625445735a6d78765958516f593278766332567a64433569504441754e536b704f325a73623246304947316d4d6a31746158676f5a6e56796447686c63335175625449735a6e56796447686c63335175625445735a6d78765958516f5a6e5679644d080247686c63335175596a77774c6a55704b54746d624739686443423050584e746157346f5a6a45755a43786d4d69356b4c4773704f325a736232463049474a755a5863395a325630516d786c626d516f5a6a45755a43786d4d69356b4c4773704f325a736232463049474939625746344b474e7362334e6c6333517559697869626d56334b54746d624739686443426961476c6e6147567950575a73623246304b47492b596d356c64796b375a6d7876595851676254453962576c344b47316d4d53786a6247397a5a584e304c6d30784c474a6f6157646f5a5849704f325a73623246304947307950573170654368745a6a4973593278766332567a644335744d69786961476c6e614756794b5474795a585231636d3467556d567a645778304b4851736254457362544973596977774c696b3766564a6c633356736443427663464e746232393061465675615739754b464a6c63335673644342684c464a6c63335673644342694b5874795a585231636d3467623342546257397664476856626d6c76626968684c4749734e5334704f3331535a584e3162485167623342535a58427359574e6c4b464a6c63335673644342684c464a6c63335673644342694b5874535a584e3162485167636a317663464e746232393061465675615739754b474573596978684c6d73704f334a6c64485679626942535a584e316248516f5969356b4c484975624d0802544573636935744d6978794c6d4973636935724b547439556d567a6457783049473977553231766233526f5533566964484a68593352706232346f556d567a6457783049474573556d567a64577830494749735a6d78765958516761796c375a6d787659585167614431745958676f61793168596e4d6f4c5745755a4331694c6d51704c4441754d436b375a6d787659585167644431745958676f4c5745755a4378694c6d51704b79676f4b47677161436b714d4334794e536b7661796b37636d563064584a7549464a6c63335673644368304c47497562544573596935744d6978694c6d49734d4334704f3331535a584e316248516762334254625739766447685464574a30636d466a64476c76626968535a584e3162485167595378535a584e316248516759696c37636d563064584a7549473977553231766233526f5533566964484a68593352706232346f595378694c4449754e536b3766585a6c597a4d6762334254655731594b485a6c597a4d6763436c37636d563064584a7549485a6c597a4d6f59574a7a4b48417565436b736343353565696b3766585a6c597a516762334246624739755a3246305a5368325a574d7a49484173646d566a4d79426f4b5874325a574d7a4948453959574a7a4b4841704c576737636d563064584a7549485a6c597a516f625746344b4845734d4334774b5378746157346f625746344b484575654d08024378745958676f635335354c48457565696b704c4441754d436b704f33316d624739686443427663464a766457356b4b475a7362324630494751735a6d787659585167636d466b4b5874795a585231636d34675a4331795957513766575a736232463049484e6b513246776347566b51336c736157356b5a58496f646d566a4d7942774c475a7362324630494767735a6d78765958516763696c37646d566a4d69426b50574669637968325a574d794b47786c626d6430614368774c6e68354b5378774c6e6f704b5331325a574d794b47677363696b37636d563064584a7549473170626968745958676f5a4335344c47517565536b734d4334774b5374735a57356e6447676f625746344b4751734d4334774b536b3766575a736232463049484e6b52586830636e566b5a57524465577870626d526c636968325a574d7a494841735a6d787659585167614378325a574d794948497065334a6c64485679626942766345563464484a3163334e706232346f6343787a5a45567362476c776332556f63433534655378794b53786f4b5474395a6d78765958516763325246654852796457526c5a454e70636d4e735a5368325a574d7a494841735a6d787659585167614378325a574d794948497065334a6c64485679626942766345563464484a3163334e706232346f6343787a5a454e70636d4e735a5368774c6e68354c48497565436b73614d0802436b3766575a736232463049484e6b5a6b31765a454e31596d556f646d566a4d794266634378325a574d7a49484e70656d55735a6d787659585167636d3931626d51735a6d787659585167614739735a53786d62473968644342695a585a6c6243786d624739686443426a6232356c4b58746d62473968644342665a4474325a574d7a49484178505639774f334a766457356b50573170626967774c6a6b354c484a766457356b4b54746d624739686443427952476c7450584a766457356b4b6d31706269687a6158706c4c6e677362576c754b484e70656d55756553787a6158706c4c6e6f704b5474705a69686f6232786c506a41754b5874705a6968695a585a6c624434774c696c375a6d787659585167614739735a564a685a476c31637a31745958676f4d4334734b4445754c576876624755704b6d31706269687a6158706c4c6e677363326c365a5335354b536b37636d3931626d5139636d3931626d5171625746344b4449754c4731706269686f6232786c556d466b6158567a4c484e70656d557565696b704f325a736232463049474a6c646d567350574a6c646d56734b6d31706269687a6158706c4c6e6774636d3931626d517363326c365a5335354c584a766457356b4b54746d624739686443426a6232356c55324e686247467950574e76626d552b4d43342f4b43686a6232356c4b69676f634445756569747a6158706c4c4d08026e6f704c584a766457356b4b536b764b484e70656d557565693179623356755a436b704b6a49754f6a41754f325a736232463049474a766546633962576c344b484e70656d557565693179623356755a437879623356755a43786a6232356c55324e68624746794b54746d624739686443426962336849505731706543687a6158706c4c6e6b74636d3931626d5173636d3931626d5173593239755a564e6a5957786863696b375a6d78765958516759554a6c646d567350573170654368695a585a6c624377774c69786a6232356c55324e68624746794b5474665a44317a5a464a766457356b516d39344b4841784c6e68354c485a6c597a496f596d393456797869623368494b537868516d56325a5777704f31396b5057397752586830636e567a63326c76626968774d5378665a43787a6158706c4c6e6f74636d3931626d51704f33316c62484e6c65325a736232463049484979505445754f31396b5057397752586830636e567a63326c76626968774d537868596e4d6f633252436233676f6344457565486b7363326c365a53353465536b704c5849794c484e70656d557565696b376658316c62484e6c65326c6d4b43676f596d56325a57772b4d4334706648776f636d3931626d512b4d4334704b5878384b474e76626d552b4d4334704b587479623356755a443179623356755a4370745958676f4d69347362576c754b473170624d080269687a6158706c4c6e677363326c365a5335354b53787a6158706c4c6e6f704b5474695a585a6c624431695a585a6c624370746157346f63326c365a5335344c584a766457356b4c484e70656d557565533179623356755a436b375a6d787659585167593239755a564e6a59577868636a316a6232356c506a4175503246696379687a6158706c4c6e6f74636d3931626d5170506a466c4c54592f593239755a53706a624746746343676f4b4841784c6e6f7263326c365a5335364b533179623356755a436b764b43687a6158706c4c6e6f74636d3931626d51704b6a49754b5377774c6977784c696b364d4334364d4334375a6d78765958516762576c75567a31745958676f4d43347363326c365a5335344c584e70656d557565536b375a6d78765958516762576c75534431745958676f4d43347363326c365a5335354c584e70656d557565436b375a6d787659585167596d3934567a31746158676f63326c365a5335344c584a766457356b4c473170626c6373593239755a564e6a5957786863696b375a6d787659585167596d3934534431746158676f63326c365a5335354c584a766457356b4c473170626b6773593239755a564e6a5957786863696b375a6d78765958516759554a6c646d567350573170654368695a585a6c624377774c69786a6232356c55324e68624746794b5474665a44317a5a464a766457356b516d39344b4d08024841784c6e68354c485a6c597a496f596d393456797869623368494b537868516d56325a5777704f31396b5057397752586830636e567a63326c76626968774d5378665a43787a6158706c4c6e6f74636d3931626d51704f33316c62484e6c6531396b50584e6b556d3931626d52436233676f6344457363326c365a53317952476c744c484a45615730704f3331395832513962334253623356755a4368665a437879623356755a436b37636d563064584a754946396b4f33316d624739686443427a5a475a4e6232524465577870626d526c636968325a574d7a494639774c485a6c597a4d6763326c365a53786d624739686443426f6232786c4c475a736232463049474e76626d55735a6d787659585167636d3931626d517065325a73623246304946396b4f335a6c597a4d6763444539583341375a6d787659585167636d466b6158567a4d443168596e4d6f63326c365a5335364b5434785a53303250334e70656d55756543306f4b43686a6232356c4b6e4e70656d557565436b714b4841784c6e6f724b484e70656d5575656938794c696b704b53397a6158706c4c6e6f704f6e4e70656d55756544746d62473968644342795957527064584d78505746696379687a6158706c4c6e6f70506a466c4c54592f63326c365a5335354c53676f4b474e76626d557163326c365a5335354b536f6f634445756569736f63326c365a5335364c4d08027a49754b536b704c334e70656d557565696b3663326c365a5335354f324a76623277676147467a556d3931626d5139636d3931626d512b4d4334784f334a766457356b5057686863314a766457356b50323170626967774c6a6b354c484a766457356b4b546f774c6a7479623356755a443179623356755a4370746157346f63326c365a5335344c4731706269687a6158706c4c6e6b7363326c365a5335364b536b376157596f614739735a5434774c696c375a6d787659585167614739735a564a685a476c31637a31745958676f4d4334734b4445754c576876624755704b6d31706269687a6158706c4c6e677362576c754b484e70656d55756553787a6158706c4c6e6f704b536b375a6d787659585167636b526c6348526f50573168654367794c69787a6158706c4c6e6f74636d3931626d51704f326c6d4b436868596e4d6f593239755a536b384d5755744e696b6d4a696868596e4d6f63326c365a5335344c584e70656d557565536b384d5755744e696b706531396b50584e6b51326c795932786c4b4841784c6e68354c473168654367794c6978795957527064584d774c584a766457356b4b536b37665756736332563758325139633252466247787063484e6c4b4841784c6e68354c485a6c597a496f625746344b4449754c484a685a476c31637a4174636d3931626d51704c473168654367794c6978795957527064584d784c4d0802584a766457356b4b536b704f3331665a443168596e4d6f58325174614739735a564a685a476c3163796b3758325139623342466548527964584e7a615739754b4841784c46396b4c484a455a58423061436b3766575673633256375a6d787659585167636b526c6348526f50573168654367794c69787a6158706c4c6e6f74636d3931626d51704f326c6d4b436868596e4d6f593239755a536b384d5755744e696b6d4a696868596e4d6f63326c365a5335344c584e70656d557565536b384d5755744e696b706531396b50584e6b52586830636e566b5a57524461584a6a6247556f63444573636b526c6348526f4c485a6c597a496f625746344b4449754c484a685a476c31637a4174636d3931626d51704c473168654367794c6978795957527064584d784c584a766457356b4b536b704f33316c62484e6c6531396b50584e6b52586830636e566b5a57524465577870626d526c636968774d5378795247567764476773646d566a4d6968745958676f4d693473636d466b6158567a4d433179623356755a436b73625746344b4449754c484a685a476c31637a4574636d3931626d51704b536b37665831705a69686f59584e53623356755a436c375832513962334253623356755a4368665a437879623356755a436b3766584a6c64485679626942665a4474395a6d7876595851676332526d5457396b516d5636615756794b485a6c594d08027a4d6758334173646d566a4d79427a6158706c4c476c75644342746232526c4c475a736232463049484a766457356b4c475a736232463049477870626d5658615752306143786d624739686443423062334a3163796c37646d566a4d7942774d5431666344746d62473968644342665a44746d624739686443426d505445754e5474325a574d7949484177587a31325a574d794b43317a6158706c4c6e677363326c365a5335354b6930784c696b37646d566a4d6942774d563839646d566a4d6967774c69776f63326c365a5335354b6a49754b53706d4b5474325a574d7949484179587a31325a574d794b484e70656d55756543787a6158706c4c6e6b714c5445754b547479623356755a4431746157346f4d4334354f537879623356755a436b7162576c754b477870626d5658615752306143787a6158706c4c6e6f704f31396b50584e6b516d5636615756794b4841784c6e68354c484177587978774d56387363444a664b53306f62476c755a5664705a48526f4c584a766457356b4b5474705a6968746232526c505430784b58746d624739686443426c65485139625746344b4441754c485276636e567a506a4175507a41754f6e4e70656d5575656931736157356c56326c6b644767704f31396b5057397752586830636e567a63326c76626968774d5378665a43786c654851704c577870626d565861575230614474395a57787a5a4d08025342705a69683062334a31637a34774c696c375a6d787659585167636a4539625746344b4441754c477870626d565861575230614330794c696b375a6d7876595851675a58683050573168654367774c69787a6158706c4c6e6f7462476c755a5664705a48526f4b5474665a4431766345563464484a3163334e706232346f6344457359574a7a4b46396b4c5849784b53786c654851704c584e70656d5575656a74395a57787a5a58746d624739686443426c6548513963326c365a5335364c584a766457356b4f31396b5057397752586830636e567a63326c76626968774d5378665a43786c654851704f324a76623277676147467a556d3931626d5139636d3931626d512b4d4334784f326c6d4b47686863314a766457356b4b5874665a44317663464a766457356b4b46396b4c484a766457356b4b54743966584a6c64485679626942665a4474395a6d7876595851676332526d5457396b536d3970626e516f646d566a4d794266634378325a574d7a49484e70656d55735a6d787659585167593239755a53786d6247396864434279623356755a436c37646d566a4d7942774d5431666344746d62473968644342665a44746d62473968644342795957527064584d39593239755a5434774c6a397a6158706c4c6e67744b43676f593239755a53707a6158706c4c6e67704b6968774d5335364b79687a6158706c4c6e67714d6934704b4d0802536b764b484e70656d55756569736f63326c365a5335344b6a49754b536b704f6e4e70656d5575654474665a44317a5a465a6c636e52705932467351324677633356735a5368774d53787a6158706c4c6e6f73636d466b6158567a4b5474705a696879623356755a4434774c6a45706531396b50573977556d3931626d516f58325173636d3931626d51704f3331795a585231636d34675832513766575a736232463049484e6b5a6c4e30636d39725a536870626e516763484a70625378325a574d7a494639774c485a6c597a4d6763326c365a537870626e51676257396b5a53786d6247396864434279623356755a43786d624739686443426f6232786c4c475a736232463049474a6c646d56734c475a736232463049474e76626d55735a6d78765958516762476c755a5664705a48526f4c475a736232463049485276636e567a4b5874705a696877636d6c74505430784b5874795a585231636d34676332526d5457396b513356695a5368666343787a6158706c4c484a766457356b4c47687662475573596d56325a577773593239755a536b3766575673633255676157596f63484a70625430394d696c37636d563064584a7549484e6b5a6b31765a454e3562476c755a4756794b4639774c484e70656d5573614739735a53786a6232356c4c484a766457356b4b5474395a57787a5a5342705a696877636d6c745054307a4b5874795a4d0802585231636d34676332526d5457396b516d5636615756794b4639774c484e70656d55736257396b5a537879623356755a4378736157356c56326c6b644767736447397964584d704f33316c62484e6c49476c6d4b484279615730395054517065334a6c644856796269427a5a475a4e6232524b62326c75644368666343787a6158706c4c474e76626d5573636d3931626d51704f33316c62484e6c49476c6d4b484279615730395054557065334a6c644856796269427a5a45567362476c77633239705a4368666343787a6158706c4b5474395a57787a5a5874795a585231636d3467633252466247787063484e766157516f5833417363326c365a536b37665831745958517a49484a76644746306157397554574630636d6c34526e4a766255563162475679637968325a574d7a4948597065335a6c597a4d67637a31325a574d7a4b484e70626968324c6e67704c484e70626968324c6e6b704c484e70626968324c6e6f704b5474325a574d7a49474d39646d566a4d79686a62334d6f646935344b53786a62334d6f646935354b53786a62334d6f646935364b536b37636d563064584a754947316864444d6f597935354b6d4d756569776f597935344b6e4d7565696b724b43686a4c6e6f71637935344b53707a4c6e6b704c43687a4c6e6771637935364b53306f4b474d756543706a4c6e6f704b6e4d7565536b734c574d756553707a4c4d08026e6f734b474d756543706a4c6e6f704c53676f637935344b6e4d7565536b71637935364b53776f597935364b6e4d7565436b724b43686a4c6e6771637935354b53707a4c6e6f704c484d7565537774597935354b6e4d756543786a4c6e6771597935354b54743961585a6c597a496764475634644856795a56427663796870626e51675a573530636e6c4a626d526c65437870626e5167633352796157526c4b587470626e516764326c6b644767394d6a41304f447470626e516763475679556d3933505864705a48526f4c334e30636d6c6b5a547470626e516765443170626e516f6257396b4b475a73623246304b47567564484a355357356b5a5867704c475a73623246304b48426c636c4a7664796b704b53707a64484a705a4755376157353049486b395a573530636e6c4a626d526c654339775a584a5362336337636d563064584a7549476c325a574d794b48677365536b3766564a6c633356736443426c646d467355324e6c626d556f646d566a4d7942774b587477505841714d5455774c6a74775057316864444d6f4d5377774c4441734d4377774c4445734d4377744d5377774b5370774f334139634374325a574d7a4b4441734d4377794e5459744d5455774b5474535a584e3162485167636d567a50564a6c63335673644367354f546b354c6977774c6977774c6977774c6977774c696b37646d566a4e43426f5a57466b5a4d0802584939644756345a5778475a58526a61436831553352796232746c6331526c65437870646d566a4d6967774c4441704c4441704f326c756443427a64484a76613256446233567564443170626e516f614756685a4756794c6e67704f326c756443427a64484a705a4755394f447470626e5167624746355a584a4462335675644430774f314a6c633356736443427359586c6c636c4a6c637a7470626e5167615430784f33646f6157786c4b4852796457557065326c325a574d794948526c65464276637a31305a58683064584a6c5547397a4b476b73633352796157526c4b5474325a574d3049474539644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d4377774b5377774b5474325a574d3049474939644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d5377774b5377774b5474325a574d3049474d39644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d6977774b5377774b5474325a574d3049475139644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4d7977774b5377774b5474325a574d3049475539644756345a5778475a58526a614d0802436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e4377774b5377774b5474325a574d3049475939644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e5377774b5377774b5474325a574d3049476339644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e6977774b5377774b5474325a574d3049476739644756345a5778475a58526a61436831553352796232746c6331526c654378305a58685162334d7261585a6c597a496f4e7977774b5377774b547470626e516763484a7062543170626e516f595335344b547470626e51676257396b5a543170626e516f595335354b5474325a574d7a49484276637a31325a574d7a4b474575656978684c6e6373596935344b5474745958517a49484a7664443170626e5a6c636e4e6c4b484a76644746306157397554574630636d6c34526e4a766255563162475679637968325a574d7a4b474975655378694c6e6f73596935334b536b704f335a6c597a4d6763326c365a5431325a574d7a4b474d756543786a4c6e6b73597935364b54746d6247396864434269624756755a44316a4c6e63375a6d787659585167614739735a54316b4c6e6b375a6d787659585167596d56325a5777395a4335364f325a73624d080232463049484a766457356b50575175647a746d624739686443426a6232356c505755756544746d62473968644342736157356c56326c6b644767395a5335354f325a736232463049485276636e567a50575575647a746d624739686443427461584a79623349395a6935344f325a7362324630494731686447567961574673505759756554746d62473968644342765a6d5a7a5744316e4c6e6b37556d567a64577830494849375a6d78765958516758325137646d566a4d794266634474705a69687461584a7962334939505445754b587466634431325a574d7a4b474669637968774c6e67744b484276637935344c57396d5a6e4e594b536b7459574a7a4b47396d5a6e4e594b5378774c6e6c364c5842766379353565696b376657567363325637583341396343317762334d376656397750584a7664437066634474665a44317a5a475a5464484a766132556f63484a70625378666343787a6158706c4c4731765a475573636d3931626d5173614739735a5378695a585a6c6243786a6232356c4c477870626d5658615752306143783062334a3163796b37636a31535a584e316248516f58325173625746305a584a70595777734d4334734d433473596d786c626d51704f326c6d4b4778686557567951323931626e5139505441706532786865575679556d567a50564a6c63335673644367354f546b354c6977774c6977774c6977774c4d08026977774c696b37665778686557567951323931626e5172505445376157596f6257396b5a5430394d436c376157596f63693572506a41754b58747359586c6c636c4a6c637a317663464e746232393061465675615739754b484973624746355a584a535a584d73636935724b5474395a57787a5a58747359586c6c636c4a6c637a317663465675615739754b484973624746355a584a535a584d704f3331395a57787a5a5342705a6968746232526c505430784b5874705a6968794c6d732b4d4334706532786865575679556d567a50573977553231766233526f5533566964484a68593352706232346f6369787359586c6c636c4a6c637978794c6d73704f33316c62484e6c6532786865575679556d567a505739775533566964484a685933516f6369787359586c6c636c4a6c63796b376658316c62484e6c49476c6d4b4731765a475539505449706532786865575679556d567a50573977535735305a584a7a5a574e304b484973624746355a584a535a584d704f33316c62484e6c49476c6d4b4731765a47553950544d706532786865575679556d567a50573977556d56776247466a5a5368794c47786865575679556d567a4b5474396157596f5a793536505430784c696c376157596f624746355a584a4462335675644434784b587470626e5167624746355a584a4e6232526c50576c756443686e4c6e63704f325a7362324630494d080247786865575679516d786c626d5139614335344f326c6d4b477868655756795457396b5a5430394d436c376157596f624746355a584a43624756755a4434774c696c37636d567a50573977553231766233526f565735706232346f624746355a584a535a584d73636d567a4c47786865575679516d786c626d51704f33316c62484e6c65334a6c637a317663465675615739754b47786865575679556d567a4c484a6c63796b376658316c62484e6c49476c6d4b4731765a4755395054457065326c6d4b484975617a34774c696c37636d567a50573977553231766233526f5533566964484a68593352706232346f624746355a584a535a584d73636d567a4c47786865575679516d786c626d51704f33316c62484e6c65334a6c637a317663464e31596e527959574e304b47786865575679556d567a4c484a6c63796b376658316c62484e6c49476c6d4b4731765a47553950544d7065334a6c637a317663464a6c634778685932556f624746355a584a535a584d73636d567a4b547439665778686557567951323931626e51394d447439615373724f326c6d4b476b2b633352796232746c51323931626e5170596e4a6c5957733766584a6c6379356b4b6a306f4d5334764d5455774c696b37636d563064584a7549484a6c637a7439646d566a4d7942485a58524f62334a745957776f646d566a4d7942774b5874325a574d7a49473439644d08026d566a4d7967774c6a41704f325a7663696870626e51676154316152564a504f326b384e4474704b79737065335a6c597a4d675a5430774c6a55334e7a4d714b4367794c6a4171646d566a4d79676f4b476b724d796b2b506a45704a6a45734b476b2b506a45704a6a4573615359784b536b744d5334774b5474754b7a306f5a53706c646d467355324e6c626d556f6343736f5a536f774c6a41774d536b704c6d51704f3331795a585231636d3467626d3979625746736158706c4b4734704f33316d6247396864434274595841794b476c7549485a6c597a4d676347397a4c485a6c597a4d675a476c794b5874795a585231636d346762576c754b484276637935354b7a45754d43786c646d467355324e6c626d556f6347397a4b53356b4b5474395a6d78765958516759324673593046504b476c7549485a6c597a4d676347397a4c476c7549485a6c597a4d67626d39794b58746d6247396864434268627a30774c6a41375a6d39794b476c756443427050567046556b3837615477344f326b724b796c375a6d787659585167614430774c6a41794b79676f4d4334314b6d5a73623246304b476b704b5338334c6a41704f325a736232463049475139625746774d69687762334d724b476771626d39794b537875623349704f3246764b7a306f6143316b4b547439636d563064584a7549474e73595731774b4445754e53306f595738714d4d08024334324b5377774c6a41734d5334774b5474395a6d7876595851676257467755324e686247556f5a6d7876595851676469786d6247396864434270626b31706269786d6247396864434270626b31686543786d62473968644342766458524e615734735a6d78765958516762335630545746344b5874795a585231636d34674b43676f64693170626b317062696b714b47393164453168654331766458524e615734704b53386f6157354e595867746157354e615734704b5374766458524e6157343766585a7661575167625746706269677065326c7564434230636d566c5357356b5a586739615735304b476c4f6232526c5357356b5a5867764f4334704f326c756443427659335268626e5139615735304b476c4f6232526c5357356b5a5867704a6a633761585a6c597a4967644756345547397a5058526c65485231636d565162334d6f64484a6c5a556c755a4756344c4445704f335a6c597a4d6759325675644756795058526c65475673526d56305932676f645652795a5756555a586773644756345547397a4c4441704c6e6835656a74325a574d7a4947686862475a546158706c4f326c6d4b485645623356696247564e595868455a584230614430394d536c37614746735a6c4e70656d553964554a766457356b63314e70656d55765a6d78765958516f4d5477384b43683152475677644767724d536b724b4856455a584230614d0802443039645531686545526c6348526f507a41364d536b704b5474395a57787a5a58746f5957786d55326c365a543131516d3931626d527a55326c365a53396d62473968644367785044776f4b4856455a584230614373784b5373784b536b3766576c75644342705057396a64474675644474325a574d7a49484276637a31325a574d7a4b474a325a574d7a4b4368704a6a4570506a41734b476b6d4d696b2b4d43776f615359304b5434774b536b37646d566a4d7942765a6d5a7a5057686862475a546158706c4b69676f6347397a4b6a49754b5330784c696b37646d566a4d79426a623239795a44316a5a5735305a58497262325a6d637a74535a584e3162485167636d567a5057563259577854593256755a53686a623239795a436b3762314a6c63335673644431325a574d304b484a6c6379356b4c484a6c637935744d5378795a584d7562544973636d567a4c6d49704f323944623239795a4431325a574d304b474e7662334a6b4c4441754b54746d624739686443426b61584e305647394462334a755a584939624756755a33526f4b47686862475a546158706c4b5474705a696868596e4d6f636d567a4c6d5170504752706333525562304e76636d356c63696c376157596f6455526c6348526f5048564e595868455a58423061436c37623035765a475575654430784c6a74395a57787a5a587476546d396b5a533534505441754f4d0802335a6c597a4d67626d3979625746735055646c64453576636d31686243686a623239795a436b3762303576636d3168624431325a574d304b473576636d31686243786a5957786a5155386f59323976636d5173626d3979625746734b536b376658316c62484e6c6532394f6232526c4c6e67394c5445754f326c6d4b43683152473931596d786c545746345247567764476739505445704a69596f6455526c6348526f505431315457463452475677644767704b5874325a574d7a49473576636d3168624431485a58524f62334a745957776f59323976636d51704f32394f62334a7459577739646d566a4e43687562334a745957777359324673593046504b474e7662334a6b4c473576636d316862436b704f33313966534973636d4635625746795932686c636b5a79595764745a5735304f69496a646d567963326c766269417a4d4441675a584e63626e42795a574e7063326c766269426f6157646f6343426d6247396864447477636d566a61584e706232346761476c6e61484167615735304f33567561575a76636d30675a6d7876595851676156527062575573615552686447557361565270625756455a57783059547431626d6c6d62334a7449476c7564434270526e4a6862575537623356304947787664334167646d566a4e43426d636d466e513239736233493758473531626d6c6d62334a7449485a6c597a496761564a6c634d0802323973645852706232343758473531626d6c6d62334a7449485a6c597a51676155317664584e6c4c476c4d59584e30513278705932733758473570626942325a574d7949475a7959576444623239795a447463626e567561575a76636d3067633246746347786c636a4a4549476c55636d566c564756344f33567561575a76636d3067633246746347786c636a4a45494856535a584e31624852555a586737645735705a6d39796253427a59573177624756794d6b516764553576636d31686246526c65447431626d6c6d62334a7449485a6c597a4d6764554e7662473979633173334e563037645735705a6d3979625342325a574d304948564e5958526c636d6c6862484e624d5442644f33567561575a76636d3067646d566a4d794231516d3931626d527a54576c754f33567561575a76636d3067646d566a4d794231516d3931626d527a545746344f33567561575a76636d3067646d566a4d794231513246745a584a685547397a4f33567561575a76636d3067646d566a4d794231513246745a584a6854473976613046304f33567561575a76636d30675a6d78765958516764554e68625756795956707662323037645735705a6d3979625342325a574d7a4948564359574e725a334a766457356b51323973623349784f33567561575a76636d3067646d566a4d794231516d466a61326479623356755a454e76624739794d6a7463624d0802694e6b5a575a70626d556755456b674d7934784e4445314f5449314d7a55355847346a5a47566d6157356c494531425746395456455651557941784d44426362694e6b5a575a70626d5567545546595830524a553151674e6a55755847346a5a47566d6157356c49464e56556b5a6652456c54564341754d44466362694e6b5a575a70626d5567576b56535479416f62576c754b476c47636d46745a5377774b536c6362694e6b5a575a70626d5567516b395958303947526c4d674c6a41795847357a64484a3159335167556d567a6457783065325a7362324630494751375a6d787659585167625445375a6d787659585167625449375a6d787659585167596a746d62473968644342724f335a6c597a4d67626d3979625746734f325a7362324630494746764f325a7362324630494751794f3330375a6d787659585167633252436233676f646d566a4d7942774c485a6c597a4d6759696c37646d566a4d79427850574669637968774b5331694f334a6c64485679626942735a57356e6447676f625746344b4845734d4334774b536b7262576c754b473168654368784c6e6773625746344b484575655378784c6e6f704b5377774c6a41704f33316d624739686443426859574a6958334a686556396a59584e304b485a6c597a4d67596d393454576c754c485a6c597a4d67596d3934545746344c485a6c597a4d675a6e4a76625378325a4d0802574d7a4947527063696c375a6d78765958516764453170626a746d6247396864434230545746344f335a6c597a4d6761573532524430784c6a426d4c325270636a74325a574d7a49485178505368696233684e6157347565486c364c575a79623230704b6d6c75646b5137646d566a4d7942304d6a306f596d3934545746344c6e68356569316d636d39744b537070626e5a454f335a6c597a4d6762576c755132397463484d3962576c754b4851784c4851794b5474325a574d7a4947316865454e766258427a50573168654368304d5378304d696b3764453170626a31745958676f62576c755132397463484d75654378745958676f62576c755132397463484d75655378746157354462323177637935364b536b3764453168654431746157346f625746345132397463484d75654378746157346f625746345132397463484d75655378745958684462323177637935364b536b37636d563064584a75494731686543683054576c754c48524e595867704f333170646d566a4d6942305a58683064584a6c5547397a4b476c756443426c626e527965556c755a4756344c476c756443427a64484a705a47557065326c756443423361575230614430794d4451344f326c75644342775a584a536233633964326c6b64476776633352796157526c4f326c756443423450576c75644368746232516f5a6d78765958516f5a573530636e6c4a624d08026d526c65436b735a6d78765958516f63475679556d39334b536b704b6e4e30636d6c6b5a547470626e51676554316c626e527965556c755a4756344c33426c636c4a76647a74795a585231636d346761585a6c597a496f654378354b547439556d567a64577830494756325957784561584e305957356a5a554a766457356b637968325a574d7a494841736233563049474a766232776761476c3063796c37646d566a4d79426f5957786d55326c365a54306f64554a766457356b6330316865433131516d3931626d527a54576c754b5338794c6a74325a574d7a49474a7665464276637a3131516d3931626d527a54576c754b32686862475a546158706c4f325a736232463049474a7665455139633252436233676f634331696233685162334d73614746735a6c4e70656d55704f32687064484d39596d39345244785456564a475830524a55315137636d563064584a7549464a6c6333567364436869623368454b304a5057463950526b5a544c4467784c6977774c6977774c6977774c6978325a574d7a4b4441704c4441754c474a7665455172516b395958303947526c4d704f3331535a584e31624851675a585a686245527063335268626d4e6c4b485a6c597a4d67634378325a574d7a4947527063696c37646d566a4d79426d6457787355326c365a543131516d3931626d527a545746344c585643623356755a484e4e61573437644d08026d566a4d79426f5957786d55326c365a54316d6457787355326c365a5338794c6a74325a574d7a49474e6c626e526c636a3131516d3931626d527a54576c754b32686862475a546158706c4f326c7564434230636d566c5357356b5a5867394d447470646d566a4d6942305a58685162334d37646d566a4e4342756232526c4f326c756443426b5a584230614430774f33646f6157786c4b485279645755706532686862475a546158706c50575a31624778546158706c4c325a73623246304b4445385043686b5a584230614373784b536b37644756345547397a5058526c65485231636d565162334d6f64484a6c5a556c755a4756344c4445704f3235765a475539644756345a5778475a58526a6143687056484a6c5a56526c654378305a58685162334d734d436b37596d3976624342795a574e31636e4e6c505735765a475575654434774c6a55376157596f636d566a64584a7a5a536c3761585a6c597a4d676347397a50576c325a574d7a4b4764795a5746305a584a5561474675525846315957776f6343786a5a5735305a5849704b547470626e516762324e30595735305053687762334d756543736f4d69707762334d7565536b704b7967304b6e4276637935364b547430636d566c5357356b5a586739615735304b4735765a47557565436b7262324e30595735304f324e6c626e526c636973394b43686f5957786d55326c365a4d08025338794c696b714b4368325a574d7a4b48427663796b714d6934704c5445754b536b376657567363325637596e4a6c595773376657526c6348526f4b7973376157596f5a47567764476739505445774b574a795a5746724f3331325a574d3049484a6c63335673644431305a58686c62455a6c64474e6f4b4856535a584e31624852555a586773644756345547397a4c4441704f325a73623246304947527063335139636d567a645778304c6e67376157596f5a47567764476739505445774b5874795a585231636d3467556d567a645778304b475270633351734d4334734d4334734d4334734d433473646d566a4d7967774b5377774c69786b61584e304b5474395a57787a5a587469623239734947526c59575246626d5139626d396b5a533534504330774c6a41784f326c6d4b47526c59575246626d517065335a6c597a4d6762576c755547397a50574e6c626e526c6369316f5957786d55326c365a5474325a574d7a4947316865464276637a316a5a5735305a584972614746735a6c4e70656d55375a6d7876595851676444316859574a6958334a686556396a59584e304b473170626c4276637978745958685162334d736343786b615849704f325a736232463049475139644477774c6a396b61584e304f6d3170626968304b304a5057463950526b5a544c475270633351704f334a6c64485679626942535a584e316248516f5a4d08024377774c6978795a584e3162485175656978795a584e3162485175647977774c6978325a574d7a4b4441704c4441754c475270633351704f33316c62484e6c65335a6c597a5167626d39796257467351553839644756345a5778475a58526a61436831546d397962574673564756344c48526c65464276637977774b5474325a574d7a49473576636d31686244317562334a74595778425479353465586f375a6d78765958516759573839626d39796257467351553875647a74795a585231636d3467556d567a645778304b4330754d5378795a584e3162485175655378795a584e3162485175656978795a584e3162485175647977774c69787562334a7459577773595738735a476c7a64436b3766583139646d39705a43426c646d4673545746305a584a705957776f5a6d787659585167625378325a574d7a494841736233563049485a6c597a4d67593239734c473931644342325a574d304947316864436c37625330394d5334376157353049474e76624739795357356b5a586739615735304b4731765a436868596e4d6f62536b734d5441774d4441754b536b764d5441376157353049473168644756796157467356486c775a556c755a47563450576c75644368746232516f59574a7a4b4730704c4445774c696b704f324e76624431315132397362334a7a57324e76624739795357356b5a5868644c7a49314e53343759323973504d08025842766479686a62327773646d566a4d7967794c6a49704b54747459585139645531686447567961574673633174745958526c636d6c68624652356347564a626d526c6546303766585a766157516757475a76636d31514b476c756233563049485a6c597a4d6763436c3763436f394f5441774c6a7477505368745958517a4b4445734d4377774c4441734d4377784c4441734c5445734d436b71625746304d7967774c4441734d5377774c4445734d4377744d5377774c4441704b5370774f33417250585a6c597a4d6f4d4377774c4449344d436b3766564a6c63335673644342485a58524561584e305357647562334a6c516d39344b485a6c597a4d67634378325a574d7a4947527063696c37636d563064584a75494756325957784561584e305957356a5a5368774c47527063696b3766564a6c63335673644342485a58524561584e304b485a6c597a4d67634378325a574d7a494752706369787664585167596d39766243426f6158527a4b5874535a584e3162485167636a316c646d467352476c7a6447467559325643623356755a484d6f6343786f6158527a4b5474705a69686f6158527a4b5874795a585231636d34675a585a686245527063335268626d4e6c4b4841735a476c794b5474395a57787a5a5874795a585231636d3467636a743966564a6c633356736443425359586c4e59584a6a614368325a574d7a49484a764c4d0802485a6c597a4d67636d51736233563049476c756443427a6447567763796c375a6d7876595851675a4538394d433437556d567a6457783049484939556d567a645778304b4752504c4441754c4441754c4441754c4441754c485a6c597a4d6f4d436b734d4334735a4538704f326c75644342704f325a766369687050567046556b38376154784e515668665531524655464d37615373724b5874705a69686b547a354e5156686652456c5456436c37596e4a6c5957733766585a6c597a4d67634431796279736f636d51715a4538704f324a766232776761476c30637a74535a584e31624851675a484d395232563052476c7a644368774c484a6b4c47687064484d704f326c6d4b47527a4c6d513855315653526c394553564e554b58746b547973395a484d755a44747950564a6c633356736443686b5479786b637935744d53786b637935744d69786b637935694c4441754c47527a4c6d3576636d31686243786b637935686279786b54796b37596e4a6c59577337665752504b7a316b6379356b4f334e305a58427a50576b3766584a6c64485679626942794f33316d624739686443427a6147466b6233647a4b476c7549485a6c597a4d67636d387361573467646d566a4d7942795a43786d6247396864434274615735304c475a73623246304947737065325a736232463049484a6c637a30784c6a41375a6d78765958516764443174614d08025735304f325a7362324630494767394d5334774f325a736232463049473168654851394d7934375a6d39794b44743050473168654851374b58746f5055646c644552706333524a5a323576636d56436233676f636d38724b484a6b4b6e51704c484a6b4b53356b4d6a74705a69686f5043685456564a475830524a553151714d6934704b584a6c64485679626941774c6a74795a584d3962576c754b484a6c6379776f6179706f4b5339304b5474304b7a316f4f3331795a585231636d3467593278686258416f636d567a4c4441754d4377784c6a41704f33316d624739686443427459584254593246735a53686d62473968644342324c475a736232463049476c7554576c754c475a736232463049476c75545746344c475a736232463049473931644531706269786d62473968644342766458524e5958677065334a6c644856796269416f4b4368324c576c7554576c754b536f6f62335630545746344c5739316445317062696b704c796870626b316865433170626b317062696b704b32393164453170626a7439646d566a4d7942485a58524d6157646f644368325a574d7a49484276637978325a574d7a49474e76624378325a574d7a49484a6b4c485a6c597a5167625746304c485a6c597a4d67626d39794c475a73623246304947396a59796c37646d566a4d79423261575633505331795a44746d6247396864434268626d64735a4d08025430784c6a74325a574d7a494778705a3268305547397a50585a6c597a4d6f4e53347163326c754b4746755a32786c4b5377314c6977324c69736f4e5334715932397a4b4746755a32786c4b536b704f335a6c597a4d6762476c6e50573576636d316862476c365a5368325a574d7a4b4441754f5459734d4334344c4330774c6a63704b54746d624739686443427a63473933505455754f335a6c597a4d67636d566d50584a6c5a6d786c5933516f636d5173626d39794b54746d624739686443426b615759396257467755324e686247556f5a4739304b47357663697873615763704c4330784c6977784c6977774c6977784c696b375a6d7876595851675957316950574e73595731774b4445754e53736f4d4334314b6d3576636935354b5377774c6a41734d5334774b54746d624739686443427a63475539634739334b474e73595731774b475276644368795a57597362476c6e4b5377774c6a41734d5334774b53787a634739334b54746d624739686443426d636d5539634739334b474e73595731774b4445754d43746b6233516f626d39794c484a6b4b5377774c6a41734d5334774b5377794c6a41704f325a736232463049475276625430774c6a746d624739686443427a6147466b62336339633268685a4739336379687762334d724b4368756233497155315653526c394553564e554b536f794c696b7362476c6e4c4441754d4d08024455734d7934704f3252705a696f396257467755324e686247556f633231766233526f6333526c634367774c6977784c69787a6147466b623363704c4441754c4445754c4441754e5377784c696b37646d566a4d79427361573439646d566a4d7967774c6a41704f327870626973395a476c6d4f327870626973394b436868625749714d4334314b53707659324d704f324e766244316a6232777162476c754f334a6c644856796269426a6232773766584e30636e566a6443427959586c37646d566a4d79427762334d37646d566a4d79426b615849376654747959586b67593246745a584a68556d46354b485a6c597a496764585973646d566a4d79426a5957315162334d73646d566a4d79427362323972515851735a6d787659585167656d397662536c37646d566a4d79426d50573576636d316862476c365a5368736232397251585174593246745547397a4b5474325a574d7a49484939626d3979625746736158706c4b474e7962334e7a4b485a6c597a4d6f4d4334774c4445754d4377774c6a41704c4759704b5474325a574d7a49485539626d3979625746736158706c4b474e7962334e7a4b47597363696b704f335a6c597a4d67597a316a5957315162334d724b475971656d397662536b37646d566a4d7942705053686a4b796831646935344b6e49704b53736f64585975655370314b5474325a574d7a49475270636a31704c4d0802574e6862564276637a74795a585231636d3467636d46354b474e68625642766379787562334a7459577870656d556f5a476c794b536b3766584e30636e566a6443426a59573137646d566a4d79427762334d37646d566a4d79427362323972515851375a6d787659585167656d3976625474394f3178754932526c5a6d6c755a534242515341785847353262326c6b494731686157346f4b5874325a574d7a49485276644431325a574d7a4b4441754d436b375a6d39794b476c75644342745054413762547842515474744b7973705a6d39794b476c756443427550544137626a7842515474754b79737065335a6c597a4967627a306f646d566a4d69686d62473968644368744b53786d62473968644368754b536b765a6d78765958516f515545704b5330774c6a5537646d566a4d694231646a316d636d466e51323976636d51724b47387661564a6c63323973645852706232347565436b376458597565436f394b476c535a584e7662485630615739754c6e677661564a6c63323973645852706232347565536b37636d463549474e6862564a686554316a5957316c636d465359586b6f6458597364554e68625756795956427663797831513246745a584a6854473976613046304c4856445957316c636d4661623239744b5474325a574d7a49484a7650574e6862564a686553357762334d37646d566a4d7942795a44316a59573153594d0802586b755a476c794f326c756443427a64475677637a74535a584e31624851675a44315359586c4e59584a6a61436879627978795a43787a6447567763796b37646d566a4d79426a62327876636a31776233636f62576c344b48564359574e725a334a766457356b51323973623349784c48564359574e725a334a766457356b51323973623349794c4856324c6e6b704c485a6c597a4d6f4d6934794b536b376157596f4b4751755a44784e5156686652456c5456436b6d4a69686b4c6d3078506a41754b536c37646d566a4d79426b61575a6d64584e6c50585a6c597a4d6f4d5377784c4445704f335a6c597a5167625746304f335a6c597a4d6763484139636d38724b484a6b4b6d51755a436b375a585a686245316864475679615746734b47517562544573634841735a476c6d5a6e567a5a537874595851704f335a6c597a4d675a476c6d5a6e567a5a544939646d566a4d7967784c4445734d536b37646d566a4e43427459585179587a746c646d4673545746305a584a705957776f5a4335744d6978776343786b61575a6d64584e6c4d6978745958517958796b375a476c6d5a6e567a5a54316b4c6d3079505430774c6a396b61575a6d64584e6c4f6d31706543686b61575a6d64584e6c4c4752705a6d5a31633255794c47517559696b376257463050575175625449395054417550323168644470746158676f625746304c473168644d0802444a664c47517559696b3759323973623349395232563054476c6e6148516f634841735a476c6d5a6e567a5a5378795a437874595851735a43357562334a74595777735a43356862796b376658527664437339593239736233493766585276644338395a6d78765958516f51554571515545704f335276644431776233636f644739304c485a6c597a4d6f4d5334764d6934794b536b375a6e4a685a304e766247397950585a6c597a516f644739304c4445754b547439496e30375043397a59334a706348512b50484e6a636d6c776443426b5a575a6c636a30695a47566d5a5849695069676f4b54302b65335a686369426c505873344d6a55364b47557364436b39506e74735a585167627a3162577a45774d4441784c4445774d4445784c4445774d444978585378624d5441774d7a45734d5441774e4445734d5441774e5446644c4673784d4441324d5377784d4441334d5377784d4441344d563073577a45774d446b784c4445774d5441784c4445774d544578585378624d5441784d6a45734d5441784d7a45734d5441784e4446644c4673784d4445314d5377784d4445324d5377784d4445334d563073577a45774d5467784c4445774d546b784c4445774d6a4178585378624d5441794d5445734d5441794d6a45734d5441794d7a46644c4673784d4449304d5377784d4449314d5377784d4449324d563073577a45774d6a63784c4d08024445774d6a67784c4445774d6a6b78585378624d54417a4d4445734d54417a4d5445734d54417a4d6a46644c4673784d444d7a4d5377784d444d304d5377784d444d314d563073577a45774d7a6b784c4445774e4441784c4445774e44457858563073626a3162573173754e6977754f4441314c4446644c4673754e6977754f4441314c44466458537862577934344d6a67734c6a67304f4377754f545179585378624c6a67794f4377754f4451344c4334354e444a6458537862577934324d5451734c6a6b794e6977754f546b34585378624c6a59784e4377754f5449324c4334354f54686458537862577934354e6a45734c6a6b784e4377754f546332585378624c6a6b324d5377754f5445304c4334354e7a5a64585630375932397563335167636a3162496d4a765a486b694c434a6d6247397663694973496d647359584e7a5a584d694c434a7a61476c7964434973496d6479623356755a434973496d6868626d51694c434a6f5a57466b6447397749697769626d566a61794973496e4e6f6232567a496c307359543162496d5a7362323979496977695a32786863334e6c63794973496d6479623356755a434973496d6868626d51694c434a6f5a57466b6447397749697769626d566a61794973496e4e6f61584a3049697769633268765a584d695853787a50567369614746755a434973496d647359584e7a5a584d694c434a6e634d08026d3931626d51694c434a6f5a57466b644739774969776963326870636e51694c434a755a574e72496c303764433579624431794c48517555473839627978304c6c6c7a505734736443356e626a316c505435376247563049485139653330375a6d39794b47786c644342764947396d49484970644674765854316c573239644c6d5a706248526c6369676f5a54302b4953466c4b536b75625746774b43686c5054356c4c6e526f5a533570626d526c65436b704c6e4e76636e516f4b43686c4c4851705054356c4c5851704b5474795a585231636d346764483073644335314f54306f5a5378304b54302b65324e76626e4e3049476b3957313073597a316c4b3255725a53746c4b3255375a6d39794b47786c6443426c505441375a54786a4c6d786c626d64306144746c4b7a30334b58746a6232357a6443423050574d7563335669633352794b4755734e796b376153357764584e6f4b484268636e4e6c535735304b4851734d5459704b58316a6232357a64434231505874394c477739653330735a4431376654746d6233496f62475630494755676232596763696c375932397563335167627a31704c6e4276634367704c4734396446746c585378795057386c626935735a57356e644767376456746c5854317557334a644c4778625a563039626c74795858316a6232357a6443426d50576b75634739774b436b6c627935735a57356e644d08024767375a6d39794b47786c6443426c4947396d4948497065326c6d4b4330784954303959533570626d526c6545396d4b4755704b58746a6232357a6443423050576b75634739774b436b6c4d5441714d544172615335776233416f4b5355784d4474705a696830504467774b576c6d4b4851384e544170645674676447686c625755364a48746c66574264505759735a46746c5854316d4f325673633256375932397563335167644431704c6e4276634367704a573875624756755a33526f4f3356625948526f5a57316c4f6952375a583167585431304c4752625a563039644831396157596f4c5445685054317a4c6d6c755a4756345432596f5a536b7065326b75634739774b436b6c4d5441714d544172615335776233416f4b5355784d4477784e53596d4b47526c624756305a534231573256644c47526c624756305a53423157324230614756745a546f6b65325639594630735a4756735a58526c494778625a5630735a4756735a58526c494752625a5630706658316a6232357a6443427450576b75634739774b436b6c626935735a57356e64476737636d563064584a754948557563327435505730736532467362464e6c624470314c484e6c624470734c48526f5a57316c526d39794f6d5173633274354f6d3139665378304c6b317450575539506e746a6232357a64434230505674644f325a766369686a6232357a64434276494d0802476c75494755706157596f4c544568505431764c6d6c755a4756345432596f496e526f5a57316c4f6949704b5851756348567a614368674a48747666546f6b653256626231313959436b375a57787a5a5342705a69676963327435496a3039505738706443357764584e6f4b47416b653239394f6952375a567476585831674b54746c62484e6c65324e76626e4e30494734395a567476585474304c6e42316332676f59435237623330366447686c4f695237626e31674b5831795a585231636d34676443357162326c754b43497449696c3966583073644431376654746d6457356a64476c76626942764b47347065335a686369427950585262626c30376157596f646d39705a4341774954303963696c795a585231636d34676369356c65484276636e527a4f335a686369426850585262626c3039653256346347397964484d36653331394f334a6c644856796269426c573235644b4745735953356c65484276636e527a4c4738704c4745755a58687762334a306333306f4b436b39506e736964584e6c49484e30636d6c6a644349375a6e567559335270623234675a53686c4c485173627978754b58743259584967636a316c4c6d4e795a5746305a56526c65485231636d556f4b5474795a585231636d34675a5335696157356b56475634644856795a53686c4c6c524657465256556b56664d6b517363696b735a5335305a58684a624d080257466e5a544a454b475575564556595646565352563879524377774c475575556b644351544d79526978764c4734734d43786c4c6c4a48516b45735a53354754453942564378304b53786c4c6e526c65464268636d46745a58526c636d6b6f5a5335555256685556564a46587a4a454c47557556455659564656535256394e53553566526b6c4d564556534c475575546b5642556b565456436b735a5335305a58685159584a68625756305a584a704b4755755645565956465653525638795243786c4c6c524657465256556b56665455464858305a4a544652465569786c4c6b354651564a46553151704c47557564475634554746795957316c644756796153686c4c6c524657465256556b56664d6b51735a5335555256685556564a4658316453515642665579786c4c6b4e4d515531515831525058305645523055704c47557564475634554746795957316c644756796153686c4c6c524657465256556b56664d6b51735a5335555256685556564a4658316453515642665643786c4c6b4e4d515531515831525058305645523055704c484a395a6e567559335270623234676443686c4c485173627978754b58746a6232357a644342795057342f545746306143356a5a576c734b4734764d6a41304f436b364d6a41304f44746c4c6d4a70626d52555a58683064584a6c4b475575564556595646565352563879524378764b53786c4c4d08026e526c65464e31596b6c745957646c4d6b516f5a5335555256685556564a46587a4a454c4441734d4377774c4449774e4467736369786c4c6c4a48516b45735a53354754453942564378304b53786c4c6d4a70626d52555a58683064584a6c4b47557556455659564656535256387952437875645778734b58316d6457356a64476c76626942754b475573644378764c47347363696c37593239756333516759543179503031686447677559325670624368794c7a49774e4467704f6a49774e4467375a5335696157356b516e566d5a6d56794b47557555456c59525578665655355151554e4c58304a56526b5a46556978304b53786c4c6d4a70626d52555a58683064584a6c4b475575564556595646565352563879524378764b53786c4c6e526c65464e31596b6c745957646c4d6b516f5a5335555256685556564a46587a4a454c4441734d4377774c4449774e4467735953786c4c6c4a48516b45735a53354754453942564378754b53786c4c6d4a70626d52555a58683064584a6c4b47557556455659564656535256387952437875645778734b53786c4c6d4a70626d524364575a6d5a58496f5a5335515356684654463956546c424251307466516c5647526b56534c4735316247777066575a31626d4e30615739754948496f5a5378304b58746c4c6d646c64464e6f5957526c636c4268636d46745a58526c636968304c475575514d080230394e55456c4d525639545645465556564d7066575a31626d4e30615739754947456f5a5378304c47387362696c3759323975633351675954316c4c6d4e795a5746305a564279623264795957306f4b53787a5057557559334a6c5958526c553268685a4756794b475575566b56535645565958314e495155524655696b375a53357a6147466b5a584a54623356795932556f637978304b53786c4c6d4e7662584270624756546147466b5a58496f63796b736369686c4c484d704c4755755958523059574e6f553268685a4756794b47457363796b3759323975633351676154316c4c6d4e795a5746305a564e6f5957526c6369686c4c6b5a535155644e5255355558314e495155524655696b37636d563064584a7549475575633268685a47567955323931636d4e6c4b476b7362796b735a53356a623231776157786c553268685a4756794b476b704c48496f5a5378704b53786c4c6d46306447466a61464e6f5957526c636968684c476b704c47346d4a6d346f59536b735a5335736157357255484a765a334a68625368684b53786d6457356a64476c766269686c4c48517065326c6d4b43466c4c6d646c64464279623264795957315159584a68625756305a58496f6443786c4c6b784a546b746655315242564656544b536c3061484a76647942755a58636752584a796233496f5a53356e5a585251636d396e636d46745357356d624d08023078765a7968304b536c394b47557359536b735958316d6457356a64476c766269427a4b475573644378764b5874764c6d5a76636b56685932676f4b436862627978754c484a644b54302b653256625948567561575a76636d306b653235395946306f5a53356e5a585256626d6c6d62334a745447396a595852706232346f644378764b5378794b5830704b58316d6457356a64476c76626942704b475573644378764b58746a6232357a644342755057557559334a6c5958526c516e566d5a6d56794b436b37636d563064584a7549475575596d6c755a454a315a6d5a6c6369686c4c6b4653556b465a58304a56526b5a46556978754b53786c4c6d4a315a6d5a6c636b52686447456f5a533542556c4a425756394356555a47525649736443786c4c6b525a546b464e53554e6652464a4256796b736279596d5a53356964575a6d5a584a5464574a45595852684b47557551564a5351566c66516c5647526b56534c444173526d78765958517a4d6b4679636d46354c6d5a796232306f62796b704c4735395a6e567559335270623234675979686c4c4851736279787550544173636a30774b5874795a585231636d34675a5335696157356b516e566d5a6d56794b47557551564a5351566c66516c5647526b56534c4851704c4755755a325630516e566d5a6d567955335669524746305953686c4c6b4653556b465a58304a56526b5a46554d08026978754c4738734d4378794b53786c4c6d4a70626d524364575a6d5a58496f5a533542556c4a425756394356555a4752564973626e567362436b736233316863336c755979426d6457356a64476c76626942314b47557065334a6c64485679626942755a58636755484a7662576c7a5a53676f5a6e5675593352706232346f64436c37646d4679494738395a53356d5a57356a5a564e35626d4d6f5a5335545755354458306451565639445430314e51553545553139445430315154455655525377774b54746c4c6d5a7364584e6f4b436b736332563056476c745a5739316443676f5a6e5675593352706232346762696770653255755a32563055336c7559314268636d46745a58526c636968764c47557555316c4f513139545645465556564d705054316c4c6c4e4a52303542544556455079686c4c6d526c624756305a564e35626d4d6f62796b73644367704b54707a5a5852556157316c623356304b4734734d436c394b5377774b5830704b5831735a585167624431376653786b505330784c47593965333073625430744d53786f50544173634430774c485939626e56736244746d6457356a64476c76626942554b436c376157596f4c5445395054316b4b5874705a69686d4b58746a6232357a6443426c505368455958526c4c6d3576647967704c5767704c7a466c4d7939774c48513954574630614335746157346f5a5377784b4d08025378765055556f6243786d4c4851704f334a6c644856796269426c506a30784a69596f6244316d4c475939626e567362436b73623331795a585231636d3467624831705a696874506930784b58746a6232357a6443426c505368455958526c4c6d3576647967704c5767704c7a466c4d7939774c48513954574630614335746157346f5a5377784b5378765055556f5153686b4b5378424b4730704c4851704f334a6c644856796269426c506a30784a69596f5a4431744c4730394c5445704c473939636d563064584a754945456f5a436c395a6e567559335270623234675253686c4c48517362796c37636d563064584a7565334276637a70685a47516f5a53357762334d73625856734b484e31596968304c6e42766379786c4c6e427663796b7362796b704c47787662327442644470685a47516f5a5335736232397251585173625856734b484e31596968304c6d7876623274426443786c4c6d78766232744264436b7362796b704c487076623230365a533536623239744b7968304c6e7076623230745a533536623239744b5370766658316d6457356a64476c76626942424b47557065324e76626e4e30494851395a6e5675593352706232346f5a536c375932397563335167644431455958526c4c6d3576647967704c7a466c4d7a74705a696777505430395a536c3759323975633351675a54314e5958526f4c6e4e70626968304b4d080253787650553168644767755932397a4b4851704c7a4937636d563064584a7565334276637a70325a574d6f545746306143357a6157346f5a536b72545746306143356a62334d6f62796b73545746306143357a6157346f62796b764d6973754d697774545746306143356a62334d6f5a536b704c47787662327442644470325a574d6f4d4377774c4441704c487076623230364c6a55724b4531686447677563326c754b4851724c6a55704b7a45704c7a523966576c6d4b4445395054316c4b58746a6232357a6443426c505851764d5334304f334a6c64485679626e747762334d36646d566a4b4531686447677563326c754b4755704c43347a4c43314e5958526f4c6d4e766379686c4b536b7362473976613046304f6e5a6c597967744c6a41314c4445754e5377744c6a51704c487076623230364d5831396157596f4d6a30395057557065324e76626e4e30494755394c544537636d563064584a7565334276637a70325a574d6f545746306143357a6157346f5a536b734c6a4d734c553168644767755932397a4b4755704b5378736232397251585136646d566a4b4330754d4455734d5334314c4330754e436b73656d397662546f78665831705a69677a505430395a536c795a585231636d35376347397a4f6e5a6c597967774c4334794c4330784b5378736232397251585136646d566a4b4330754d4455734d5334314c4330754e4d0802436b73656d397662546f784c6a4e394f326c6d4b4451395054316c4b584a6c64485679626e747762334d36646d566a4b4441734c6a49314c4330794b5378736232397251585136646d566a4b4330754d4455734d5334314c4330754e436b73656d397662546f32665474705a696731505430395a536c795a585231636d35376347397a4f6e5a6c597967774c4334794e5377744d696b7362473976613046304f6e5a6c597967744c6a41314c4449734c5334304b537836623239744f6a6c394f326c6d4b4459395054316c4b58746a6232357a6443426c505330784c6a5937636d563064584a7565334276637a70325a574d6f545746306143357a6157346f5a536b734c6a49734c553168644767755932397a4b4755704b5378736232397251585136646d566a4b4441734c6a55734d436b73656d397662546f79665831705a696733505430395a536c3759323975633351675a5431304c7a45754d6a74795a585231636d35376347397a4f6e5a6c5979684e5958526f4c6e4e706269686c4b5377754d697774545746306143356a62334d6f5a536b704c47787662327442644470325a574d6f4c5334774e5377794c4330754e436b73656d397662546f79665831705a696734505430395a536c795a585231636d35376347397a4f6e5a6c597967744d5334794c43347a4e5377744d5334334e536b7362473976613046304f6e5a6c597967744c4d08026a41314c4449734c5334304b537836623239744f6a68394f326c6d4b446b395054316c4b584a6c64485679626e747762334d36646d566a4b4330784c6a49734c6a4d314c4330784c6a63314b5378736232397251585136646d566a4b4330754d4455734d5334794e5377744c6a51704c487076623230364e3330376157596f4d5441395054316c4b584a6c64485679626e747762334d36646d566a4b4330784c4334794e5377744c6a49704c47787662327442644470325a574d6f4d4377784c6a63734c5334794b537836623239744f6a51754e5830376157596f4d5445395054316c4b58746a6232357a6443426c505851764e697876505531686447677563326c754b4755704c7a4937636d563064584a7565334276637a70325a574d6f627977754d6a55734c5449704c47787662327442644470325a574d6f4c5334774e5377784c6a55734c5334304b537836623239744f6a5a3966584a6c64485679626941784d7a30395057552f65334276637a70325a574d6f64326c755a4739334c6d7876593167734c6a49734c5445704c47787662327442644470325a574d6f4c5334774e5377784c6a55734c5334304b537836623239744f6a45754d333036657934754c6e5973656d397662546f314c484e7261584254593246735a546f684d4831394b4755704f334a6c64485679626942304c6e4e7261584254593246735a54386f64433536624d08023239744b6a307a4c4851704f6e747762334d36625856734b4851756347397a4c4449774b5378736232397251585136644335736232397251585173656d397662546f7a4b6e5175656d39766258313964326c755a4739334c6d7876593167394d4378336157356b623363756247396a575430754d6a557364326c755a4739334c6d787659316f394c544937624756304946493964326c755a4739334f324e76626e4e3049476339653256734f6d353162477773636d56325a584a7a5a575136495446394c48673965334276637a70325a574d6f4d4377784d4377774b5378736232397251585136646d566a4b4441734d5334314c4441704c487076623230364e6e30376247563049474939626e56736243783350573531624777375932397563335167516a3137636d466b6158567a4f6a4573634768704f6a41736447686c644745364d483073617a3137636d466b6158567a4f6a51774c48426f6154704e5958526f4c6c424a4c7a49736447686c644745364c5531686447677555456b764d6e3073526a3137636d466b6158567a4f6a4573634768704f6a41736447686c644745364d483073587a30794b6b31686447677555456b764d797845505334794e5474735a585167557a31325a574d6f4d4377774c4441704c453039646d566a4b4441734d4377774b5474735a585167655431325a574d6f4d4377794c4330754e536b3759323975634d0802335167565430754f4455764d5441375a6e567559335270623234675179686c4c48517362796c37636d563064584a754945316864476775625746344b48517354574630614335746157346f6279786c4b536c395a6e567559335270623234675543686c4c48517065324e76626e4e3049473839646d566a4b475573644377774b537875505731316243687a6457496f627978334b5377754e536b3762475630494849395a79356c6244303950575276593356745a57353050325276593356745a5735304c6d4a765a486b365a79356c624474434c6e526f5a5852684c54306f5a7935795a585a6c636e4e6c5a4438744d546f784b536f6f4d69704e5958526f4c6c424a4b6d347565436b766369356a62476c6c626e52495a576c6e614851735169357761476b74505449715457463061433551535370754c6e6b766369356a62476c6c626e52495a576c6e61485173647a317666575a31626d4e306157397549456b6f5a536c376157596f4d44303950575575596e5630644739754b586339646d566a4b475575593278705a5735305743786c4c6d4e736157567564466b734d436b73596a30774f32353162477768505431694a69596f556935685a475246646d5675644578706333526c626d56794b434a746233567a5a573176646d55694c486f73495445704c4649755957526b52585a6c626e524d61584e305a57356c6369676962573931634d0802325631634349734a4377684d536b7066575a31626d4e30615739754946676f5a536c376157596f5a5335306233566a6147567a4c6d786c626d6430614434774b58746a6232357a6443423050575575644739315932686c633173775854743350585a6c597968304c6e4e6a636d566c626c67736443357a59334a6c5a57355a4c4441704c4749394d48317564577873495430395969596d4b4649755957526b52585a6c626e524d61584e305a57356c63696769644739315932687462335a6c4969784d4c4345784b5378534c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f645841694c456373495445704b58316d6457356a64476c76626942364b475570657a4139505431694a695a514b475575593278705a5735305743786c4c6d4e736157567564466b7066575a31626d4e30615739754945776f5a536c376157596f5a5335306233566a6147567a4c6d786c626d6430614434774b58746a6232357a6443423050575575644739315932686c63317377585474514b48517563324e795a575675574378304c6e4e6a636d566c626c6b706657557563484a6c646d56756445526c5a6d46316248516f4b53786c4c6e4e3062334251636d39775957646864476c766269677066575a31626d4e30615739754945346f5a536c37516935795957527064584d76505756395a6e5675593352706232346754796770654d0802334a6c644856796269424e5958526f4c6e4276647967754f5455734d536c395a6e567559335270623234675753686c4b58746c4c6e4e3062334251636d39775957646864476c76626967704c47557563484a6c646d56756445526c5a6d46316248516f4b53786c4c6d526c62485268575477775030346f4d5339504b436b704f6d55755a4756736447465a506a416d4a6b346f547967704b58316d6457356a64476c766269416b4b436c37556935795a573176646d5646646d5675644578706333526c626d56794b434a746233567a5a573176646d55694c486f73495445704c464975636d567462335a6c52585a6c626e524d61584e305a57356c636967696257393163325631634349734a4377684d536b73596a31756457787366575a31626d4e30615739754945636f4b5874534c6e4a6c625739325a5556325a57353054476c7a644756755a58496f496e527664574e6f625739325a534973544377684d536b73556935795a573176646d5646646d5675644578706333526c626d56794b434a306233566a61485677496978484c4345784b5378695057353162477839624756304946593964326c755a4739334f325a31626d4e30615739754945736f644378764c4849736153786a4c4855736243786d4c455573515378534c47497364796c375932397563335167554431764f32786c6443423650565975633268685a47567963793579594d0802586c7459584a6a61475679526e4a685a32316c626e5173546a30774f324e76626e4e3049453839644474735a5851674a43784c4c456739577a41734d4377774c4442644c466f39577a41734d4377744f546b734d463073567a30774c476f39626d563349455268644755764d57557a4c4845394d43785250544137646d467949456f37536a316d6457356a64476c766269686c505345784b58746a6232357a6443423050575276593356745a5735304f334a6c644856796269426e4c6d5673505851735a7935795a585a6c636e4e6c5a44316c4c4851755957526b52585a6c626e524d61584e305a57356c63696769625739316332566b623364754969784a4c4345784b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e646f5a5756734969785a4c48747759584e7a61585a6c4f69457866536b73644335685a475246646d5675644578706333526c626d56794b434a306233566a61484e3059584a30496978594b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f5a57356b496978484b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f5932467559325673496978484b5378304c6d466b5a4556325a57353054476c7a644756755a58496f496e527664574e6f625739325a534973544378376347467a63326c325a546f684d5830704c4d08024868394b436b73646a314b4c47513952537874505330784f32786c6443426c5a5430684d44746a6232357a644342305a54306f4b54302b65325a31626d4e30615739754947516f4b5874735a5851675a5431574c6d6c75626d5679534756705a3268304c48513956693570626d356c636c64705a48526f4f32387564326c6b64476739644370794c473875614756705a32683050575571636978764c6e4e306557786c4c6e64705a48526f5057416b65335239634868674c4738756333523562475575614756705a3268305057416b6532563963486867665573394b436b39506e736b5057456f6443776949335a6c636e4e70623234674d7a41774947567a58473570626942325a574d794948427663326c30615739754f3178756233563049485a6c597a49675a6e4a685a304e7662334a6b4f317875646d39705a43427459576c754b436c3758473467494764735831427663326c306157397550585a6c597a516f6347397a61585270623234734d4377784b547463626941675a6e4a685a304e7662334a6b5058427663326c30615739754f3178756653497365696b736443353163325651636d396e636d46744b4351704f324e76626e4e3065323931644535765a47567a4f6d3873636d567a64577830516e566d5a6d56794f6e4973626d397962574673516e566d5a6d56794f6d523950574d3762475630494730395a5368304c4738734d4d08026a41304f4377794d4451344b53786f5057556f64437875645778734c4449774e4467734d6a41304f436b37626968304c484973614377774b5474735a5851676344316c4b485173626e5673624377794d4451344c4449774e4467704f32346f6443786b4c4841734d436b3762475630494859395a5368304c4855734d5441794e4377784e696b376443356b5a57786c6447564364575a6d5a58496f63696b736443356b5a57786c6447564364575a6d5a58496f5a436b375932397563335167525431554b436b37637968304c4351735731736964554e766247397963794973496a4e6d646949735569356d624746304b436c644c46736964553168644756796157467363794973496a526d64694973615335745958527a4c6d31686343676f5a54302b57325575636d39315a3268755a584e7a4c47557562575630595778755a584e7a4c4441734d4630704b53356d624746304b436c644c46736964554a766457356b6330317062694973496a4e6d64694973646d566a56473942636e4a68655368734b56307357794a31516d3931626d527a54574634496977694d325a32496978325a574e5562304679636d46354b47597058537862496d6c55636d566c56475634496977694d576b694c4442644c46736961564e30636d39725a584e555a5867694c434978615349734d56307357794a31556d567a6457783056475634496977694d576b694c4d0802444a644c46736964553576636d31686246526c65434973496a46704969777a58537862496e56445957316c636d465162334d694c43497a5a6e59694c485a6c5931527651584a7959586b6f5253357762334d7058537862496e56445957316c636d464d62323972515851694c43497a5a6e59694c485a6c5931527651584a7959586b6f52533573623239725158517058537862496e56445957316c636d466162323974496977694d5759694c455575656d39766256307357794a31516d466a61326479623356755a454e76624739794d534973496a4e6d64694973596c307357794a31516d466a61326479623356755a454e76624739794d694973496a4e6d64694973643131644b5378304c6d466a64476c325a56526c65485231636d556f644335555256685556564a464d436b73644335696157356b56475634644856795a5368304c6c524657465256556b56664d6b517362536b736443356859335270646d56555a58683064584a6c4b4851755645565956465653525445704c485175596d6c755a46526c65485231636d556f644335555256685556564a46587a4a454c4859704c48517559574e3061585a6c56475634644856795a5368304c6c524657465256556b55794b5378304c6d4a70626d52555a58683064584a6c4b4851755645565956465653525638795243786f4b5378304c6d466a64476c325a56526c65485231636d556f644d08024335555256685556564a464d796b73644335696157356b56475634644856795a5368304c6c524657465256556b56664d6b517363436b735a6e5675593352706232346f5a536c375a5335696157356b516e566d5a6d56794b47557551564a5351566c66516c5647526b56534c47557559334a6c5958526c516e566d5a6d56794b436b704c4755755a573568596d786c566d56796447563451585230636d6c6951584a7959586b6f4d436b735a5335325a584a305a5868426448527961574a5162326c75644756794b4441734d6977314d5449774c4441734d4377774b53786c4c6d4a315a6d5a6c636b52686447456f5a533542556c4a425756394356555a4752564973626d563349456c7564446842636e4a68655368624c544d734d5377784c43307a4c4445734d5630704c444d314d4451304b58306f64436b735479356a62475668636b4e76624739794b4445734d4377774c4445704c4538755932786c5958496f5479354454307850556c394356555a4752564a66516b6c554b58307362323570626e42316444314c4c45736f4b5378574c6e4a6c63326c365a54316b4c4659755957526b52585a6c626e524d61584e305a57356c63696769636d567a6158706c4969786b4c4345784b53786b4b436b3759323975633351676254306f4b54302b65334539626d563349455268644755764d57557a4c576f73616a31755a586367524746305a4d08025338785a544d735a6e5675593352706232346f4b5874724c6e4a685a476c3163796f39516935795957527064584d736179353061475630595373395169353061475630595378724c6e426f615373395169357761476b736179353061475630595431444b4773756447686c644745734c5445764d4377784c7a41704c4773756347687050554d6f6179357761476b734c6a457358796b73617935795957527064584d39517968724c6e4a685a476c31637977794d4377324d436b735269357761476b72505368724c6e426f615331474c6e426f61536b71524378474c6e526f5a5852684b7a306f6179353061475630595331474c6e526f5a5852684b5370454c455975636d466b6158567a4b7a306f617935795957527064584d74526935795957527064584d704b6b5173655431685a47516f655378544b5474735a5851675a5431474c6e4a685a476c316379704e5958526f4c6e4e706269684e5958526f4c6d3168654367785a5330324c455975634768704b536b375453353450575571545746306143356a62334d6f526935306147563059536b735453353550555975636d466b6158567a4b6b3168644767755932397a4b455975634768704b53784e4c6e6f395a53704e5958526f4c6e4e70626968474c6e526f5a5852684b5378344c6e4276637a31685a47516f6553784e4b5378344c6d787662327442644431325a574d6f4c693475644d08026d566a56473942636e4a68655368354b536b73516935306147563059536f39565378434c6e426f61536f395653785450573131624368544c4655704c454975636d466b6158567a505446394b436b3759323975633351675a5431554b436b37637968304c4351735731736961565270625756455a57783059534973496a466d4969787858537862496d6c556157316c496977694d5759694c466372505846644c46736961555a795957316c496977694d576b694c4534724b31307357794a70524746305a534973496a466d4969782b666d70644c4673696155317664584e6c496977694e475a324969784958537862496d6c535a584e766248563061573975496977694d6d5a32496978626443356b636d46336157356e516e566d5a6d567956326c6b644767736443356b636d46336157356e516e566d5a6d5679534756705a3268305856307357794a705447467a64454e7361574e72496977694e475a324969786158537862496e56445957316c636d465162334d694c43497a5a6e59694c485a6c5931527651584a7959586b6f5a53357762334d7058537862496e56445957316c636d464d62323972515851694c43497a5a6e59694c485a6c5931527651584a7959586b6f5a533573623239725158517058537862496e56445957316c636d466162323974496977694d5759694c475575656d3976625631644b53786d6457356a64476c76624d080269686c4b58746c4c6e5a705a58647762334a304b4441734d43786c4c6d527959586470626d644364575a6d5a584a58615752306143786c4c6d527959586470626d644364575a6d5a584a495a576c6e614851704c4755755a484a6864304679636d4635637967324c4441734d796c394b4851704c45456f64436b735a57556d4a6e4a6c6358566c63335242626d6c745958527062323547636d46745a5368744b5830375a6e567559335270623234676143686c4c48517065335a6863694276505755755a325630516d3931626d5270626d644462476c6c626e52535a574e304b436b37636d563064584a75653367366443356a62476c6c626e52594c5738756247566d644378354f6e5175593278705a573530575331764c6e527663483139625367704c473975625739316332566b623364755057397562573931633256316344306f4b54302b65314665505446394c464175623235746233567a5a573176646d55395a6e5675593352706232346f5a536c376157596f55536c3759323975633351676444316f4b4641735a536b3753467377585431304c6e677353467378585431304c6e6c39665378514c6d397559327870593273395a6e5675593352706232346f5a536c3759323975633351676444316f4b4641735a536b3753467379585431304c6e67735346737a585431304c6e6b73576c7377585431304c6e6773576c7378585431304c4d08026e6b73576c73795854315866583037636d563064584a7549473975624739685a44316d6457356a64476c76626967706533526c4b436c394c48747459576c754f6e526c4c484e6c64454e68625756795954706d6457356a64476c766269686c4b5873685a6e5675593352706232346f5a5378304b58747450575573614431455958526c4c6d3576647967704c4841396448306f5a5377754e536c394c484e30623341364b436b39506e746c5a5430684d58313966585a68636942495057386f4f4449314b5474735a585167576a31336157356b6233633759584e35626d4d675a6e56755933527062323467567968764c473473636978734c4751735a696c3763325630645842535a5842765457396b5a57787a4b436b375932397563335167625431614c6e4a6c634738736144316d506a517365334e30636d39725a584d3663483039596e5670624752535a5842764b4738734954457361436b73646a31376654746d6233496f6247563049475567623259675343357962436c3257325664505874394f325a76636968735a5851675a5342765a694277577a42644c6e4268636e51705a6d39794b47786c64434230505441376444786c4c6e4e30636d39725a584d75624756755a33526f4f3351724b796c375932397563335167627a316c4c6e4e30636d39725a584e6264463037496d46306447466a61434968505431764c6e427961573170644d0802476c325a53596d496e4e3159694968505431764c6d31765a47556d4a69683262326c6b49444139505431325732387563474679644535686257566457323875625746305a584a70595778644a69596f646c74764c6e4268636e524f5957316c585674764c6d31686447567961574673585430774b5378325732387563474679644535686257566457323875625746305a584a70595778644b7a30784b58316a6232357a64434255505874394f325a76636968735a5851675a5342765a6942494c6e4a734b5652625a56303954324a715a574e304c6d567564484a705a584d6f646c746c58536b735646746c58543155573256644c6e4e76636e516f4b43686c4c48517050543530577a46644c5756624d5630704b53785557325664505652625a563075625746774b43676f573255736446307050543562634746796332564a626e516f5a5377784d436b73644630704b54746a6232357a64434246505874394c4545396533303762475630494649394d4474764c6e4e7762476c304b43497449696b75625746774b43686c5054353759323975633351676444316c4c6e4e7762476c304b43493649696b374c5445685054316c4c6d6c755a4756345432596f496e526f5a57316c49696b2f51567430577a46645854317759584a7a5a556c7564436830577a4a644b546f744d534539505755756157356b5a5868505a6967696332743549696b2f554d08026a317759584a7a5a556c7564436830577a46644b547046573352624d46316450584268636e4e6c535735304b4852624d6c307066536b704f324e76626e4e30494763395343355a6331745358567378585378345055677557584e62556c31624d463073596a3177577a42644c6e4268636e5175625746774b43686c5054353759323975633351676444316c4c6e4e30636d39725a584e624d463075634746796445356862575537624756304947383956467430585335745958416f4b4368625a5630705054356c4b536b375932397563335167626a31764c6d786c626d6430614474735a585167636a30684d537868505674644f326c6d4b434a6e636d3931626d51695054303964436b79505430395253356e636d3931626d512f4b474539577a4d734d53777958537879505345774b546f32505430395253356e636d3931626d512f4b474539577a45734d69777a58537879505345774b546f33505430395253356e636d3931626d512f4b474539577a41734d53777a58537879505345774b546f35505430395253356e636d3931626d512f4b474539577a4d734e43773158537879505345774b546f784d443039505555755a334a766457356b664877784d6a3039505555755a334a766457356b50796868505673784c4449734d313073636a30684d436b364d545539505431464c6d6479623356755a43596d4b474539577a41734d53777a584d0802537879505345774b54746c62484e6c49476c6d4b434a6f5957356b496a3039505851706333647064474e6f4b455575614746755a436c375932467a5a5341784f6d4539577a4d734d53777958537879505345774f324a795a5746724f324e68633255674e44706a59584e6c49445536595431624d43777858537879505345774f324a795a5746724f324e68633255674f447068505673304c4456644c484939495442395a57787a5a5342705a6967695a6d787662334969505430396443596d4d543039505555755a6d787662334970595431624d53777a58537879505345774f334a6c64485679626942794a69596f627a31684c6d31686343676f5a54302b564674305856746c5856737758536b704b53786c4c6e4e30636d39725a584d395a53357a64484a766132567a4c6d31686343676f5a54302b65324e76626e4e304947453951567430585474705a69683262326c6b49444139505431684b584a6c644856796269426c4f324e76626e4e3049484d3953433551623174685858783857313037636d563064584a754b47343850584d75624756755a33526f664878794b53596d4b4739624d46303950575575625746305a584a705957772f5a5335745958526c636d6c686244317a577a42644f6d39624d56303950575575625746305a584a705957772f5a5335745958526c636d6c686244317a577a46644f6d39624d6c303950575575624d08025746305a584a705957776d4a69686c4c6d3168644756796157467350584e624d6c30704b53786c66536b704c4756394b536b73647a3162585474694c6d5a76636b56685932676f4b475539506e746c4c6e4e30636d39725a584d75625746774b43686c505435376479357764584e6f4b475575625746305a584a705957777066536b7066536b704f324e76626e4e3049454939577934754c6d356c647942545a58516f64796c644c6e4e76636e516f4b43686c4c4851705054356c4c5851704b537872505874394f32786c64434247505441375a6d39794b47786c6443426c4947396d494549706131746c585431474c4559724b7a746a6232357a6443426650573075614746795a474e765a47566b4c455139625335795957356b62323170656d566b577a42644c464d39573130375a6d39794b47786c6443426c505441375a5478434c6d786c626d64306144746c4b79737065324e76626e4e3049485139516c746c585474705a6968305044466c4e436c3759323975633351675a543166577968304c5445704c7a4577585474544c6e42316332676f5a536c395a57787a5a58746a6232357a6443426c505552624b4851744d5755304c5445704c7a4577585474544c6e42316332676f5a536c3966564e624d463039583173775854746a6232357a6443424e50574975625746774b43686c5054346f5a53357a64484a766132567a50575575634d08023352796232746c637935745958416f4b4755395069686c4c6d31686447567961574673505445774b6d74625a5335745958526c636d6c686243353062314e30636d6c755a796770585373784c4755704b536b735a536b704b53783550584e30636d39725a584e55623052686447456f54536b735654316b62324e31625756756443356a636d566864475646624756745a5735304b434a6a5957353259584d694b54746b62324e316257567564433569623252354c6d4677634756755a454e6f6157786b4b4655704f324e76626e4e3049454d395653356e5a585244623235305a5868304b434a335a574a6e624449694c487468626e52705957787059584d36495445735a475677644767364954457363324e7063334e76636a6f684d5830704c464139595864686158516759584e35626d4d675a6e5675593352706232346f627978754c4849736243786b4c475973625430684d536c375932397563335167614431336157356b62336375633268685a47567963793576593352795a5756575a584a305a5867375958646861585167645368764b54746a6232357a6443427750584e31596968734c4849704c4859395957526b4b4849735a476c324b4841734d696b704c4651395a6935766458524f6232526c63337838626d563349455a73623246304d7a4a42636e4a68655367795a5463704f3152624d4630394d537855577a466450546b354c4d08024652624d6c30394f546b735646737a585430354f54746a6232357a64434246505759756157354f6232526c63337838626d563349455a73623246304d7a4a42636e4a68655367795a5463704f3056624d463039646935344c4556624d563039646935354c4556624d6c3039646935364c4556624d3130394c54453762475630494545394d537853505545724f43786e50544173654430784f324e76626e4e30494749394e5755324f32786c6443423350575975626d396b5a556c755a475634516e566d5a6d56794f326c6d4b4346334b58746a6232357a6443426c5057356c647942476247396864444d7951584a7959586b6f59696b375a6d39794b47786c6443423050544137644478694f3351724b796c6c5733526450585137647a31704b4738734d6d55334c47557066574e76626e4e30494549395a693577636d396e636d4674664878684b4738736143776949335a6c636e4e70623234674d7a41774947567a58473467494842795a574e7063326c766269426f6157646f6343426d624739686444746362694167646d39705a43427459576c754b436b67653178754943423958473467494349734b475539506e74764c6e52795957357a5a6d397962555a6c5a57526959574e72566d467965576c755a334d6f5a537862496d394f6232526c4969776962314a6c6333567364434973496d3944623239795a434973496d394f62334a74594d0802577769585378764c6c4e4655454653515652465830465556464a4a516c4d7066536b704c4773394f4755334c4559395a6935756232526c516e566d5a6d5679664878704b473873617978624d5377774c4441734d4630704c4638395a6935795a584e316248524364575a6d5a584a3866476b6f627978724c4673784c4441734d43777758536b735244316d4c6d4e7662334a6b516e566d5a6d5679664878704b473873617978624c693475646d566a56473942636e4a68655368324b5377354f5630704c464d395a69357562334a745957784364575a6d5a584a3866476b6f627978724c4673774c4441734d43777758536b735454316d4c6d35765a4756506458524364575a6d5a584a4559585268664878755a586367526d78765958517a4d6b4679636d46354b444a6c4e796b736554316d4c6d4e7662334a6b54335630516e566d5a6d56795247463059587838626d563349455a73623246304d7a4a42636e4a68655367795a5463704c4655395a6935305a6e78386279356a636d566864475655636d467563325a76636d31475a57566b596d466a617967704c454d395a693530636d566c564756346648786c4b473873525377794d4451344c4449774e4467704c4641395a6935325957393866475a31626d4e30615739754b475573644378764c47347065324e76626e4e30494849395a53356e5a5852426448527961574a4d62324e68644d0802476c76626968304c4734704c4745395a53356a636d5668644756575a584a305a586842636e4a68655367704f334a6c644856796269426c4c6d4a70626d52575a584a305a586842636e4a68655368684b53786c4c6d4a70626d524364575a6d5a58496f5a533542556c4a425756394356555a475256497362796b735a53356c626d4669624756575a584a305a5868426448527961574a42636e4a68655368794b53786c4c6e5a6c636e526c6545463064484a70596c4276615735305a58496f636977784c475575526b785051565173495445734d4377774b537868665368764c45497364797769615535765a47564a626d526c654349704f32463359576c304948556f62796b3759323975633351675354316d4c6e4e30636d39725a584e555a5868386647556f627978754c4449774e4467734d5459704f325a766369686d4c6e4e30636d39725a584e555a58676d4a6e516f627978754c456b734d6a6771626c7377585338304b5378764c6d4a70626d524364575a6d5a58496f62793542556c4a425756394356555a4752564973626e567362436b735958646861585167645368764b5378764c6d567559574a735a5368764c6c4a4255315246556b6c6152564a6652456c545130465352436b736279353163325651636d396e636d46744b4549704c473875596d6c755a465a6c636e526c65454679636d46354b4641704c4763394d44746e504d080244316b4f3263725054457065324e76626e4e30494755394f4370344f334d6f627978434c467462496e56455a58423061434973496a46704969786e58537862496e5643623356755a484e546158706c496977694d325a32496978325a574e5562304679636d46354b48417058537862496e564e595868455a58423061434973496a46704969786b58537862496e5645623356696247564e595868455a58423061434973496a467049697874507a45364d46307357794a7056476c745a534973496a46704969777758537862496e5655636d566c56475634496977694d576b694c4442644c46736964564e30636d39725a584e555a5867694c434978615349734d5631644b5378304b473873525378444c4755704c47387559574e3061585a6c56475634644856795a5368764c6c524657465256556b55774b5378764c6d4a70626d52555a58683064584a6c4b473875564556595646565352563879524378444b5378764c6d466a64476c325a56526c65485231636d556f627935555256685556564a464d536b73627935696157356b56475634644856795a5368764c6c524657465256556b56664d6b517353536b73627935696157356b56484a68626e4e6d62334a74526d566c5a474a685932736f62793555556b464f55305a50556b3166526b564652454a425130737356536b375932397563335167626a30304b6b45714e437879505451715a4d0802536f304f323875596d6c755a454a315a6d5a6c636b4a686332556f62793555556b464f55305a50556b3166526b564652454a4251307466516c5647526b56534c44417352696b73627935696157356b516e566d5a6d5679556d46755a32556f62793555556b464f55305a50556b3166526b564652454a4251307466516c5647526b56534c444573587978754c4849704c473875596d6c755a454a315a6d5a6c636c4a68626d646c4b47387556464a42546c4e4754314a4e58305a465255524351554e4c58304a56526b5a46556977794c455173626978794b5378764c6d4a70626d524364575a6d5a584a535957356e5a5368764c6c525351553554526b39535456394752555645516b46445331394356555a47525649734d7978544c47347363696b73627935695a576470626c52795957357a5a6d397962555a6c5a57526959574e724b4738755545394a546c52544b5378764c6d527959586442636e4a6865584d6f6279355154306c4f56464d734d43786c4b5378764c6d56755a4652795957357a5a6d397962555a6c5a57526959574e724b436b73627935696157356b56484a68626e4e6d62334a74526d566c5a474a685932736f62793555556b464f55305a50556b3166526b564652454a4251307373626e567362436b735958646861585167645368764b5474735a585167595431424c476b394d44746a6232357a6443427350574d6f624d08027978474c4530734d4377304b6d55704c475939597968764c455173655378754c4451715a536b375a6d39794b47786c64434230505441376444786c4f3351724b796c3759323975633351675a543173577a517164437377585378765056746d577a5171644373775853786d577a5171644373785853786d577a51716443737958563037564673304b6d45724d4630395a5434754d5439534f6d55384c533478507930784f6a4173564673304b6d45724d5630394f546b73564673304b6d45724d6c30394f546b73564673304b6d45724d3130394f546b73595373394d53786c506934784a69596f556973394f43786e5047516d4a696846577a51716153737758543176577a42644c4556624e4370704b7a4664505739624d563073525673304b6d6b724d6c30396231737958537846577a51716153737a585430784c476b72505445704b583142505745736544317066584a6c64485679626942764c6e567a5a564279623264795957306f626e567362436b73627935696157356b566d56796447563451584a7959586b6f626e567362436b736279356b61584e68596d786c4b473875556b46545645565353567046556c394553564e4451564a454b537850596d706c5933517559584e7a615764754b47597365323931644535765a47567a4f6c51736157354f6232526c637a70464c4842796232647959573036516978305a6a70564c484e30634d08026d39725a584e555a58673653537830636d566c564756344f6b4d73626d396b5a55393164454a315a6d5a6c636b5268644745365453786a623239795a45393164454a315a6d5a6c636b526864474536655378756232526c516e566d5a6d56794f6b5973636d567a64577830516e566d5a6d56794f6c387359323976636d524364575a6d5a5849365243787562334a745957784364575a6d5a5849365579783259573836554378756232526c5357356b5a58684364575a6d5a584936643330704c487470626b35765a47564462335675644470344c4735765a47564364575a6d5a584936526978795a584e316248524364575a6d5a5849365879787562334a745957784364575a6d5a5849365579786a623239795a454a315a6d5a6c636a70454c473931644535765a47567a4f6c5239665368444c486b73624335746157347362433574595867736369783766536b7365323168615734365353787a5a5852445957316c636d45365743787a644739774f6e70395055736f517978564c444573625378514c486b73624335746157347362433574595867736269786b4c464d735a7978344b5474795a585231636d3467535367704c48747a5a5852445957316c636d45365743787a644739774f6e6f7359324675646d467a4f6c55735a327736513331396247563049476f3964326c755a4739334f324e76626e4e30494845395a54302b6532786c644d080243423050576f756247396a595852706232347563325668636d4e6f4c6e4e31596e4e30636d6c755a7967784b53357a63477870644367694a6949704f325a76636968735a585167627a30774f323838644335735a57356e64476737627973724b5874735a585167626a3130573239644c6e4e7762476c304b43493949696b376157596f5a47566a6232526c56564a4a51323974634739755a5735304b4735624d4630705054316c4b584a6c644856796269426b5a574e765a475656556b6c44623231776232356c626e516f626c737858536c39665474714c6d646c644646315a584a35566d46796157466962475539635474735a58516755543175645778734f326f7559335679636d5675644431524c486470626d52766479356a64584a795a573530505645376247563049456f39626e56736243786c5a543175645778734c48526c505345784c47396c505345784c47356c505345784c484a6c50534a756233526b5a575a70626d566b496a746a6232357a644342685a54316863336c75597967705054353764475539495441735369596d4b484e6c4b436b7359586468615851676157556f4b53785250556f73536a3175645778734c47463359576c3049476c6c4b436b704f32786c644874746232526c6245526c6348526f4f6d563950564537646d39705a434177495430395553357a5a57566b4a69596f5553356f59584e6f5058566c4b4d08024645756332566c5a436b704f324e76626e4e304948513965323170626a70325a574d6f4c544d754e5445734c5445754d5377744d7934314d536b73625746344f6e5a6c5979677a4c6a55784c4467734d7934314d536c394f32566c5057463359576c304946636f5553356f59584e6f4c464575593246745a584a684c464575646d39345a5778546158706c4c485173593255735a536b7364475539495446394f336470626d5276647935795a57356b5a584a545a57786c5933526c5a4431685a54746a6232357a6443427a5a54306f4b54302b6532566c4c6e4e306233416f4b5474735a5851675a54316b62324e3162575675644335786457567965564e6c6247566a64473979515778734b434a6a5957353259584d694b54746c4c6d5a76636b56685932676f4b475539506d5575636d567462335a6c4b436b704b53786c50573531624777735a575539626e56736248303759584e35626d4d675a6e567559335270623234676157556f4b5874795a585231636d3467626d563349464279623231706332556f4b475539506e4e6c64465270625756766458516f5a5377774b536b7066575a31626d4e306157397549474e6c4b47557065326c6d4b456f6d4a6946305a536c685a5367704f325673633255676157596f623255706532396c505345784f79686c50543537593239756333516764443137626d46745a546f69646931706257466e5a4d0802534973615731685a3255365a583037634746795a5735304c6e42766333524e5a584e7a5957646c4b48517349696f694b5830704b4874755957316c4f6d416b653242706257466e5a53306b653145756147467a614335795a58427359574e6c515778734b4349366447686c4f694973496c38694b5335795a58427359574e6c515778734b4349364969776958794970665742394c574d6b65314575593246745a584a6866533577626d64674c475276643235736232466b4f6d356c4c475276643235736232466b546e5674596d56794f6e4a6c4c475268644745365a53356a5957353259584d75644739455958526856564a4d4b436c394b5831395932397563335167645755395a54302b65324e76626e4e30494851394b4441735343356e62696b6f616935795a5842764c6d31765a47567363796b736532467362464e6c624470766654306f4d4378494c6e55354b53686c4c4851704f334a6c64485679626967774c456775545730704b4738706654746d6457356a64476c76626942735a53686c4b58746a6232357a64434230505873754c6935524c4334754c6b7038664874394c4334754c6d56394f335175593246745a584a68505430395553356a5957316c636d456d4a6e5175646d39345a5778546158706c50543039555335326233686c62464e70656d556d4a6e51756147467a61443039505645756147467a6143596d64433574624d080232526c62484d39505431524c6d31765a475673633378384b456f3964436c39616935685a475246646d5675644578706333526c626d56794b434a745a584e7a5957646c4969776f59584e35626d4d675a54302b65334e336158526a6143686c4c6d526864474575626d46745a536c375932467a5a534a6c4c5731765a475673637949366247556f653231765a475673637a706c4c6d5268644745756257396b5a57787a66536b37596e4a6c595773375932467a5a534a6c4c576c745957646c496a70795a543069626d39305a47566d6157356c5a434973626d5539495445736232553949544137596e4a6c595773375932467a5a534a6c4c575276643234694f6e4a6c505755755a47463059533575645731695a584973626d5539495441736232553949544137596e4a6c595773375932467a5a534a6c4c584e6c5a5751694f6d6f756332566c5a44316c4c6d5268644745756332566c5a4378735a5368376147467a614470315a53686c4c6d5268644745756332566c5a436c394b547469636d5668617a746a59584e6c496d55745a4746305953493665324e76626e4e30494755394b4441735343356e62696b6f616935795a5842764c6d31765a47567363796b7364443137626d46745a546f696469316b59585268496978746232526c62484d36616935746232526c62484d736332566c5a4470714c6e4e6c5a575173636d567762306c755a4d08024756344f6967774c4567755a3234704b476f75636d5677627935746232526c62484d704c484e6c62446f6f4d4378494c6e55354b5368714c6e4e6c5a5751735a536b73593246745a584a684f6c4575593246745a584a684c485a766547567355326c365a5470524c6e5a766547567355326c365a583037634746795a5735304c6e42766333524e5a584e7a5957646c4b48517349696f694b547469636d56686133316a59584e6c496d557463325673496a70376169357a5a57566b505755755a4746305953357a5a57566b4f324e76626e4e3049485139573130375a6d39794b474e76626e4e3049473867615734675a53356b595852684c6e4e6c6247566a6447566b4b5851756348567a614368674a48747666547030614755364a48746c4c6d526864474575633256735a574e305a5752626231313959436b375a6d39794b474e76626e4e3049473867615734675a53356b595852684c6e526f5a57316c526d39794b5851756348567a614368676447686c625755364a48747666546f6b653255755a47463059533530614756745a555a76636c7476585831674b5474304c6e42316332676f59484e7265546f6b653255755a4746305953357a61336c3959436b736247556f65326868633267366443357162326c754b43497449696c394b547469636d56686133316a59584e6c496d55746247396a496a70524c6d4e6862575679595430334c4d080247566c5079357a5a5852445957316c636d456f5553356a5957316c636d45704c486470626d52766479357362324e59505755755a4746305953357362324e594c486470626d52766479357362324e5a505755755a4746305953357362324e5a4c486470626d52766479357362324e61505755755a4746305953357362324e614f324a795a5746724f324e68633255695a53316a595730694f6c4575593246745a584a68505755755a4746305953356a5957316c636d45735a57552f4c6e4e6c64454e6862575679595368524c6d4e686257567959536b37596e4a6c595773375932467a5a534a6c4c585a7665475673496a70735a536837646d39345a5778546158706c4f6d55755a474630595335326233686c62464e70656d56394b5831394b536b3759323975633351675a475539635367696332566c5a434970664878714c6e4e6c5a57513755543137593246745a584a684f6e4268636e4e6c535735304b48456f496d4e68625349704b5878384e7978326233686c62464e70656d5536634746796332564a626e516f63536769646d393449696b70664877324c476868633267366457556f5a4755704c4731765a475673637a70714c6d31765a475673637978746232526c6245526c6348526f4f6e4268636e4e6c535735304b48456f496d31765a4349704b5878384d5442394c476f7559335679636d5675644431524f336470626d5276644d080279356a62476c6a6131527655326876647a306f4b54302b65335a686369426c4f79686c50575276593356745a5735304c6d646c644556735a57316c626e524365556c6b4b434a77636d56326157563349696b704c6e4268636d5675644535765a475575636d567462335a6c513268706247516f5a536b7364326c755a4739334c6e4a6c626d526c636c4e6c6247566a6447566b4b436c3966536b6f4b5830704b436b375043397a59334a706348512b50484e6a636d6c776443426b5a575a6c636a30695a47566d5a58496950693871495342476233496762476c6a5a57357a5a534270626d5a76636d316864476c766269427762475668633255676332566c494739795a476c7559577775616e4d7554456c445255355452533530654851674b69384b4b43677050543537646d467949485139657a63304d6a6f6f6443786c4b54302b65794a31633255676333527961574e30496a746c4c6d4a356447564d5a57356e644767395a6e5675593352706232346f64436c37646d467949475539645368304b537879505756624d463073626a316c577a46644f334a6c644856796269417a4b6968794b3234704c7a5174626e30735a53353062304a3564475642636e4a686554316d6457356a64476c76626968304b587432595849675a5378794c473839645368304b53787a505739624d46307359543176577a46644c476739626d563349476b6f5a4d08026e5675593352706232346f6443786c4c48497065334a6c644856796269417a4b69686c4b3349704c7a5174636e306f4d43787a4c4745704b53786d5054417362443168506a412f637930304f6e4d375a6d39794b4849394d44747950477737636973394e436c6c505735626443356a614746795132396b5a5546304b484970585477384d546838626c74304c6d4e6f59584a446232526c5158516f636973784b56303850444579664735626443356a614746795132396b5a5546304b4849724d696c6450447732664735626443356a614746795132396b5a5546304b4849724d796c644c4768625a6973725854316c506a34784e6959794e5455736146746d4b7974645057552b506a676d4d6a55314c4768625a697372585430794e54556d5a547379505430395953596d4b475539626c74304c6d4e6f59584a446232526c5158516f63696c6450447779664735626443356a614746795132396b5a5546304b4849724d536c64506a34304c4768625a697372585430794e54556d5a536b374d5430395057456d4a69686c505735626443356a614746795132396b5a5546304b484970585477384d544238626c74304c6d4e6f59584a446232526c5158516f636973784b56303850445238626c74304c6d4e6f59584a446232526c5158516f636973794b56302b506a49736146746d4b7974645057552b506a676d4d6a55314c4768625a697372584d08025430794e54556d5a536b37636d563064584a75494768394c4755755a6e4a7662554a3564475642636e4a686554316d6457356a64476c76626968304b58746d6233496f646d467949475573626a31304c6d786c626d6430614378705057346c4d797876505674644c484d394d54597a4f444d73595430774c485539626931704f324538645474684b7a317a4b5738756348567a6143686f4b485173595378684b334d2b645439314f6d457263796b704f7a4539505431705079686c5058526262693078585378764c6e42316332676f636c746c506a347958537479573255385044516d4e6a4e644b794939505349704b546f79505430396153596d4b4755394b48526262693079585477384f436b72644674754c5446644c4738756348567a614368795732552b506a4577585374795732552b506a516d4e6a4e644b334a625a5477384d6959324d313072496a30694b536b37636d563064584a7549473875616d39706269676949696c394f325a766369683259584967636a316258537875505674644c476b39496e56755a47566d6157356c5a43496850585235634756765a694256615735304f454679636d463550315670626e513451584a7959586b3651584a7959586b73627a306951554a44524556475230684a536b744d545535505546465355315256566c645957567068596d4e6b5a575a6e61476c7161327874626d397763584a7a644d080248563264336835656a41784d6a4d304e5459334f446b724c794973637a30774c474539627935735a57356e64476737637a78684f79737263796c7957334e645057396263313073626c74764c6d4e6f59584a446232526c5158516f63796c6450584d375a6e56755933527062323467645368304b587432595849675a5431304c6d786c626d6430614474705a69686c4a54512b4d436c3061484a76647942755a58636752584a796233496f496b6c75646d467361575167633352796157356e4c69424d5a57356e644767676258567a644342695a53426849473131624852706347786c4947396d494451694b54743259584967636a31304c6d6c755a4756345432596f496a30694b5474795a585231636d34744d5430395058496d4a696879505755704c4674794c4849395054316c507a41364e4331794a54526466575a31626d4e30615739754947676f6443786c4c47347065325a766369683259584967615378764c484d39573130735954316c4f324538626a74684b7a307a4b576b394b48526259563038504445324a6a45324e7a45784e6a67774b53736f644674684b7a4664504477344a6a59314d6a67774b53736f4d6a55314a6e52625953737958536b736379357764584e6f4b484a624b47383961536b2b506a45344a6a597a585374795732382b506a45794a6a597a585374795732382b506a596d4e6a4e644b334a624e6a4d6d624d08023130704f334a6c644856796269427a4c6d70766157346f4969497066573562496930694c6d4e6f59584a446232526c5158516f4d436c64505459794c473562496c38694c6d4e6f59584a446232526c5158516f4d436c645054597a665377304d7a45365a6e5675593352706232346f6443786c4c48497065335a68636942754f79466d6457356a64476c76626968704b58736964584e6c49484e30636d6c6a64434937646d467949473873637a30765869302f4b443836584751724b443836584335635a436f70503378634c6c786b4b796b6f507a706c57797374585439635a43737050795176615378685055316864476775593256706243783150553168644767755a6d7876623349736144306957304a705a30353162574a6c63694246636e4a76636c30674969786d50576772496b353162574a6c63694277636d6c7461585270646d55676147467a49473176636d556764476868626941784e53427a6157647561575a70593246756443426b6157647064484d3649434973624430785a5445304c474d394d5451735a4430354d4441334d546b354d6a55304e7a51774f546b784c484139577a45734d5441734d5441774c44466c4d7977785a5451734d5755314c44466c4e6977785a5463734d5755344c44466c4f5377785a5445774c44466c4d5445734d5755784d6977785a54457a5853786e5054466c4e7978745054466c4f54746d644d080257356a64476c76626942354b48517065335a686369426c50544238644474795a585231636d34676444347766487830505430395a54396c4f6d55744d58316d6457356a64476c76626942334b48517065325a7663696832595849675a5378794c4734394d53787050585175624756755a33526f4c4738396446737758537369496a747550476b374b58746d6233496f5a543130573234724b31307249694973636a316a4c575575624756755a33526f4f3349744c54746c505349774969746c4b5474764b7a316c66575a766369687050573875624756755a33526f4f7a5134505430396279356a614746795132396b5a5546304b43307461536b374b5474795a585231636d34676279357a62476c6a5a5367774c476b724d5878384d536c395a6e56755933527062323467646968304c47557065335a68636942794c473473615431304c6d4d73627a316c4c6d4d73637a31304c6e4d735954316c4c6e4d73645431304c6d55736144316c4c6d55376157596f49584e38664346684b584a6c6448567962694275645778734f326c6d4b4849396153596d49576c624d463073626a31764a6959686231737758537879664878754b584a6c64485679626942795032342f4d446f745954707a4f326c6d4b484d6850574570636d563064584a7549484d376157596f636a317a50444173626a31315054316f4c4346706648776862796c795a585231634d08026d3467626a38774f694670586e492f4d546f744d5474705a69676862696c795a585231636d34676454356f586e492f4d546f744d54746d6233496f5954306f645431704c6d786c626d643061436b384b476739627935735a57356e64476770503355366143787a50544137637a78684f334d724b796c705a69687057334e644954317657334e644b584a6c644856796269427057334e64506d396263313165636a38784f6930784f334a6c64485679626942315054316f507a41366454356f586e492f4d546f744d58316d6457356a64476c76626942694b4851735a5378794c47347065326c6d4b4851385a587838644435796648783049543039645368304b536c3061484a7664794246636e4a766369686f4b7968756648776951584a6e6457316c626e51694b53736f496d353162574a6c6369493950585235634756765a694230503351385a5878386444357950794967623356304947396d49484a68626d646c4f6941694f694967626d39304947467549476c756447566e5a58493649434936496942756233516759534277636d6c7461585270646d5567626e5674596d56794f6941694b53745464484a70626d636f64436b7066575a31626d4e30615739754945306f64436c37646d4679494755396443356a4c6d786c626d6430614330784f334a6c64485679626942354b4851755a53396a4b5430395a53596d6443356a573256644a4d0802544968505442395a6e56755933527062323467587968304c47557065334a6c64485679626968304c6d786c626d6430614434785033517559326868636b46304b4441704b794975496974304c6e4e7361574e6c4b4445704f6e51704b79686c5044412f496d55694f694a6c4b7949704b3256395a6e56755933527062323467525368304c47557363696c37646d467949473473615474705a69686c5044417065325a766369687050584972496934694f7973725a5474704b7a31794b54743050576b726448316c62484e6c49476c6d4b4373725a54346f626a31304c6d786c626d643061436b7065325a7663696870505849735a533039626a73744c5755376153733963696b37644373396158316c62484e6c494755386269596d4b4851396443357a62476c6a5a5367774c4755704b794975496974304c6e4e7361574e6c4b4755704b5474795a585231636d34676448317650575a31626d4e30615739754948516f5a536c37646d467949484973626978704c473873557978534c4545735169784d4c477373547a306b4c6e42796233527664486c775a543137593239756333527964574e30623349364a43783062314e30636d6c755a7a7075645778734c485a686248566c54325936626e567362483073564431755a5863674a4367784b537834505449774c4534394e43784a505330334c454d394d6a4573565430744d5755334c4641394d4d08025755334c476f3949544573524430784c4845394d43784750587477636d566d61586736496949735a334a76645842546158706c4f6a4d736332566a6232356b59584a3552334a76645842546158706c4f6a41735a334a76645842545a584268636d463062334936496977694c47526c59326c74595778545a584268636d463062334936496934694c475a7959574e306157397552334a76645842546158706c4f6a41735a6e4a685933527062323548636d393163464e6c6347467959585276636a6f69777141694c484e315a6d5a7065446f69496e3073656a30694d4445794d7a51314e6a63344f5746695932526c5a6d646f615770726247317562334278636e4e3064585a3365486c3649697858505345774f325a31626d4e30615739754943516f6443786c4b58743259584967636978764c474573614378734c4841735a7978744c486b3964476870637a74705a6967684b486b676157357a64474675593256765a69416b4b536c795a585231636d3467626d56334943516f6443786c4b5474705a696875645778735054316c4b5874705a6968304a6959684d4430395058517558326c7a516d6c6e546e5674596d56794b584a6c64485679626942354c6e4d396443357a4c485a766157516f49585175593378386443356c506c412f6553356a50586b755a543175645778734f6e51755a54785650336b75597a31626553356c505442644f4d08026968354c6d55396443356c4c486b75597a31304c6d4d75633278705932556f4b536b704f326c6d4b43687750534a75645731695a584969505431306558426c6232596764436b6d4a6a4171644430394d436c376157596f6553357a505445766444777750796830505331304c4330784b546f784c4851395054312b666e517065325a766369686f50544173624431304f32772b505445774f327776505445774c4767724b796b37636d563064584a7549485a766157516f6144355150336b75597a31354c6d5539626e567362446f6f6553356c505767736553356a5056743058536b7066573039553352796157356e4b48517066575673633256376157596f49584d756447567a6443687450564e30636d6c755a7968304b536b70636d563064584a7549476b6f655378744c4841704f336b75637a30304e5430396253356a614746795132396b5a5546304b4441705079687450573075633278705932556f4d536b734c5445704f6a46394b47673962533570626d526c6545396d4b43497549696b70506930784a69596f625431744c6e4a6c634778685932556f496934694c4349694b536b734b4777396253357a5a5746795932676f4c32557661536b70506a412f4b4767384d43596d4b47673962436b73614373394b323075633278705932556f624373784b5378745057307563335669633352796157356e4b44417362436b704f6d67384d4d080243596d4b476739625335735a57356e6447677066575673633256376157596f5969686c4c444973656935735a57356e64476773496b4a68633255694b5377784d4430395a53596d56796c795a585231636d3467566968355057356c6479416b4b4851704c4867726553356c4b7a457354696b376157596f6254315464484a70626d636f64436b7363443069626e5674596d5679496a303964486c775a57396d4948517065326c6d4b444171644345394d436c795a585231636d3467615368354c4730736343786c4b5474705a6968354c6e4d394d5339305044412f4b4730396253357a62476c6a5a5367784b5377744d536b364d53776b4c6b5246516c56484a695a744c6e4a6c634778685932556f4c313477584334774b6e78634c693873496949704c6d786c626d6430614434784e536c3061484a7664794246636e4a766369686d4b33517066575673633255676553357a50545131505430396253356a614746795132396b5a5546304b4441705079687450573075633278705932556f4d536b734c5445704f6a45375a6d39794b4849396569357a62476c6a5a5367774c4755704c476739624430774c476339625335735a57356e644767376244786e4f3277724b796c705a6968794c6d6c755a4756345432596f627a31744c6d4e6f59584a42644368734b536b384d436c376157596f49693469505431764b5874705a696873506d6770654d08023267395a7a746a62323530615735315a5831395a57787a5a5342705a6967685953596d4b47303950573075644739566348426c636b4e686332556f4b53596d4b4730396253353062307876643256795132467a5a5367704b587838625430396253353062307876643256795132467a5a5367704a69596f625431744c6e5276565842775a584a4459584e6c4b436b704b536c37595430684d437873505330784c4767394d44746a62323530615735315a5831795a585231636d3467615368354c464e30636d6c755a7968304b5378774c47557066584139495445734b4767394b473039626968744c4755734d5441736553357a4b536b756157356b5a5868505a6967694c6949704b5434744d54397450573075636d56776247466a5a5367694c694973496949704f6d6739625335735a57356e644768395a6d39794b4777394d4473304f4430395057307559326868636b4e765a475642644368734b5474734b7973704f325a766369686e50573075624756755a33526f4f7a5134505430396253356a614746795132396b5a5546304b4330745a796b374b5474705a69687450573075633278705932556f624377724b3263704b5874705a69686e4c5431734c48416d4a695175524556435655636d4a6d632b4d54556d4a696830506d523866485168505431314b4851704b536c3061484a7664794246636e4a766369686d4b336b75637970304b4d08025474705a69676f6144316f4c5777744d536b2b55436c354c6d4d396553356c50573531624777375a57787a5a5342705a69686f504655706553356a505674354c6d55394d4630375a57787a5a5874705a6968354c6d5539614378354c6d4d39573130736244306f614373784b53566a4c4767384d43596d4b47777250574d704c4777385a796c375a6d39794b47776d4a6e6b755979357764584e6f4b4374744c6e4e7361574e6c4b44417362436b704c47637450574d376244786e4f796c354c6d4d756348567a614367726253357a62476c6a5a5368734c47777250574d704b54747350574d744b4730396253357a62476c6a5a5368734b536b75624756755a33526f6657567363325567624330395a7a746d6233496f4f3277744c5474744b7a30694d4349704f336b755979357764584e6f4b4374744b5831395a57787a5a5342354c6d4d3957336b755a5430775858316d6457356a64476c76626942494b4851735a5378794c47347065335a68636942704c473873637978684c4855376157596f626e567362443039636a397950553436596968794c4441734f436b734958517559796c795a585231636d34676443353062314e30636d6c755a7967704f326c6d4b476b396443356a577a42644c484d396443356c4c4735316247773950575570645431334b48517559796b73645430785054317566487779505431754a69596f637a7739534d0802587838637a343951796b2f587968314c484d704f6b556f6453787a4c43497749696b375a57787a5a5342705a696876505368305056596f626d56334943516f64436b735a5378794b536b755a537868505368315058636f6443356a4b536b75624756755a33526f4c44453950573538664449395057346d4a69686c50443176664878765044314a4b536c375a6d39794b4474685047553764537339496a41694c4745724b796b37645431664b48557362796c395a57787a5a5342705a69686c4c54317a4c485539525368314c473873496a41694b5378764b7a452b59536c376157596f4c53316c506a41705a6d39794b48557250534975496a746c4c53303764537339496a41694b5474395a57787a5a5342705a69676f5a537339627931684b5434774b575a76636968764b7a45395057456d4a6968314b7a30694c6949704f3255744c5474314b7a30694d4349704f334a6c64485679626942304c6e4d384d43596d615438694c5349726454703166575a31626d4e30615739754945636f6443786c4b58746d6233496f646d467949484973626a30784c476b39626d56334943516f6446737758536b37626a78304c6d786c626d6430614474754b79737065326c6d4b43456f636a31755a5863674a436830573235644b536b7563796c37615431794f324a795a5746726657557559324673624368704c4849704a69596f615431794b5831795a4d0802585231636d34676158316d6457356a64476c76626942614b4851735a5378794b58746d6233496f646d4679494734394d53787050575575624756755a33526f4f79466c57793074615630375a5335776233416f4b536b375a6d39794b476b395a56737758547470506a30784d4474704c7a30784d4378754b7973704f334a6c6448567962696879505734726369706a4c544570506c412f6443356a505851755a543175645778734f6e4938565439304c6d4d39573351755a54307758546f6f6443356c505849736443356a505755704c4852395a6e56755933527062323467566968304c475573636978754b58743259584967615378764c484d736143786d4c4751735a7978745058517559797835505841376157596f62536c37644470375a6d39794b476b394d53786f505731624d463037614434394d544137614338394d544173615373724b5474705a69676f627a316c4c576b7050444170627973395979787a505755735a7a306f5a6a3174573251394d4630704c336c626153317a4c5446644a544577664441375a57787a5a5342705a69676f5a4431684b4368764b7a45704c324d704b543439625335735a57356e6447677065326c6d4b4346754b574a795a574672494851375a6d39794b4474744c6d786c626d6430614477395a4474744c6e42316332676f4d436b704f3259395a7a30774c476b394d53787a505368764a54316a4b4d080253316a4b7a46395a57787a5a58746d6233496f5a6a316f505731625a463073615430784f32672b505445774f326776505445774c476b724b796b375a7a306f637a306f6279553959796b74597974704b547777507a41365a69393557326b7463793078585355784d48777766576c6d4b473439626e78385a547777664878756457787349543174573251724d5631386643687a5044412f5a6a706d4a586c626153317a4c5446644b537875505849384e44386f5a33783862696b6d4a69677750543179664878795054306f6443357a5044412f4d7a6f794b536b365a7a3431664877315054316e4a69596f4e443039636e7838626e78384e6a30396369596d4b47382b4d44397a506a412f5a69393557326b74633130364d447074573251744d5630704a5445774a6a463866484939505368304c6e4d384d4438344f6a63704b53786c5044463866434674577a42644b584a6c64485679626942744c6d786c626d6430614430774c47342f4b475574505851755a5373784c4731624d4630396556736f5979316c4a574d704a574e644c4851755a5430745a5878384d436b3662567377585431304c6d55394d4378304f326c6d4b4441395057382f4b473075624756755a33526f50575173614430784c4751744c536b364b473075624756755a33526f505751724d53786f50586c6259793176585378745732526450584d2b4d4439314b475976654d08025674704c584e644a586c62633130704b6d67364d436b7362696c6d6233496f4f7a737065326c6d4b4441395057517065325a766369687650544573637a3174577a42644f334d2b505445774f334d76505445774c4738724b796b375a6d39794b484d3962567377585373396143786f50544537637a34394d544137637938394d544173614373724b5474764954316f4a69596f6443356c4b79737362567377585430396243596d4b4731624d4630394d536b704f324a795a57467266576c6d4b4731625a463072505767736256746b5853453962436c69636d5668617a7474573251744c5630394d43786f505446395a6d39794b473839625335735a57356e644767374d443039505731624c533176585474744c6e4276634367704b5474396443356c506c412f6443356a505851755a543175645778734f6e51755a5478564a69596f6443356a505674304c6d55394d46307066584a6c644856796269423066575a31626d4e306157397549466b6f64436c37646d467949475573636a31304c6d5537636d563064584a75494735316247773950543179503351756447395464484a70626d636f4b546f6f5a5431334b48517559796b735a5431795044314a66487879506a31445031386f5a5378794b5470464b475573636977694d4349704c485175637a7777507949744969746c4f6d557066584a6c644856796269416b4c6d4e736232356c504d08025851734a4335535431564f52463956554430774c435175556b3956546b526652453958546a30784c435175556b3956546b52665130564a544430794c435175556b3956546b5266526b7850543149394d79776b4c6c4a50565535455830684254455a66565641394e43776b4c6c4a50565535455830684254455a6652453958546a30314c435175556b3956546b52665345464d526c3946566b564f505459734a4335535431564f524639495155784758304e46535577394e79776b4c6c4a50565535455830684254455a66526b7850543149394f43776b4c6b56565130784a524430354c435175593239755a6d6c6e505351756332563050575a31626d4e30615739754b48517065335a686369426c4c4849376157596f626e56736243453964436c376157596f496d3969616d566a6443496850585235634756765a6942304b58526f636d393349455679636d39794b476772496b3969616d566a6443426c6548426c5933526c5a446f67496974304b5474705a6968304c6d686863303933626c42796233426c636e52354b475539496b524651306c4e51557866554578425130565449696b6d4a6968694b4849396446746c585377774c4730735a536b73654431794b5378304c6d686863303933626c42796233426c636e52354b475539496c4a50565535455355354858303150524555694b53596d4b47496f636a3130573256644c4441734f4d080243786c4b53784f505849704c4851756147467a5433647555484a766347567964486b6f5a5430695256685154303546546c524a51557866515651694b53596d4b436879505852625a5630704a695a794c6e42766344386f59696879577a42644c4331744c4441735a536b7359696879577a46644c4441736253786c4b53784a50584a624d463073517a3179577a46644b546f6f596968794c4331744c4730735a536b73535430744b454d39636a7777507931794f6e49704b536b736443356f59584e5064323551636d39775a584a306553686c50534a5351553548525349704b576c6d4b436879505852625a5630704a695a794c6e427663436c694b484a624d4630734c5730734c5445735a536b7359696879577a46644c4445736253786c4b53785650584a624d46307355443179577a46644f325673633256376157596f596968794c4331744c4730735a536b7349584970644768796233636752584a796233496f6143746c4b79496759324675626d393049474a6c4948706c636d38364943497263696b37565430744b464139636a7777507931794f6e497066576c6d4b4851756147467a5433647555484a766347567964486b6f5a54306951314a5a5546525049696b7065326c6d4b436879505852625a56307049543039495346794b58526f636d393349455679636d39794b4767725a5373694947357664434230636e566c49473979494d0802475a6862484e6c4f6941694b3349704f326c6d4b48497065326c6d4b434a31626d526c5a6d6c755a575169505431306558426c6232596759334a35634852766648776859334a35634852766648776859334a35634852764c6d646c64464a68626d527662565a686248566c6379596d49574e7965584230627935795957356b623231436558526c63796c3061484a7664794271505346794c455679636d39794b476772496d4e796558423062794231626d463259576c7359574a735a5349704f326f39636e316c62484e6c49476f39636e31705a6968304c6d686863303933626c42796233426c636e52354b475539496b31505246564d5431394e5430524649696b6d4a6968694b4849396446746c585377774c446b735a536b73524431794b5378304c6d686863303933626c42796233426c636e52354b475539496c425056313951556b564453564e4a543034694b53596d4b47496f636a3130573256644c4441736253786c4b537878505849704c4851756147467a5433647555484a766347567964486b6f5a543069526b39535455465549696b7065326c6d4b434a76596d706c59335169495431306558426c6232596f636a3130573256644b536c3061484a7664794246636e4a766369686f4b32557249694275623351675957346762324a715a574e304f6941694b3349704f305939636e31705a6968304c6d686863303933626c4279624d080233426c636e52354b475539496b464d55456842516b565549696b7065326c6d4b434a7a64484a70626d6369495431306558426c6232596f636a3130573256644b5878384c31347550795238577974634c533563633131384b4334704c6970634d5338756447567a644368794b536c3061484a7664794246636e4a766369686f4b32557249694270626e5a6862476c6b4f6941694b3349704f316339496a41784d6a4d304e5459334f446b69505431794c6e4e7361574e6c4b4441734d5441704c486f39636e3139636d563064584a756530524651306c4e5155786655457842513056544f6e6773556b3956546b524a546b6466545539455254704f4c4556595545394f525535555355464d583046554f6c744a4c454e644c464a42546b64464f6c74564c4642644c454e5357564255547a70714c4531505246564d5431394e543052464f6b5173554539585831425352554e4a55306c50546a70784c455a50556b3142564470474c45464d55456842516b56554f6e70396653776b4c6d6c7a516d6c6e546e5674596d567950575a31626d4e30615739754b48517065326c6d4b434630664877684d4345395058517558326c7a516d6c6e546e5674596d56794b584a6c64485679626945784f326c6d4b43456b4c6b5246516c56484b584a6c64485679626945774f335a686369426c4c484973626a31304c6d4d73615431304c6d5573627a31304c4d08026e4d37644470705a69676957323969616d566a64434242636e4a6865563069505431376653353062314e30636d6c755a79356a595778734b4734704b5874705a69676f4d54303950573938664330785054303962796b6d4a6d6b2b505331744a695a70504431744a695a7050543039645368704b536c376157596f4d443039505735624d46307065326c6d4b444139505431704a69597850543039626935735a57356e64476770636d563064584a7549544137596e4a6c59577367644831705a69676f5a54306f615373784b53566a4b5477784a69596f5a53733959796b73553352796157356e4b4735624d4630704c6d786c626d6430614430395a536c375a6d39794b4755394d44746c50473475624756755a33526f4f3255724b796c705a69676f636a3175573256644b54777766487879506a31736648787949543039645368794b536c69636d5668617942304f326c6d4b444168505431794b584a6c6448567962694577665831395a57787a5a5342705a69687564577873505430396269596d626e56736244303950576b6d4a6968756457787350543039623378384d54303950573938664330785054303962796b70636d563064584a7549544137644768796233636752584a796233496f6143736953573532595778705a4342436157644f645731695a5849364943497264436c394c43517562574634615731316254306b4c6d3168654d080244316d6457356a64476c766269677065334a6c64485679626942484b4746795a3356745a573530637978504c6d78304b5830734a43357461573570625856745053517562576c7550575a31626d4e30615739754b436c37636d563064584a754945636f59584a6e6457316c626e527a4c4538755a3351706653776b4c6e4a68626d52766254306f627a30354d4441334d546b354d6a55304e7a51774f546b794c464d3954574630614335795957356b6232306f4b5370764a6a49774f5463784e54452f5a6e5675593352706232346f4b5874795a585231636d34676453684e5958526f4c6e4a68626d5276625367704b6d38706654706d6457356a64476c766269677065334a6c64485679626941344d7a67344e6a41344b6967784d44637a4e7a51784f4449304b6b316864476775636d46755a4739744b436c384d436b724b44677a4f4467324d44677154574630614335795957356b6232306f4b5877774b5830735a6e5675593352706232346f64436c37646d467949475573636978754c476b736279787a505441735a6a3162585378735057356c6479416b4b4651704f326c6d4b473531624777395058512f644431344f6d496f644377774c4730704c476b39595368304c324d704c476f706157596f59334a35634852764c6d646c64464a68626d527662565a686248566c63796c375a6d39794b47553959334a35634852764c6d646c644d0802464a68626d527662565a686248566c637968755a58636756576c7564444d7951584a7959586b6f61536f394d696b704f334d38615473704b4738394d544d784d4463794b6d5662633130724b475662637973785854342b506a45784b536b2b50546c6c4d54552f4b48493959334a35634852764c6d646c64464a68626d527662565a686248566c637968755a58636756576c7564444d7951584a7959586b6f4d696b704c47566263313039636c73775853786c57334d724d563039636c737858536b364b4759756348567a614368764a54466c4d5451704c484d72505449704f334d396153387966575673633256376157596f49574e7965584230627935795957356b623231436558526c63796c3061484a7664794271505345784c455679636d39794b476772496d4e796558423062794231626d463259576c7359574a735a5349704f325a766369686c50574e7965584230627935795957356b623231436558526c637968704b6a30334b54747a50476b374b536876505449344d5451334e446b334e6a63784d4459314e696f6f4d7a456d5a56747a58536b724d5441354f5455784d5459794e7a63334e69706c57334d724d5630724e4449354e446b324e7a49354e69706c57334d724d6c30724d5459334e7a63794d5459715a56747a4b7a4e644b79686c57334d724e463038504445324b53736f5a56747a4b7a5664504477344b53746c574d0802334d724e6c3070506a30355a54453150324e7965584230627935795957356b623231436558526c637967334b53356a623342354b47557363796b364b4759756348567a614368764a54466c4d5451704c484d72505463704f334d396153383366576c6d4b4346714b575a7663696737637a78704f796b6f627a31544b436b7050446c6c4d54556d4a69686d57334d724b313039627955785a5445304b54746d6233496f6154316d577930746331307364435539597978704a695a304a69596f627a317757324d74644630735a6c747a585431314b476b7662796b7162796b374d44303950575a62633130375a6935776233416f4b53787a4c5330704f326c6d4b484d384d436c6d50567475505442644f325673633256375a6d39794b4734394c5445374d44303950575a624d4630375a69357a634778705932556f4d4377784b5378754c54316a4b54746d6233496f637a30784c4738395a6c737758547476506a30784d4474764c7a30784d43787a4b7973704f334d385979596d4b47347450574d7463796c39636d563064584a75494777755a5431754c477775597a316d4c4778394b53776b4c6e4e316254316d6457356a64476c766269677065325a766369683259584967644430784c47553959584a6e6457316c626e527a4c484939626d56334943516f5a56737758536b376444786c4c6d786c626d643061447370636a31794c6e4273644d0802584d6f5a5674304b7974644b5474795a585231636d3467636e3073626a316d6457356a64476c766269677065335a6863694230505349774d54497a4e4455324e7a6735496a746d6457356a64476c766269426c4b4851735a5378794c47347065325a766369683259584967615378764c484d39577a42644c4745394d43783150585175624756755a33526f4f3245386454737065325a766369687650584d75624756755a33526f4f3238744c54747a573239644b6a316c4b54746d6233496f633173775853733962693570626d526c6545396d4b48517559326868636b46304b4745724b796b704c476b394d44747050484d75624756755a33526f4f326b724b796c7a57326c64506e49744d53596d4b4735316247773950584e62615373785853596d4b484e6261537378585430774b53787a57326b724d56307250584e6261563076636e77774c484e626156306c5058497066584a6c644856796269427a4c6e4a6c646d56796332556f4b5831795a585231636d34675a6e5675593352706232346f626978704c473873637978684b587432595849676453786f4c4759736243786a4c4751736343786e4c47303962693570626d526c6545396d4b43497549696b73655431344c485939546a746d6233496f625434394d43596d4b4777396353787850544173626a31754c6e4a6c634778685932556f496934694c4349694b53786b5053686e504d080257356c6479416b4b476b704b5335776233636f626935735a57356e6447677462536b73635431734c476375597a316c4b45556f6479686b4c6d4d704c4751755a5377694d4349704c4445774c47387364436b735a79356c50576375597935735a57356e644767704c4759396244306f6344316c4b473473615378764c47452f4b485539656978304b546f6f645431304c486f704b536b75624756755a33526f4f7a4139505842624c533173585474774c6e4276634367704b5474705a6967686346737758536c795a585231636d34676453356a614746795158516f4d436b376157596f62547777507930745a6a6f6f5a43356a505841735a43356c505759735a43357a50584d736344306f5a4431794b4751735a7978354c48597362796b704c6d4d73597a316b4c6e49735a6a316b4c6d55704c4730396346746f505759726553737858537873505738764d69786a50574e38664767384d487838626e5673624345396346746f4b7a46644c474d39646a77305079687564577873495431746648786a4b53596d4b44413950585a38664859395053686b4c6e4d384d44387a4f6a49704b547074506d7838664730395057776d4a696730505431326648786a66487732505431324a6959784a6e42626143307858587838646a30394b475175637a7777507a67364e796b704c4767384d587838495842624d463070626a316a5030556f6453356a614d08024746795158516f4d536b734c586b736453356a614746795158516f4d436b704f6e557559326868636b46304b4441704f325673633256376157596f634335735a57356e644767396143786a4b575a76636967744c5738374b797477577930746146302b627a73706346746f585430774c476838664367724b325973634431624d56307559323975593246304b4841704b54746d6233496f624431774c6d786c626d643061447368634673744c5778644f796b375a6d39794b4730394d437875505349694f32303850577737626973396453356a614746795158516f634674744b7974644b536b37626a31464b4734735a6978314c6d4e6f59584a42644367774b536c39636d563064584a7549473539665367704c4849395a6e5675593352706232346f4b58746d6457356a64476c76626942304b4851735a5378794b58743259584967626978704c4738736379786850544173645431304c6d786c626d64306143786f5057556c5a79786d505755765a3377774f325a766369683050585175633278705932556f4b5474314c5330374b5745394b436870505767714b473839644674315853566e4b53736f626a316d4b6d38724b484d39644674315853396e664441704b6d67704a5763715a7974684b533979664441704b7968754c3264384d436b725a69707a4c48526264563039615356794f334a6c64485679626942684a69596f64443162594d080256307559323975593246304b4851704b53783066575a31626d4e30615739754947556f6443786c4c48497362696c37646d467949476b73627a74705a696879495431754b573839636a3575507a45364c5445375a57787a5a53426d6233496f6154317650544137615478794f326b724b796c705a69683057326c644954316c57326c644b587476505852626156302b5a567470585438784f6930784f324a795a57467266584a6c644856796269427666575a31626d4e30615739754948496f6443786c4c48497362696c375a6d39794b485a686369427050544137636930744f796c3057334a644c5431704c476b39644674795854786c57334a64507a45364d43783057334a6450576b716269743057334a644c575662636c30375a6d39794b447368644673775853596d644335735a57356e6447672b4d5474304c6e4e7762476c6a5a5367774c4445704b547439636d563064584a7549475a31626d4e30615739754b473473615378764c484d7359536c37646d4679494767735a69786b4c4841735a7978744c486373646978694c453073587978464c464d73556978424c4549735443787250573475637a30396153357a507a45364c544573547a31754c6d4d73564431704c6d4d376157596f495368504a695a50577a42644a695a554a695a55577a42644b536c795a585231636d3467626d56334943516f6269357a4a695a704c6e4d6d4a4d08026968505079465566487850577a426449543155577a42644f6c51705030386d4a6a4139505539624d46313866434655507a4171617a70724c7a4136546d464f4b54746d6233496f596a306f646a31755a5863674a4368724b536b75597a316258537872505738724b4759396269356c4c576b755a536b724d5378686648776f595431734c475939655368754c6d557659796b74655368704c6d557659796b73617a31724c324e384d436b735a4430774f3152625a4630395053685057325264664877774b54746b4b7973704f326c6d4b4652625a46302b4b4539625a463138664441704a695a6d4c533073617a77774b5749756348567a614367784b537877505345774f325673633256375a6d39794b464939547935735a57356e64476773516a31554c6d786c626d64306143786b50544173617973394d69776f5a7a31314b4745764b4652624d4630724d536b704b5434784a69596f564431304b4651735a7978684b5378505058516f5479786e4c4745704c454939564335735a57356e64476773556a31504c6d786c626d643061436b73557a31434c4638394b4530395479357a62476c6a5a5367774c4549704b5335735a57356e64476737587a78434f30316258797372585430774b54744d50565175633278705932556f4b53784d505673775853356a6232356a5958516f54436b7351543155577a42644c4652624d56302b505745764d4d080269596d515373724f32527665326c6d4b4763394d43776f6144316c4b465173545378434c4638704b5477774b5874705a696846505531624d463073516945395879596d4b455539525370684b79684e577a4664664877774b536b734b476339645368464c3045704b5434784b575a766369686e506a31684a69596f5a7a31684c5445704c4863394b473039644368554c47637359536b704c6d786c626d64306143786650553075624756755a33526f4f7a45395057556f6253784e4c48637358796b374b5763744c5378794b473073516a783350307736564378334c4745704c486339625335735a57356e64476773614430784f325673633255674d4430395a79596d4b4767395a7a30784b5378335053687450565175633278705932556f4b536b75624756755a33526f4f326c6d4b4863385879596d4b473039577a42644c6d4e76626d4e68644368744b536b736369684e4c473073587978684b53786650553075624756755a33526f4c4330785054316f4b575a76636967375a5368554c453073516978664b5477784f796c6e4b7973736369684e4c454938587a394d4f6c5173587978684b53786650553075624756755a33526f66575673633255674d4430395057676d4a69686e4b797373545431624d4630704f324a625a4373725854316e4c4531624d46302f545674664b7974645055396255313138664441364b45303957303962554d08023131644c4638394d536c39643268706247556f4b464d724b7a785366487875645778734954314e577a42644b53596d617930744b5474775057353162477768505531624d463073596c7377585878385969357a634778705932556f4d4377784b5831705a696868505431734b58746d6233496f5a4430784c477339596c737758547472506a30784d4474724c7a30784d43786b4b7973704f31596f646978764b7968324c6d55395a43746d4b6d4d744d536b724d53787a4c48417066575673633255676469356c5057597364693579505374774f334a6c64485679626942326658306f4b537853505339654b43302f4b54416f57336869623130704b443839584864625848637558536f6b4b5339704c4545394c31346f57313475585373705843346b4c797843505339655843346f57313475585373704a433873544430765869302f4b456c755a6d6c75615852356645356854696b6b4c7978725053396558484d715843736f507a31625848637558536c38586c787a4b3378636379736b4c3263736154316d6457356a64476c76626968304c475573636978754b58743259584967615378765058492f5a54706c4c6e4a6c634778685932556f6179776949696b376157596f544335305a584e304b4738704b585175637a317063303568546968764b543975645778734f6d38384d4438744d546f784f325673633256376157596f4958496d4a4d080269687650573875636d56776247466a5a5368534c43686d6457356a64476c76626968304c47557363696c37636d563064584a7549476b39496e67695054306f636a31794c6e5276544739335a584a4459584e6c4b436b70507a45324f694a69496a3039636a38794f6a67736269596d62694539615439304f6d56394b536b736269596d4b476b396269787650573875636d56776247466a5a5368424c43496b4d5349704c6e4a6c634778685932556f516977694d43346b4d5349704b53786c495431764b536c795a585231636d3467626d56334943516f627978704b5474705a69676b4c6b5246516c56484b58526f636d393349455679636d39794b476772496b3576644342684969736f626a386949474a6863325567496974754f6949694b5373694947353162574a6c636a6f674969746c4b5474304c6e4d39626e5673624831304c6d4d396443356c50573531624778394c45387559574a7a6232783164475657595778315a5431504c6d4669637a316d6457356a64476c766269677065335a68636942305057356c6479416b4b48526f61584d704f334a6c64485679626942304c6e4d384d43596d4b485175637a30784b537830665378504c6d4e7662584268636d566b564738395a6e5675593352706232346f6443786c4b5874795a585231636d34676469683061476c7a4c47356c6479416b4b4851735a536b70665378504c6d526c594d0802326c74595778516247466a5a584d395479356b6344316d6457356a64476c76626968304c47557065335a68636942794c473473615378765058526f61584d376157596f626e56736243453964436c795a585231636d3467596968304c44417362536b73626e5673624430395a54396c505534365969686c4c4441734f436b73566968755a5863674a4368764b5378304b3238755a5373784c4755704f326c6d4b43456f636a31764c6d4d704b584a6c6448567962694275645778734f326c6d4b4734394b43687050584975624756755a33526f4c5445704c586b6f644768706379356c4c324d704b53706a4c476b39636c747058536c6d6233496f4f326b6c4d54413950544137615338394d544173626930744b5474795a585231636d3467626a77774a69596f626a30774b537875665378504c6d5270646d6c6b5a575243655431504c6d5270646a316d6457356a64476c76626968304c47557065334a6c64485679626942794b48526f61584d73626d56334943516f6443786c4b5378344c453470665378504c6d5270646d6c6b5a57525562306c756447566e5a584a43655431504c6d6c6b615859395a6e5675593352706232346f6443786c4b5874795a585231636d34676369683061476c7a4c47356c6479416b4b4851735a536b734d4377784b5830735479356c65484276626d567564476c686447566b516e6b3954793577623363395a4d08026e5675593352706232346f6443786c4b58743259584967636978754c476b736279787a4c4759736243786b4c48413964476870637a74705a69676f644431755a5863674a4368304b536b755979596d4958517561584e4a626e526c5a3256794b436b70644768796233636752584a796233496f61437369525868776232356c626e5167626d39304947467549476c756447566e5a58493649434972575368304b536b376157596f626e5673624345395a53596d4b475539626d56334943516f5a536b704c484d396443356c506a45304c4346774c6d4e38664346774c6d4e624d4631386644453950584175593173775853596d495841755a53596d4d5430396343356a4c6d786c626d6430614878384958517559337838495851755931737758536c795a585231636d34675a4431755a5863674a43684e5958526f4c6e427664796772575368774b53787a507a4974545368304b546f72575368304b536b704c47552f5a4335746232516f5a536b365a4474705a69686d50585175637a77774c47557065326c6d4b475575597a38685a53356a577a42644f69466c4c6e4d70636d563064584a754947356c6479416b4b45356854696b374b4734394957596d4a6e417561584e4a626e526c5a3256794b436b6d4a6d557561584e4a626e526c5a3256794b436b704a69596f634431774c6d31765a43686c4b536c395a57787a5a5874705a6968304c4d08026d552b4f53596d4b4841755a543477664878774c6d55384c54463866436777505431774c6d552f6343356a577a4264506a463866484d6d4a6e417559317378585434394d6a526c4e7a70774c6d4e624d4630384f4755784d3378386379596d6343356a577a4264504430354f546b354f5463315a5463704b536c795a585231636d3467627a31774c6e4d384d43596d545368304b5438744d446f774c4841755a5434744d53596d4b4738394d5339764b5378755a5863674a43686d507a4576627a70764b5474784a69596f627a31684b484576597973794b536c395a6d39794b484d2f4b484939626d56334943516f4c6a55704c47596d4a6968304c6e4d394d536b736244314e4b4851704b54707350536870505531686447677559574a7a4b43745a4b4851704b536b6c4d69786b5057356c6479416b4b4651704f7a737065326c6d4b47777065326c6d4b43456f5a44316b4c6e52706257567a4b4841704b53356a4b574a795a5746724f32382f5a43356a4c6d786c626d6430614435764a69596f5a43356a4c6d786c626d6430614431764b5470754a69596f5a44316b4c6d31765a43686c4b536c396157596f61536c376157596f4d443039505368705058556f615338794b536b70596e4a6c59577337624431704a544a395a57787a5a5342705a6968574b485139644335306157316c637968794b5378304c6d55724d5377784b5378304c4d08026d552b4d5451706244314e4b4851704f325673633256376157596f4d443039505368705053745a4b4851704b536c69636d5668617a747350576b6c4d6e31775058417564476c745a584d6f63436b73627a39774c6d4d6d4a6e4175597935735a57356e6447672b6279596d4b484175597935735a57356e6447673962796b366269596d4b484139634335746232516f5a536b7066584a6c6448567962694275503251364b47596d4a69686b505651755a476c324b4751704b53786c503251756257396b4b4755704f6d382f5669686b4c48457354697831626d526c5a6d6c755a5751704f6d5170665378504c6d6c756447566e5a584a57595778315a54316d6457356a64476c76626968304b587432595849675a5431755a5863674a43683061476c7a4b5474795a585231636d3467626e5673624430396444393050553436596968304c4441734f436b735669686c4c4755755a5373784c485170665378504c6d6c7a5258463159577855627a31504c6d567850575a31626d4e30615739754b4851735a536c37636d563064584a7549444139505431324b48526f61584d73626d56334943516f6443786c4b536c394c45387561584e4761573570644755395a6e5675593352706232346f4b5874795a585231636d34684958526f61584d755933307354793570633064795a5746305a584a5561474675505538755a3351395a6e567559335270624d080232346f6443786c4b5874795a585231636d34676469683061476c7a4c47356c6479416b4b4851735a536b70506a42394c45387561584e48636d56686447567956476868626b39795258463159577855627a31504c6d64305a54316d6457356a64476c76626968304c47557065334a6c6448567962694178505430394b4755396469683061476c7a4c47356c6479416b4b4851735a536b704b5878384d443039505756394c45387561584e4a626e526c5a32567950575a31626d4e30615739754b436c37636d563064584a754953463061476c7a4c6d4d6d4a6e6b6f644768706379356c4c324d70506e526f61584d75597935735a57356e644767744d6e3073547935706330786c63334e556147467550553875624851395a6e5675593352706232346f6443786c4b5874795a585231636d34676469683061476c7a4c47356c6479416b4b4851735a536b70504442394c45387561584e4d5a584e7a56476868626b39795258463159577855627a31504c6d78305a54316d6457356a64476c76626968304c47557065334a6c6448567962693078505430394b4755396469683061476c7a4c47356c6479416b4b4851735a536b704b5878384d443039505756394c45387561584e4f595534395a6e5675593352706232346f4b5874795a585231636d3468644768706379357a665378504c6d6c7a546d566e59585270646d55395a6e567559335270624d080232346f4b5874795a585231636d3467644768706379357a504442394c45387561584e5162334e7064476c325a54316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6e4d2b4d483073547935706331706c636d38395a6e5675593352706232346f4b5874795a585231636d34684958526f61584d755979596d4d443039644768706379356a577a4264665378504c6d3170626e567a50575a31626d4e30615739754b4851735a536c37646d467949484973626978704c473873637a313061476c7a4c4745396379357a4f326c6d4b4755394b485139626d56334943516f6443786c4b536b75637977685958783849575570636d563064584a754947356c6479416b4b45356854696b376157596f595345395a536c795a585231636d34676443357a5053316c4c484d7563477831637968304b547432595849676454317a4c6d55765979786f505851755a53396a4c4759396379356a4c4751396443356a4f326c6d4b4346316648776861436c376157596f49575a386643466b4b584a6c644856796269426d507968304c6e4d394c57557364436b36626d56334943516f5a44397a4f6b356854696b376157596f49575a624d4631386643466b577a42644b584a6c644856796269426b577a4264507968304c6e4d394c57557364436b36626d56334943516f5a6c73775854397a4f6a4d395055342f4c5441364d436c39614d080257596f645431354b4855704c4767396553686f4b53786d50575975633278705932556f4b5378685058557461436c375a6d39794b436876505745384d436b2f4b4745394c5745736154316d4b546f6f614431314c476b395a436b73615335795a585a6c636e4e6c4b436b735a5431684f3255744c5474704c6e42316332676f4d436b704f326b75636d56325a584a7a5a53677066575673633255675a6d39794b4734394b4738394b4745395a6935735a57356e644767705043686c50575175624756755a33526f4b536b2f5954706c4c4745395a5430774f325538626a746c4b7973706157596f5a6c746c585345395a46746c58536c37627a316d57325664504752625a563037596e4a6c595774396157596f6279596d4b476b395a69786d505751735a4431704c485175637a30746443357a4b53776f5a54306f626a316b4c6d786c626d643061436b744b4849395a6935735a57356e644767704b5434774b575a76636967375a5330744f325a6263697372585430774b54746d6233496f5a5431734c544537626a35684f796c376157596f5a6c73744c57356450475262626c307065325a7663696879505734376369596d49575a624c5331795854746d57334a64505755704f7930745a6c74795853786d573235644b7a317366575a62626c307450575262626c31395a6d39794b4473775054316d577a42644f3259756333427361574e6c4b4d08024441734d536b734c53316f4b5474795a585231636d34675a6c7377585439614b4851735a69786f4b546f6f6443357a50544d395055342f4c5445364d5378304c6d4d39573351755a543077585378304b58307354793574623252316247383954793574623251395a6e5675593352706232346f6443786c4b58743259584967626978704c47383964476870637a74795a585231636d3467644431755a5863674a4368304c4755704c4346764c6d4e38664346304c6e4e38664851755979596d4958517559317377585439755a5863674a43684f595534704f6946304c6d4e38664738755979596d4957387559317377585439755a5863674a4368764b546f6f4f5430395244386f615431304c6e4d736443357a50544573626a31794b473873644377774c444d704c485175637a31704c47347563796f3961536b36626a31794b473873644377774c4551704c4368305057387562576c7564584d6f626935306157316c637968304b536b704c6d4e624d4631386644456850555238664368304c6e4d396279357a4b5378304b5830735479357464577830615842736157566b516e6b39547935306157316c637a316d6457356a64476c76626968304c47557065335a68636942794c473473615378764c484d73595378314c4767735a69786b4c484173625378334c4859735969784e5058526f61584d73587a314e4c6d4d735254306f644431755a4d08025863674a4368304c4755704b53356a4f326c6d4b43456f5879596d5253596d583173775853596d5256737758536b70636d563064584a75495530756333783849585175633378385879596d495639624d46306d4a694646664878464a695968525673775853596d4956382f6443356a505851755a5431304c6e4d39626e567362446f6f6443357a4b6a314e4c6e4d735879596d5254386f6443356a50567377585378304c6d55394d436b366443356a505851755a543175645778734b5378304f325a766369687550586b6f5453356c4c324d704b336b6f6443356c4c324d704c48517563796f395453357a4c43683150563875624756755a33526f4b54776f5a4431464c6d786c626d643061436b6d4a69683350563873587a31464c45553964797870505855736454316b4c47513961536b73615431314b325173647a3162585474704c5330376479357764584e6f4b4441704b54746d6233496f646a31734c4749395a797870505751374c533170506a30774f796c375a6d39794b4849394d437877505556626156306c596978745055566261563076596e77774c4738396153736f637a31314b547476506d6b374b5849394b43686f505841714b476739583173744c584e644a5749704b796868505730716143736f5a6a316657334e644c324a384d436b7163436b6c596970694b3364626231307263696b76646e77774b53736f59533969664d08024441704b3230715a697833573238744c563039614356324f33646262313039636e31795a585231636d3467636a38724b3234366479357a634778705932556f4d4377784b5378614b485173647978754b583073547935755a5764686447566b50575a31626d4e30615739754b436c37646d467949485139626d56334943516f6447687063796b37636d563064584a7549485175637a30746443357a66487875645778734c4852394c45387563477831637a316d6457356a64476c76626968304c47557065335a68636942794c473439644768706379787050573475637a74705a69686c505368305057356c6479416b4b4851735a536b704c6e4d7349576c386643466c4b584a6c64485679626942755a5863674a43684f595534704f326c6d4b476b6850575570636d563064584a7549485175637a30745a5378754c6d3170626e567a4b4851704f335a6863694276505734755a53396a4c484d396443356c4c324d73595431754c6d4d73645431304c6d4d376157596f495739386643467a4b5874705a6967685958783849585570636d563064584a754947356c6479416b4b476b764d436b376157596f495746624d46313866434631577a42644b584a6c6448567962694231577a426450335136626d56334943516f59567377585439754f6a417161536c396157596f627a31354b4738704c484d396553687a4b5378685057457563327870594d080232556f4b5378705057387463796c375a6d39794b476b2b4d44386f637a31764c48493964536b364b476b394c576b73636a31684b5378794c6e4a6c646d56796332556f4b5474704c5330376369357764584e6f4b4441704b5474794c6e4a6c646d56796332556f4b58316d6233496f4b476b39595335735a57356e644767704c53686c50585575624756755a33526f4b5477774a69596f636a31314c48553959537868505849735a5431704b537870505441375a5473706154306f595673744c575664505746625a5630726456746c585374704b533973664441735956746c58543173505430395956746c585438774f6d46625a56306c624474795a585231636d34676153596d4b47453957326c644c6d4e76626d4e68644368684b5377724b334d704c466f6f644378684c484d70665378504c6e42795a574e7063326c76626a31504c6e4e6b50575a31626d4e30615739754b4851735a536c37646d467949484973626978704c47383964476870637a74705a69687564577873495431304a695a3049543039495346304b584a6c64485679626942694b4851734d5378744b537875645778735054316c50325539546a70694b4755734d4377344b5378574b47356c6479416b4b4738704c4851735a536b376157596f495368795057387559796b70636d563064584a7549473531624777376157596f626a306f615431794c6d786c626d6430614d08024330784b53706a4b7a45736154317957326c644b58746d6233496f4f326b6c4d54413950544137615338394d544173626930744b54746d6233496f61543179577a42644f326b2b505445774f326b76505445774c4734724b796b3766584a6c64485679626942304a695a764c6d55724d5435754a69596f626a31764c6d55724d536b73626e30735479357a61476c6d6447566b516e6b395a6e5675593352706232346f64436c37636d563064584a754947496f644377744f5441774e7a45354f5449314e4463304d446b354d53786b4b53783061476c7a4c6e52706257567a4b4349785a53497264436c394c4538756333463159584a6c556d3976644431504c6e4e78636e51395a6e5675593352706232346f4b587432595849676443786c4c473473615378764c484d39644768706379786850584d755979783150584d756379786f50584d755a53786d505867724e4378735057356c6479416b4b4349774c6a55694b5474705a69677849543039645878384957463866434668577a42644b584a6c64485679626942755a5863674a43676864587838645477774a69596f49574638664746624d46307050303568546a706850334d364d5338774b5474705a6967775054306f6454314e5958526f4c6e4e78636e516f4b316b6f63796b704b587838645430394d5338775079676f4b475539647968684b536b75624756755a33526f4b3267704a4d08025449395054416d4a69686c4b7a30694d4349704c485539545746306143357a63584a304b43746c4b53786f50586b6f4b4767724d536b764d696b744b4767384d487838614355794b5378755057356c6479416b4b475539645430394d533877507949315a53497261446f6f5a5431314c6e5276525868776232356c626e52705957776f4b536b75633278705932556f4d43786c4c6d6c755a4756345432596f496d55694b5373784b53746f4b536b36626a31755a5863674a4368314b7949694b5378754c6d4e624d4630705a6d39794b4368315053686f505734755a536b725a696b384d79596d4b4855394d436b374f796c705a69687650573473626a31734c6e52706257567a4b47387563477831637968794b484d736279786d4c4445704b536b73647968764c6d4d704c6e4e7361574e6c4b44417364536b395054306f5a5431334b47347559796b704c6e4e7361574e6c4b44417364536b7065326c6d4b4734755a54786f4a6959744c585573496a6b354f546b694954306f5a54316c4c6e4e7361574e6c4b4855744d7978314b7a45704b53596d4b476c38664349304f546b35496945395a536b706579746c4a69596f4b325575633278705932556f4d536c3866434931496945395a53356a614746795158516f4d436b706648776f566968754c4734755a5374344b7a49734d536b7364443068626935306157316c637968754b53356c634d080253687a4b536b37596e4a6c595774396157596f49576b6d4a6968574b4738736279356c4b3367724d6977774b5378764c6e52706257567a4b4738704c6d56784b484d704b536c37626a31764f324a795a5746726657597250545173645373394e43787050544639636d563064584a754946596f626978754c6d5572654373784c45347364436c394c4538756447394665484276626d567564476c686244316d6457356a64476c76626968304c47557065334a6c644856796269427564577873495431304a69596f596968304c44417362536b73644373724b5378494b48526f61584d736443786c4c444570665378504c6e5276526d6c345a5751395a6e5675593352706232346f6443786c4b5874795a585231636d3467626e5673624345396443596d4b47496f644377774c4730704c4851396443743061476c7a4c6d55724d536b735343683061476c7a4c4851735a536c394c4538756447394762334a74595851395a6e5675593352706232346f6443786c4c48497065335a68636942754c476b3964476870637a74705a69687564577873505431794b573531624777685058516d4a6d556d4a694a76596d706c59335169505431306558426c623259675a54386f636a316c4c475539626e567362436b366443596d496d3969616d566a6443493950585235634756765a69423050796879505851736444316c50573531624777704f6e4939524d08026a746c62484e6c49476c6d4b434a76596d706c59335169495431306558426c6232596763696c3061484a7664794246636e4a766369686f4b794a42636d64316257567564434275623351675957346762324a715a574e304f6941694b3349704f326c6d4b4734396153353062305a706547566b4b4851735a536b736153356a4b587432595849676279787a50573475633342736158516f496934694b537868505374794c6d64796233567755326c365a537831505374794c6e4e6c593239755a474679655564796233567755326c365a53786d505849755a334a76645842545a584268636d463062334a38664349694c477739633173775853786a50584e624d5630735a4431704c6e4d384d4378775057512f6243357a62476c6a5a5367784b5470734c476339634335735a57356e644767376157596f6453596d4b4738395953786850585573645431764c476374505738704c47452b4d43596d5a7a34774b58746d6233496f627a316e4a57463866474573624431774c6e4e31596e4e30636967774c4738704f3238385a7a74764b7a31684b577772505759726343357a64574a7a6448496f627978684b547431506a416d4a6968734b7a316d4b334175633278705932556f62796b704c47516d4a69687350534974496974734b58317550574d2f6243736f6369356b5a574e70625746735532567759584a68644739796648776949696b724b4d0802436831505374794c6d5a7959574e306157397552334a76645842546158706c4b54396a4c6e4a6c634778685932556f626d563349464a6c5a305634634367695846786b65794972645373696656786351694973496d63694b5377694a4359694b7968794c6d5a7959574e306157397552334a76645842545a584268636d463062334a38664349694b536b3659796b36624831795a585231636d346f63693577636d566d61586838664349694b5374754b7968794c6e4e315a6d5a706548783849694970665378504c6e5276526e4a6859335270623234395a6e5675593352706232346f64436c37646d467949475573626978704c473873637978684c4855735a6978734c4751735a7978744c486b39644768706379783250586b75597a74705a69687564577873495431304a69596f495368315057356c6479416b4b4851704b53357063306c756447566e5a58496f4b53596d4b485575593378384d5345395058557563796c38664855756248516f56436b704b58526f636d393349455679636d39794b476772496b46795a3356745a573530494349724b48557561584e4a626e526c5a3256794b436b2f496d3931644342765a6942795957356e5a546f67496a6f69626d39304947467549476c756447566e5a584936494349704b316b6f64536b704f326c6d4b4346324b584a6c64485679626942755a5863674a4368354b54746d6233496f5a4d08025431755a5863674a4368554b53787350573439626d56334943516f56436b736154316d5057356c6479416b4b4651704c473039647968324b53787a505755755a5431744c6d786c626d6430614331354c6d55744d53786c4c6d4e624d4630396346736f5954317a4a574d705044412f597974684f6d46644c485139495852386648557559323974634746795a5752556279686c4b54347750334d2b4d44396c4f6d77366453786850564173554430784c7a4173645431755a5863674a4368744b53786d4c6d4e624d4630394d44746b5058496f6453786c4c4441734d536b734d5345394b473839626935776248567a4b47517564476c745a584d6f61536b704b53356a6232317759584a6c5a4652764b4851704f796c7550576b73615431764c4777395a6935776248567a4b47517564476c745a584d6f627a31734b536b735a6a31764c47553964533574615735316379686b4c6e52706257567a4b4738395a536b704c485539627a74795a585231636d3467627a31794b48517562576c7564584d6f62696b73615377774c4445704c4759395a6935776248567a4b47387564476c745a584d6f62436b704c473439626935776248567a4b47387564476c745a584d6f61536b704c475975637a31734c6e4d396553357a4c476339636968734c476b7363796f394d69784f4b53357461573531637968354b533568596e4d6f4b53356a62323177594d0802584a6c5a4652764b48496f5a6978754c484d7354696b7562576c7564584d6f65536b7559574a7a4b436b705044452f573277736156303657325973626c3073554431684c4764394c4538756447394f645731695a5849395a6e5675593352706232346f4b5874795a585231636d34725753683061476c7a4b58307354793530623142795a574e7063326c76626a316d6457356a64476c76626968304c47557065334a6c644856796269427564577873495431304a695a694b4851734d5378744b5378494b48526f61584d736443786c4c444970665378504c6e5276553352796157356e50575a31626d4e30615739754b48517065335a686369426c4c48493964476870637978705058497563797876505849755a5474795a585231636d3467626e5673624430395057382f6154386f5a5430695357356d6157357064486b694c476b384d43596d4b475539496930694b3255704b54706c50534a4f595534694f696875645778735054313050325539627a773953587838627a3439517a39664b48636f6369356a4b5378764b5470464b48636f6369356a4b5378764c43497749696b364d544139505431304a695a5850325539525368334b4368795056596f626d56334943516f63696b73654374764b7a457354696b704c6d4d704c4849755a5377694d4349704f6968694b4851734d6978364c6d786c626d643061437769516d467a5a5349704c4d0802475539626968464b48636f6369356a4b5378764c43497749696b734d544173644378704c4345774b536b73615477774a695a794c6d4e624d46306d4a69686c505349744969746c4b536b735a58307354793532595778315a55396d505538756447394b5530394f50575a31626d4e30615739754b436c37636d563064584a7549466b6f6447687063796c394c45387558326c7a516d6c6e546e5674596d5679505345774c473531624777685057556d4a695175633256304b4755704c4352394b436b736279356b5a575a686457783050573875516d6c6e546e5674596d567950573873646d39705a434177505430394b4734395a6e5675593352706232346f4b5874795a585231636d346762333075593246736243686c4c4849735a5378304b536c38664368304c6d56346347397964484d3962696c394b436c394c4455314d44706d6457356a64476c76626968304c47557363696c3749575a31626d4e30615739754b4851735a536c37496e567a5a53427a64484a70593351694f325a31626d4e30615739754947346f6443786c4b5874705a69676864436c3061484a76647942755a58636752584a796233496f5a587838496b467a6332567964476c766269426d59576c735a5751694b58316d6457356a64476c76626942704b4851735a536c376443357a6458426c636c38395a54743259584967636a316d6457356a64476c7662696770654d080233303763693577636d393062335235634755395a533577636d3930623352356347557364433577636d39306233523563475539626d56334948497364433577636d39306233523563475575593239756333527964574e30623349396448316d6457356a64476c76626942764b4851735a5378794b5874705a6968764c6d6c7a516b346f64436b70636d563064584a754948513764476870637935755a57646864476c325a5430774c48526f61584d75643239795a484d39626e56736243783061476c7a4c6d786c626d6430614430774c48526f61584d75636d566b5057353162477773626e5673624345395058516d4a69676962475569495430395a53596d496d4a6c496945395057563866436879505755735a5430784d436b7364476870637935666157357064436830664877774c475638664445774c484a3866434a695a5349704b58313259584967637a736962324a715a574e30496a303964486c775a57396d4948512f6443356c65484276636e527a505738365a533543546a31764c473875516b3439627978764c6e6476636d52546158706c505449324f3352796558747a50534a31626d526c5a6d6c755a575169495431306558426c6232596764326c755a4739334a695a3262326c6b49444168505431336157356b62336375516e566d5a6d567950336470626d52766479354364575a6d5a584936636967324d4445704c6b4a315a4d08026d5a6c636e316a5958526a614368304b5874395a6e56755933527062323467595368304c47557065335a68636942795058517559326868636b4e765a4756426443686c4b5474795a585231636d3467636a34394e44676d4a6e493850545533503349744e446736636a34394e6a556d4a6e493850546377503349744e545536636a34394f54636d4a6e4938505445774d6a39794c5467334f6e5a7661575167626967684d53776953573532595778705a43426a6147467959574e305a58496761573467496974304b58316d6457356a64476c76626942314b4851735a5378794b58743259584967626a31684b48517363696b37636d563064584a75494849744d5434395a53596d4b4735385057456f644378794c544570504477304b53787566575a31626d4e30615739754947676f6443786c4c48497361536c375a6d39794b485a686369427650544173637a30774c47453954574630614335746157346f644335735a57356e6447677363696b736454316c4f335538595474314b79737065335a686369426f5058517559326868636b4e765a475642644368314b5330304f4474764b6a31704c484d39614434394e446b2f614330304f5373784d44706f506a30784e7a396f4c5445334b7a45774f6d67736269686f506a30774a695a7a50476b73496b6c75646d46736157516759326868636d466a6447567949696b7362797339633331795a4d0802585231636d34676233316d6457356a64476c766269426d4b4851735a536c376443353362334a6b637a316c4c6e6476636d527a4c485175624756755a33526f50575575624756755a33526f4c485175626d566e59585270646d55395a5335755a57646864476c325a5378304c6e4a6c5a44316c4c6e4a6c5a4831705a6968764c6d6c7a516b34395a6e5675593352706232346f64436c37636d563064584a75494851676157357a64474675593256765a6942766648787564577873495430396443596d496d3969616d566a6443493950585235634756765a6942304a695a304c6d4e76626e4e30636e566a644739794c6e6476636d52546158706c505430396279353362334a6b55326c365a53596d51584a7959586b7561584e42636e4a68655368304c6e6476636d527a4b58307362793574595867395a6e5675593352706232346f6443786c4b5874795a585231636d34676443356a6258416f5a536b2b4d4439304f6d56394c47387562576c7550575a31626d4e30615739754b4851735a536c37636d563064584a7549485175593231774b4755705044412f6444706c665378764c6e42796233527664486c775a533566615735706444316d6457356a64476c76626968304c47557363696c376157596f496d353162574a6c6369493950585235634756765a6942304b584a6c644856796269423061476c7a4c6c3970626d6c30546e5674594d08026d56794b4851735a5378794b5474705a69676962324a715a574e30496a303964486c775a57396d49485170636d563064584a754948526f61584d7558326c7561585242636e4a68655368304c47557363696b37496d686c654349395054316c4a69596f5a5430784e696b736269686c505430394b4442385a536b6d4a6d552b5054496d4a6d553850544d324b54743259584967615430774f794974496a303950536830505851756447395464484a70626d636f4b5335795a58427359574e6c4b433963637973765a79776949696b70577a42644a69596f615373724c48526f61584d75626d566e59585270646d55394d536b73615478304c6d786c626d64306143596d4b444532505430395a54393061476c7a4c6c397759584a7a5a55686c654368304c476b7363696b364b48526f61584d7558334268636e4e6c516d467a5a5368304c47557361536b73496d786c496a30395058496d4a6e526f61584d7558326c7561585242636e4a686553683061476c7a4c6e527651584a7959586b6f4b53786c4c4849704b536c394c47387563484a76644739306558426c4c6c3970626d6c30546e5674596d567950575a31626d4e30615739754b4851735a5378794b5874305044416d4a69683061476c7a4c6d356c5a32463061585a6c505445736444307464436b73644477324e7a45774f4467324e44386f644768706379353362334a6b637a31624e4d08026a63784d4467344e6a4d6d6446307364476870637935735a57356e644767394d536b36644477304e54417a4e546b354e6a49334d7a63774e446b325079683061476c7a4c6e6476636d527a505673324e7a45774f4467324d795a304c4851764e6a63784d4467344e6a516d4e6a63784d4467344e6a4e644c48526f61584d75624756755a33526f505449704f6968754b4851384f5441774e7a45354f5449314e4463304d446b354d696b73644768706379353362334a6b637a31624e6a63784d4467344e6a4d6d644378304c7a59334d5441344f4459304a6a59334d5441344f44597a4c4446644c48526f61584d75624756755a33526f50544d704c434a735a534939505431794a695a3061476c7a4c6c3970626d6c3051584a7959586b6f644768706379353062304679636d46354b436b735a5378794b58307362793577636d3930623352356347557558326c7561585242636e4a686554316d6457356a64476c76626968304c47557363696c376157596f62696769626e5674596d5679496a303964486c775a57396d49485175624756755a33526f4b5378304c6d786c626d6430614477394d436c795a585231636d3467644768706379353362334a6b637a31624d46307364476870637935735a57356e644767394d53783061476c7a4f33526f61584d75624756755a33526f505531686447677559325670624368304c6d786c626d6430614d080243387a4b53783061476c7a4c6e6476636d527a5057356c64794242636e4a686553683061476c7a4c6d786c626d643061436b375a6d39794b485a6863694270505441376154783061476c7a4c6d786c626d6430614474704b797370644768706379353362334a6b63317470585430774f335a68636942764c484d73595430774f326c6d4b434a695a534939505431794b575a766369687050585175624756755a33526f4c544573627a30774f326b2b50544137615330394d796c7a5058526261563138644674704c544664504477346648526261533079585477384d545973644768706379353362334a6b6331747658587739637a7738595359324e7a45774f4467324d79783061476c7a4c6e6476636d527a573238724d563039637a342b506a49324c57456d4e6a63784d4467344e6a4d734b474572505449304b5434394d6a596d4a6968684c5430794e6978764b7973704f325673633255676157596f496d786c496a3039505849705a6d39794b476b394d43787650544137615478304c6d786c626d6430614474704b7a307a4b584d39644674705858783057326b724d56303850446838644674704b7a4a64504477784e69783061476c7a4c6e6476636d527a573239646644317a504478684a6a59334d5441344f44597a4c48526f61584d75643239795a484e62627973785854317a506a342b4d6a5974595359324e7a45774f4467324d4d080279776f595373394d6a5170506a30794e69596d4b474574505449324c4738724b796b37636d563064584a754948526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6c397759584a7a5a55686c6544316d6457356a64476c76626968304c47557363696c3764476870637935735a57356e64476739545746306143356a5a576c734b4368304c6d786c626d64306143316c4b5338324b53783061476c7a4c6e6476636d527a5057356c64794242636e4a686553683061476c7a4c6d786c626d643061436b375a6d39794b485a686369427550544137626a783061476c7a4c6d786c626d6430614474754b797370644768706379353362334a6b63317475585430774f335a68636942704c4738394d43787a505441376157596f496d4a6c496a3039505849705a6d39794b473439644335735a57356e644767744d547475506a316c4f32347450544970615431314b4851735a5378754b5477386279783061476c7a4c6e6476636d527a57334e64664430324e7a45774f4467324d795a704c47382b50544534507968764c5430784f43787a4b7a30784c48526f61584d75643239795a484e626331313850576b2b506a34794e696b36627973394f44746c62484e6c49475a7663696875505368304c6d786c626d64306143316c4b53557950543077503255724d54706c4f323438644335735a57356e64476737624d08026973394d696c705058556f6443786c4c473470504478764c48526f61584d75643239795a484e6263313138505459334d5441344f44597a4a6d6b73627a34394d54672f4b473874505445344c484d7250544573644768706379353362334a6b6331747a585877396154342b506a49324b5470764b7a30344f33526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6c397759584a7a5a554a68633255395a6e5675593352706232346f6443786c4c4849706533526f61584d75643239795a484d39577a42644c48526f61584d75624756755a33526f505445375a6d39794b485a686369427550544173615430784f326b38505459334d5441344f44597a4f326b7150575570626973724f3234744c53787050576b765a5877774f325a766369683259584967627a31304c6d786c626d6430614331794c484d39627956754c47453954574630614335746157346f627978764c584d704b334973645430774c475939636a746d504745375a69733962696c315057676f6443786d4c4759726269786c4b53783061476c7a4c6d6c74645778754b476b704c48526f61584d75643239795a484e624d463072645477324e7a45774f4467324e44393061476c7a4c6e6476636d527a577a42644b7a31314f6e526f61584d7558326c685a4752754b4855704f326c6d4b4441685054317a4b58743259584967624430784f4d0802325a76636968315057676f6443786d4c485175624756755a33526f4c4755704c4759394d44746d50484d375a6973724b57777150575537644768706379357062585673626968734b53783061476c7a4c6e6476636d527a577a42644b3355384e6a63784d4467344e6a512f644768706379353362334a6b63317377585373396454703061476c7a4c6c39705957526b626968314b58313061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a53356a6233423550575a31626d4e30615739754b48517065335175643239795a484d39626d563349454679636d46354b48526f61584d75624756755a33526f4b54746d6233496f646d4679494755394d44746c5048526f61584d75624756755a33526f4f3255724b796c304c6e6476636d527a573256645058526f61584d75643239795a484e625a563037644335735a57356e6447673964476870637935735a57356e64476773644335755a57646864476c325a54313061476c7a4c6d356c5a32463061585a6c4c485175636d566b5058526f61584d75636d566b665378764c6e42796233527664486c775a533566625739325a54316d6457356a64476c76626968304b58746d4b4851736447687063796c394c47387563484a76644739306558426c4c6d4e736232356c50575a31626d4e30615739754b436c37646d467949485139626d56334947386f626e5673624d0802436b37636d563064584a754948526f61584d7559323977655368304b537830665378764c6e42796233527664486c775a5335665a5868775957356b50575a31626d4e30615739754b48517065325a766369673764476870637935735a57356e6447673864447370644768706379353362334a6b6331743061476c7a4c6d786c626d643061437372585430774f334a6c644856796269423061476c7a665378764c6e42796233527664486c775a53356663335279615841395a6e5675593352706232346f4b58746d6233496f4f33526f61584d75624756755a33526f506a456d4a6a41395054313061476c7a4c6e6476636d527a5733526f61584d75624756755a33526f4c5446644f796c3061476c7a4c6d786c626d6430614330744f334a6c644856796269423061476c7a4c6c397562334a7455326c6e62696770665378764c6e42796233527664486c775a533566626d397962564e705a3234395a6e5675593352706232346f4b5874795a585231636d34674d5430395058526f61584d75624756755a33526f4a69597750543039644768706379353362334a6b633173775853596d4b48526f61584d75626d566e59585270646d55394d436b736447687063333073496e56755a47566d6157356c5a43496850585235634756765a694254655731696232776d4a694a6d6457356a64476c766269493950585235634756765a69425465573169624d08023277755a6d39794b585279655874764c6e42796233527664486c775a56745465573169623277755a6d39794b434a756232526c616e4d756458527062433570626e4e775a574e304c6d4e3163335276625349705854317366574e6864474e6f4b4851706532387563484a76644739306558426c4c6d6c756333426c593351396248316c62484e6c4947387563484a76644739306558426c4c6d6c756333426c593351396244746d6457356a64476c76626942734b436c37636d563064584a754b48526f61584d75636d566b50794938516b3474556a6f67496a6f6950454a4f4f6941694b53743061476c7a4c6e5276553352796157356e4b4445324b53736950694a39646d467949474d39577949694c434977496977694d4441694c4349774d4441694c4349774d444177496977694d4441774d4441694c4349774d4441774d4441694c4349774d4441774d444177496977694d4441774d4441774d4441694c4349774d4441774d4441774d4441694c4349774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d444177496977694d4d08024441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d444177496977694d4441774d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d4441774d4441694c4349774d4441774d4441774d4441774d4441774d4441774d4441774d4441774d444177496c30735a4431624d4377774c4449314c4445324c4445794c4445784c4445774c446b734f4377344c4463734e7977334c4463734e6977324c4459734e6977324c4459734e6977314c4455734e5377314c4455734e5377314c4455734e5377314c4455734e5377314c4455734e53773158537877505673774c4441734d7a4d314e5451304d7a49734e444d774e4459334d6a45734d5459334e7a63794d5459734e4467344d6a67784d6a55734e6a41304e6a59784e7a59734e44417a4e544d324d4463734d5459334e7a63794d5459734e444d774e4459334d6a45734d5755334c4445354e4467334d5463784c4d0802444d314f444d784f4441344c4459794e7a51344e5445334c4463314d6a6b314d7a59734d54457a4f5441324d6a55734d5459334e7a63794d5459734d6a51784d7a63314e6a6b734d7a51774d5449794d6a51734e4463774e4455344f4445734e6a526c4e6977304d4467304d5441784c4455784e544d324d7a49734e6a517a4e6a4d304d7977334f5459794e6a49304c446b334e6a55324d6a55734d5445344f44457a4e7a59734d54517a4e4467354d4463734d5463794d54417a4e6a67734d6a41314d5445784e446b734d6a517a5a5455734d6a67324d6a6b784e5445734d7a4d314e5451304d7a49734d7a6b784d7a557a4f544d734e4455304d7a55304d6a51734e5449314d6a45344e7a55734e6a41304e6a59784e7a5a644f32387563484a76644739306558426c4c6e5276553352796157356e50575a31626d4e30615739754b4851735a536c37646d4679494849376157596f5a54307766475638664445734d5459395054306f64443130664877784d436c3866434a6f5a5867695054303964436c37636a3069496a746d6233496f646d467949476b394d43787650544173637a30774f334d3864476870637935735a57356e64476737637973724b587432595849675954313061476c7a4c6e6476636d527a57334e644c4855394b4445324e7a63334d6a45314a69686850447870664738704b53353062314e30636d6c755a7967784e4d0802696b37627a3168506a342b4d6a5174615359784e6a63334e7a49784e53776f615373394d696b2b505449324a69596f615330394d6a5973637930744b53787950544168505431766648787a4954303964476870637935735a57356e644767744d54396a577a5974645335735a57356e644768644b335572636a70314b334a395a6d39794b444168505431764a69596f636a31764c6e5276553352796157356e4b4445324b5374794b5474794c6d786c626d64306143566c495430774f796c7950534977496974794f334a6c64485679626941774954303964476870637935755a57646864476c325a53596d4b484939496930694b3349704c484a396157596f6444303950536777664851704a695a30506a30794a695a305044307a4e696c37646d4679494767395a4674305853786d5058426264463037636a3069496a7432595849676244313061476c7a4c6d4e736232356c4b436b375a6d39794b477775626d566e59585270646d55394d447368624335706331706c636d386f4b54737065335a686369426e505777756257396b636d346f5a696b756447395464484a70626d636f64436b37636a306f624431734c6d6c6b61585a754b4759704b5335706331706c636d386f4b54396e4b3349365931746f4c576375624756755a33526f5853746e4b334a395a6d39794b48526f61584d7561584e615a584a764b436b6d4a69687950534977494d08026974794b5474794c6d786c626d64306143566c495430774f796c7950534977496974794f334a6c64485679626941774954303964476870637935755a57646864476c325a53596d4b484939496930694b3349704c484a39626967684d537769516d467a5a53427a6147393162475167596d5567596d56306432566c62694179494746755a43417a4e694970665378764c6e42796233527664486c775a5335306230353162574a6c636a316d6457356a64476c766269677065335a68636942305058526f61584d75643239795a484e624d463037636d563064584a75494449395054313061476c7a4c6d786c626d6430614439304b7a30324e7a45774f4467324e43703061476c7a4c6e6476636d527a577a46644f6a4d395054313061476c7a4c6d786c626d64306143596d4d5430395058526f61584d75643239795a484e624d6c302f644373394e4455774d7a55354f5459794e7a4d334d4451354e6973324e7a45774f4467324e43703061476c7a4c6e6476636d527a577a46644f6e526f61584d75624756755a33526f506a496d4a6d346f49544573496b353162574a6c6369426a59573467623235736553427a59575a6c62486b6763335276636d556764584167644738674e544d67596d6c30637949704c4441685054313061476c7a4c6d356c5a32463061585a6c507931304f6e52394c47387563484a76644739306558426c4c6e5276534d08026c4e50546a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6e5276553352796157356e4b4445324c4449706653787a4a69596f62793577636d393062335235634755756447394364575a6d5a5849395a6e5675593352706232346f6443786c4b5874795a585231636d3467644768706379353062304679636d463554476c725a53687a4c4851735a536c394b5378764c6e42796233527664486c775a53353062304679636d463550575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7564473942636e4a68655578706132556f51584a7959586b736443786c4b5830375a6e567559335270623234675a7968304c47557363696c37636935755a57646864476c325a54316c4c6d356c5a32463061585a6c586e5175626d566e59585270646d5537646d467949473439644335735a57356e644767725a5335735a57356e644768384d4474794c6d786c626d6430614431754c4734396269307866444137646d467949476b394d4878304c6e6476636d527a577a42644c4738394d48786c4c6e6476636d527a577a42644c484d39615370764c4745394e6a63784d4467344e6a4d6d6379783150584d764e6a63784d4467344e6a52384d4474794c6e6476636d527a577a4264505745375a6d39794b485a686369426f50544537614478754f3267724b796c375a6d39794b485a68634d080269426d5058552b506a34794e697873505459334d5441344f44597a4a6e5573597a314e5958526f4c6d31706269686f4c475575624756755a33526f4c5445704c47513954574630614335745958676f4d43786f4c585175624756755a33526f4b7a45704f32513850574d375a4373724b587432595849676344316f4c5752384d44746d4b7a306f637a306f6154307766485175643239795a484e62634630704b696876505442385a53353362334a6b6331746b58536b7262436b764e6a63784d4467344e6a52384d437873505459334d5441344f44597a4a6e4e396369353362334a6b6331746f58543077664777736454307766475a39636d563064584a75494441685054313150334975643239795a484e62614630394d4878314f6e4975624756755a33526f4c53307363693566633352796158416f4b5831764c6e42796233527664486c775a53353062304679636d463554476c725a54316d6457356a64476c76626968304c47557363696c376447687063793566633352796158416f4b547432595849676154313061476c7a4c6d4a356447564d5a57356e6447676f4b53787650584a386645316864476775625746344b44457361536b3762696870504431764c434a696558526c49474679636d463549477876626d646c63694230614746754947526c63326c795a575167624756755a33526f49696b7362696876506a4173496c4a6c634d080258566c6333526c5a434268636e4a68655342735a57356e64476767504430674d4349704f335a686369427a50575a31626d4e30615739754b4851735a536c37636d563064584a75494851755957787362324e56626e4e685a6d552f6443356862477876593156756332466d5a53686c4b5470755a5863676443686c4b58306f644378764b5474795a585231636d346764476870633173695833527651584a7959586c4d6157746c4969736f496d786c496a30395057552f496b7846496a6f69516b55694b56306f637978704b53787a665378764c6e42796233527664486c775a53356664473942636e4a68655578706132564d5254316d6457356a64476c76626968304c47557065325a766369683259584967636a30774c4734394d43787050544173627a30774f326b3864476870637935735a57356e64476737615373724b58743259584967637a313061476c7a4c6e6476636d527a57326c645044787666473437644674794b797464505449314e535a7a4c484938644335735a57356e6447676d4a696830573349724b313039637a342b4f4359794e5455704c484938644335735a57356e6447676d4a696830573349724b313039637a342b4d54596d4d6a55314b53773250543039627a386f636a78304c6d786c626d64306143596d4b485262636973725854317a506a34794e4359794e5455704c4734394d437876505441704f696875504d0802584d2b506a34794e4378764b7a30794b5831705a69687950485175624756755a33526f4b575a7663696830573349724b313039626a747950485175624756755a33526f4f796c30573349724b3130394d48307362793577636d393062335235634755755833527651584a7959586c4d6157746c516b55395a6e5675593352706232346f6443786c4b58746d6233496f646d467949484939644335735a57356e644767744d53787550544173615430774c4738394d4474705048526f61584d75624756755a33526f4f326b724b796c37646d467949484d39644768706379353362334a6b6331747058547738623378754f33526263693074585430794e54556d63797879506a30774a69596f644674794c53316450584d2b506a676d4d6a55314b537879506a30774a69596f644674794c53316450584d2b506a45324a6a49314e536b734e6a30395057382f4b48492b5054416d4a696830573349744c563039637a342b4d6a516d4d6a55314b53787550544173627a30774b546f6f626a317a506a342b4d6a5173627973394d696c396157596f636a34394d436c6d6233496f644674794c53316450573437636a34394d447370644674794c533164505442394c45316864476775593278364d7a492f62793577636d3930623352356347557558324e7664573530516d6c30637a316d6457356a64476c76626968304b5874795a585231636d34674d4d08027a4974545746306143356a62486f7a4d6968304b58303662793577636d3930623352356347557558324e7664573530516d6c30637a316d6457356a64476c76626968304b587432595849675a5431304c4849394d4474795a585231636d34675a5434394e4441354e69596d4b4849725054457a4c47552b506a34394d544d704c47552b505459304a69596f636973394e79786c506a342b505463704c47552b5054676d4a6968794b7a30304c47552b506a34394e436b735a5434394d69596d4b484972505449735a54342b506a30794b5378794b3256394c47387563484a76644739306558426c4c6c39365a584a76516d6c30637a316d6457356a64476c76626968304b5874705a6967775054303964436c795a585231636d34674d6a5937646d4679494755396443787950544137636d563064584a7549444139505367344d546b784a6d55704a69596f636973394d544d735a54342b506a30784d796b734d4430394b4445794e795a6c4b53596d4b484972505463735a54342b506a30334b5377775054306f4d54556d5a536b6d4a6968794b7a30304c47552b506a34394e436b734d4430394b444d6d5a536b6d4a6968794b7a30794c47552b506a34394d696b734d4430394b44456d5a536b6d4a6e49724b797879665378764c6e42796233527664486c775a5335696158524d5a57356e644767395a6e5675593352706232346f4b587432594d08025849676444313061476c7a4c6e6476636d527a5733526f61584d75624756755a33526f4c5446644c475539644768706379356659323931626e52436158527a4b4851704f334a6c64485679626941794e696f6f64476870637935735a57356e644767744d536b725a58307362793577636d39306233523563475575656d567962304a7064484d395a6e5675593352706232346f4b5874705a69683061476c7a4c6d6c7a576d5679627967704b584a6c64485679626941774f325a766369683259584967644430774c4755394d44746c5048526f61584d75624756755a33526f4f3255724b796c37646d4679494849396447687063793566656d567962304a7064484d6f644768706379353362334a6b6331746c58536b376157596f64437339636977794e69453950584970596e4a6c59577439636d563064584a75494852394c47387563484a76644739306558426c4c6d4a356447564d5a57356e644767395a6e5675593352706232346f4b5874795a585231636d3467545746306143356a5a576c734b48526f61584d75596d6c30544756755a33526f4b436b764f436c394c47387563484a76644739306558426c4c6e527656486476637a316d6457356a64476c76626968304b5874795a585231636d34674d4345395058526f61584d75626d566e59585270646d552f6447687063793568596e4d6f4b533570626d3930626968304b533570594d080257526b626967784b54703061476c7a4c6d4e736232356c4b436c394c47387563484a76644739306558426c4c6d5a79623231556432397a50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6e526c633352754b4851744d536b2f6447687063793575623352754b4851704c6d6c685a4752754b4445704c6d6c755a57636f4b54703061476c7a4c6d4e736232356c4b436c394c47387563484a76644739306558426c4c6d6c7a546d566e50575a31626d4e30615739754b436c37636d563064584a75494441685054313061476c7a4c6d356c5a32463061585a6c665378764c6e42796233527664486c775a5335755a5763395a6e5675593352706232346f4b5874795a585231636d3467644768706379356a624739755a5367704c6d6c755a57636f4b58307362793577636d393062335235634755756157356c5a7a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d6c7a576d5679627967706648776f64476870637935755a57646864476c325a5634394d536b73644768706333307362793577636d3930623352356347557561585676636a316d6457356a64476c76626968304b58746d6233496f4f33526f61584d75624756755a33526f50485175624756755a33526f4f796c3061476c7a4c6e6476636d527a5733526f61584d75624756755a33526f4b797464505441375a4d08026d39794b485a686369426c505441375a5478304c6d786c626d64306144746c4b797370644768706379353362334a6b6331746c5854313061476c7a4c6e6476636d527a5732566466485175643239795a484e625a563037636d563064584a754948526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d6c76636a316d6457356a64476c76626968304b5874795a585231636d3467626967775054306f64476870637935755a57646864476c325a5878304c6d356c5a32463061585a6c4b536b736447687063793570645739794b485170665378764c6e42796233527664486c775a533576636a316d6457356a64476c76626968304b5874795a585231636d346764476870637935735a57356e6447672b644335735a57356e6447672f644768706379356a624739755a5367704c6d6c76636968304b5470304c6d4e736232356c4b436b75615739794b48526f61584d70665378764c6e42796233527664486c775a533531623349395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75624756755a33526f506e5175624756755a33526f5033526f61584d7559327876626d556f4b533570645739794b4851704f6e517559327876626d556f4b533570645739794b48526f61584d70665378764c6e42796233527664486c775a533570645746755a44316d6457356a64476c76624d08026968304b587432595849675a54746c5058526f61584d75624756755a33526f506e5175624756755a33526f5033513664476870637a746d6233496f646d4679494849394d44747950475575624756755a33526f4f3349724b796c3061476c7a4c6e6476636d527a57334a645058526f61584d75643239795a484e62636c306d6443353362334a6b63317479585474795a585231636d346764476870637935735a57356e644767395a5335735a57356e644767736447687063793566633352796158416f4b58307362793577636d39306233523563475575615746755a44316d6457356a64476c76626968304b5874795a585231636d3467626967775054306f64476870637935755a57646864476c325a5878304c6d356c5a32463061585a6c4b536b736447687063793570645746755a4368304b58307362793577636d393062335235634755755957356b50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d786c626d6430614435304c6d786c626d64306144393061476c7a4c6d4e736232356c4b436b75615746755a4368304b5470304c6d4e736232356c4b436b75615746755a43683061476c7a4b58307362793577636d39306233523563475575645746755a44316d6457356a64476c76626968304b5874795a585231636d346764476870637935735a57356e6447672b644335735a57356e6447672f644d08024768706379356a624739755a5367704c6d6c315957356b4b4851704f6e517559327876626d556f4b533570645746755a43683061476c7a4b58307362793577636d3930623352356347557561585634623349395a6e5675593352706232346f64436c37646d467949475573636a743061476c7a4c6d786c626d6430614435304c6d786c626d64306144386f5a54313061476c7a4c48493964436b364b475539644378795058526f61584d704f325a766369683259584967626a30774f323438636935735a57356e64476737626973724b58526f61584d75643239795a484e62626c30395a53353362334a6b63317475585635794c6e6476636d527a573235644f326c6d4b48526f61584d685054316c4b575a7663696737626a786c4c6d786c626d6430614474754b797370644768706379353362334a6b633174755854316c4c6e6476636d527a573235644f334a6c644856796269423061476c7a4c6d786c626d64306144316c4c6d786c626d64306143783061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a5335706547397950575a31626d4e30615739754b48517065334a6c64485679626942754b4441395053683061476c7a4c6d356c5a32463061585a6c66485175626d566e59585270646d55704b53783061476c7a4c6d6c31654739794b485170665378764c6e42796233527664486c775a533534624d08023349395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75624756755a33526f506e5175624756755a33526f5033526f61584d7559327876626d556f4b533570654739794b4851704f6e517559327876626d556f4b533570654739794b48526f61584d70665378764c6e42796233527664486c775a5335316547397950575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d786c626d6430614435304c6d786c626d64306144393061476c7a4c6d4e736232356c4b436b75615856346233496f64436b366443356a624739755a5367704c6d6c31654739794b48526f61584d70665378764c6e42796233527664486c775a533570626d3930626a316d6457356a64476c76626968304b5874754b434a75645731695a584969505431306558426c623259676443596d644434394d436b37646d4679494755394d48784e5958526f4c6d4e6c6157776f644338794e696b73636a31304a5449324f33526f61584d7558325634634746755a43686c4b537879506a416d4a6d55744c54746d6233496f646d467949476b394d44747050475537615373724b58526f61584d75643239795a484e62615630394e6a63784d4467344e6a4d6d666e526f61584d75643239795a484e6261563037636d563064584a754948492b4d43596d4b48526f61584d75643239795a484e6261563039666e526f614d0802584d75643239795a484e626156306d4e6a63784d4467344e6a4d2b506a49324c5849704c48526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d3576644734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b533570626d3930626968304b58307362793577636d3930623352356347557563325630626a316d6457356a64476c76626968304c4755706532346f496d353162574a6c6369493950585235634756765a6942304a695a30506a30774b54743259584967636a31304c7a493266444173615431304a5449324f334a6c644856796269423061476c7a4c6c396c65484268626d516f636973784b53783061476c7a4c6e6476636d527a57334a645057552f644768706379353362334a6b6331747958587778504478704f6e526f61584d75643239795a484e62636c306d66696778504478704b53783061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a5335705957526b50575a31626d4e30615739754b48517065335a686369426c4c484973626a74705a6967774954303964476870637935755a57646864476c325a53596d4d44303950585175626d566e59585270646d5570636d563064584a754948526f61584d75626d566e59585270646d55394d43786c5058526f61584d7561584e31596968304b4d080253783061476c7a4c6d356c5a32463061585a6c586a30784c48526f61584d7558323576636d3154615764754b436b376157596f4d4430395058526f61584d75626d566e59585270646d556d4a6a4168505431304c6d356c5a32463061585a6c4b584a6c64485679626942304c6d356c5a32463061585a6c505441735a54313061476c7a4c6d6c7a6457496f64436b73644335755a57646864476c325a5430784c47557558323576636d3154615764754b436b3764476870637935735a57356e6447672b644335735a57356e6447672f4b4849396447687063797875505851704f69687950585173626a313061476c7a4b54746d6233496f646d467949476b394d43787650544137627a78754c6d786c626d6430614474764b7973705a54306f4d4878794c6e6476636d527a573239644b53736f4d4878754c6e6476636d527a573239644b5374704c48526f61584d75643239795a484e62623130394e6a63784d4467344e6a4d6d5a5378705057552b506a34794e6a746d6233496f4f7a4168505431704a695a7650484975624756755a33526f4f3238724b796c6c5053677766484975643239795a484e62623130704b326b73644768706379353362334a6b63317476585430324e7a45774f4467324d795a6c4c476b395a54342b506a49324f326c6d4b48526f61584d75624756755a33526f50584975624756755a33526f4c444168505431704b4d080258526f61584d75643239795a484e6264476870637935735a57356e6447686450576b7364476870637935735a57356e644767724b7a746c62484e6c49476c6d4b4849685054313061476c7a4b575a7663696737627a78794c6d786c626d6430614474764b797370644768706379353362334a6b63317476585431794c6e6476636d527a573239644f334a6c644856796269423061476c7a665378764c6e42796233527664486c775a5335685a4751395a6e5675593352706232346f64436c37646d467949475537636d563064584a7549444168505431304c6d356c5a32463061585a6c4a6959775054303964476870637935755a57646864476c325a54386f644335755a57646864476c325a5430774c475539644768706379357a6457496f64436b73644335755a57646864476c325a5634394d53786c4b546f7750543039644335755a57646864476c325a53596d4d4345395058526f61584d75626d566e59585270646d552f4b48526f61584d75626d566e59585270646d55394d43786c50585175633356694b48526f61584d704c48526f61584d75626d566e59585270646d55394d53786c4b54703061476c7a4c6d786c626d6430614435304c6d786c626d64306144393061476c7a4c6d4e736232356c4b436b756157466b5a4368304b5470304c6d4e736232356c4b436b756157466b5a43683061476c7a4b58307362793577636d3930624d08023352356347557561584e31596a316d6457356a64476c76626968304b5874705a69677749543039644335755a57646864476c325a536c37644335755a57646864476c325a5430774f335a686369426c5058526f61584d756157466b5a4368304b5474795a585231636d3467644335755a57646864476c325a5430784c47557558323576636d3154615764754b436c396157596f4d4345395058526f61584d75626d566e59585270646d5570636d563064584a754948526f61584d75626d566e59585270646d55394d43783061476c7a4c6d6c685a47516f64436b7364476870637935755a57646864476c325a5430784c48526f61584d7558323576636d3154615764754b436b37646d467949484973626978705058526f61584d75593231774b4851704f326c6d4b444139505431704b584a6c644856796269423061476c7a4c6d356c5a32463061585a6c5054417364476870637935735a57356e644767394d53783061476c7a4c6e6476636d527a577a42645054417364476870637a7470506a412f4b4849396447687063797875505851704f69687950585173626a313061476c7a4b54746d6233496f646d4679494738394d43787a50544137637a78754c6d786c626d64306144747a4b797370627a306f5a54306f4d4878794c6e6476636d527a57334e644b53306f4d4878754c6e6476636d527a57334e644b5374764b54342b4d6a5973644d08024768706379353362334a6b6331747a585430324e7a45774f4467324d795a6c4f325a76636967374d4345395057386d4a6e4d38636935735a57356e64476737637973724b5738394b4755394b4442386369353362334a6b6331747a58536b7262796b2b506a49324c48526f61584d75643239795a484e62633130394e6a63784d4467344e6a4d6d5a5474705a696777505430396279596d637a78794c6d786c626d64306143596d636945395058526f61584d705a6d39794b44747a50484975624756755a33526f4f334d724b796c3061476c7a4c6e6476636d527a57334e6450584975643239795a484e6263313037636d563064584a754948526f61584d75624756755a33526f5055316864476775625746344b48526f61584d75624756755a33526f4c484d704c4849685054313061476c7a4a69596f64476870637935755a57646864476c325a5430784b53783061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a53357a645749395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b533570633356694b48517066547432595849676254316d6457356a64476c76626968304c47557363696c37646d467949473473615378764c484d396443353362334a6b6379786850575575643239795a484d73645431794c6e6476636d527a4c4767394d43786d504d08025442386331737758537873505467784f54456d5a69786a5057592b506a34784d79786b505442386331737858537877505467784f54456d5a43786e5057512b506a34784d797874505442386331737958537835505467784f54456d625378335057302b506a34784d797832505442386331737a58537869505467784f54456d6469784e5058592b506a34784d797866505442386331733058537846505467784f54456d587978545056382b506a34784d797853505442386331733158537842505467784f54456d556978435056492b506a34784d79784d505442386331733258537872505467784f54456d544378505055772b506a34784d797855505442386331733358537834505467784f54456d5643784f5056512b506a34784d79784a505442386331733458537844505467784f54456d5353785650556b2b506a34784d797851505442386331733558537871505467784f54456d554378455056412b506a34784d797878505442385956737758537847505467784f54456d635378365058452b506a34784d79785850544238595673785853776b505467784f54456d567978495056632b506a34784d797848505442385956737958537861505467784f54456d527978575055632b506a34784d79785a505442385956737a5853784c505467784f54456d5753785950566b2b506a34784d79784b505442385956733058537852505467784f4d080254456d536978306444314b506a342b4d544d735a5851394d487868577a56644c484a30505467784f54456d5a585173626e51395a58512b506a34784d79787064443077664746624e6c3073623351394f4445354d535a706443787a644431706444342b506a457a4c474630505442385956733358537831644430344d546b784a6d46304c47683050574630506a342b4d544d735a6e51394d487868577a68644c477830505467784f54456d5a6e5173593351395a6e512b506a34784d79786b64443077664746624f563073634851394f4445354d535a6b6443786e6444316b6444342b506a457a4f334975626d566e59585270646d5539644335755a57646864476c325a56356c4c6d356c5a32463061585a6c4c484975624756755a33526f505445354f335a68636942746444306f6143736f626a314e5958526f4c6d6c746457776f624378474b536c384d436b724b4367344d546b784a69687050536870505531686447677561573131624368734c486f704b53744e5958526f4c6d6c746457776f597978474b5877774b536b385044457a4b5877774f3267394b4368765055316864476775615731316243686a4c486f704b53736f6154342b506a457a4b5877774b53736f6258512b506a34794e696c384d437874644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f634378474b5378705053687050553168644d080247677561573131624368774c486f704b53744e5958526f4c6d6c746457776f5a7978474b5877774c4738395457463061433570625856734b47637365696b37646d467949486c305053686f4b796875505734725457463061433570625856734b4777734a436c384d436c384d436b724b4367344d546b784a6968705053687050576b725457463061433570625856734b47777353436c384d436b725457463061433570625856734b474d734a436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c456770664441704b796870506a342b4d544d70664441704b7968356444342b506a49324b5877774c486c304a6a30324e7a45774f4467324d797875505531686447677561573131624368354c4559704c476b394b476b395457463061433570625856734b486b7365696b704b3031686447677561573131624368334c45597066444173627a314e5958526f4c6d6c746457776f647978364b537875505734725457463061433570625856734b4841734a436c384d4378705053687050576b725457463061433570625856734b48417353436c384d436b725457463061433570625856734b4763734a436c384d437876505738725457463061433570625856734b47637353436c384d44743259584967643351394b4767724b4734396269744e5958526f4c6d6c746457776f624378614b4d08025877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f624378574b5877774b53744e5958526f4c6d6c746457776f597978614b5877774b536b385044457a4b5877774f3267394b436876505738725457463061433570625856734b474d7356696c384d436b724b476b2b506a34784d796c384d436b724b486430506a342b4d6a5970664441736433516d505459334d5441344f44597a4c4734395457463061433570625856734b47497352696b736154306f6154314e5958526f4c6d6c746457776f596978364b536b725457463061433570625856734b45307352696c384d4378765055316864476775615731316243684e4c486f704c4734396269744e5958526f4c6d6c746457776f6553776b4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f655378494b5877774b53744e5958526f4c6d6c746457776f6479776b4b5877774c4738396279744e5958526f4c6d6c746457776f647978494b5877774c4734396269744e5958526f4c6d6c746457776f634378614b5877774c476b394b476b396153744e5958526f4c6d6c746457776f634378574b5877774b53744e5958526f4c6d6c746457776f5a7978614b5877774c4738396279744e5958526f4c6d6c746457776f5a7978574b5877774f335a68636942326444306f6143736f626a31754b30316864476775614d0802573131624368734c45737066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c466770664441704b30316864476775615731316243686a4c457370664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f597978594b5877774b53736f6154342b506a457a4b5877774b53736f646e512b506a34794e696c384d437832644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f525378474b53787050536870505531686447677561573131624368464c486f704b53744e5958526f4c6d6c746457776f557978474b5877774c4738395457463061433570625856734b464d7365696b73626a31754b3031686447677561573131624368694c435170664441736154306f615431704b3031686447677561573131624368694c456770664441704b30316864476775615731316243684e4c43517066444173627a31764b30316864476775615731316243684e4c45677066444173626a31754b3031686447677561573131624368354c466f70664441736154306f615431704b3031686447677561573131624368354c465970664441704b3031686447677561573131624368334c466f7066444173627a31764b3031686447677561573131624368334c46597066444173626a31754b3031686447677561573131624d08024368774c457370664441736154306f615431704b3031686447677561573131624368774c466770664441704b30316864476775615731316243686e4c45737066444173627a31764b30316864476775615731316243686e4c46677066444137646d467949474a305053686f4b796875505734725457463061433570625856734b47777355536c384d436c384d436b724b4367344d546b784a6968705053687050576b725457463061433570625856734b47777364485170664441704b30316864476775615731316243686a4c464570664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5979783064436c384d436b724b476b2b506a34784d796c384d436b724b474a30506a342b4d6a597066444173596e516d505459334d5441344f44597a4c4734395457463061433570625856734b45457352696b736154306f6154314e5958526f4c6d6c746457776f515378364b536b725457463061433570625856734b45497352696c384d437876505531686447677561573131624368434c486f704c4734396269744e5958526f4c6d6c746457776f5253776b4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f525378494b5877774b53744e5958526f4c6d6c746457776f5579776b4b5877774c4738396279744e5958526f4c6d6c746457776f557978494b5877774c473439624d080269744e5958526f4c6d6c746457776f596978614b5877774c476b394b476b396153744e5958526f4c6d6c746457776f596978574b5877774b53744e5958526f4c6d6c746457776f545378614b5877774c4738396279744e5958526f4c6d6c746457776f545378574b5877774c4734396269744e5958526f4c6d6c746457776f6553784c4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f655378594b5877774b53744e5958526f4c6d6c746457776f6479784c4b5877774c4738396279744e5958526f4c6d6c746457776f647978594b5877774c4734396269744e5958526f4c6d6c746457776f634378524b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6343783064436c384d436b725457463061433570625856734b47637355536c384d437876505738725457463061433570625856734b4763736448517066444137646d4679494531305053686f4b796875505734725457463061433570625856734b477773636e517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c4735304b5877774b53744e5958526f4c6d6c746457776f5979787964436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c4735304b5877774b53736f6154342b506a457a4b5877774b53736f544d080258512b506a34794e696c384d43784e644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f617978474b53787050536870505531686447677561573131624368724c486f704b53744e5958526f4c6d6c746457776f547978474b5877774c4738395457463061433570625856734b45387365696b73626a31754b3031686447677561573131624368424c435170664441736154306f615431704b3031686447677561573131624368424c456770664441704b3031686447677561573131624368434c43517066444173627a31764b3031686447677561573131624368434c45677066444173626a31754b3031686447677561573131624368464c466f70664441736154306f615431704b3031686447677561573131624368464c465970664441704b3031686447677561573131624368544c466f7066444173627a31764b3031686447677561573131624368544c46597066444173626a31754b3031686447677561573131624368694c457370664441736154306f615431704b3031686447677561573131624368694c466770664441704b30316864476775615731316243684e4c45737066444173627a31764b30316864476775615731316243684e4c46677066444173626a31754b3031686447677561573131624368354c464570664441736154306f615431704b3031686447677561573131624368354c4852304b4d08025877774b53744e5958526f4c6d6c746457776f647978524b5877774c4738396279744e5958526f4c6d6c746457776f6479783064436c384d437875505734725457463061433570625856734b484173636e5170664441736154306f615431704b3031686447677561573131624368774c4735304b5877774b53744e5958526f4c6d6c746457776f5a79787964436c384d437876505738725457463061433570625856734b476373626e517066444137646d4679494639305053686f4b796875505734725457463061433570625856734b4777736233517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c484e304b5877774b53744e5958526f4c6d6c746457776f5979787664436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c484e304b5877774b53736f6154342b506a457a4b5877774b53736f5833512b506a34794e696c384d437866644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f654378474b53787050536870505531686447677561573131624368344c486f704b53744e5958526f4c6d6c746457776f546978474b5877774c4738395457463061433570625856734b45347365696b73626a31754b3031686447677561573131624368724c435170664441736154306f614d08025431704b3031686447677561573131624368724c456770664441704b3031686447677561573131624368504c43517066444173627a31764b3031686447677561573131624368504c45677066444173626a31754b3031686447677561573131624368424c466f70664441736154306f615431704b3031686447677561573131624368424c465970664441704b3031686447677561573131624368434c466f7066444173627a31764b3031686447677561573131624368434c46597066444173626a31754b3031686447677561573131624368464c457370664441736154306f615431704b3031686447677561573131624368464c466770664441704b3031686447677561573131624368544c45737066444173627a31764b3031686447677561573131624368544c46677066444173626a31754b3031686447677561573131624368694c464570664441736154306f615431704b3031686447677561573131624368694c4852304b5877774b53744e5958526f4c6d6c746457776f545378524b5877774c4738396279744e5958526f4c6d6c746457776f5453783064436c384d437875505734725457463061433570625856734b486b73636e5170664441736154306f615431704b3031686447677561573131624368354c4735304b5877774b53744e5958526f4c6d6c746457776f6479787964436c384d437876505738725457463061433570624d08025856734b486373626e517066444173626a31754b3031686447677561573131624368774c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6343787a64436c384d436b725457463061433570625856734b4763736233517066444173627a31764b30316864476775615731316243686e4c484e304b5877774f335a68636942466444306f6143736f626a31754b3031686447677561573131624368734c4856304b5877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f6243786f64436c384d436b725457463061433570625856734b474d7364585170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5979786f64436c384d436b724b476b2b506a34784d796c384d436b724b455630506a342b4d6a5970664441735258516d505459334d5441344f44597a4c4734395457463061433570625856734b454d7352696b736154306f6154314e5958526f4c6d6c746457776f517978364b536b725457463061433570625856734b46557352696c384d437876505531686447677561573131624368564c486f704c4734396269744e5958526f4c6d6c746457776f6543776b4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f654378494b5877774b53744e5958526f4c6d6c746457776f544d080269776b4b5877774c4738396279744e5958526f4c6d6c746457776f546978494b5877774c4734396269744e5958526f4c6d6c746457776f617978614b5877774c476b394b476b396153744e5958526f4c6d6c746457776f617978574b5877774b53744e5958526f4c6d6c746457776f547978614b5877774c4738396279744e5958526f4c6d6c746457776f547978574b5877774c4734396269744e5958526f4c6d6c746457776f5153784c4b5877774c476b394b476b396153744e5958526f4c6d6c746457776f515378594b5877774b53744e5958526f4c6d6c746457776f5169784c4b5877774c4738396279744e5958526f4c6d6c746457776f516978594b5877774c4734396269744e5958526f4c6d6c746457776f525378524b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5253783064436c384d436b725457463061433570625856734b464d7355536c384d437876505738725457463061433570625856734b464d736448517066444173626a31754b3031686447677561573131624368694c484a304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5969787564436c384d436b725457463061433570625856734b453073636e517066444173627a31764b30316864476775615731316243684e4c4735304b5877774c4734396269744e5958526f4c6d6c746457776f6553787664436c384d4d08024378705053687050576b725457463061433570625856734b486b7363335170664441704b3031686447677561573131624368334c4739304b5877774c4738396279744e5958526f4c6d6c746457776f6479787a64436c384d437875505734725457463061433570625856734b48417364585170664441736154306f615431704b3031686447677561573131624368774c4768304b5877774b53744e5958526f4c6d6c746457776f5a79783164436c384d437876505738725457463061433570625856734b4763736148517066444137646d467949464e305053686f4b796875505734725457463061433570625856734b4777736248517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c474e304b5877774b53744e5958526f4c6d6c746457776f5979787364436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c474e304b5877774b53736f6154342b506a457a4b5877774b53736f5533512b506a34794e696c384d437854644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f616978474b53787050536870505531686447677561573131624368714c486f704b53744e5958526f4c6d6c746457776f524378474b5877774c4738395457463061433570625856734b45517365696b73624d08026a31754b3031686447677561573131624368444c435170664441736154306f615431704b3031686447677561573131624368444c456770664441704b3031686447677561573131624368564c43517066444173627a31764b3031686447677561573131624368564c45677066444173626a31754b3031686447677561573131624368344c466f70664441736154306f615431704b3031686447677561573131624368344c465970664441704b30316864476775615731316243684f4c466f7066444173627a31764b30316864476775615731316243684f4c46597066444173626a31754b3031686447677561573131624368724c457370664441736154306f615431704b3031686447677561573131624368724c466770664441704b3031686447677561573131624368504c45737066444173627a31764b3031686447677561573131624368504c46677066444173626a31754b3031686447677561573131624368424c464570664441736154306f615431704b3031686447677561573131624368424c4852304b5877774b53744e5958526f4c6d6c746457776f516978524b5877774c4738396279744e5958526f4c6d6c746457776f5169783064436c384d437875505734725457463061433570625856734b455573636e5170664441736154306f615431704b3031686447677561573131624368464c4735304b5877774b53744e5958526f4c4d08026d6c746457776f5579787964436c384d437876505738725457463061433570625856734b464d73626e517066444173626a31754b3031686447677561573131624368694c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5969787a64436c384d436b725457463061433570625856734b4530736233517066444173627a31764b30316864476775615731316243684e4c484e304b5877774c4734396269744e5958526f4c6d6c746457776f6553783164436c384d4378705053687050576b725457463061433570625856734b486b7361485170664441704b3031686447677561573131624368334c4856304b5877774c4738396279744e5958526f4c6d6c746457776f6479786f64436c384d437875505734725457463061433570625856734b48417362485170664441736154306f615431704b3031686447677561573131624368774c474e304b5877774b53744e5958526f4c6d6c746457776f5a79787364436c384d437876505738725457463061433570625856734b4763735933517066444137646d467949464a305053686f4b796875505734725457463061433570625856734b4777736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368734c4764304b5877774b53744e5958526f4c6d6c746457776f5979787764436c384d436b70504d08024477784d796c384d44746f5053676f627a31764b30316864476775615731316243686a4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f556e512b506a34794e696c384d437853644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169776b4b53787050536870505531686447677561573131624368714c4567704b53744e5958526f4c6d6c746457776f5243776b4b5877774c4738395457463061433570625856734b45517353436b73626a31754b3031686447677561573131624368444c466f70664441736154306f615431704b3031686447677561573131624368444c465970664441704b3031686447677561573131624368564c466f7066444173627a31764b3031686447677561573131624368564c46597066444173626a31754b3031686447677561573131624368344c457370664441736154306f615431704b3031686447677561573131624368344c466770664441704b30316864476775615731316243684f4c45737066444173627a31764b30316864476775615731316243684f4c46677066444173626a31754b3031686447677561573131624368724c464570664441736154306f615431704b3031686447677561573131624368724c4852304b5877774b53744e5958526f4c6d6c746457776f547978524b5877774c4738396279744e5958526f4c6d6c746457776f544d080279783064436c384d437875505734725457463061433570625856734b454573636e5170664441736154306f615431704b3031686447677561573131624368424c4735304b5877774b53744e5958526f4c6d6c746457776f5169787964436c384d437876505738725457463061433570625856734b454973626e517066444173626a31754b3031686447677561573131624368464c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5253787a64436c384d436b725457463061433570625856734b464d736233517066444173627a31764b3031686447677561573131624368544c484e304b5877774c4734396269744e5958526f4c6d6c746457776f5969783164436c384d4378705053687050576b725457463061433570625856734b47497361485170664441704b30316864476775615731316243684e4c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5453786f64436c384d437875505734725457463061433570625856734b486b7362485170664441736154306f615431704b3031686447677561573131624368354c474e304b5877774b53744e5958526f4c6d6c746457776f6479787364436c384d437876505738725457463061433570625856734b4863735933517066444137646d4679494546305053686f4b796875505734725457463061433570625856734b48417363485170664d0802444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368774c4764304b5877774b53744e5958526f4c6d6c746457776f5a79787764436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243686e4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f5158512b506a34794e696c384d437842644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f616978614b53787050536870505531686447677561573131624368714c4659704b53744e5958526f4c6d6c746457776f524378614b5877774c4738395457463061433570625856734b45517356696b73626a31754b3031686447677561573131624368444c457370664441736154306f615431704b3031686447677561573131624368444c466770664441704b3031686447677561573131624368564c45737066444173627a31764b3031686447677561573131624368564c46677066444173626a31754b3031686447677561573131624368344c464570664441736154306f615431704b3031686447677561573131624368344c4852304b5877774b53744e5958526f4c6d6c746457776f546978524b5877774c4738396279744e5958526f4c6d6c746457776f5469783064436c384d437875505734725457463061433570625856734b477373634d08026e5170664441736154306f615431704b3031686447677561573131624368724c4735304b5877774b53744e5958526f4c6d6c746457776f5479787964436c384d437876505738725457463061433570625856734b453873626e517066444173626a31754b3031686447677561573131624368424c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f5153787a64436c384d436b725457463061433570625856734b4549736233517066444173627a31764b3031686447677561573131624368434c484e304b5877774c4734396269744e5958526f4c6d6c746457776f5253783164436c384d4378705053687050576b725457463061433570625856734b45557361485170664441704b3031686447677561573131624368544c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5579786f64436c384d437875505734725457463061433570625856734b47497362485170664441736154306f615431704b3031686447677561573131624368694c474e304b5877774b53744e5958526f4c6d6c746457776f5453787364436c384d437876505738725457463061433570625856734b4530735933517066444137646d467949454a305053686f4b796875505734725457463061433570625856734b486b736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b303168644d080247677561573131624368354c4764304b5877774b53744e5958526f4c6d6c746457776f6479787764436c384d436b70504477784d796c384d44746f5053676f627a31764b3031686447677561573131624368334c4764304b5877774b53736f6154342b506a457a4b5877774b53736f516e512b506a34794e696c384d437843644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169784c4b53787050536870505531686447677561573131624368714c4667704b53744e5958526f4c6d6c746457776f5243784c4b5877774c4738395457463061433570625856734b45517357436b73626a31754b3031686447677561573131624368444c464570664441736154306f615431704b3031686447677561573131624368444c4852304b5877774b53744e5958526f4c6d6c746457776f565378524b5877774c4738396279744e5958526f4c6d6c746457776f5653783064436c384d437875505734725457463061433570625856734b486773636e5170664441736154306f615431704b3031686447677561573131624368344c4735304b5877774b53744e5958526f4c6d6c746457776f5469787964436c384d437876505738725457463061433570625856734b453473626e517066444173626a31754b3031686447677561573131624368724c4739304b5877774c476b394b476b396153744e5958526f4c6d6c74644d080257776f6179787a64436c384d436b725457463061433570625856734b4538736233517066444173627a31764b3031686447677561573131624368504c484e304b5877774c4734396269744e5958526f4c6d6c746457776f5153783164436c384d4378705053687050576b725457463061433570625856734b45457361485170664441704b3031686447677561573131624368434c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5169786f64436c384d437875505734725457463061433570625856734b45557362485170664441736154306f615431704b3031686447677561573131624368464c474e304b5877774b53744e5958526f4c6d6c746457776f5579787364436c384d437876505738725457463061433570625856734b464d735933517066444137646d4679494578305053686f4b796875505734725457463061433570625856734b4749736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368694c4764304b5877774b53744e5958526f4c6d6c746457776f5453787764436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243684e4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f5448512b506a34794e696c384d43784d644359394e6a63784d4467344e6a4d73624d08026a314e5958526f4c6d6c746457776f616978524b53787050536870505531686447677561573131624368714c4852304b536b725457463061433570625856734b45517355536c384d437876505531686447677561573131624368454c4852304b537875505734725457463061433570625856734b454d73636e5170664441736154306f615431704b3031686447677561573131624368444c4735304b5877774b53744e5958526f4c6d6c746457776f5653787964436c384d437876505738725457463061433570625856734b465573626e517066444173626a31754b3031686447677561573131624368344c4739304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6543787a64436c384d436b725457463061433570625856734b4534736233517066444173627a31764b30316864476775615731316243684f4c484e304b5877774c4734396269744e5958526f4c6d6c746457776f6179783164436c384d4378705053687050576b725457463061433570625856734b47737361485170664441704b3031686447677561573131624368504c4856304b5877774c4738396279744e5958526f4c6d6c746457776f5479786f64436c384d437875505734725457463061433570625856734b45457362485170664441736154306f615431704b3031686447677561573131624368424c474e304b5877774b53744e5958526f4c4d08026d6c746457776f5169787364436c384d437876505738725457463061433570625856734b4549735933517066444137646d4679494774305053686f4b796875505734725457463061433570625856734b4555736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368464c4764304b5877774b53744e5958526f4c6d6c746457776f5579787764436c384d436b70504477784d796c384d44746f5053676f627a31764b3031686447677561573131624368544c4764304b5877774b53736f6154342b506a457a4b5877774b53736f6133512b506a34794e696c384d437872644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169787964436b736154306f6154314e5958526f4c6d6c746457776f6169787564436b704b3031686447677561573131624368454c484a304b5877774c4738395457463061433570625856734b455173626e51704c4734396269744e5958526f4c6d6c746457776f5179787664436c384d4378705053687050576b725457463061433570625856734b454d7363335170664441704b3031686447677561573131624368564c4739304b5877774c4738396279744e5958526f4c6d6c746457776f5653787a64436c384d437875505734725457463061433570625856734b48677364585170664441736154306f615431704b4d08023031686447677561573131624368344c4768304b5877774b53744e5958526f4c6d6c746457776f5469783164436c384d437876505738725457463061433570625856734b4534736148517066444173626a31754b3031686447677561573131624368724c4778304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6179786a64436c384d436b725457463061433570625856734b4538736248517066444173627a31764b3031686447677561573131624368504c474e304b5877774f335a68636942506444306f6143736f626a31754b3031686447677561573131624368424c4842304b5877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f5153786e64436c384d436b725457463061433570625856734b45497363485170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5169786e64436c384d436b724b476b2b506a34784d796c384d436b724b453930506a342b4d6a5970664441735433516d505459334d5441344f44597a4c4734395457463061433570625856734b476f73623351704c476b394b476b395457463061433570625856734b476f73633351704b53744e5958526f4c6d6c746457776f5243787664436c384d437876505531686447677561573131624368454c484e304b53787550573472544d080257463061433570625856734b454d7364585170664441736154306f615431704b3031686447677561573131624368444c4768304b5877774b53744e5958526f4c6d6c746457776f5653783164436c384d437876505738725457463061433570625856734b4655736148517066444173626a31754b3031686447677561573131624368344c4778304b5877774c476b394b476b396153744e5958526f4c6d6c746457776f6543786a64436c384d436b725457463061433570625856734b4534736248517066444173627a31764b30316864476775615731316243684f4c474e304b5877774f335a68636942556444306f6143736f626a31754b3031686447677561573131624368724c4842304b5877774b5877774b53736f4b4467784f54456d4b476b394b476b396153744e5958526f4c6d6c746457776f6179786e64436c384d436b725457463061433570625856734b45387363485170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5479786e64436c384d436b724b476b2b506a34784d796c384d436b724b465230506a342b4d6a5970664441735648516d505459334d5441344f44597a4c4734395457463061433570625856734b476f73645851704c476b394b476b395457463061433570625856734b476f73614851704b53744e5958526f4c6d6c746457776f5243783164436c384d4d0802437876505531686447677561573131624368454c4768304b537875505734725457463061433570625856734b454d7362485170664441736154306f615431704b3031686447677561573131624368444c474e304b5877774b53744e5958526f4c6d6c746457776f5653787364436c384d437876505738725457463061433570625856734b4655735933517066444137646d4679494868305053686f4b796875505734725457463061433570625856734b4867736348517066444170664441704b79676f4f4445354d53596f6154306f615431704b3031686447677561573131624368344c4764304b5877774b53744e5958526f4c6d6c746457776f5469787764436c384d436b70504477784d796c384d44746f5053676f627a31764b30316864476775615731316243684f4c4764304b5877774b53736f6154342b506a457a4b5877774b53736f6548512b506a34794e696c384d437834644359394e6a63784d4467344e6a4d73626a314e5958526f4c6d6c746457776f6169787364436b736154306f6154314e5958526f4c6d6c746457776f6169786a64436b704b3031686447677561573131624368454c4778304b5877774c4738395457463061433570625856734b455173593351704f335a686369424f6444306f6143736f626a31754b3031686447677561573131624368444c4842304b5877774b5877774b53736f4b4467784f54456d4b4d0802476b394b476b396153744e5958526f4c6d6c746457776f5179786e64436c384d436b725457463061433570625856734b46557363485170664441704b5477384d544d70664441376144306f4b4738396279744e5958526f4c6d6c746457776f5653786e64436c384d436b724b476b2b506a34784d796c384d436b724b453530506a342b4d6a597066444173546e516d505459334d5441344f44597a4f335a686369424a6444306f6143736f626a314e5958526f4c6d6c746457776f6169787764436b70664441704b79676f4f4445354d53596f6154306f6154314e5958526f4c6d6c746457776f6169786e64436b704b3031686447677561573131624368454c4842304b5877774b536b385044457a4b5877774f334a6c644856796269426f5053676f627a314e5958526f4c6d6c746457776f5243786e64436b704b796870506a342b4d544d70664441704b79684a6444342b506a49324b5877774c456c304a6a30324e7a45774f4467324d797831577a4264505731304c4856624d56303965585173645673795854313364437831577a4e6450585a304c4856624e463039596e5173645673315854314e64437831577a5a64505639304c4856624e31303952585173645673345854315464437831577a6c6450564a304c4856624d544264505546304c4856624d54466450554a304c4856624d544a64505578304c4856624d544e64505774304c4d08024856624d545264505539304c4856624d545664505652304c4856624d545a64505868304c4856624d546464505535304c4856624d54686450556c304c4441685054316f4a69596f645673784f563039614378794c6d786c626d6430614373724b5378796654746d6457356a64476c76626942354b4851735a5378794b5874794c6d356c5a32463061585a6c50575575626d566e59585270646d5665644335755a57646864476c325a5378794c6d786c626d6430614431304c6d786c626d64306143746c4c6d786c626d64306144746d6233496f646d4679494734394d43787050544173627a30774f323838636935735a57356e644767744d5474764b79737065335a686369427a50576b37615430774f325a766369683259584967595430324e7a45774f4467324d795a754c48553954574630614335746157346f6279786c4c6d786c626d6430614330784b53786f5055316864476775625746344b444173627931304c6d786c626d6430614373784b54746f504431314f3267724b796c37646d4679494759396279316f4c4777394b4442386443353362334a6b6331746d58536b714b4442385a53353362334a6b6331746f58536b73597a30324e7a45774f4467324d795a734f3245394e6a63784d4467344e6a4d6d4b474d3959797468664441704c476b725053687a5053687a50584d724b4777764e6a63784d4467344e6a52384d436c384d4d0802436b724b474d2b506a34794e696c384d436b2b506a34794e69787a4a6a30324e7a45774f4467324d3331794c6e6476636d527a5732396450574573626a317a4c484d39615831795a585231636d34674d4345395057342f6369353362334a6b63317476585431754f6e4975624756755a33526f4c53307363693566633352796158416f4b58316d6457356a64476c76626942334b4851735a5378794b5874795a585231636d3467655368304c47557363696c395a6e56755933527062323467646968304c4755706533526f61584d75654431304c48526f61584d756554316c665531686447677561573131624878384b4730395a796b7362793577636d3930623352356347557562585673564738395a6e5675593352706232346f6443786c4b58743259584967636a313061476c7a4c6d786c626d6430614374304c6d786c626d6430614474795a585231636d34674d5441395054313061476c7a4c6d786c626d64306143596d4d544139505431304c6d786c626d6430614439744b48526f61584d736443786c4b5470795044597a5032636f64476870637978304c4755704f6e49384d5441794e4439354b48526f61584d736443786c4b5470334b48526f61584d736443786c4b58307364693577636d39306233523563475575625746725a564a435644316d6457356a64476c76626968304b58746d6233496f646d467949475539626d5633494d0802454679636d46354b4851704c48493962793577636d3930623352356347557558324e7664573530516d6c30637968304b5330784c4734394d44747550485137626973724b575662626c303964476870637935795a585a436157346f626978794c4851704f334a6c644856796269426c665378324c6e42796233527664486c775a5335795a585a43615734395a6e5675593352706232346f6443786c4c48497065326c6d4b444139505431306648783050543039636930784b584a6c64485679626942304f325a766369683259584967626a30774c476b394d44747050475537615373724b573538505367784a6e51705044786c4c576b744d537830506a34394d5474795a585231636d3467626e307364693577636d3930623352356347557563475679625856305a54316d6457356a64476c76626968304c475573636978754c476b7362796c375a6d39794b485a686369427a50544137637a78764f334d724b796c7557334e64505756626446747a585630736156747a585431795733526263313164665378324c6e42796233527664486c775a533530636d467563325a76636d30395a6e5675593352706232346f6443786c4c484973626978704c4738706533526f61584d7563475679625856305a5368764c4851735a5378794c47347361536b375a6d39794b485a686369427a50544537637a78704f334d38504430784b575a7663696832594d08025849675954317a504477784c485539545746306143356a62334d6f4d69704e5958526f4c6c424a4c3245704c476739545746306143357a6157346f4d69704e5958526f4c6c424a4c3245704c4759394d44746d50476b375a69733959536c6d6233496f646d4679494777396453786a505767735a4430774f325138637a746b4b79737065335a686369427750584a625a69746b5853786e505735625a69746b5853787450584a625a69746b4b334e644c486b39626c746d4b32517263313073647a31734b6d3074597970354f336b39624370354b324d716253787450586373636c746d4b3252645058417262537875573259725a4630395a7974354c484a625a69746b4b334e645058417462537875573259725a43747a5854316e4c586b735a4345395057456d4a696833505855716243316f4b6d4d73597a31314b6d4d72614370734c47773964796c39665378324c6e42796233527664486c775a53356e6457567a6330786c626a457a596a316d6457356a64476c76626968304c47557065335a68636942795054463854574630614335745958676f5a5378304b5378755054456d63697870505441375a6d39794b4849396369387966444137636a7479506a342b50544570615373724f334a6c6448567962694178504478704b7a4572626e307364693577636d3930623352356347557559323975616e566e5958526c50575a31626d4e30614d08025739754b4851735a5378794b5874705a6967684b484938505445704b575a766369683259584967626a30774f323438636938794f3234724b796c37646d467949476b3964467475585474305732356450585262636931754c5446644c485262636931754c54466450576b736154316c573235644c475662626c30394c575662636931754c5446644c475662636931754c544664505331706658307364693577636d39306233523563475575626d3979625746736158706c4d544e6950575a31626d4e30615739754b4851735a536c375a6d39794b485a686369427950544173626a30774f3234385a5338794f3234724b796c37646d467949476b394f4445354d69704e5958526f4c6e4a766457356b4b4852624d6970754b7a46644c3255704b30316864476775636d3931626d516f644673794b6d35644c3255704b33493764467475585430324e7a45774f4467324d795a704c484939615477324e7a45774f4467324e4438774f6d6b764e6a63784d4467344e6a52384d4831795a585231636d34676448307364693577636d3930623352356347557559323975646d56796444457a596a316d6457356a64476c76626968304c475573636978704b58746d6233496f646d4679494738394d43787a50544137637a786c4f334d724b796c764b7a30776648526263313073636c73794b6e4e64505467784f54456d62797876506a342b5054457a4c4d0802484a624d69707a4b7a4664505467784f54456d62797876506a342b5054457a4f325a766369687a505449715a54747a50476b374b79747a4b584a62633130394d4474754b444139505431764b5378754b444139505367744f4445354d695a764b536c394c48597563484a76644739306558426c4c6e4e30645749395a6e5675593352706232346f64436c375a6d39794b485a686369426c5057356c64794242636e4a68655368304b53787950544137636a78304f3349724b796c6c57334a6450544137636d563064584a75494756394c48597563484a76644739306558426c4c6d3131624841395a6e5675593352706232346f6443786c4c48497065335a686369427550544971644768706379356e6457567a6330786c626a457a596968304c6d786c626d64306143786c4c6d786c626d643061436b736154313061476c7a4c6d316861325653516c516f62696b73627a313061476c7a4c6e4e306457496f62696b73637a31755a58636751584a7959586b6f62696b73595431755a58636751584a7959586b6f62696b73645431755a58636751584a7959586b6f62696b73614431755a58636751584a7959586b6f62696b735a6a31755a58636751584a7959586b6f62696b73624431755a58636751584a7959586b6f62696b73597a31794c6e6476636d527a4f324d75624756755a33526f50573473644768706379356a623235325a584a304d4d0802544e694b485175643239795a484d73644335735a57356e64476773637978754b53783061476c7a4c6d4e76626e5a6c636e51784d32496f5a53353362334a6b6379786c4c6d786c626d64306143786f4c4734704c48526f61584d7564484a68626e4e6d62334a744b484d73627978684c485573626978704b53783061476c7a4c6e52795957357a5a6d39796253686f4c4738735a6978734c47347361536b375a6d39794b485a686369426b505441375a4478754f3251724b796c37646d4679494841395956746b5853706d573252644c5856625a4630716246746b5854743157325264505746625a4630716246746b58537431573252644b6d5a625a4630735956746b5854317766584a6c644856796269423061476c7a4c6d4e76626d70315a3246305a5368684c48557362696b736447687063793530636d467563325a76636d306f595378314c474d73627978754c476b704c48526f61584d7559323975616e566e5958526c4b474d73627978754b53783061476c7a4c6d3576636d316862476c365a54457a5969686a4c4734704c484975626d566e59585270646d5539644335755a57646864476c325a56356c4c6d356c5a32463061585a6c4c484975624756755a33526f50585175624756755a33526f4b325575624756755a33526f4c48497558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d31316244316d644d080257356a64476c76626968304b587432595849675a5431755a58636762796875645778734b5474795a585231636d34675a53353362334a6b637a31755a58636751584a7959586b6f64476870637935735a57356e64476772644335735a57356e644767704c48526f61584d75625856735647386f6443786c4b58307362793577636d39306233523563475575625856735a6a316d6457356a64476c76626968304b587432595849675a5431755a58636762796875645778734b5474795a585231636d34675a53353362334a6b637a31755a58636751584a7959586b6f64476870637935735a57356e64476772644335735a57356e644767704c48636f64476870637978304c475570665378764c6e42796233527664486c775a5335706258567350575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e736232356c4b436b75625856735647386f6443783061476c7a4b58307362793577636d3930623352356347557561573131624734395a6e5675593352706232346f64436c37646d467949475539644477774f32556d4a696830505331304b5378754b434a75645731695a584969505431306558426c6232596764436b7362696830504459334d5441344f4459304b54746d6233496f646d4679494849394d437870505441376154783061476c7a4c6d786c626d6430614474704b79737065335a6863694276504d08025367776648526f61584d75643239795a484e62615630704b6e5173637a306f4e6a63784d4467344e6a4d6d62796b724b4459334d5441344f44597a4a6e49704f33492b506a30794e6978794b7a31764c7a59334d5441344f4459306644417363697339637a342b506a49324c48526f61584d75643239795a484e62615630394e6a63784d4467344e6a4d6d633331795a585231636d34674d4345395058496d4a69683061476c7a4c6e6476636d527a57326c645058497364476870637935735a57356e644767724b796b735a54393061476c7a4c6d6c755a57636f4b54703061476c7a665378764c6e42796233527664486c775a5335746457787550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e736232356c4b436b75615731316247346f64436c394c47387563484a76644739306558426c4c6e4e78636a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d31316243683061476c7a4b58307362793577636d3930623352356347557561584e78636a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d6c746457776f644768706379356a624739755a5367704b58307362793577636d393062335235634755756347393350575a31626d4e30615739754b48517065335a686369426c50575a31626d4e30615739754b48517065325a76634d0802696832595849675a5431755a58636751584a7959586b6f644335696158524d5a57356e6447676f4b536b73636a30774f3349385a5335735a57356e64476737636973724b58743259584967626a31794c7a493266444173615431794a5449324f325662636c30396443353362334a6b633174755854342b506d6b6d4d5831795a585231636d34675a58306f64436b376157596f4d44303950575575624756755a33526f4b584a6c64485679626942755a586367627967784b54746d6233496f646d467949484939644768706379787550544137626a786c4c6d786c626d64306143596d4d44303950575662626c3037626973724c4849396369357a6358496f4b536b376157596f4b79747550475575624756755a33526f4b575a766369683259584967615431794c6e4e78636967704f3234385a5335735a57356e64476737626973724c476b396153357a6358496f4b536b77495430395a5674755853596d4b484939636935746457776f61536b704f334a6c6448567962694279665378764c6e42796233527664486c775a53357064584e6f624734395a6e5675593352706232346f64436c3762696769626e5674596d5679496a303964486c775a57396d4948516d4a6e512b505441704f335a686369426c4c484939644355794e697870505368304c5849704c7a49324c4738394e6a63784d4467344e6a4d2b506a34794e693179504477794e4d08026931794f326c6d4b444168505431794b58743259584967637a30774f325a766369686c505441375a54783061476c7a4c6d786c626d64306144746c4b79737065335a68636942685058526f61584d75643239795a484e625a56306d62797831505367776648526f61584d75643239795a484e625a5630704c57453850484937644768706379353362334a6b6331746c5854313166484d73637a3168506a342b4d6a5974636e317a4a69596f644768706379353362334a6b6331746c5854317a4c48526f61584d75624756755a33526f4b79737066576c6d4b444168505431704b58746d6233496f5a54313061476c7a4c6d786c626d6430614330784f32552b505441375a5330744b58526f61584d75643239795a484e625a5374705854313061476c7a4c6e6476636d527a573256644f325a766369686c505441375a5478704f3255724b796c3061476c7a4c6e6476636d527a573256645054413764476870637935735a57356e6447677250576c39636d563064584a754948526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6d6c7a6147787550575a31626d4e30615739754b48517065334a6c64485679626942754b4441395054313061476c7a4c6d356c5a32463061585a6c4b53783061476c7a4c6d6c3163326873626968304b58307362793577636d393062335235634755756158567a61484a75504d0802575a31626d4e30615739754b4851735a5378794b58743259584967615474754b434a75645731695a584969505431306558426c623259676443596d644434394d436b736154316c5079686c4c57556c4d6a59704c7a49324f6a4137646d467949473839644355794e69787a505531686447677562576c754b4368304c5738704c7a49324c48526f61584d75624756755a33526f4b537868505459334d5441344f44597a586a59334d5441344f44597a506a342b627a773862797831505849376157596f61533039637978705055316864476775625746344b44417361536b7364536c375a6d39794b485a686369426f505441376144787a4f3267724b796c314c6e6476636d527a573268645058526f61584d75643239795a484e6261463037645335735a57356e64476739633331705a6967775054303963796b375a57787a5a5342705a69683061476c7a4c6d786c626d64306144357a4b575a766369683061476c7a4c6d786c626d6430614330396379786f505441376144783061476c7a4c6d786c626d64306144746f4b797370644768706379353362334a6b6331746f5854313061476c7a4c6e6476636d527a57326772633130375a57787a5a53423061476c7a4c6e6476636d527a577a42645054417364476870637935735a57356e644767394d547432595849675a6a30774f325a766369686f5058526f61584d75624756755a33526f4c4d0802544537614434394d43596d4b4441685054316d6648786f506a31704b54746f4c53307065335a686369427350544238644768706379353362334a6b6331746f5854743061476c7a4c6e6476636d527a5732686450575938504449324c5739386244342b506d38735a6a31734a6d4639636d563064584a754948556d4a6a41685054316d4a69596f6453353362334a6b633174314c6d786c626d6430614373725854316d4b5377775054303964476870637935735a57356e6447676d4a69683061476c7a4c6e6476636d527a577a42645054417364476870637935735a57356e644767394d536b736447687063793566633352796158416f4b58307362793577636d3930623352356347557561584e6f636d34395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942754b4441395054313061476c7a4c6d356c5a32463061585a6c4b53783061476c7a4c6d6c3163326879626968304c47557363696c394c47387563484a76644739306558426c4c6e4e6f624734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357063326873626968304b58307362793577636d3930623352356347557564584e6f624734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357064584e6f6247346f64436c394c4d080247387563484a76644739306558426c4c6e4e6f636d34395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357063326879626968304b58307362793577636d3930623352356347557564584e6f636d34395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357064584e6f636d346f64436c394c47387563484a76644739306558426c4c6e526c6333527550575a31626d4e30615739754b4851706532346f496d353162574a6c6369493950585235634756765a6942304a695a30506a30774b547432595849675a5431304a5449324c4849394b4851745a536b764d6a5973615430785044786c4f334a6c644856796269456f64476870637935735a57356e64476738505849704a6959684953683061476c7a4c6e6476636d527a57334a644a6d6b70665378764c6e42796233527664486c775a5335706257467a613234395a6e5675593352706232346f64436c3762696769626e5674596d5679496a303964486c775a57396d4948516d4a6e512b505441704f335a686369426c5058516c4d6a5973636a306f6443316c4b5338794e6a74705a6968754b4441395054313061476c7a4c6d356c5a32463061585a6c4c434a706257467a613234676432397961334d6762323573655342336158526f4948427663326c3061585a6c494d080247353162574a6c636e4d694b53783061476c7a4c6d786c626d64306144773963696c795a585231636d346764476870637a74705a696777495430395a53596d636973724c48526f61584d75624756755a33526f505531686447677562576c754b48497364476870637935735a57356e644767704c4441685054316c4b58743259584967615430324e7a45774f4467324d3134324e7a45774f4467324d7a342b506d553850475537644768706379353362334a6b6331743061476c7a4c6d786c626d64306143307858535939615831795a585231636d34676447687063793566633352796158416f4b58307362793577636d393062335235634755756257467a613234395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b5335706257467a6132346f64436c394c47387563484a76644739306558426c4c6d6c685a47527550575a31626d4e30615739754b48517065334a6c64485679626942754b434a75645731695a584969505431306558426c6232596764436b7362696830504459334d5441344f4459304b5378305044412f6447687063793570633356696269677464436b364d4345395058526f61584d75626d566e59585270646d552f4d5430395058526f61584d75624756755a33526f4a69596f4d48783061476c7a4c6e6476636d527a577a42644b5477396444386f64476870634d080279353362334a6b63317377585431304c5367776648526f61584d75643239795a484e624d4630704c48526f61584d75626d566e59585270646d55394d43783061476c7a4b546f6f64476870637935755a57646864476c325a5430774c48526f61584d7561584e31596d346f64436b7364476870637935755a57646864476c325a5430784c48526f61584d704f6e526f61584d7558326c685a4752754b485170665378764c6e42796233527664486c775a5335666157466b5a4734395a6e5675593352706232346f64436c37644768706379353362334a6b63317377585373396444746d6233496f646d4679494755394d44746c5048526f61584d75624756755a33526f4a695a3061476c7a4c6e6476636d527a57325664506a30324e7a45774f4467324e44746c4b797370644768706379353362334a6b6331746c585330394e6a63784d4467344e6a51735a5430395058526f61584d75624756755a33526f4c54452f644768706379353362334a6b6331746c4b7a466450544536644768706379353362334a6b6331746c4b7a46644b797337636d563064584a754948526f61584d75624756755a33526f5055316864476775625746344b48526f61584d75624756755a33526f4c4755724d536b73644768706333307362793577636d3930623352356347557561584e31596d34395a6e5675593352706232346f64436c376157596f62696769624d08026e5674596d5679496a303964486c775a57396d494851704c47346f644477324e7a45774f4467324e436b73644477774b584a6c644856796269423061476c7a4c6d6c685a4752754b4331304b5474705a6967774954303964476870637935755a57646864476c325a536c795a585231636d346764476870637935755a57646864476c325a5430774c48526f61584d756157466b5a47346f64436b7364476870637935755a57646864476c325a5430784c48526f61584d376157596f644768706379353362334a6b6331737758533039644377785054303964476870637935735a57356e6447676d4a6e526f61584d75643239795a484e624d4630384d436c3061476c7a4c6e6476636d527a577a42645053313061476c7a4c6e6476636d527a577a42644c48526f61584d75626d566e59585270646d55394d54746c62484e6c49475a7663696832595849675a5430774f32553864476870637935735a57356e6447676d4a6e526f61584d75643239795a484e625a5630384d44746c4b797370644768706379353362334a6b6331746c585373394e6a63784d4467344e6a5173644768706379353362334a6b6331746c4b7a46644c5430784f334a6c644856796269423061476c7a4c6c397a64484a7063436770665378764c6e42796233527664486c775a5335685a47527550575a31626d4e30615739754b48517065334a6c6448567962694230614d0802476c7a4c6d4e736232356c4b436b756157466b5a47346f64436c394c47387563484a76644739306558426c4c6e4e31596d34395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559327876626d556f4b53357063335669626968304b58307362793577636d3930623352356347557561574669637a316d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d356c5a32463061585a6c50544173644768706333307362793577636d3930623352356347557559574a7a50575a31626d4e30615739754b436c37636d563064584a754948526f61584d7559327876626d556f4b53357059574a7a4b436c394c47387563484a76644739306558426c4c6c397063326873626e4e31596d31316244316d6457356a64476c76626968304c47557363696c37646d467949476b736279787a50585175624756755a33526f4b33493764476870637935665a5868775957356b4b484d704f335a6863694268505441375a6d39794b476b394d44747050485175624756755a33526f4f326b724b796c37627a306f4d48783061476c7a4c6e6476636d527a57326b72636c30704b324537646d4679494855394b4442386443353362334a6b6331747058536b715a5474685053676f627930394e6a63784d4467344e6a4d6d64536b2b506a49324b53306f645338324e7a45774f4467324e4877774b537830614d0802476c7a4c6e6476636d527a57326b72636c30394e6a63784d4467344e6a4d6d6233316d6233496f4f326b3864476870637935735a57356e64476774636a74704b7973705954306f627a306f4d48783061476c7a4c6e6476636d527a57326b72636c30704b324570506a34794e69783061476c7a4c6e6476636d527a57326b72636c30394e6a63784d4467344e6a4d6d627a74705a6967775054303959536c795a585231636d34676447687063793566633352796158416f4b54746d6233496f626967744d543039505745704c4745394d437870505441376154783061476c7a4c6d786c626d6430614474704b7973705954306f627a30744b444238644768706379353362334a6b6331747058536b7259536b2b506a49324c48526f61584d75643239795a484e62615630394e6a63784d4467344e6a4d6d627a74795a585231636d346764476870637935755a57646864476c325a5430784c48526f61584d7558334e30636d6c774b436c394c47387563484a76644739306558426c4c6c393362334a6b52476c3250575a31626d4e30615739754b4851735a536c37646d4679494849394b48526f61584d75624756755a33526f4c485175624756755a33526f4b5378755058526f61584d7559327876626d556f4b53787050585173637a307766476b75643239795a484e62615335735a57356e644767744d5630374d43453950536879505449324c4d080258526f61584d7558324e7664573530516d6c306379687a4b536b6d4a69687050576b7564584e6f6247346f63696b736269357064584e6f6247346f63696b73637a307766476b75643239795a484e62615335735a57356e644767744d5630704f335a68636942684c485539626935735a57356e64476774615335735a57356e644767376157596f496d31765a4349685054316c4b58736f595431755a58636762796875645778734b536b75624756755a33526f505855724d5378684c6e6476636d527a5057356c64794242636e4a68655368684c6d786c626d643061436b375a6d39794b485a686369426f50544137614478684c6d786c626d64306144746f4b7973705953353362334a6b6331746f5854307766585a686369426d5057347559327876626d556f4b53356661584e6f6247357a64574a746457776f615377784c4855704f7a41395054316d4c6d356c5a32463061585a6c4a69596f626a316d4c47456d4a6968684c6e6476636d527a57335664505445704b54746d6233496f646d467949477739645330784f32772b50544137624330744b58743259584967597a30324e7a45774f4467324e436f6f4d4878754c6e6476636d527a57326b75624756755a33526f4b3278644b53736f4d4878754c6e6476636d527a57326b75624756755a33526f4b3277744d5630704f325a766369686a505531686447677562576c754b474d76634d08023377774c4459334d5441344f44597a4b5378754c6c397063326873626e4e31596d3131624368704c474d7362436b374d43453950573475626d566e59585270646d55374b574d744c5378754c6d356c5a32463061585a6c505441736269356661584e6f6247357a64574a746457776f615377784c4777704c47347561584e615a584a764b436c38664368754c6d356c5a32463061585a6c586a30784b5474684a69596f5953353362334a6b633174735854316a4b5831795a585231636d34675953596d59533566633352796158416f4b5378754c6c397a64484a70634367704c434a6b61585969495430395a53596d4d4345395058496d4a6d34756158567a61484a754b4849704c48746b6158593659587838626e56736243787462325136626e31394c47387563484a76644739306558426c4c6d5270646d31765a44316d6457356a64476c76626968304c47557363696c37636d563064584a754947346f4958517561584e615a584a764b436b704c48526f61584d7561584e615a584a764b436b2f65325270646a70755a586367627967774b53787462325136626d56334947386f4d436c394f6a41685054313061476c7a4c6d356c5a32463061585a6c4a69597750543039644335755a57646864476c325a54386f5954313061476c7a4c6d356c5a7967704c6d5270646d31765a4368304c4755704c434a7462325169495430395a53596d4b4d0802476b395953356b61585975626d566e4b436b704c434a6b61585969495430395a53596d4b484d395953357462325175626d566e4b436b736369596d4d43453950584d75626d566e59585270646d556d4a6e4d756157466b5a4368304b536b7365325270646a70704c4731765a44707a66536b364d4430395058526f61584d75626d566e59585270646d556d4a6a4168505431304c6d356c5a32463061585a6c507968685058526f61584d755a476c326257396b4b485175626d566e4b436b735a536b73496d31765a4349685054316c4a69596f615431684c6d5270646935755a57636f4b536b7365325270646a70704c4731765a4470684c6d31765a4830704f6a41685053683061476c7a4c6d356c5a32463061585a6c4a6e5175626d566e59585270646d5570507968685058526f61584d75626d566e4b436b755a476c326257396b4b485175626d566e4b436b735a536b73496d5270646949685054316c4a69596f637a31684c6d31765a4335755a57636f4b5378794a69597749543039637935755a57646864476c325a53596d63793570633356694b4851704b5378375a476c324f6d45755a476c324c4731765a44707a66536b36644335735a57356e6447672b64476870637935735a57356e644768386648526f61584d75593231774b4851705044412f65325270646a70755a586367627967774b5378746232513664476870633330364d4d080254303950585175624756755a33526f50794a6b61585969505430395a5439375a476c324f6e526f61584d755a476c32626968304c6e6476636d527a577a42644b53787462325136626e567362483036496d31765a4349395054316c5033746b61585936626e56736243787462325136626d56334947386f644768706379357462325279626968304c6e6476636d527a577a42644b536c394f6e746b61585936644768706379356b61585a754b485175643239795a484e624d4630704c4731765a4470755a5863676279683061476c7a4c6d31765a484a754b485175643239795a484e624d4630704b5830366447687063793566643239795a455270646968304c4755704f335a68636942704c484d735958307362793577636d393062335235634755755a476c3250575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d5270646d31765a4368304c434a6b615859694c4345784b53356b61585a394c47387563484a76644739306558426c4c6d31765a44316d6457356a64476c76626968304b5874795a585231636d3467644768706379356b61585a746232516f644377696257396b496977684d536b756257396b665378764c6e42796233527664486c775a5335316257396b50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d5270646d31765a4368304c434a74623251694c4d08024345774b533574623252394c47387563484a76644739306558426c4c6d5270646c4a766457356b50575a31626d4e30615739754b48517065335a686369426c5058526f61584d755a476c326257396b4b4851704f326c6d4b4755756257396b4c6d6c7a576d5679627967704b584a6c644856796269426c4c6d5270646a743259584967636a3077495430395a53356b61585975626d566e59585270646d552f5a5335746232517561584e31596968304b54706c4c6d31765a4378755058517564584e6f636d346f4d536b73615431304c6d46755a4778754b4445704c4738396369356a6258416f62696b37636d563064584a75494738384d4878384d54303950576b6d4a6a413950543176503255755a476c324f6a41685054316c4c6d5270646935755a57646864476c325a54396c4c6d52706469357063335669626967784b54706c4c6d5270646935705957526b626967784b58307362793577636d393062335235634755756257396b636d34395a6e5675593352706232346f64436c37646d467949475539644477774f32556d4a696830505331304b5378754b485138505459334d5441344f44597a4b54746d6233496f646d4679494849394b444538504449324b5356304c476b394d4378765058526f61584d75624756755a33526f4c544537627a34394d4474764c5330706154306f636970704b7967776648526f61584d75643239795a4d0802484e62623130704b5356304f334a6c644856796269426c507931704f6d6c394c47387563484a76644739306558426c4c6d31765a4734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d756257396b636d346f64436c394c47387563484a76644739306558426c4c6d6c6b61585a7550575a31626d4e30615739754b48517065335a686369426c505851384d44746c4a69596f6444307464436b7362696830504430324e7a45774f4467324d796b375a6d39794b485a6863694279505441736154313061476c7a4c6d786c626d6430614330784f326b2b50544137615330744b58743259584967627a306f4d48783061476c7a4c6e6476636d527a57326c644b5373324e7a45774f4467324e4370794f33526f61584d75643239795a484e62615630396279393066444173636a31764a585239636d563064584a754948526f61584d7558334e30636d6c774b436b735a54393061476c7a4c6d6c755a57636f4b54703061476c7a665378764c6e42796233527664486c775a53356b61585a7550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e736232356c4b436b7561575270646d346f64436c394c47387563484a76644739306558426c4c6d566e593251395a6e5675593352706232346f64436c376269677750543039644335755a57646864476c325a536b7362696768644d08024335706331706c636d386f4b536b37646d46794947553964476870637978795058517559327876626d556f4b54746c505441685054316c4c6d356c5a32463061585a6c50325575645731765a4368304b54706c4c6d4e736232356c4b436b375a6d39794b485a68636942705057356c647942764b4445704c484d39626d56334947386f4d436b73595431755a586367627967774b5378315057356c647942764b4445704c4767394d44746c4c6d6c7a52585a6c626967704a695a794c6d6c7a52585a6c626967704f796c6c4c6d6c3163326879626967784b5378794c6d6c3163326879626967784b5377724b3267375a6d39794b485a686369426d5058497559327876626d556f4b5378735057557559327876626d556f4b5473685a5335706331706c636d386f4b54737065325a766369683259584967597a30774c4751394d5473775054306f5a53353362334a6b6331737758535a6b4b53596d597a77794e6a73724b324d735a447738505445704f326c6d4b474d2b4d436c6d6233496f5a53357064584e6f636d346f59796b3759793074494434774f796b6f615335706330396b5a4367706648787a4c6d6c7a5432526b4b436b704a69596f615335705957526b4b4759704c484d7561584e31596968734b536b736153357064584e6f636d346f4d536b736379357064584e6f636d346f4d536b375a6d39794b485a6863694277505441735a4d08027a30784f7a4139505368794c6e6476636d527a577a42644a6d63704a695a77504449324f7973726343786e504477394d536b376157596f634434774b575a76636968794c6d6c3163326879626968774b5474774c533067506a41374b5368684c6d6c7a5432526b4b436c386648557561584e505a47516f4b536b6d4a6968684c6d6c685a47516f5a696b7364533570633356694b4777704b5378684c6d6c3163326879626967784b5378314c6d6c3163326879626967784b54746c4c6d4e74634368794b5434394d44386f5a533570633356694b4849704c476b7561584e31596968684b53787a4c6d6c7a6457496f64536b704f6968794c6d6c7a6457496f5a536b7359533570633356694b476b704c48557561584e315969687a4b536c39636d563064584a7565324573596a70314c47646a5a4470794c6d6c31633268736269686f4b5831394c47387563484a76644739306558426c4c6c3970626e5a746344316d6457356a64476c76626968304b5874754b444139505431304c6d356c5a32463061585a6c4b5378754b4346304c6d6c7a576d5679627967704b547432595849675a54313061476c7a4c4849396443356a624739755a5367704f3255394d43453950575575626d566e59585270646d552f5a5335316257396b4b4851704f6d557559327876626d556f4b54746d6233496f646d467949476b73637a31755a586367627967784b4d08025378685057356c647942764b4441704c4855396369356a624739755a5367704f32557559323177626967784b5434774a695a794c6d4e746347346f4d536b2b4d44737065325a766369683259584967614430774c4759394d5473775054306f5a53353362334a6b6331737758535a6d4b53596d614477794e6a73724b3267735a6a7738505445704f326c6d4b47672b4d436c6d6233496f5a53357064584e6f636d346f61436b3761433074494434774f796c7a4c6d6c7a5432526b4b436b6d4a6e4d756157466b5a4368314b53787a4c6d6c3163326879626967784b54746d6233496f646d4679494777394d43786a505445374d4430394b484975643239795a484e624d46306d59796b6d4a6d77384d6a59374b7974734c474d38504430784b5474705a696873506a41705a6d39794b4849756158567a61484a754b4777704f3277744c53412b4d447370595335706330396b5a4367704a695a684c6d6c685a47516f64536b735953357064584e6f636d346f4d536b375a53356a6258416f63696b2b5054412f4b47557561584e31596968794b53787a4c6d6c7a6457496f59536b704f6968794c6d6c7a6457496f5a536b7359533570633356694b484d704b5831795a585231636d346f61543077505430395a53356a625842754b44457050334d3659536b7559323177626967774b5477774a695a704c6d6c685a47516f64436b7361583073624d0802793577636d393062335235634755755a324e6b50575a31626d4e30615739754b48517065326c6d4b48526f61584d7561584e615a584a764b436b70636d563064584a754948517559574a7a4b436b376157596f644335706331706c636d386f4b536c795a585231636d34676447687063793568596e4d6f4b547432595849675a54313061476c7a4c6d4e736232356c4b436b73636a31304c6d4e736232356c4b436b375a5335755a57646864476c325a5430774c484975626d566e59585270646d55394d44746d6233496f646d4679494734394d44746c4c6d6c7a52585a6c626967704a695a794c6d6c7a52585a6c626967704f3234724b796c6c4c6d6c3163326879626967784b5378794c6d6c3163326879626967784b54746d6233496f4f7a737065325a76636967375a533570633056325a57346f4b5473705a53357064584e6f636d346f4d536b375a6d39794b4474794c6d6c7a52585a6c626967704f796c794c6d6c3163326879626967784b547432595849676154316c4c6d4e74634368794b5474705a6968705044417065335a6863694276505755375a5431794c4849396233316c62484e6c49476c6d4b4441395054317066487777505430396369356a625842754b4445704b574a795a5746724f32557561584e31596968794b5831795a585231636d34676369357064584e6f6247346f62696c394c47387563484a7664473930654d080258426c4c6d6c75646d30395a6e5675593352706232346f64436c37636d563064584a754948526f61584d755a57646a5a4368304b5335684c6e56746232516f64436c394c47387563484a76644739306558426c4c6d6c7a52585a6c626a316d6457356a64476c766269677065334a6c64485679626941775054306f4d535a3061476c7a4c6e6476636d527a577a42644b58307362793577636d3930623352356347557561584e505a4751395a6e5675593352706232346f4b5874795a585231636d34674d5430394b44456d644768706379353362334a6b6331737758536c394c47387563484a76644739306558426c4c6d46755a47787550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6e6476636d527a577a42644a6e52394c47387563484a76644739306558426c4c6d4a70626d4e7550575a31626d4e30615739754b4851706532346f496d353162574a6c6369493950585235634756765a6942304b547432595849675a5431304a5449324c4849394b4851745a536b764d6a5973615430785044786c4f326c6d4b48526f61584d75624756755a33526f504431794b584a6c644856796269423061476c7a4c6c396c65484268626d516f636973784b53783061476c7a4c6e6476636d527a57334a64664431704c48526f61584d375a6d39794b485a686369427650576b73637a31794f7a4168505431764a4d0802695a7a5048526f61584d75624756755a33526f4f334d724b796c37646d4679494745394d48783061476c7a4c6e6476636d527a57334e644f3238394b47457250573870506a342b4d6a5973595359394e6a63784d4467344e6a4d73644768706379353362334a6b6331747a5854316866584a6c6448567962694177495430396279596d4b48526f61584d75643239795a484e62633130396279783061476c7a4c6d786c626d6430614373724b53783061476c7a665378764c6e42796233527664486c775a5335706331706c636d38395a6e5675593352706232346f4b5874795a585231636d34674d5430395058526f61584d75624756755a33526f4a69597750543039644768706379353362334a6b633173775858307362793577636d3930623352356347557559323177626a316d6457356a64476c76626968304b587432595849675a537879505851384d4474705a6967774954303964476870637935755a57646864476c325a53596d49584970636d563064584a754c5445376157596f4d4430395058526f61584d75626d566e59585270646d556d4a6e4970636d563064584a75494445376157596f6447687063793566633352796158416f4b53783061476c7a4c6d786c626d6430614434784b5755394d54746c62484e6c6533496d4a696830505331304b5378754b485138505459334d5441344f44597a4c434a4f645731695a584967614d0802584d676447397649474a705a7949704f335a686369427050544238644768706379353362334a6b633173775854746c50576b3950543130507a413661547830507930784f6a4639636d563064584a75494441685054313061476c7a4c6d356c5a32463061585a6c507a42384c5755365a58307362793577636d393062335235634755755932317750575a31626d4e30615739754b48517065326c6d4b4441685054313061476c7a4c6d356c5a32463061585a6c4a69597750543039644335755a57646864476c325a536c795a585231636d34744d5474705a6967775054303964476870637935755a57646864476c325a53596d4d43453950585175626d566e59585270646d5570636d563064584a7549444537646d4679494755396447687063793531593231774b4851704f334a6c64485679626941774954303964476870637935755a57646864476c325a5438776643316c4f6d56394c47387563484a76644739306558426c4c6e566a625841395a6e5675593352706232346f64436c376157596f64476870637935735a57356e6447672b644335735a57356e64476770636d563064584a75494445376157596f64476870637935735a57356e64476738644335735a57356e64476770636d563064584a754c5445375a6d39794b485a686369426c50544173636a313061476c7a4c6d786c626d6430614330784f33492b50544137636930744b4d080258743259584967626a30776648526f61584d75643239795a484e62636c30736154307766485175643239795a484e62636c30376157596f6269453950576b70653234386154396c505330784f6d342b6153596d4b4755394d536b37596e4a6c5957743966584a6c644856796269426c665378764c6e42796233527664486c775a53356e644734395a6e5675593352706232346f64436c37636d563064584a75494445395054313061476c7a4c6d4e746347346f64436c394c47387563484a76644739306558426c4c6d643050575a31626d4e30615739754b48517065334a6c644856796269417850543039644768706379356a6258416f64436c394c47387563484a76644739306558426c4c6d64305a5734395a6e5675593352706232346f64436c37636d563064584a754948526f61584d7559323177626968304b5434394d48307362793577636d393062335235634755755a33526c50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e74634368304b5434394d48307362793577636d393062335235634755756248527550575a31626d4e30615739754b48517065334a6c644856796269307850543039644768706379356a625842754b485170665378764c6e42796233527664486c775a5335736444316d6457356a64476c76626968304b5874795a585231636d34744d5430395058526f61584d75594d08023231774b485170665378764c6e42796233527664486c775a5335736447567550575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d4e746347346f64436b38505442394c47387563484a76644739306558426c4c6d78305a54316d6457356a64476c76626968304b5874795a585231636d3467644768706379356a6258416f64436b38505442394c47387563484a76644739306558426c4c6d5678626a316d6457356a64476c76626968304b5874795a585231636d34674d4430395058526f61584d7559323177626968304b58307362793577636d393062335235634755755a5845395a6e5675593352706232346f64436c37636d563064584a75494441395054313061476c7a4c6d4e74634368304b583073627935795a5751395a6e5675593352706232346f64436c37636d563064584a754947356c647942424b485170665378764c6e42796233527664486c775a53353062314a6c5a44316d6457356a64476c76626968304b5874795a585231636d34676269676864476870637935795a575173496b4673636d56685a486b6759534275645731695a58496761573467636d566b64574e306157397549474e76626e526c654851694b5378754b4441395054313061476c7a4c6d356c5a32463061585a6c4c434a795a5751676432397961334d6762323573655342336158526f4948427663326c3061585a6c634d08027949704c48517559323975646d5679644652764b48526f61584d704c6c396d62334a6a5a564a6c5a4368304b58307362793577636d393062335235634755755a6e4a7662564a6c5a44316d6457356a64476c766269677065334a6c64485679626942754b48526f61584d75636d566b4c434a6d636d3974556d566b49486476636d747a4947397562486b6764326c3061434275645731695a584a7a49476c7549484a6c5a48566a64476c766269426a623235305a58683049696b7364476870637935795a57517559323975646d567964455a796232306f6447687063796c394c47387563484a76644739306558426c4c6c396d62334a6a5a564a6c5a44316d6457356a64476c76626968304b5874795a585231636d346764476870637935795a5751396443783061476c7a665378764c6e42796233527664486c775a53356d62334a6a5a564a6c5a44316d6457356a64476c76626968304b5874795a585231636d34676269676864476870637935795a575173496b4673636d56685a486b6759534275645731695a58496761573467636d566b64574e306157397549474e76626e526c654851694b53783061476c7a4c6c396d62334a6a5a564a6c5a4368304b58307362793577636d39306233523563475575636d566b5157526b50575a31626d4e30615739754b48517065334a6c64485679626942754b48526f61584d75636d566b4c434a795a4d08025752425a4751676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a5751755957526b4b48526f61584d7364436c394c47387563484a76644739306558426c4c6e4a6c5a456c425a4751395a6e5675593352706232346f64436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a456c425a4751676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a5751756157466b5a43683061476c7a4c485170665378764c6e42796233527664486c775a5335795a575254645749395a6e5675593352706232346f64436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a464e315969423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a43357a6457496f64476870637978304b58307362793577636d39306233523563475575636d566b53564e31596a316d6457356a64476c76626968304b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b53564e315969423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a433570633356694b48526f61584d7364436c394c4d080247387563484a76644739306558426c4c6e4a6c5a464e6f6244316d6457356a64476c76626968304b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b5532687349486476636d747a4947397562486b6764326c30614342795a575167626e5674596d5679637949704c48526f61584d75636d566b4c6e4e6f6243683061476c7a4c485170665378764c6e42796233527664486c775a5335795a57524e645777395a6e5675593352706232346f64436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a4531316243423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a433566646d567961575a354d69683061476c7a4c4851704c48526f61584d75636d566b4c6d31316243683061476c7a4c485170665378764c6e42796233527664486c775a5335795a57524a5458567350575a31626d4e30615739754b48517065334a6c64485679626942754b48526f61584d75636d566b4c434a795a57524e645777676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a57517558335a6c636d6c6d6554496f64476870637978304b53783061476c7a4c6e4a6c5a433570625856734b48526f61584d7364436c394c47387563484a7664473930654d080258426c4c6e4a6c5a464e78636a316d6457356a64476c766269677065334a6c64485679626942754b48526f61584d75636d566b4c434a795a575254635849676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a57517558335a6c636d6c6d6554456f6447687063796b7364476870637935795a575175633346794b48526f61584d70665378764c6e42796233527664486c775a5335795a57524a5533467950575a31626d4e30615739754b436c37636d563064584a754947346f64476870637935795a575173496e4a6c5a456c54635849676432397961334d6762323573655342336158526f49484a6c5a434275645731695a584a7a49696b7364476870637935795a57517558335a6c636d6c6d6554456f6447687063796b7364476870637935795a57517561584e786369683061476c7a4b58307362793577636d39306233523563475575636d566b553346796444316d6457356a64476c766269677065334a6c64485679626942754b48526f61584d75636d566b4c434a795a57525463584a3049486476636d747a4947397562486b6764326c30614342795a575167626e5674596d5679637949704c48526f61584d75636d566b4c6c39325a584a705a6e6b784b48526f61584d704c48526f61584d75636d566b4c6e4e78636e516f6447687063796c394c473875634d0802484a76644739306558426c4c6e4a6c5a456c75646d30395a6e5675593352706232346f4b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b535735326253423362334a7263794276626d78354948647064476767636d566b4947353162574a6c636e4d694b53783061476c7a4c6e4a6c5a433566646d567961575a354d53683061476c7a4b53783061476c7a4c6e4a6c5a433570626e5a744b48526f61584d70665378764c6e42796233527664486c775a5335795a57524f5a5763395a6e5675593352706232346f4b5874795a585231636d34676269683061476c7a4c6e4a6c5a437769636d566b546d566e49486476636d747a4947397562486b6764326c30614342795a575167626e5674596d5679637949704c48526f61584d75636d566b4c6c39325a584a705a6e6b784b48526f61584d704c48526f61584d75636d566b4c6d356c5a79683061476c7a4b58307362793577636d39306233523563475575636d566b5547393350575a31626d4e30615739754b48517065334a6c64485679626942754b48526f61584d75636d566b4a695968644335795a575173496e4a6c5a4642766479687562334a745957784f6457307049696b7364476870637935795a57517558335a6c636d6c6d6554456f6447687063796b7364476870637935795a575175634739334b48526f61584d7364436c394f335a6863694269504d08025874724d6a55324f6d353162477773634449794e447075645778734c4841784f544936626e5673624378774d6a55314d546b36626e5673624830375a6e56755933527062323467545368304c4755706533526f61584d75626d46745a5431304c48526f61584d75634431755a5863676279686c4c4445324b53783061476c7a4c6d343964476870637935774c6d4a706445786c626d6430614367704c48526f61584d75617a31755a586367627967784b53357064584e6f6247346f64476870637935754b533570633356694b48526f61584d7563436b736447687063793530625841396447687063793566644731774b436c395a6e567559335270623234675879677065303075593246736243683061476c7a4c434a724d6a5532496977695a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d55675a6d5a6d5a6d5a6a4d6d59694b58316d6457356a64476c76626942464b436c375453356a595778734b48526f61584d73496e41794d6a51694c434a6d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a6941774d4441774d4441774d4341774d4441774d4441774d4341774d4441774d4441774d53497066575a31624d08026d4e306157397549464d6f4b58744e4c6d4e686247776f6447687063797769634445354d694973496d5a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6c49475a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d49696c395a6e567559335270623234675569677065303075593246736243683061476c7a4c4349794e5455784f534973496a646d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d59675a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a69426d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d49475a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a5751694b58316d6457356a64476c76626942424b48517065326c6d4b434a7a64484a70626d6369505431306558426c6232596764436c37646d4679494755396279356663484a706257556f64436b376447687063793574505755756343783061476c7a4c6e42796157316c505756395a57787a5a5342754b4851755a3352754b4445704c434a74623252316248567a4947313163335167596d55675a334a6c5958526c6369423061474675494445694b53783061476c7a4c6d30396443783061476c7a4c6e42796157316c50573531624778395a6e56755933527062323467516968304b5874424c6d4e686247776f64476870637978304b53783061476c7a4c6e4e6f61575a305058526f61584d75624d08025335696158524d5a57356e6447676f4b53783061476c7a4c6e4e6f61575a304a544932495430774a69596f644768706379357a61476c6d644373394d6a5974644768706379357a61476c6d644355794e696b7364476870637935795057356c647942764b4445704c6d6c31633268736269683061476c7a4c6e4e6f61575a304b53783061476c7a4c6e49795058526f61584d75615731765a43683061476c7a4c6e4975633346794b436b704c48526f61584d75636d6c75646a313061476c7a4c6e497558326c75646d31774b48526f61584d7562536b736447687063793574615735325058526f61584d75636d6c75646935746457776f64476870637935794b53357063335669626967784b53356b6158596f64476870637935744b53783061476c7a4c6d3170626e59396447687063793574615735324c6e56746232516f64476870637935794b53783061476c7a4c6d3170626e593964476870637935794c6e4e315969683061476c7a4c6d3170626e59706655307563484a76644739306558426c4c6c3930625841395a6e5675593352706232346f4b58743259584967644431755a58636762796875645778734b5474795a585231636d34676443353362334a6b637a31755a58636751584a7959586b6f545746306143356a5a576c734b48526f61584d75626938784d796b704c4852394c45307563484a76644739306558426c4c6d6c795a4d0802575231593255395a6e5675593352706232346f64436c37646d467949475573636a31304f3252766533526f61584d75633342736158516f6369783061476c7a4c6e527463436b735a54306f636a306f636a313061476c7a4c6d6c746457784c4b4849704b5335705957526b4b48526f61584d75644731774b536b75596d6c30544756755a33526f4b436c39643268706247556f5a54353061476c7a4c6d34704f335a6863694275505755386447687063793575507930784f6e497564574e746343683061476c7a4c6e41704f334a6c644856796269417750543039626a386f6369353362334a6b63317377585430774c484975624756755a33526f505445704f6d342b4d4439794c6d6c7a6457496f64476870637935774b54703262326c6b49444168505431794c6e4e30636d6c7750334975633352796158416f4b5470794c6c397a64484a70634367704c484a394c45307563484a76644739306558426c4c6e4e7762476c3050575a31626d4e30615739754b4851735a536c376443357064584e6f636d346f64476870637935754c4441735a536c394c45307563484a76644739306558426c4c6d6c746457784c50575a31626d4e30615739754b48517065334a6c64485679626942304c6d6c746457776f64476870637935724b583073615368664c4530704c46387563484a76644739306558426c4c6e4e7762476c3050575a31626d4e30614d08025739754b4851735a536c375a6d39794b485a6863694279505451784f54517a4d444d73626a314e5958526f4c6d3170626968304c6d786c626d6430614377354b53787050544137615478754f326b724b796c6c4c6e6476636d527a57326c6450585175643239795a484e62615630376157596f5a5335735a57356e64476739626978304c6d786c626d6430614477394f536c795a585231636d34676443353362334a6b63317377585430774c485a766157516f644335735a57356e644767394d536b37646d4679494738396443353362334a6b633173355854746d6233496f5a53353362334a6b6331746c4c6d786c626d643061437372585431764a6e4973615430784d44747050485175624756755a33526f4f326b724b796c37646d467949484d394d4878304c6e6476636d527a57326c644f335175643239795a484e62615330784d4630394b484d6d63696b3850445238627a342b506a49794c47383963333176506a342b505449794c485175643239795a484e62615330784d46303962797777505430396279596d644335735a57356e6447672b4d54412f644335735a57356e64476774505445774f6e5175624756755a33526f4c543035665378664c6e42796233527664486c775a53357062585673537a316d6457356a64476c76626968304b5874304c6e6476636d527a57335175624756755a33526f585430774c485175643239795a4d0802484e62644335735a57356e644767724d5630394d4378304c6d786c626d6430614373394d6a746d6233496f646d4679494755394d43787950544137636a78304c6d786c626d6430614474794b79737065335a6863694275505442386443353362334a6b633174795854746c4b7a30354e7a6371626978304c6e6476636d527a57334a64505459334d5441344f44597a4a6d55735a5430324e4370754b79686c4c7a59334d5441344f4459306644417066584a6c6448567962694177505430396443353362334a6b633174304c6d786c626d6430614330785853596d4b485175624756755a33526f4c5330734d44303950585175643239795a484e62644335735a57356e644767744d56306d4a6e5175624756755a33526f4c5330704c4852394c476b6f5253784e4b5378704b464d7354536b73615368534c4530704c46497563484a76644739306558426c4c6d6c746457784c50575a31626d4e30615739754b48517065325a7663696832595849675a5430774c4849394d44747950485175624756755a33526f4f3349724b796c37646d4679494734394d546b714b4442386443353362334a6b6331747958536b725a537870505459334d5441344f44597a4a6d3437626a342b506a30794e6978304c6e6476636d527a57334a6450576b735a54317566584a6c6448567962694177495430395a53596d4b485175643239795a484e62644335735a4d080257356e644767724b3130395a536b73644830736279356663484a70625755395a6e5675593352706232346f64436c376157596f596c743058536c795a585231636d3467596c743058547432595849675a5474705a696769617a49314e694939505431304b575539626d5633494638375a57787a5a5342705a696769634449794e434939505431304b575539626d5633494555375a57787a5a5342705a696769634445354d694939505431304b575539626d563349464d375a57787a5a5874705a696769634449314e54453549694539505851706447687962336367626d563349455679636d39794b434a56626d747562336475494842796157316c4943497264436b375a5431755a586367556e31795a585231636d3467596c74305854316c4c4756394c45457563484a76644739306558426c4c6c39325a584a705a6e6b7850575a31626d4e30615739754b4851706532346f4d44303950585175626d566e59585270646d5573496e4a6c5a43423362334a7263794276626d783549486470644767676347397a61585270646d567a49696b73626968304c6e4a6c5a437769636d566b49486476636d747a4947397562486b6764326c30614342795a575167626e5674596d567963794970665378424c6e42796233527664486c775a533566646d567961575a354d6a316d6457356a64476c76626968304c4755706532346f4d4430394b485175624d08026d566e59585270646d56385a5335755a57646864476c325a536b73496e4a6c5a43423362334a7263794276626d783549486470644767676347397a61585270646d567a49696b73626968304c6e4a6c5a43596d644335795a5751395054316c4c6e4a6c5a437769636d566b49486476636d747a4947397562486b6764326c30614342795a575167626e5674596d567963794970665378424c6e42796233527664486c775a5335706257396b50575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6e42796157316c5033526f61584d7563484a706257557561584a6c5a48566a5a5368304b5335665a6d3979593256535a57516f6447687063796b364b47596f644378304c6e56746232516f64476870637935744b5335665a6d3979593256535a57516f6447687063796b704c485170665378424c6e42796233527664486c775a5335755a5763395a6e5675593352706232346f64436c37636d563064584a754948517561584e615a584a764b436b2f6443356a624739755a5367704f6e526f61584d756253357a6457496f64436b7558325a76636d4e6c556d566b4b48526f61584d70665378424c6e42796233527664486c775a5335685a4751395a6e5675593352706232346f6443786c4b58743061476c7a4c6c39325a584a705a6e6b794b4851735a536b37646d467949484939644335685a47516f5a536b37634d08026d563064584a7549484975593231774b48526f61584d7562536b2b5054416d4a6e497561584e315969683061476c7a4c6d30704c48497558325a76636d4e6c556d566b4b48526f61584d70665378424c6e42796233527664486c775a5335705957526b50575a31626d4e30615739754b4851735a536c376447687063793566646d567961575a354d6968304c4755704f335a6863694279505851756157466b5a43686c4b5474795a585231636d34676369356a6258416f64476870637935744b5434394d43596d63693570633356694b48526f61584d7562536b73636e307351533577636d393062335235634755756333566950575a31626d4e30615739754b4851735a536c376447687063793566646d567961575a354d6968304c4755704f335a686369427950585175633356694b4755704f334a6c64485679626942794c6d4e746347346f4d436b384d43596d636935705957526b4b48526f61584d7562536b73636935665a6d3979593256535a57516f6447687063796c394c45457563484a76644739306558426c4c6d6c7a645749395a6e5675593352706232346f6443786c4b58743061476c7a4c6c39325a584a705a6e6b794b4851735a536b37646d46794948493964433570633356694b4755704f334a6c64485679626942794c6d4e746347346f4d436b384d43596d636935705957526b4b48526f61584d7562536b73636e3073514d0802533577636d393062335235634755756332687350575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7558335a6c636d6c6d6554456f64436b7364476870637935706257396b4b48517564584e6f6247346f5a536b70665378424c6e42796233527664486c775a5335706258567350575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7558335a6c636d6c6d6554496f6443786c4b53783061476c7a4c6d6c746232516f64433570625856734b4755704b58307351533577636d393062335235634755756258567350575a31626d4e30615739754b4851735a536c37636d563064584a754948526f61584d7558335a6c636d6c6d6554496f6443786c4b53783061476c7a4c6d6c746232516f644335746457776f5a536b70665378424c6e42796233527664486c775a5335706333467950575a31626d4e30615739754b48517065334a6c644856796269423061476c7a4c6d6c746457776f644378304c6d4e736232356c4b436b70665378424c6e42796233527664486c775a53357a635849395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75625856734b48517364436c394c45457563484a76644739306558426c4c6e4e78636e51395a6e5675593352706232346f64436c376157596f644335706331706c636d386f4b536c795a585231634d08026d34676443356a624739755a5367704f335a686369426c5058526f61584d7562533568626d52736269677a4b5474705a6968754b47556c4d6a30394d536b734d7a30395057557065335a68636942795058526f61584d75625335685a47516f626d56334947386f4d536b704c6d6c3163326879626967794b5474795a585231636d346764476870637935776233636f644378794b58316d6233496f646d467949476b3964476870637935744c6e4e31596d346f4d536b73637a30774f7946704c6d6c7a576d5679627967704a6959775054303961533568626d5273626967784b547370637973724c476b756158567a61484a754b4445704f32346f49576b7561584e615a584a764b436b704f335a68636942685057356c647942764b4445704c6e5276556d566b4b48526f61584d704c485539595335795a57524f5a57636f4b53786f5058526f61584d756253357a64574a754b4445704c6d6c3163326879626967784b53786d5058526f61584d75625335696158524d5a57356e6447676f4b54746d6233496f5a6a31755a586367627967794b6d59715a696b75644739535a57516f6447687063796b374d4345395058526f61584d75634739334b47597361436b75593231774b4855704f796c6d4c6e4a6c5a456c425a47516f64536b375a6d39794b485a68636942735058526f61584d75634739334b47597361536b73597a313061476c7a4c4d08026e4276647968304c476b755957526b626967784b53357064584e6f636d346f4d536b704c47513964476870637935776233636f644378704b53787750584d374d43453950575175593231774b4745704f796c375a6d39794b485a686369426e50575173625430774f7a41685054316e4c6d4e74634368684b5474744b7973705a7a316e4c6e4a6c5a464e78636967704f32346f625478774b547432595849676554313061476c7a4c6e4276647968734c47356c647942764b4445704c6d6c3163326873626968774c5730744d536b704f324d39597935795a57524e6457776f65536b73624431354c6e4a6c5a464e78636967704c4751395a4335795a57524e6457776f62436b736344317466584a6c644856796269426a665378424c6e42796233527664486c775a533570626e5a7450575a31626d4e30615739754b48517065335a686369426c5058517558326c75646d31774b48526f61584d7562536b37636d563064584a75494441685054316c4c6d356c5a32463061585a6c5079686c4c6d356c5a32463061585a6c5054417364476870637935706257396b4b4755704c6e4a6c5a45356c5a7967704b54703061476c7a4c6d6c746232516f5a536c394c45457563484a76644739306558426c4c6e4276647a316d6457356a64476c76626968304c47557065326c6d4b47557561584e615a584a764b436b70636d563064584a754947356c644d08027942764b4445704c6e5276556d566b4b48526f61584d704f326c6d4b4441395054316c4c6d4e746347346f4d536b70636d563064584a754948517559327876626d556f4b54743259584967636a31755a58636751584a7959586b6f4d5459704f334a624d463039626d56334947386f4d536b75644739535a57516f6447687063796b73636c7378585431304f325a766369683259584967626a30794f323438636935735a57356e64476737626973724b584a62626c303964476870637935746457776f636c74754c5446644c4851704f335a686369427050584a624d463073637a30774c4745394d43783150575575596d6c30544756755a33526f4b436b6c4d6a59375a6d39794b444139505431314a69596f645430794e696b73626a316c4c6d786c626d6430614330784f32342b50544137626930744b58746d6233496f646d4679494767395a53353362334a6b633174755853786d505855744d54746d506a30774f3259744c536c37646d4679494777396144342b5a6959784f326b6850543179577a42644a69596f6154313061476c7a4c6e4e78636968704b536b734d43453950577838664441685054317a5079687a504477394d53787a664431734c436730505430394b79746866487777505430396269596d4d443039505759704a69596f6154313061476c7a4c6d3131624368704c484a62633130704c4745394d43787a505441704b4d080254706850544239645430794e6e31795a585231636d34676158307351533577636d3930623352356347557559323975646d56796446527650575a31626d4e30615739754b48517065335a686369426c50585175645731765a43683061476c7a4c6d30704f334a6c644856796269426c505430396444396c4c6d4e736232356c4b436b365a58307351533577636d3930623352356347557559323975646d567964455a79623230395a6e5675593352706232346f64436c37646d4679494755396443356a624739755a5367704f334a6c644856796269426c4c6e4a6c5a443175645778734c4756394c473875625739756444316d6457356a64476c76626968304b5874795a585231636d3467626d56334945496f64436c394c476b6f516978424b5378434c6e42796233527664486c775a53356a623235325a584a30564738395a6e5675593352706232346f64436c37636d563064584a754948526f61584d75615731765a4368304c6e567a614778754b48526f61584d75633268705a6e51704b58307351693577636d3930623352356347557559323975646d567964455a79623230395a6e5675593352706232346f64436c37646d46794947553964476870637935706257396b4b485175625856734b48526f61584d75636d6c7564696b704f334a6c644856796269426c4c6e4a6c5a443175645778734c4756394c45497563484a7664473930654d080258426c4c6d6c74645777395a6e5675593352706232346f6443786c4b5874705a6968304c6d6c7a576d5679627967706648786c4c6d6c7a576d5679627967704b584a6c64485679626942304c6e6476636d527a577a426450544173644335735a57356e644767394d5378304f335a686369427950585175615731316243686c4b537875505849756257467a6132346f644768706379357a61476c6d64436b75625856734b48526f61584d7562576c7564696b7561573168633274754b48526f61584d75633268705a6e51704c6d31316243683061476c7a4c6d30704c476b3963693570633356694b4734704c6d6c31633268796269683061476c7a4c6e4e6f61575a304b53787650576b37636d563064584a7549476b75593231774b48526f61584d7562536b2b5054412f627a31704c6d6c7a6457496f64476870637935744b5470704c6d4e746347346f4d436b384d43596d4b473839615335705957526b4b48526f61584d7562536b704c47387558325a76636d4e6c556d566b4b48526f61584d70665378434c6e42796233527664486c775a533574645777395a6e5675593352706232346f6443786c4b5874705a6968304c6d6c7a576d5679627967706648786c4c6d6c7a576d5679627967704b584a6c64485679626942755a586367627967774b5335665a6d3979593256535a57516f6447687063796b37646d46794948493964433574644d080257776f5a536b73626a31794c6d3168633274754b48526f61584d75633268705a6e51704c6d31316243683061476c7a4c6d3170626e59704c6d6c7459584e726269683061476c7a4c6e4e6f61575a304b5335746457776f64476870637935744b5378705058497561584e31596968754b53357064584e6f636d346f644768706379357a61476c6d64436b73637a31704f334a6c64485679626942704c6d4e746343683061476c7a4c6d3070506a307750334d3961533570633356694b48526f61584d7562536b366153356a625842754b4441705044416d4a69687a50576b756157466b5a43683061476c7a4c6d30704b53787a4c6c396d62334a6a5a564a6c5a43683061476c7a4b58307351693577636d39306233523563475575615735326254316d6457356a64476c76626968304b5874795a585231636d346764476870637935706257396b4b48517558326c75646d31774b48526f61584d7562536b75625856734b48526f61584d75636a49704b5335665a6d3979593256535a57516f6447687063796c396653683050584975626d316b4b4851704c48526f61584d70665377334e6a51364b4851735a5378794b54302b65794a31633255676333527961574e30496a746a6232357a644342755058496f4e7a51794b5378705058496f4e6a51314b53787650534a6d6457356a64476c766269493950585235634756765a69425465573169624d080232776d4a694a6d6457356a64476c766269493950585235634756765a69425465573169623277755a6d397950314e3562574a766243356d6233496f496d35765a4756716379353164476c734c6d6c756333426c593351755933567a6447397449696b36626e56736244746c4c6b4a315a6d5a6c636a31314c4755755532787664304a315a6d5a6c636a316d6457356a64476c76626968304b587372644345396443596d4b4851394d436b37636d563064584a75494855755957787362324d6f4b3351706653786c4c6b6c4f55314246513152665455465958304a5a56455654505455774f324e76626e4e3049484d394d6a45304e7a51344d7a59304e7a746d6457356a64476c76626942684b48517065326c6d4b48512b63796c3061484a76647942755a586367556d46755a325646636e4a766369676e5647686c49485a686248566c4943496e4b3351724a79496761584d6761573532595778705a43426d62334967623342306157397549434a7a6158706c496963704f324e76626e4e3049475539626d563349465670626e513451584a7959586b6f64436b37636d563064584a7549453969616d566a6443357a5a585251636d393062335235634756505a69686c4c48557563484a76644739306558426c4b53786c66575a31626d4e30615739754948556f6443786c4c48497065326c6d4b434a75645731695a584969505431306558426c624d080232596764436c376157596f496e4e30636d6c755a79493950585235634756765a69426c4b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a534169633352796157356e49694268636d6431625756756443427464584e3049474a6c4947396d4948523563475567633352796157356e4c6942535a574e6c61585a6c5a4342306558426c4947353162574a6c636963704f334a6c64485679626942734b48517066584a6c644856796269426f4b4851735a5378794b58316d6457356a64476c766269426f4b4851735a5378794b5874705a696769633352796157356e496a303964486c775a57396d49485170636d563064584a7549475a31626d4e30615739754b4851735a536c37496e4e30636d6c755a79493950585235634756765a69426c4a69596949694539505756386643686c50534a316447593449696b376157596f4958557561584e46626d4e765a476c755a79686c4b536c3061484a76647942755a58636756486c775a555679636d39794b434a56626d747562336475494756755932396b6157356e4f6941694b3255704f324e76626e4e30494849394d48786e4b4851735a536b376247563049473439595368794b54746a6232357a644342705057347564334a706447556f6443786c4b547470495430396369596d4b4734396269357a62476c6a5a5367774c476b704b5474795a585231636d3467624d08026e306f6443786c4b5474705a696842636e4a6865554a315a6d5a6c6369357063315a705a58636f64436b70636d563064584a7549475a31626d4e30615739754b48517065326c6d4b466b6f64437856615735304f454679636d46354b536c3759323975633351675a5431755a58636756576c7564446842636e4a68655368304b5474795a585231636d34675a43686c4c6d4a315a6d5a6c6369786c4c6d4a35644756505a6d5a7a5a5851735a5335696558526c544756755a33526f4b5831795a585231636d3467597968304b58306f64436b376157596f626e56736244303964436c3061484a76647942755a58636756486c775a555679636d39794b434a55614755675a6d6c796333516759584a6e6457316c626e51676258567a644342695a534276626d55676232596764486c775a53427a64484a70626d637349454a315a6d5a6c6369776751584a7959586c4364575a6d5a58497349454679636d46354c43427663694242636e4a68655331736157746c49453969616d566a64433467556d566a5a576c325a57516764486c775a5341694b335235634756765a6942304b5474705a69685a4b48517351584a7959586c4364575a6d5a584970664878304a695a5a4b485175596e566d5a6d56794c454679636d4635516e566d5a6d56794b536c795a585231636d34675a4368304c47557363696b376157596f496e56755a47566d6157356c5a4d080243496850585235634756765a694254614746795a575242636e4a6865554a315a6d5a6c6369596d4b466b6f64437854614746795a575242636e4a6865554a315a6d5a6c63696c386648516d4a6c6b6f6443356964575a6d5a58497355326868636d566b51584a7959586c4364575a6d5a5849704b536c795a585231636d34675a4368304c47557363696b376157596f496d353162574a6c6369493950585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a534169646d467364575569494746795a3356745a5735304947313163335167626d393049474a6c4947396d4948523563475567626e5674596d56794c6942535a574e6c61585a6c5a4342306558426c4947353162574a6c636963704f324e76626e4e304947343964433532595778315a55396d4a695a304c6e5a686248566c5432596f4b5474705a69687564577873495431754a695a754954303964436c795a585231636d34676453356d636d39744b4734735a5378794b54746a6232357a6443427050575a31626d4e30615739754b48517065326c6d4b48557561584e4364575a6d5a58496f64436b7065324e76626e4e30494755394d4878774b485175624756755a33526f4b5378795057456f5a536b37636d563064584a7549444139505431794c6d786c626d6430614878386443356a623342354b4849734d4377774c4d08024755704c484a396157596f646d39705a43417749543039644335735a57356e64476770636d563064584a75496d353162574a6c6369496850585235634756765a6942304c6d786c626d643061487838537968304c6d786c626d643061436b2f595367774b54706a4b4851704f326c6d4b434a4364575a6d5a58496950543039644335306558426c4a695a42636e4a686553357063304679636d46354b4851755a47463059536b70636d563064584a7549474d6f6443356b595852684b58306f64436b376157596f61536c795a585231636d3467615474705a6967696457356b5a575a70626d566b4969453964486c775a57396d49464e3562574a766243596d626e56736243453955336c74596d39734c6e527655484a7062576c3061585a6c4a6959695a6e56755933527062323469505431306558426c6232596764467454655731696232777564473951636d6c7461585270646d56644b584a6c64485679626942314c6d5a796232306f64467454655731696232777564473951636d6c7461585270646d56644b434a7a64484a70626d63694b53786c4c4849704f33526f636d39334947356c647942556558426c52584a796233496f496c526f5a53426d61584a7a64434268636d6431625756756443427464584e3049474a6c494739755a5342765a6942306558426c49484e30636d6c755a797767516e566d5a6d56794c434242636e4a68654d0802554a315a6d5a6c6369776751584a7959586b734947397949454679636d46354c5778706132556754324a715a574e304c6942535a574e6c61585a6c5a4342306558426c4943497264486c775a57396d4948517066575a31626d4e30615739754947596f64436c376157596f496d353162574a6c6369496850585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f4a794a7a6158706c49694268636d6431625756756443427464584e3049474a6c4947396d4948523563475567626e5674596d56794a796b376157596f644477774b58526f636d39334947356c647942535957356e5a555679636d39794b43645561475567646d467364575567496963726443736e4969427063794270626e5a6862476c6b49475a76636942766348527062323467496e4e70656d55694a796c395a6e56755933527062323467624368304b5874795a585231636d34675a6968304b5378684b4851384d4438774f6a4238634368304b536c395a6e56755933527062323467597968304b58746a6232357a6443426c50585175624756755a33526f5044412f4d446f776648416f644335735a57356e644767704c4849395953686c4b54746d6233496f62475630494734394d44747550475537626973394d536c7957323564505449314e535a30573235644f334a6c644856796269427966575a31626d4e3061573975494d080247516f6443786c4c48497065326c6d4b4755384d487838644335696558526c544756755a33526f504755706447687962336367626d563349464a68626d646c52584a796233496f4a794a765a6d5a7a5a58516949476c7a4947393164484e705a47556762325967596e566d5a6d567949474a766457356b637963704f326c6d4b485175596e6c305a55786c626d64306144786c4b796879664877774b536c3061484a76647942755a586367556d46755a325646636e4a766369676e496d786c626d64306143496761584d676233563063326c6b5a5342765a69426964575a6d5a584967596d3931626d527a4a796b376247563049473437636d563064584a7549473439646d39705a434177505430395a53596d646d39705a43417750543039636a39755a58636756576c7564446842636e4a68655368304b54703262326c6b49444139505431795032356c64794256615735304f454679636d46354b4851735a536b36626d563349465670626e513451584a7959586b6f6443786c4c4849704c453969616d566a6443357a5a585251636d393062335235634756505a6968754c48557563484a76644739306558426c4b53787566575a31626d4e30615739754948416f64436c376157596f6444343963796c3061484a76647942755a586367556d46755a325646636e4a7663696769515852305a573177644342306279426862477876593246305a4d080253424364575a6d5a584967624746795a3256794948526f5957346762574634615731316253427a6158706c4f694177654349726379353062314e30636d6c755a7967784e696b72496942696558526c637949704f334a6c6448567962694177664852395a6e567559335270623234675a7968304c47557065326c6d4b48557561584e4364575a6d5a58496f64436b70636d563064584a7549485175624756755a33526f4f326c6d4b454679636d4635516e566d5a6d56794c6d6c7a566d6c6c647968304b587838575368304c454679636d4635516e566d5a6d56794b536c795a585231636d3467644335696558526c544756755a33526f4f326c6d4b434a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636756486c775a555679636d39794b43645561475567496e4e30636d6c755a79496759584a6e6457316c626e51676258567a644342695a534276626d55676232596764486c775a53427a64484a70626d637349454a315a6d5a6c636977676233496751584a7959586c4364575a6d5a58497549464a6c59325670646d566b49485235634755674a7974306558426c6232596764436b375932397563335167636a31304c6d786c626d643061437875505746795a3356745a573530637935735a57356e6447672b4d69596d4954413950543168636d64316257567564484e624d6c30376157596f494d080257346d4a6a4139505431794b584a6c64485679626941774f32786c64434270505345784f325a76636967374f796c7a64326c305932676f5a536c375932467a5a534a6863324e70615349365932467a5a534a7359585270626a45694f6d4e6863325569596d6c7559584a35496a70795a585231636d3467636a746a59584e6c496e56305a6a67694f6d4e68633255696458526d4c5467694f6e4a6c64485679626942484b4851704c6d786c626d64306144746a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d563064584a7549444971636a746a59584e6c496d686c65434936636d563064584a754948492b506a34784f324e6863325569596d467a5a545930496a70795a585231636d3467576968304b5335735a57356e644767375a47566d59585673644470705a6968704b584a6c6448567962694275507930784f6b636f64436b75624756755a33526f4f3255394b4349694b3255704c6e5276544739335a584a4459584e6c4b436b73615430684d4831395a6e56755933527062323467625368304c47557363696c376247563049473439495445376157596f4b485a76615751674d44303950575638664755384d436b6d4a69686c505441704c47552b64476870637935735a57356e64476770636d5630644d0802584a75496949376157596f4b485a76615751674d44303950584a386648492b64476870637935735a57356e644767704a69596f636a313061476c7a4c6d786c626d643061436b73636a77394d436c795a585231636d3469496a74705a69676f636a342b506a30774b5477394b47552b506a34394d436b70636d563064584a75496949375a6d39794b4852386643683050534a316447593449696b374f796c7a64326c305932676f64436c375932467a5a534a6f5a5867694f6e4a6c64485679626942504b48526f61584d735a5378794b54746a59584e6c496e56305a6a67694f6d4e68633255696458526d4c5467694f6e4a6c64485679626942424b48526f61584d735a5378794b54746a59584e6c496d467a59326c70496a70795a585231636d34675443683061476c7a4c47557363696b375932467a5a534a7359585270626a45694f6d4e6863325569596d6c7559584a35496a70795a585231636d34676179683061476c7a4c47557363696b375932467a5a534a6959584e6c4e6a51694f6e4a6c64485679626942534b48526f61584d735a5378794b54746a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d563064584a754946516f644768706379786c4c4849704f32526c5a6d4631624851366157596f624d0802696c3061484a76647942755a58636756486c775a555679636d39794b434a56626d747562336475494756755932396b6157356e4f6941694b3351704f3351394b485172496949704c6e5276544739335a584a4459584e6c4b436b73626a30684d4831395a6e56755933527062323467655368304c47557363696c375932397563335167626a3130573256644f3352625a563039644674795853783057334a64505735395a6e56755933527062323467647968304c475573636978754c476b7065326c6d4b444139505431304c6d786c626d643061436c795a585231636d34744d5474705a696769633352796157356e496a303964486c775a57396d4948492f4b47343963697879505441704f6e492b4d6a45304e7a51344d7a59304e7a3979505449784e4463304f444d324e446336636a77744d6a45304e7a51344d7a59304f43596d4b4849394c5449784e4463304f444d324e4467704c45736f636a307263696b6d4a69687950576b2f4d4470304c6d786c626d6430614330784b5378795044416d4a69687950585175624756755a33526f4b3349704c48492b50585175624756755a33526f4b5874705a6968704b584a6c64485679626930784f334939644335735a57356e644767744d58316c62484e6c49476c6d4b4849384d436c376157596f49576b70636d563064584a754c544537636a307766576c6d4b434a7a64484a70626d6369504d08025431306558426c623259675a53596d4b4755396453356d636d39744b47557362696b704c48557561584e4364575a6d5a58496f5a536b70636d563064584a75494441395054316c4c6d786c626d6430614438744d5470324b4851735a5378794c47347361536b376157596f496d353162574a6c6369493950585235634756765a69426c4b584a6c644856796269426c4a6a30794e545573496d5a31626d4e3061573975496a303964486c775a57396d49465670626e513451584a7959586b7563484a76644739306558426c4c6d6c755a4756345432592f61543956615735304f454679636d46354c6e42796233527664486c775a533570626d526c6545396d4c6d4e686247776f6443786c4c4849704f6c5670626e513451584a7959586b7563484a76644739306558426c4c6d78686333524a626d526c6545396d4c6d4e686247776f6443786c4c4849704f6e596f644378625a563073636978754c476b704f33526f636d39334947356c647942556558426c52584a796233496f496e5a686243427464584e3049474a6c49484e30636d6c755a797767626e5674596d56794947397949454a315a6d5a6c6369497066575a31626d4e30615739754948596f6443786c4c484973626978704b5874735a5851676279787a50544573595431304c6d786c626d64306143783150575575624756755a33526f4f326c6d4b485a76615751674d434539504d080257346d4a69676964574e7a4d6949395054306f626a315464484a70626d636f62696b756447394d6233646c636b4e686332556f4b536c3866434a3159334d744d69493950543175664877696458526d4d545a735a53493950543175664877696458526d4c544532624755695054303962696b7065326c6d4b485175624756755a33526f50444a3866475575624756755a33526f50444970636d563064584a754c544537637a30794c47457650544973645338394d6978794c7a307966575a31626d4e30615739754947676f6443786c4b5874795a585231636d34674d54303950584d2f6446746c585470304c6e4a6c59575256535735304d545a435253686c4b6e4d7066576c6d4b476b706532786c64434275505330784f325a766369687650584937627a78684f3238724b796c705a69686f4b48517362796b395054316f4b4755734c54453950543175507a4136627931754b536c376157596f4c544539505431754a69596f626a31764b5378764c5734724d54303950585570636d563064584a75494734716333316c62484e6c4c544568505431754a69596f62793039627931754b5378755053307866575673633255675a6d39794b484972645435684a69596f636a31684c5855704c473839636a7476506a30774f3238744c536c376247563049484939495441375a6d39794b47786c6443427550544137626a78314f3234724b796c705a4d080269686f4b485173627974754b5345395057676f5a5378754b536c37636a30684d547469636d5668613331705a6968794b584a6c644856796269427666584a6c644856796269307866575a31626d4e30615739754947496f6443786c4c48497362696c37636a314f645731695a58496f63696c38664441375932397563335167615431304c6d786c626d6430614331794f32342f4b473439546e5674596d56794b4734704b5435704a69596f626a31704b54707550576b375932397563335167627a316c4c6d786c626d6430614474735a585167637a746d6233496f626a35764c7a496d4a696875505738764d696b73637a30774f334d38626a73724b334d7065324e76626e4e3049473439634746796332564a626e516f5a53357a64574a7a6448496f4d69707a4c4449704c4445324b5474705a69684c4b4734704b584a6c644856796269427a4f3352626369747a5854317566584a6c644856796269427a66575a31626d4e30615739754945306f6443786c4c48497362696c37636d563064584a754946596f5279686c4c485175624756755a33526f4c5849704c485173636978754b58316d6457356a64476c76626942664b4851735a5378794c47347065334a6c64485679626942574b475a31626d4e30615739754b48517065324e76626e4e3049475539573130375a6d39794b47786c6443427950544137636a78304c6d786c626d6430614d08024473724b3349705a53357764584e6f4b4449314e535a304c6d4e6f59584a446232526c5158516f63696b704f334a6c644856796269426c6653686c4b5378304c48497362696c395a6e56755933527062323467525368304c475573636978754b5874795a585231636d3467566968614b4755704c485173636978754b58316d6457356a64476c76626942544b4851735a5378794c47347065334a6c64485679626942574b475a31626d4e30615739754b4851735a536c376247563049484973626978704f324e76626e4e3049473839573130375a6d39794b47786c6443427a50544137637a78304c6d786c626d64306143596d4953676f5a5330394d696b384d436b374b79747a4b5849396443356a614746795132396b5a5546304b484d704c473439636a342b4f4378705058496c4d6a55324c4738756348567a614368704b5378764c6e42316332676f62696b37636d563064584a75494739394b475573644335735a57356e6447677463696b73644378794c47347066575a31626d4e30615739754946496f6443786c4c48497065334a6c6448567962694177505430395a53596d636a303950585175624756755a33526f503234755a6e4a7662554a3564475642636e4a68655368304b5470754c6d5a79623231436558526c51584a7959586b6f6443357a62476c6a5a53686c4c4849704b58316d6457356a64476c76626942424b4851735a4d08025378794b587479505531686447677562576c754b485175624756755a33526f4c4849704f324e76626e4e3049473439573130376247563049476b395a54746d6233496f4f326b38636a737065324e76626e4e304947553964467470585474735a585167627a3175645778734c484d395a5434794d7a6b2f4e44706c506a49794d7a387a4f6d552b4d546b78507a49364d5474705a6968704b334d38505849706532786c644342794c473473595378314f334e336158526a6143687a4b58746a59584e6c494445365a5477784d6a676d4a696876505755704f324a795a5746724f324e68633255674d6a70795058526261537378585377784d6a6739505367784f54496d63696b6d4a6968315053677a4d535a6c4b5477384e6e77324d795a794c48552b4d5449334a69596f627a31314b536b37596e4a6c595773375932467a5a53417a4f6e4939644674704b7a46644c473439644674704b7a4a644c4445794f4430394b4445354d695a794b53596d4d5449345054306f4d546b794a6d34704a69596f6454306f4d54556d5a536b3850444579664367324d795a794b5477384e6e77324d795a754c48552b4d6a41304e79596d4b4855384e5455794f545a386648552b4e54637a4e444d704a69596f627a31314b536b37596e4a6c595773375932467a5a5341304f6e4939644674704b7a46644c473439644674704b7a4a644c474539644674704b4d08027a4e644c4445794f4430394b4445354d695a794b53596d4d5449345054306f4d546b794a6d34704a6959784d6a6739505367784f54496d59536b6d4a696831505367784e535a6c4b5477384d5468384b44597a4a6e4970504477784d6e776f4e6a4d6d62696b3850445a384e6a4d6d59537831506a59314e544d314a695a31504445784d5451784d54496d4a696876505855704b583139626e5673624430395057382f4b4738394e6a55314d7a4d73637a30784b547076506a59314e544d314a69596f627930394e6a55314d7a59736269357764584e6f4b47382b506a34784d4359784d44497a664455314d6a6b324b537876505455324d7a4977664445774d6a4d6d62796b736269357764584e6f4b4738704c476b7250584e39636d563064584a7549475a31626d4e30615739754b48517065324e76626e4e3049475539644335735a57356e644767376157596f5a54773951696c795a585231636d3467553352796157356e4c6d5a7962323144614746795132396b5a533568634842736553685464484a70626d637364436b37624756304948493949694973626a30774f325a7663696737626a786c4f796c794b7a315464484a70626d63755a6e4a7662554e6f59584a446232526c4c6d4677634778354b464e30636d6c755a7978304c6e4e7361574e6c4b4734736269733951696b704f334a6c6448567962694279665368754b58316c4c4d08026d744e5958684d5a57356e64476739637978314c6c525a5545564558304653556b465a58314e5655464250556c51395a6e5675593352706232346f4b587430636e6c375932397563335167644431755a58636756576c7564446842636e4a68655367784b53786c5058746d623238365a6e5675593352706232346f4b5874795a585231636d34674e444a39665474795a585231636d346754324a715a574e304c6e4e6c644642796233527664486c775a55396d4b47557356576c7564446842636e4a6865533577636d393062335235634755704c453969616d566a6443357a5a585251636d393062335235634756505a6968304c4755704c445179505430396443356d6232386f4b58316a5958526a614368304b5874795a585231636d34684d5831394b436b734958557556466c515255526651564a5351566c6655315651554539535643596d496e56755a47566d6157356c5a43496850585235634756765a69426a6232357a6232786c4a695a6a6232357a6232786c4c6d5679636d39794c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368314c6e42796233527664486c775a537769634746795a573530496978375a5735316257567959574a735a546f684d43786e5a5851365a6e5675593352706232346f4b5874705a6968314c6d6c7a516e566d5a6d56794b48526f61584d704b584a6c6448567962694230614d0802476c7a4c6d4a315a6d5a6c636e31394b537850596d706c593351755a47566d6157356c55484a766347567964486b6f64533577636d39306233523563475573496d396d5a6e4e6c64434973653256756457316c636d466962475536495441735a3256304f6d5a31626d4e30615739754b436c376157596f6453357063304a315a6d5a6c6369683061476c7a4b536c795a585231636d346764476870637935696558526c54325a6d63325630665830704c4855756347397662464e70656d55394f4445354d6978314c6d5a79623230395a6e5675593352706232346f6443786c4c48497065334a6c644856796269426f4b4851735a5378794b58307354324a715a574e304c6e4e6c644642796233527664486c775a55396d4b48557563484a76644739306558426c4c465670626e513451584a7959586b7563484a76644739306558426c4b537850596d706c593351756332563055484a76644739306558426c5432596f64537856615735304f454679636d46354b5378314c6d46736247396a50575a31626d4e30615739754b4851735a5378794b5874795a585231636d34675a6e5675593352706232346f6443786c4c48497065334a6c644856796269426d4b4851704c4851385054412f595368304b54703262326c6b494441685054316c50794a7a64484a70626d6369505431306558426c62325967636a39684b4851704c6d5a706247776f5a4d08025378794b5470684b4851704c6d5a706247776f5a536b36595368304b58306f6443786c4c484970665378314c6d46736247396a5657357a59575a6c50575a31626d4e30615739754b48517065334a6c64485679626942734b485170665378314c6d46736247396a5657357a59575a6c55327876647a316d6457356a64476c76626968304b5874795a585231636d3467624368304b5830736453357063304a315a6d5a6c636a316d6457356a64476c76626968304b5874795a585231636d3467626e5673624345396443596d49544139505431304c6c397063304a315a6d5a6c6369596d644345395058557563484a76644739306558426c665378314c6d4e7662584268636d55395a6e5675593352706232346f6443786c4b5874705a69685a4b48517356576c7564446842636e4a6865536b6d4a696830505855755a6e4a76625368304c48517562325a6d633256304c485175596e6c305a55786c626d643061436b704c466b6f5a537856615735304f454679636d46354b53596d4b4755396453356d636d39744b4755735a5335765a6d5a7a5a5851735a5335696558526c544756755a33526f4b536b734958557561584e4364575a6d5a58496f64436c38664346314c6d6c7a516e566d5a6d56794b4755704b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a534169596e566d4d53497349434a6964575979494d0802694268636d64316257567564484d676258567a644342695a534276626d55676232596764486c775a53424364575a6d5a5849676233496756576c7564446842636e4a68655363704f326c6d4b4851395054316c4b584a6c64485679626941774f32786c6443427950585175624756755a33526f4c4734395a5335735a57356e644767375a6d39794b47786c6443427050544173627a314e5958526f4c6d3170626968794c4734704f326b38627a73724b326b706157596f644674705853453950575662615630706533493964467470585378755057566261563037596e4a6c59577439636d563064584a7549484938626a38744d5470755048492f4d546f77665378314c6d6c7a5257356a62325270626d63395a6e5675593352706232346f64436c376333647064474e6f4b464e30636d6c755a7968304b53353062307876643256795132467a5a5367704b58746a59584e6c496d686c654349365932467a5a534a3164475934496a706a59584e6c496e56305a693034496a706a59584e6c496d467a59326c70496a706a59584e6c496d786864476c754d5349365932467a5a534a6961573568636e6b694f6d4e6863325569596d467a5a545930496a706a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d5630644d0802584a75495441375a47566d59585673644470795a585231636d34684d5831394c485575593239755932463050575a31626d4e30615739754b4851735a536c376157596f49554679636d46354c6d6c7a51584a7959586b6f64436b706447687962336367626d56334946523563475646636e4a766369676e496d787063335169494746795a3356745a5735304947313163335167596d55675957346751584a7959586b6762325967516e566d5a6d5679637963704f326c6d4b444139505431304c6d786c626d643061436c795a585231636d34676453356862477876597967774b5474735a585167636a74705a69683262326c6b494441395054316c4b575a766369686c50544173636a30774f334938644335735a57356e644767374b7974794b57557250585262636c3075624756755a33526f4f324e76626e4e30494734396453356862477876593156756332466d5a53686c4b5474735a585167615430774f325a766369687950544137636a78304c6d786c626d6430614473724b3349706532786c6443426c50585262636c30376157596f5753686c4c465670626e513451584a7959586b704b576b725a5335735a57356e6447672b626935735a57356e6447672f4b48557561584e4364575a6d5a58496f5a536c386643686c505855755a6e4a766253686c4b536b735a53356a623342354b47347361536b704f6c5670626e513451584a79594d0802586b7563484a76644739306558426c4c6e4e6c6443356a595778734b4734735a5378704b54746c62484e6c65326c6d4b4346314c6d6c7a516e566d5a6d56794b4755704b58526f636d39334947356c647942556558426c52584a796233496f4a794a7361584e3049694268636d6431625756756443427464584e3049474a6c4947467549454679636d46354947396d49454a315a6d5a6c636e4d6e4b54746c4c6d4e7663486b6f626978704b5831704b7a316c4c6d786c626d6430614831795a585231636d3467626e3073645335696558526c544756755a33526f5057637364533577636d3930623352356347557558326c7a516e566d5a6d5679505345774c48557563484a76644739306558426c4c6e4e33595841784e6a316d6457356a64476c766269677065324e76626e4e304948513964476870637935735a57356e644767376157596f64435579495430774b58526f636d39334947356c647942535957356e5a555679636d39794b434a4364575a6d5a58496763326c365a53427464584e3049474a6c494745676258567364476c7762475567623259674d545974596d6c30637949704f325a76636968735a5851675a5430774f3255386444746c4b7a30794b586b6f644768706379786c4c4755724d536b37636d563064584a754948526f61584e394c48557563484a76644739306558426c4c6e4e335958417a4d6a316d6457356a644d0802476c766269677065324e76626e4e304948513964476870637935735a57356e644767376157596f64435530495430774b58526f636d39334947356c647942535957356e5a555679636d39794b434a4364575a6d5a58496763326c365a53427464584e3049474a6c494745676258567364476c7762475567623259674d7a4974596d6c30637949704f325a76636968735a5851675a5430774f3255386444746c4b7a30304b586b6f644768706379786c4c4755724d796b736553683061476c7a4c4755724d53786c4b7a49704f334a6c644856796269423061476c7a665378314c6e42796233527664486c775a53357a643246774e6a51395a6e5675593352706232346f4b58746a6232357a644342305058526f61584d75624756755a33526f4f326c6d4b48516c4f4345394d436c3061484a76647942755a586367556d46755a325646636e4a7663696769516e566d5a6d567949484e70656d55676258567a644342695a53426849473131624852706347786c4947396d494459304c574a7064484d694b54746d6233496f62475630494755394d44746c504851375a5373394f436c354b48526f61584d735a53786c4b7a63704c486b6f644768706379786c4b7a45735a5373324b5378354b48526f61584d735a5373794c4755724e536b736553683061476c7a4c4755724d79786c4b7a51704f334a6c644856796269423061476c7a665378314c4d08026e42796233527664486c775a53353062314e30636d6c755a7a316d6457356a64476c766269677065324e76626e4e304948513964476870637935735a57356e64476737636d563064584a754944413950543130507949694f6a413950543168636d64316257567564484d75624756755a33526f5030456f64476870637977774c4851704f6d30755958427762486b6f6447687063797868636d64316257567564484d70665378314c6e42796233527664486c775a53353062307876593246735a564e30636d6c755a7a31314c6e42796233527664486c775a53353062314e30636d6c755a7978314c6e42796233527664486c775a53356c6358566862484d395a6e5675593352706232346f64436c376157596f4958557561584e4364575a6d5a58496f64436b706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a53426849454a315a6d5a6c636949704f334a6c644856796269423061476c7a50543039644878384d4430395058557559323974634746795a53683061476c7a4c485170665378314c6e42796233527664486c775a533570626e4e775a574e3050575a31626d4e30615739754b436c376247563049485139496949375932397563335167636a316c4c6b6c4f55314246513152665455465958304a5a564556544f334a6c64485679626942305058526f614d0802584d756447395464484a70626d636f496d686c654349734d4378794b5335795a58427359574e6c4b43386f4c6e737966536b765a7977694a44456749696b7564484a70625367704c48526f61584d75624756755a33526f506e496d4a6968304b7a3069494334754c6941694b53776950454a315a6d5a6c636941694b335172496a3469665378764a69596f64533577636d393062335235634756626231303964533577636d393062335235634755756157357a6347566a64436b7364533577636d3930623352356347557559323974634746795a54316d6457356a64476c76626968304c475573636978754c476b7065326c6d4b466b6f64437856615735304f454679636d46354b53596d4b4851396453356d636d39744b485173644335765a6d5a7a5a585173644335696558526c544756755a33526f4b536b734958557561584e4364575a6d5a58496f64436b706447687962336367626d56334946523563475646636e4a766369676e5647686c49434a3059584a6e5a585169494746795a3356745a5735304947313163335167596d55676232356c4947396d4948523563475567516e566d5a6d56794947397949465670626e513451584a7959586b7549464a6c59325670646d566b49485235634755674a7974306558426c6232596764436b376157596f646d39705a434177505430395a53596d4b4755394d436b73646d39705a434177504d08025430396369596d4b484939644439304c6d786c626d643061446f774b53783262326c6b49444139505431754a69596f626a30774b53783262326c6b49444139505431704a69596f6154313061476c7a4c6d786c626d643061436b735a54777766487879506e5175624756755a33526f664878755044423866476b2b64476870637935735a57356e644767706447687962336367626d563349464a68626d646c52584a796233496f496d3931644342765a6942795957356e5a534270626d526c654349704f326c6d4b47342b50576b6d4a6d552b50584970636d563064584a75494441376157596f626a343961536c795a585231636d34744d5474705a69686c506a31794b584a6c64485679626941784f326c6d4b48526f61584d39505431304b584a6c64485679626941774f32786c6443427650536870506a342b505441704c536875506a342b505441704c484d394b48492b506a34394d436b744b47552b506a34394d436b3759323975633351675954314e5958526f4c6d3170626968764c484d704c476739644768706379357a62476c6a5a5368754c476b704c4759396443357a62476c6a5a53686c4c4849704f325a76636968735a585167644430774f335138595473724b3351706157596f614674305853453950575a626446307065323839614674305853787a50575a6264463037596e4a6c59577439636d563064584a7549473838634d08027a38744d54707a5047382f4d546f77665378314c6e42796233527664486c775a533570626d4e736457526c637a316d6457356a64476c76626968304c47557363696c37636d563064584a754c5445685054313061476c7a4c6d6c755a4756345432596f6443786c4c484970665378314c6e42796233527664486c775a533570626d526c6545396d50575a31626d4e30615739754b4851735a5378794b5874795a585231636d34676479683061476c7a4c4851735a5378794c4345774b58307364533577636d393062335235634755756247467a64456c755a475634543259395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942334b48526f61584d736443786c4c48497349544570665378314c6e42796233527664486c775a533533636d6c305a54316d6457356a64476c76626968304c475573636978754b5874705a69683262326c6b494441395054316c4b573439496e56305a6a67694c48493964476870637935735a57356e644767735a5430774f325673633255676157596f646d39705a434177505430396369596d496e4e30636d6c755a79493950585235634756765a69426c4b5734395a5378795058526f61584d75624756755a33526f4c4755394d44746c62484e6c65326c6d4b43467063305a70626d6c305a53686c4b536c3061484a76647942755a58636752584a796233496f496b4a315a6d5a6c634d0802693533636d6c305a53687a64484a70626d6373494756755932396b6157356e4c4342765a6d5a7a5a5852624c4342735a57356e644768644b53427063794275627942736232356e5a58496763335677634739796447566b49696b375a54342b506a30774c476c7a526d6c756158526c4b48497050796879506a342b50544173646d39705a434177505430396269596d4b473439496e56305a6a67694b536b364b4734396369787950585a76615751674d436c3959323975633351676154313061476c7a4c6d786c626d64306143316c4f326c6d4b43683262326c6b494441395054317966487879506d6b704a69596f636a31704b5378304c6d786c626d6430614434774a69596f636a77776648786c504441706648786c506e526f61584d75624756755a33526f4b58526f636d39334947356c647942535957356e5a555679636d39794b434a426448526c6258423049485276494864796158526c4947393164484e705a475567596e566d5a6d567949474a766457356b637949704f3235386643687550534a316447593449696b376247563049473839495445375a6d39794b4473374b584e336158526a614368754b58746a59584e6c496d686c65434936636d563064584a754947496f64476870637978304c47557363696b375932467a5a534a3164475934496a706a59584e6c496e56305a693034496a70795a585231636d346754536830614d0802476c7a4c4851735a5378794b54746a59584e6c496d467a59326c70496a706a59584e6c496d786864476c754d5349365932467a5a534a6961573568636e6b694f6e4a6c64485679626942664b48526f61584d736443786c4c4849704f324e6863325569596d467a5a545930496a70795a585231636d34675253683061476c7a4c4851735a5378794b54746a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a534936636d563064584a7549464d6f64476870637978304c47557363696b375a47566d59585673644470705a6968764b58526f636d39334947356c647942556558426c52584a796233496f496c567561323576643234675a57356a62325270626d63364943497262696b37626a306f4969497262696b756447394d6233646c636b4e686332556f4b537876505345776658307364533577636d393062335235634755756447394b5530394f50575a31626d4e30615739754b436c37636d563064584a756533523563475536496b4a315a6d5a6c636949735a47463059547042636e4a6865533577636d393062335235634755756332787059325575593246736243683061476c7a4c6c3968636e4a386648526f61584d734d436c396654746a6232357a64434243505451774f5459375a6e56755933527062323467544d08024368304c47557363696c37624756304947343949694937636a314e5958526f4c6d3170626968304c6d786c626d6430614378794b54746d6233496f6247563049476b395a547470504849374b7974704b57347250564e30636d6c755a79356d636d397451326868636b4e765a47556f4d5449334a6e5262615630704f334a6c644856796269427566575a31626d4e30615739754947736f6443786c4c4849706532786c64434275505349694f33493954574630614335746157346f644335735a57356e6447677363696b375a6d39794b47786c6443427050575537615478794f79737261536c754b7a315464484a70626d63755a6e4a7662554e6f59584a446232526c4b485262615630704f334a6c644856796269427566575a31626d4e30615739754945386f6443786c4c48497065324e76626e4e3049473439644335735a57356e644767374b43466c6648786c504441704a69596f5a5430774b53776f49584a38664849384d487838636a35754b53596d4b48493962696b376247563049476b39496949375a6d39794b47786c6443427550575537626a78794f79737262696c704b7a315957335262626c31644f334a6c644856796269427066575a31626d4e30615739754946516f6443786c4c48497065324e76626e4e30494734396443357a62476c6a5a53686c4c4849704f32786c64434270505349694f325a76636968735a585167644d08024430774f335138626935735a57356e644767744d5474304b7a30794b576b7250564e30636d6c755a79356d636d397451326868636b4e765a47556f626c7430585373794e545971626c74304b7a46644b5474795a585231636d34676158316d6457356a64476c76626942344b4851735a5378794b5874705a6968304a54456850544238664851384d436c3061484a76647942755a586367556d46755a325646636e4a766369676962325a6d6332563049476c7a49473576644342316157353049696b376157596f6443746c506e49706447687962336367626d563349464a68626d646c52584a796233496f496c527965576c755a7942306279426859324e6c63334d67596d56356232356b49474a315a6d5a6c636942735a57356e644767694b58316d6457356a64476c766269424f4b4851735a5378794c473473615378764b5874705a6967686453357063304a315a6d5a6c636968304b536c3061484a76647942755a58636756486c775a555679636d39794b436369596e566d5a6d567949694268636d6431625756756443427464584e3049474a6c49474567516e566d5a6d567949476c7563335268626d4e6c4a796b376157596f5a5435706648786c504738706447687962336367626d563349464a68626d646c52584a796233496f4a794a32595778315a53496759584a6e6457316c626e516761584d67623356304947396d49474a76644d080257356b637963704f326c6d4b484972626a35304c6d786c626d643061436c3061484a76647942755a586367556d46755a325646636e4a76636967695357356b5a586767623356304947396d49484a68626d646c49696c395a6e56755933527062323467535368304c475573636978754c476b7065336f6f5a5378754c476b73644378794c4463704f32786c644342765055353162574a6c6369686c4a6b4a705a306c75644367304d6a6b304f5459334d6a6b314b536b37644674794b79746450573873627a342b50546773644674794b79746450573873627a342b50546773644674794b79746450573873627a342b50546773644674794b797464505738376247563049484d39546e5674596d56794b47552b506b4a705a306c756443677a4d696b6d516d6c6e535735304b4451794f5451354e6a63794f5455704b5474795a585231636d3467644674794b79746450584d73637a342b50546773644674794b79746450584d73637a342b50546773644674794b79746450584d73637a342b50546773644674794b79746450584d73636e316d6457356a64476c76626942444b4851735a5378794c47347361536c376569686c4c473473615378304c4849734e796b376247563049473839546e5674596d56794b47556d516d6c6e535735304b4451794f5451354e6a63794f5455704b547430573349724e31303962797876506a34394f437830574d08023349724e6c303962797876506a34394f437830573349724e56303962797876506a34394f437830573349724e463039627a74735a585167637a314f645731695a58496f5a54342b516d6c6e535735304b444d794b535a436157644a626e516f4e4449354e446b324e7a49354e536b704f334a6c6448567962694230573349724d3130396379787a506a34394f437830573349724d6c30396379787a506a34394f437830573349724d5630396379787a506a34394f43783057334a6450584d736369733466575a31626d4e30615739754946556f6443786c4c484973626978704c47387065326c6d4b484972626a35304c6d786c626d643061436c3061484a76647942755a586367556d46755a325646636e4a76636967695357356b5a586767623356304947396d49484a68626d646c49696b376157596f636a77774b58526f636d39334947356c647942535957356e5a555679636d39794b434a4a626d526c654342766458516762325967636d46755a3255694b58316d6457356a64476c76626942514b4851735a5378794c47347362796c37636d563064584a75494755394b325573636a342b506a30774c4739386646556f644377774c4849734e436b7361533533636d6c305a5368304c475573636978754c44497a4c4451704c4849724e48316d6457356a64476c76626942714b4851735a5378794c47347362796c37636d563064584a75494d08024755394b325573636a342b506a30774c4739386646556f644377774c4849734f436b7361533533636d6c305a5368304c475573636978754c4455794c4467704c4849724f4831314c6e42796233527664486c775a53357a62476c6a5a54316d6457356a64476c76626968304c47557065324e76626e4e304948493964476870637935735a57356e644767374b485139666e35304b547777507968304b7a31794b5477774a69596f644430774b547030506e496d4a696830505849704c43686c50585a76615751674d4430395057552f636a702b666d55705044412f4b475572505849705044416d4a69686c505441704f6d552b6369596d4b47553963696b735a5478304a69596f5a5431304b54746a6232357a644342755058526f61584d756333566959584a7959586b6f6443786c4b5474795a585231636d346754324a715a574e304c6e4e6c644642796233527664486c775a55396d4b47347364533577636d393062335235634755704c4735394c48557563484a76644739306558426c4c6e4a6c59575256615735305445553964533577636d39306233523563475575636d56685a46564a626e524d5254316d6457356a64476c76626968304c47557363696c376444342b506a30774c47552b506a34394d437879664878344b4851735a53783061476c7a4c6d786c626d643061436b376247563049473439644768706331743058537870504d0802544573627a30774f325a76636967374b7974765047556d4a6968704b6a30794e5459704f796c754b7a313061476c7a5733517262313071615474795a585231636d3467626e307364533577636d39306233523563475575636d56685a465670626e5243525431314c6e42796233527664486c775a5335795a57466b56556c7564454a4650575a31626d4e30615739754b4851735a5378794b587430506a342b505441735a54342b506a30774c484a386648676f6443786c4c48526f61584d75624756755a33526f4b5474735a585167626a313061476c7a573351724c53316c58537870505445375a6d39794b44746c506a416d4a6968704b6a30794e5459704f796c754b7a313061476c7a573351724c53316c585370704f334a6c6448567962694275665378314c6e42796233527664486c775a5335795a57466b56576c756444673964533577636d39306233523563475575636d56685a46564a626e513450575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734d53783061476c7a4c6d786c626d643061436b7364476870633174305858307364533577636d39306233523563475575636d56685a465670626e51784e6b78465058557563484a76644739306558426c4c6e4a6c59575256535735304d545a4d5254316d6457356a64476c76626968304c47557065334a6c644d080248567962694230506a342b505441735a587838654368304c44497364476870637935735a57356e644767704c48526f61584e626446313864476870633174304b7a466450447734665378314c6e42796233527664486c775a5335795a57466b56576c7564444532516b553964533577636d39306233523563475575636d56685a46564a626e51784e6b4a4650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734d69783061476c7a4c6d786c626d643061436b736447687063317430585477384f48783061476c7a573351724d5631394c48557563484a76644739306558426c4c6e4a6c59575256615735304d7a4a4d525431314c6e42796233527664486c775a5335795a57466b56556c7564444d79544555395a6e5675593352706232346f6443786c4b5874795a585231636d34676444342b506a30774c4756386648676f644377304c48526f61584d75624756755a33526f4b53776f64476870633174305858783061476c7a573351724d5630385044683864476870633174304b7a4a64504477784e696b724d5459334e7a63794d54597164476870633174304b7a4e64665378314c6e42796233527664486c775a5335795a57466b56576c7564444d79516b553964533577636d39306233523563475575636d56685a46564a626e517a4d6b4a4650575a31626d4e30614d08025739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734e43783061476c7a4c6d786c626d643061436b734d5459334e7a63794d54597164476870633174305853736f64476870633174304b7a4664504477784e6e783061476c7a573351724d6c30385044683864476870633174304b7a4e644b58307364533577636d39306233523563475575636d56685a454a705a31564a626e51324e45784650556f6f4b475a31626d4e30615739754b4851706531636f6444342b506a30774c434a765a6d5a7a5a5851694b54746a6232357a6443426c5058526f61584e6264463073636a313061476c7a573351724e313037646d39705a434177495430395a53596d646d39705a43417749543039636e78384a4368304c48526f61584d75624756755a33526f4c5467704f324e76626e4e30494734395a5373794e54597164476870633173724b3352644b7a59314e544d324b6e526f61584e624b7974305853743061476c7a57797372644630714d696f714d6a51736154313061476c7a57797372644630724d6a55324b6e526f61584e624b797430585373324e54557a4e69703061476c7a577973726446307263696f794b696f794e4474795a585231636d3467516d6c6e535735304b4734704b7968436157644a626e516f61536b3850454a705a306c756443677a4d696b7066536b704c48557563484a76644d08024739306558426c4c6e4a6c5957524361576456535735304e6a52435254314b4b43686d6457356a64476c76626968304b5874584b48512b506a34394d43776962325a6d6332563049696b3759323975633351675a54313061476c7a573352644c48493964476870633174304b7a64644f335a76615751674d4345395057556d4a6e5a76615751674d43453950584a386643516f6443783061476c7a4c6d786c626d6430614330344b54746a6232357a64434275505755714d696f714d6a51724e6a55314d7a597164476870633173724b3352644b7a49314e69703061476c7a577973726446307264476870633173724b3352644c476b3964476870633173724b3352644b6a49714b6a49304b7a59314e544d324b6e526f61584e624b797430585373794e54597164476870633173724b3352644b334937636d563064584a754b454a705a306c75644368754b547738516d6c6e535735304b444d794b536b72516d6c6e535735304b476b7066536b704c48557563484a76644739306558426c4c6e4a6c5957524a626e524d5254316d6457356a64476c76626968304c47557363696c376444342b506a30774c47552b506a34394d437879664878344b4851735a53783061476c7a4c6d786c626d643061436b37624756304947343964476870633174305853787050544573627a30774f325a76636967374b7974765047556d4a6968704b6a30794e4d08025459704f796c754b7a313061476c7a5733517262313071615474795a585231636d346761536f394d5449344c47342b50576b6d4a6968754c54314e5958526f4c6e4276647967794c4467715a536b704c4735394c48557563484a76644739306558426c4c6e4a6c5957524a626e52435254316d6457356a64476c76626968304c47557363696c376444342b506a30774c47552b506a34394d437879664878344b4851735a53783061476c7a4c6d786c626d643061436b3762475630494734395a53787050544573627a313061476c7a573351724c5331755854746d6233496f4f32342b4d43596d4b476b71505449314e696b374b5738725058526f61584e62644373744c5735644b6d6b37636d563064584a7549476b71505445794f437876506a31704a69596f6279303954574630614335776233636f4d6977344b6d55704b537876665378314c6e42796233527664486c775a5335795a57466b535735304f44316d6457356a64476c76626968304c47557065334a6c6448567962694230506a342b505441735a587838654368304c44457364476870637935735a57356e644767704c4445794f435a3061476c7a57335264507930784b6967794e5455746447687063317430585373784b54703061476c7a57335264665378314c6e42796233527664486c775a5335795a57466b535735304d545a4d5254316d6457356a64476c76626968304c4d08024755706533512b506a34394d43786c664878344b4851734d69783061476c7a4c6d786c626d643061436b375932397563335167636a313061476c7a573352646648526f61584e6264437378585477384f4474795a585231636d34674d7a49334e6a676d636a38304d6a6b304f5441784e7a597766484936636e307364533577636d39306233523563475575636d56685a456c7564444532516b55395a6e5675593352706232346f6443786c4b587430506a342b505441735a587838654368304c44497364476870637935735a57356e644767704f324e76626e4e304948493964476870633174304b7a46646648526f61584e626446303850446737636d563064584a7549444d794e7a59344a6e492f4e4449354e446b774d5463324d4878794f6e4a394c48557563484a76644739306558426c4c6e4a6c5957524a626e517a4d6b784650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734e43783061476c7a4c6d786c626d643061436b7364476870633174305858783061476c7a573351724d5630385044683864476870633174304b7a4a64504477784e6e783061476c7a573351724d31303850444930665378314c6e42796233527664486c775a5335795a57466b535735304d7a4a435254316d6457356a64476c76626968304c47557065334a6c6448567962694230504d08026a342b505441735a587838654368304c44517364476870637935735a57356e644767704c48526f61584e6264463038504449306648526f61584e6264437378585477384d545a3864476870633174304b7a4a64504477346648526f61584e626443737a5858307364533577636d39306233523563475575636d56685a454a705a306c7564445930544555395369676f5a6e5675593352706232346f64436c3756796830506a342b50544173496d396d5a6e4e6c644349704f324e76626e4e30494755396447687063317430585378795058526f61584e62644373335854743262326c6b494441685054316c4a695a3262326c6b49444168505431796648776b4b48517364476870637935735a57356e644767744f436b375932397563335167626a313061476c7a573351724e4630724d6a55324b6e526f61584e6264437331585373324e54557a4e69703061476c7a573351724e6c30724b484938504449304b5474795a585231636d346f516d6c6e535735304b473470504478436157644a626e516f4d7a49704b5374436157644a626e516f5a5373794e54597164476870633173724b3352644b7a59314e544d324b6e526f61584e624b7974305853743061476c7a57797372644630714d696f714d6a517066536b704c48557563484a76644739306558426c4c6e4a6c595752436157644a626e51324e454a4650556f6f4b475a31626d4e30614d08025739754b4851706531636f6444342b506a30774c434a765a6d5a7a5a5851694b54746a6232357a6443426c5058526f61584e6264463073636a313061476c7a573351724e313037646d39705a434177495430395a53596d646d39705a43417749543039636e78384a4368304c48526f61584d75624756755a33526f4c5467704f324e76626e4e30494734394b475538504449304b5373324e54557a4e69703061476c7a57797372644630724d6a55324b6e526f61584e624b7974305853743061476c7a5779737264463037636d563064584a754b454a705a306c75644368754b547738516d6c6e535735304b444d794b536b72516d6c6e535735304b48526f61584e624b79743058536f794b696f794e4373324e54557a4e69703061476c7a57797372644630724d6a55324b6e526f61584e624b797430585374794b5830704b5378314c6e42796233527664486c775a5335795a57466b526d78765958524d5254316d6457356a64476c76626968304c47557065334a6c6448567962694230506a342b505441735a587838654368304c44517364476870637935735a57356e644767704c476b75636d56685a43683061476c7a4c485173495441734d6a4d734e436c394c48557563484a76644739306558426c4c6e4a6c595752476247396864454a4650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d4d080243786c664878344b4851734e43783061476c7a4c6d786c626d643061436b73615335795a57466b4b48526f61584d73644377684d5377794d7977304b58307364533577636d39306233523563475575636d56685a45527664574a735a55784650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734f43783061476c7a4c6d786c626d643061436b73615335795a57466b4b48526f61584d73644377684d4377314d6977344b58307364533577636d39306233523563475575636d56685a45527664574a735a554a4650575a31626d4e30615739754b4851735a536c37636d563064584a754948512b506a34394d43786c664878344b4851734f43783061476c7a4c6d786c626d643061436b73615335795a57466b4b48526f61584d73644377684d5377314d6977344b58307364533577636d3930623352356347557564334a7064475656615735305445553964533577636d3930623352356347557564334a706447565653573530544555395a6e5675593352706232346f6443786c4c48497362696c376157596f644430726443786c506a342b50544173636a342b506a30774c4346754b58744f4b48526f61584d736443786c4c48497354574630614335776233636f4d6977344b6e49704c5445734d436c396247563049476b394d537876505441375a6d39794b48526f614d0802584e625a5630394d6a55314a6e51374b7974765048496d4a6968704b6a30794e5459704f796c3061476c7a5732557262313039644339704a6a49314e5474795a585231636d34675a537479665378314c6e42796233527664486c775a533533636d6c305a565670626e5243525431314c6e42796233527664486c775a533533636d6c305a56564a626e52435254316d6457356a64476c76626968304c475573636978754b5874705a696830505374304c47552b506a34394d437879506a342b50544173495734706530346f64476870637978304c4755736369784e5958526f4c6e4276647967794c44677163696b744d5377774b5831735a585167615431794c544573627a30784f325a766369683061476c7a57325572615630394d6a55314a6e51374c533170506a30774a69596f62796f394d6a55324b547370644768706331746c4b326c6450585176627959794e545537636d563064584a7549475572636e307364533577636d3930623352356347557564334a7064475656615735304f4431314c6e42796233527664486c775a533533636d6c305a56564a626e513450575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377784c4449314e5377774b53783061476c7a57325664505449314e535a304c4755724d583073644d0802533577636d3930623352356347557564334a7064475656615735304d545a4d525431314c6e42796233527664486c775a533533636d6c305a56564a626e51784e6b784650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377794c4459314e544d314c4441704c48526f61584e625a5630394d6a55314a6e5173644768706331746c4b7a46645058512b506a34344c4755724d6e307364533577636d3930623352356347557564334a7064475656615735304d545a43525431314c6e42796233527664486c775a533533636d6c305a56564a626e51784e6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377794c4459314e544d314c4441704c48526f61584e625a5630396444342b506a6773644768706331746c4b7a4664505449314e535a304c4755724d6e307364533577636d3930623352356347557564334a7064475656615735304d7a4a4d525431314c6e42796233527664486c775a533533636d6c305a56564a626e517a4d6b784650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4d08024851735a5377304c4451794f5451354e6a63794f5455734d436b73644768706331746c4b7a4e645058512b506a34794e43783061476c7a573255724d6c30396444342b506a45324c48526f61584e625a53737858543130506a342b4f43783061476c7a57325664505449314e535a304c4755724e48307364533577636d3930623352356347557564334a7064475656615735304d7a4a43525431314c6e42796233527664486c775a533533636d6c305a56564a626e517a4d6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377304c4451794f5451354e6a63794f5455734d436b73644768706331746c58543130506a342b4d6a5173644768706331746c4b7a46645058512b506a34784e69783061476c7a573255724d6c30396444342b506a6773644768706331746c4b7a4e64505449314e535a304c4755724e48307364533577636d3930623352356347557564334a706447564361576456535735304e6a524d5254314b4b43686d6457356a64476c76626968304c4755394d436c37636d563064584a7549456b6f64476870637978304c475573516d6c6e535735304b4441704c454a705a306c75644367694d48686d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d49696b7066536b704c48557563484a76644d08024739306558426c4c6e64796158526c516d6c6e56556c7564445930516b55395369676f5a6e5675593352706232346f6443786c5054417065334a6c64485679626942444b48526f61584d736443786c4c454a705a306c75644367774b5378436157644a626e516f496a42345a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6949704b5830704b5378314c6e42796233527664486c775a533533636d6c305a556c756445784650575a31626d4e30615739754b4851735a5378794c47347065326c6d4b4851394b3351735a54342b506a30774c4346754b58746a6232357a644342755055316864476775634739334b4449734f4370794c5445704f30346f64476870637978304c475573636978754c5445734c5734706657786c6443427050544173627a30784c484d394d44746d6233496f644768706331746c585430794e54556d644473724b326b386369596d4b473871505449314e696b374b5851384d43596d4d44303950584d6d4a6a41685054313061476c7a57325572615330785853596d4b484d394d536b73644768706331746c4b326c64505368304c32382b506a41704c584d6d4d6a55314f334a6c644856796269426c4b334a394c48557563484a76644739306558426c4c6e64796158526c53573530516b55395a6e5675593352706232346f6443786c4c48497362696c376157596f644430726443786c506a342b50544173494d080257347065324e76626e4e304947343954574630614335776233636f4d6977344b6e49744d536b375469683061476c7a4c4851735a5378794c4734744d53777462696c396247563049476b39636930784c4738394d53787a505441375a6d39794b48526f61584e625a537470585430794e54556d644473744c576b2b5054416d4a6968764b6a30794e5459704f796c305044416d4a6a41395054317a4a69597749543039644768706331746c4b326b724d56306d4a69687a505445704c48526f61584e625a5374705854306f64433976506a34774b53317a4a6a49314e5474795a585231636d34675a537479665378314c6e42796233527664486c775a533533636d6c305a556c75644467395a6e5675593352706232346f6443786c4c48497065334a6c6448567962694230505374304c47552b506a34394d4378796648784f4b48526f61584d736443786c4c4445734d5449334c4330784d6a67704c4851384d43596d4b4851394d6a55314b3351724d536b73644768706331746c585430794e54556d6443786c4b7a46394c48557563484a76644739306558426c4c6e64796158526c535735304d545a4d5254316d6457356a64476c76626968304c47557363696c37636d563064584a75494851394b3351735a54342b506a30774c484a386645346f64476870637978304c4755734d69777a4d6a63324e7977744d7a49334e6a67704c48526f614d0802584e625a5630394d6a55314a6e5173644768706331746c4b7a46645058512b506a34344c4755724d6e307364533577636d3930623352356347557564334a706447564a626e51784e6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e78385469683061476c7a4c4851735a5377794c444d794e7a59334c43307a4d6a63324f436b73644768706331746c58543130506a342b4f43783061476c7a573255724d5630394d6a55314a6e51735a537379665378314c6e42796233527664486c775a533533636d6c305a556c7564444d79544555395a6e5675593352706232346f6443786c4c48497065334a6c6448567962694230505374304c47552b506a34394d4378796648784f4b48526f61584d736443786c4c4451734d6a45304e7a51344d7a59304e7977744d6a45304e7a51344d7a59304f436b73644768706331746c585430794e54556d6443783061476c7a573255724d5630396444342b506a6773644768706331746c4b7a4a645058512b506a34784e69783061476c7a573255724d3130396444342b506a49304c4755724e48307364533577636d3930623352356347557564334a706447564a626e517a4d6b4a4650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467644430726443786c506a342b50544173636e7838544d080269683061476c7a4c4851735a5377304c4449784e4463304f444d324e4463734c5449784e4463304f444d324e4467704c4851384d43596d4b4851394e4449354e446b324e7a49354e5374304b7a45704c48526f61584e625a5630396444342b506a49304c48526f61584e625a53737858543130506a342b4d545973644768706331746c4b7a4a645058512b506a34344c48526f61584e625a53737a585430794e54556d6443786c4b7a52394c48557563484a76644739306558426c4c6e64796158526c516d6c6e535735304e6a524d5254314b4b43686d6457356a64476c76626968304c4755394d436c37636d563064584a7549456b6f64476870637978304c4755734c554a705a306c75644367694d4867344d4441774d4441774d4441774d4441774d44417749696b73516d6c6e535735304b4349776544646d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d59694b536c394b536b7364533577636d3930623352356347557564334a70644756436157644a626e51324e454a4650556f6f4b475a31626d4e30615739754b4851735a5430774b5874795a585231636d34675179683061476c7a4c4851735a537774516d6c6e535735304b434977654467774d4441774d4441774d4441774d4441774d4441694b5378436157644a626e516f496a42344e325a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6d5a6949704b5830704b5378314c6e4279624d080233527664486c775a533533636d6c305a555a7362324630544555395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942514b48526f61584d736443786c4c4345774c484970665378314c6e42796233527664486c775a533533636d6c305a555a7362324630516b55395a6e5675593352706232346f6443786c4c48497065334a6c64485679626942514b48526f61584d736443786c4c4345784c484970665378314c6e42796233527664486c775a533533636d6c305a55527664574a735a55784650575a31626d4e30615739754b4851735a5378794b5874795a585231636d34676169683061476c7a4c4851735a5377684d4378794b58307364533577636d3930623352356347557564334a706447564562335669624756435254316d6457356a64476c76626968304c47557363696c37636d563064584a7549476f6f64476870637978304c4755734954457363696c394c48557563484a76644739306558426c4c6d4e7663486b395a6e5675593352706232346f6443786c4c48497362696c376157596f4958557561584e4364575a6d5a58496f64436b706447687962336367626d56334946523563475646636e4a766369676959584a6e6457316c626e5167633268766457786b49474a6c49474567516e566d5a6d567949696b376157596f636e78384b4849394d436b73626e78384d4430395057353866436875504d080258526f61584d75624756755a33526f4b53786c506a31304c6d786c626d64306143596d4b475539644335735a57356e644767704c4756386643686c505441704c47342b4d43596d626a78794a69596f626a31794b5378755054303963696c795a585231636d34674d4474705a69677750543039644335735a57356e64476838664441395054313061476c7a4c6d786c626d643061436c795a585231636d34674d4474705a69686c504441706447687962336367626d563349464a68626d646c52584a796233496f496e5268636d646c64464e3059584a3049473931644342765a694269623356755a484d694b5474705a696879504442386648492b5058526f61584d75624756755a33526f4b58526f636d39334947356c647942535957356e5a555679636d39794b434a4a626d526c654342766458516762325967636d46755a3255694b5474705a696875504441706447687962336367626d563349464a68626d646c52584a796233496f496e4e7664584a6a5a5556755a4342766458516762325967596d3931626d527a49696b37626a353061476c7a4c6d786c626d64306143596d4b47343964476870637935735a57356e644767704c485175624756755a33526f4c575538626931794a69596f626a31304c6d786c626d64306143316c4b3349704f324e76626e4e3049476b39626931794f334a6c644856796269423061476c7a50543039644d080243596d496d5a31626d4e3061573975496a303964486c775a57396d49465670626e513451584a7959586b7563484a76644739306558426c4c6d4e7663486c586158526f6157342f644768706379356a6233423556326c3061476c754b475573636978754b547056615735304f454679636d46354c6e42796233527664486c775a53357a5a58517559324673624368304c48526f61584d756333566959584a7959586b6f636978754b53786c4b537870665378314c6e42796233527664486c775a53356d6157787350575a31626d4e30615739754b4851735a5378794c47347065326c6d4b434a7a64484a70626d6369505431306558426c6232596764436c376157596f496e4e30636d6c755a79493950585235634756765a69426c50796875505755735a5430774c48493964476870637935735a57356e644767704f694a7a64484a70626d6369505431306558426c623259676369596d4b473439636978795058526f61584d75624756755a33526f4b53783262326c6b49444168505431754a695969633352796157356e4969453964486c775a57396d494734706447687962336367626d56334946523563475646636e4a76636967695a57356a62325270626d63676258567a644342695a53426849484e30636d6c755a7949704f326c6d4b434a7a64484a70626d6369505431306558426c623259676269596d4958557561584e46626d4e765a4d0802476c755a7968754b536c3061484a76647942755a58636756486c775a555679636d39794b434a56626d747562336475494756755932396b6157356e4f6941694b3234704f326c6d4b444539505431304c6d786c626d643061436c3759323975633351675a5431304c6d4e6f59584a446232526c5158516f4d436b374b434a3164475934496a30395057346d4a6d55384d544934664877696247463061573478496a3039505734704a69596f6444316c4b5831395a57787a5a534a75645731695a584969505431306558426c62325967644439304a6a30794e545536496d4a766232786c59573469505431306558426c623259676443596d4b485139546e5674596d56794b4851704b5474705a69686c504442386648526f61584d75624756755a33526f504756386648526f61584d75624756755a33526f504849706447687962336367626d563349464a68626d646c52584a796233496f496b3931644342765a6942795957356e5a534270626d526c654349704f326c6d4b48493850575570636d563064584a754948526f61584d376247563049476b376157596f5a54342b506a30774c484939646d39705a43417750543039636a393061476c7a4c6d786c626d643061447079506a342b4d4378306648776f644430774b537769626e5674596d5679496a303964486c775a57396d494851705a6d39794b476b395a547470504849374b7974704b4d080258526f61584e62615630396444746c62484e6c65324e76626e4e30494738396453357063304a315a6d5a6c636968304b5439304f6e55755a6e4a76625368304c4734704c484d39627935735a57356e644767376157596f4d44303950584d706447687962336367626d56334946523563475646636e4a766369676e5647686c49485a686248566c4943496e4b3351724a79496761584d6761573532595778705a43426d6233496759584a6e6457316c626e5167496e5a686248566c496963704f325a766369687050544137615478794c5755374b7974704b58526f61584e626153746c5854317657326b6c63313139636d563064584a754948526f61584e394f324e76626e4e3049455139653330375a6e56755933527062323467635368304c47557363696c37524674305854316a6247467a6379426c6548526c626d527a49484a37593239756333527964574e306233496f4b58747a6458426c636967704c453969616d566a6443356b5a575a70626d5651636d39775a584a306553683061476c7a4c434a745a584e7a5957646c49697837646d4673645755365a533568634842736553683061476c7a4c4746795a3356745a57353063796b7364334a70644746696247553649544173593239755a6d6c6e64584a68596d786c4f69457766536b7364476870637935755957316c5057416b6533526f61584d75626d46745a58306757795237644d08024831645943783061476c7a4c6e4e3059574e724c47526c624756305a53423061476c7a4c6d3568625756395a32563049474e765a47556f4b5874795a585231636d34676448317a5a5851675932396b5a5368304b587450596d706c593351755a47566d6157356c55484a766347567964486b6f64476870637977695932396b5a53497365324e76626d5a705a33567959574a735a546f684d43786c626e56745a584a68596d786c4f6945774c485a686248566c4f6e517364334a706447466962475536495442394b58313062314e30636d6c755a79677065334a6c64485679626d416b6533526f61584d75626d46745a58306757795237644831644f69416b6533526f61584d756257567a6332466e5a583167665831395a6e56755933527062323467526968304b5874735a5851675a5430694969787950585175624756755a33526f4f324e76626e4e3049473439496930695054303964467377585438784f6a41375a6d39794b447479506a31754b7a5137636930394d796c6c505742664a4874304c6e4e7361574e6c4b4849744d7978794b58306b65325639594474795a585231636d35674a4874304c6e4e7361574e6c4b44417363696c394a48746c665742395a6e56755933527062323467656968304c475573636978754c476b7362796c376157596f64443579664878305047557065324e76626e4e3049473439496d4a705a326c75644d080243493950585235634756765a69426c50794a75496a6f69496a74735a5851676154743061484a76647942705057382b4d7a3877505430395a5878385a54303950554a705a306c75644367774b543967506a30674d435237626e30675957356b494477674d695237626e30674b696f674a4873344b6968764b7a457066535237626e31674f6d412b505341744b44496b6532353949436f71494352374f436f6f627973784b53307866535237626e3070494746755a434138494449674b696f674a4873344b6968764b7a45704c5446394a4874756657413659443439494352375a58306b65323539494746755a4341385053416b65334a394a48747566574173626d56334945517552564a535830395656463950526c39535155354852536769646d4673645755694c476b7364436c3949575a31626d4e30615739754b4851735a5378794b5874584b475573496d396d5a6e4e6c644349704c485a76615751674d434539505852625a56306d4a6e5a76615751674d434539505852625a537479585878384a43686c4c485175624756755a33526f4c5368794b7a45704b58306f626978704c47387066575a31626d4e30615739754946636f6443786c4b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334945517552564a5358306c4f566b464d5355526651564a485831525a5545556f5a4d0802537769626e5674596d5679496978304b58316d6457356a64476c766269416b4b4851735a5378794b5874705a69684e5958526f4c6d5a73623239794b4851704954303964436c3061484a76647942584b48517363696b73626d56334945517552564a535830395656463950526c395351553548525368796648776962325a6d633256304969776959573467615735305a57646c6369497364436b376157596f5a5477774b58526f636d39334947356c647942454c6b5653556c394356555a4752564a66543156555830394758304a5056553545557a743061484a76647942755a58636752433546556c4a66543156555830394758314a42546b64464b484a3866434a765a6d5a7a5a5851694c47412b5053416b6533492f4d546f7766534268626d5167504430674a48746c6657417364436c396353676952564a5358304a56526b5a46556c39505656526654305a66516b3956546b52544969776f5a6e5675593352706232346f64436c37636d563064584a754948512f594352376448306761584d676233563063326c6b5a5342765a69426964575a6d5a584967596d3931626d527a59446f69515852305a573177644342306279426859324e6c63334d676257567462334a354947393164484e705a475567596e566d5a6d567949474a766457356b63794a394b5378535957356e5a555679636d39794b5378784b434a46556c4a6653553557514d080255784a52463942556b646656466c51525349734b475a31626d4e30615739754b4851735a536c37636d563064584a755946526f5a5341694a4874306653496759584a6e6457316c626e51676258567a644342695a5342765a6942306558426c4947353162574a6c63693467556d566a5a576c325a57516764486c775a53416b65335235634756765a69426c665742394b5378556558426c52584a79623349704c48456f496b5653556c39505656526654305a66556b464f523055694c43686d6457356a64476c76626968304c47557363696c3762475630494734395946526f5a534232595778315a5342765a6941694a4874306653496761584d67623356304947396d49484a68626d646c4c6d4173615431794f334a6c644856796269424f645731695a58497561584e4a626e526c5a3256794b4849704a695a4e5958526f4c6d4669637968794b5434794b696f7a4d6a39705055596f553352796157356e4b4849704b546f69596d6c6e61573530496a303964486c775a57396d4948496d4a69687050564e30636d6c755a7968794b53776f636a35436157644a626e516f4d696b714b6b4a705a306c756443677a4d696c38664849384c5368436157644a626e516f4d696b714b6b4a705a306c756443677a4d696b704b53596d4b476b39526968704b536b7361537339496d34694b5378754b7a316749456c304947313163335167596d55674a4d080248746c66533467556d566a5a576c325a5751674a48747066574173626e30704c464a68626d646c52584a79623349704f324e76626e4e30494567394c3174654b7938774c546c424c5670684c586f74583130765a7a746d6457356a64476c76626942484b4851735a536c3762475630494849375a54316c664877784c7a41375932397563335167626a31304c6d786c626d6430614474735a58516761543175645778734f324e76626e4e3049473839573130375a6d39794b47786c6443427a50544137637a78754f79737263796c376157596f636a31304c6d4e6f59584a446232526c5158516f63796b73636a34314e5449354e53596d636a77314e7a4d304e436c376157596f49576b7065326c6d4b48492b4e54597a4d546b706579686c4c54307a4b5434744d53596d6279357764584e6f4b44497a4f5377784f5445734d5467354b54746a62323530615735315a5831705a69687a4b7a4539505431754b58736f5a5330394d796b2b4c54456d4a6d38756348567a614367794d7a6b734d546b784c4445344f536b375932397564476c7564575639615431794f324e76626e5270626e566c66576c6d4b4849384e54597a4d6a41706579686c4c54307a4b5434744d53596d6279357764584e6f4b44497a4f5377784f5445734d5467354b537870505849375932397564476c7564575639636a30324e54557a4e69736f615330314e5449354e4d08026a77384d544238636930314e6a4d794d436c395a57787a5a5342704a69596f5a5330394d796b2b4c54456d4a6d38756348567a614367794d7a6b734d546b784c4445344f536b376157596f61543175645778734c4849384d5449344b5874705a69676f5a5330394d536b384d436c69636d5668617a74764c6e42316332676f63696c395a57787a5a5342705a696879504449774e44677065326c6d4b43686c4c5430794b5477774b574a795a5746724f3238756348567a61436879506a3432664445354d6977324d795a79664445794f436c395a57787a5a5342705a696879504459314e544d324b5874705a69676f5a5330394d796b384d436c69636d5668617a74764c6e42316332676f636a342b4d544a384d6a49304c48492b506a596d4e6a4e384d5449344c44597a4a6e4a384d5449344b58316c62484e6c65326c6d4b43456f636a77784d5445304d5445794b536c3061484a76647942755a58636752584a796233496f496b6c75646d4673615751675932396b5a53427762326c75644349704f326c6d4b43686c4c5430304b5477774b574a795a5746724f3238756348567a61436879506a34784f4877794e444173636a342b4d54496d4e6a4e384d5449344c48492b506a596d4e6a4e384d5449344c44597a4a6e4a384d5449344b583139636d563064584a75494739395a6e56755933527062323467576968304b5874795a585231634d08026d34676269353062304a3564475642636e4a686553686d6457356a64476c76626968304b5874705a69676f6444306f644431304c6e4e7762476c304b43493949696c624d4630704c6e52796157306f4b5335795a58427359574e6c4b456773496949704b5335735a57356e644767384d696c795a585231636d3469496a746d6233496f4f335175624756755a33526f4a545168505441374b58517250534939496a74795a585231636d34676448306f64436b7066575a31626d4e30615739754946596f6443786c4c48497362696c376247563049476b375a6d39794b476b394d4474705047346d4a69456f61537479506a316c4c6d786c626d64306148783861543439644335735a57356e644767704f79737261536c6c57326b72636c303964467470585474795a585231636d34676158316d6457356a64476c766269425a4b4851735a536c37636d563064584a75494851676157357a64474675593256765a69426c6648787564577873495431304a695a7564577873495431304c6d4e76626e4e30636e566a644739794a695a7564577873495431304c6d4e76626e4e30636e566a644739794c6d35686257556d4a6e5175593239756333527964574e3062334975626d46745a54303950575575626d46745a58316d6457356a64476c766269424c4b48517065334a6c64485679626942304954313066574e76626e4e30494667395a6e5675594d08023352706232346f4b58746a6232357a64434230505349774d54497a4e4455324e7a673559574a6a5a47566d4969786c5057356c64794242636e4a68655367794e5459704f325a76636968735a585167636a30774f3349384d5459374b7974794b58746a6232357a64434275505445324b6e49375a6d39794b47786c6443427050544137615477784e6a73724b326b705a5674754b326c6450585262636c307264467470585831795a585231636d34675a58306f4b54746d6457356a64476c766269424b4b48517065334a6c6448567962694a31626d526c5a6d6c755a575169505431306558426c62325967516d6c6e53573530503145366448316d6457356a64476c76626942524b436c376447687962336367626d563349455679636d39794b434a436157644a626e5167626d393049484e3163484276636e526c5a434970665830734d5467334f6e5139506e736964584e6c49484e30636d6c6a64434937646d467949475573636a306962324a715a574e30496a303964486c775a57396d49464a6c5a6d786c5933512f556d566d6247566a64447075645778734c4734396369596d496d5a31626d4e3061573975496a303964486c775a57396d494849755958427762486b2f63693568634842736554706d6457356a64476c76626968304c47557363696c37636d563064584a7549455a31626d4e30615739754c6e42796233527664486c775a4d0802533568634842736553356a595778734b4851735a5378794b5830375a5431794a6959695a6e56755933527062323469505431306558426c62325967636935766432354c5a586c7a503349756233647553325635637a7050596d706c593351755a3256305433647555484a766347567964486c54655731696232787a50325a31626d4e30615739754b48517065334a6c6448567962694250596d706c593351755a3256305433647555484a766347567964486c4f5957316c637968304b53356a6232356a5958516f54324a715a574e304c6d646c64453933626c42796233426c636e523555336c74596d3973637968304b536c394f6d5a31626d4e30615739754b48517065334a6c6448567962694250596d706c593351755a3256305433647555484a766347567964486c4f5957316c637968304b583037646d467949476b39546e5674596d56794c6d6c7a546d464f6648786d6457356a64476c76626968304b5874795a585231636d346764434539644830375a6e567559335270623234676279677065323875615735706443356a595778734b48526f61584d70665851755a58687762334a30637a31764c4851755a58687762334a3063793576626d4e6c50575a31626d4e30615739754b4851735a536c37636d563064584a754947356c64794251636d397461584e6c4b43686d6457356a64476c76626968794c47347065325a31626d4e30614d080257397549476b6f63696c37644335795a573176646d564d61584e305a57356c6369686c4c4738704c47346f63696c395a6e567559335270623234676279677065794a6d6457356a64476c766269493950585235634756765a6942304c6e4a6c625739325a5578706333526c626d56794a695a304c6e4a6c625739325a5578706333526c626d56794b434a6c636e4a766369497361536b73636968625853357a62476c6a5a53356a595778734b4746795a3356745a57353063796b706657636f6443786c4c4738736532397559325536495442394b5377695a584a7962334969495430395a53596d5a6e5675593352706232346f6443786c4c48497065794a6d6457356a64476c766269493950585235634756765a6942304c6d39754a695a6e4b485173496d5679636d39794969786c4c484970665368304c476b736532397559325536495442394b5830704b58307362793546646d567564455674615852305a584939627978764c6e42796233527664486c775a5335665a585a6c626e527a50585a76615751674d4378764c6e42796233527664486c775a5335665a585a6c626e527a51323931626e51394d4378764c6e42796233527664486c775a5335666257463454476c7a644756755a584a7a50585a76615751674d44743259584967637a30784d44746d6457356a64476c76626942684b48517065326c6d4b434a6d6457356a64476c76624d080269496850585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f4a31526f5a53416962476c7a644756755a584969494746795a3356745a5735304947313163335167596d55676232596764486c775a5342476457356a64476c7662693467556d566a5a576c325a57516764486c775a53416e4b335235634756765a6942304b58316d6457356a64476c76626942314b48517065334a6c644856796269423262326c6b49444139505431304c6c39745958684d61584e305a57356c636e4d2f6279356b5a575a68645778305457463454476c7a644756755a584a7a4f6e517558323168654578706333526c626d56796333316d6457356a64476c766269426f4b4851735a5378794c47347065335a68636942704c473873637a74705a6968684b4849704c485a76615751674d4430395053687650585175583256325a57353063796b2f4b473839644335665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b73644335665a585a6c626e527a51323931626e51394d436b364b485a76615751674d43453950573875626d563354476c7a644756755a58496d4a6968304c6d56746158516f496d356c643078706333526c626d56794969786c4c48497562476c7a644756755a58492f6369357361584e305a57356c636a70794b53787650585175583256325a573530634d0802796b73637a3176573256644b53783262326c6b494441395054317a4b584d396231746c585431794c437372644335665a585a6c626e527a51323931626e51375a57787a5a5342705a6967695a6e56755933527062323469505431306558426c62325967637a397a505739625a563039626a39626369787a58547062637978795854707550334d756457357a61476c6d644368794b54707a4c6e42316332676f63696b734b476b39645368304b536b2b4d43596d637935735a57356e6447672b6153596d49584d7564324679626d566b4b58747a4c6e6468636d356c5a4430684d44743259584967614431755a58636752584a796233496f496c427663334e70596d786c494556325a573530525731706448526c636942745a573176636e6b67624756686179426b5a58526c5933526c5a4334674969747a4c6d786c626d64306143736949434972553352796157356e4b4755704b79496762476c7a644756755a584a7a4947466b5a47566b4c694256633255675a5731706448526c6369357a5a58524e5958684d61584e305a57356c636e4d6f4b53423062794270626d4e795a57467a5a53427361573170644349704f326775626d46745a5430695457463454476c7a644756755a584a7a5258686a5a57566b5a57525859584a756157356e4969786f4c6d5674615852305a5849396443786f4c6e5235634755395a53786f4c6d4e7664573530504d0802584d75624756755a33526f4c474e76626e4e766247556d4a6d4e76626e4e766247557564324679626e31795a585231636d34676448316d6457356a64476c766269426d4b436c376157596f4958526f61584d755a6d6c795a575170636d563064584a754948526f61584d75644746795a3256304c6e4a6c625739325a5578706333526c626d56794b48526f61584d7564486c775a53783061476c7a4c6e64795958424762696b73644768706379356d61584a6c5a4430684d4377775054303959584a6e6457316c626e527a4c6d786c626d64306144393061476c7a4c6d78706333526c626d56794c6d4e686247776f644768706379353059584a6e5a5851704f6e526f61584d7562476c7a644756755a5849755958427762486b6f644768706379353059584a6e5a58517359584a6e6457316c626e527a4b58316d6457356a64476c76626942734b4851735a5378794b58743259584967626a31375a6d6c795a5751364954457364334a6863455a754f6e5a76615751674d43783059584a6e5a585136644378306558426c4f6d557362476c7a644756755a584936636e30736154316d4c6d4a70626d516f62696b37636d563064584a7549476b7562476c7a644756755a584939636978754c6e647959584247626a31704c476c395a6e56755933527062323467597968304c47557363696c37646d467949473439644335665a585a6c626e527a4f4d0802326c6d4b485a76615751674d44303950573470636d563064584a7557313037646d467949476b39626c746c585474795a585231636d3467646d39705a434177505430396154396258546f695a6e56755933527062323469505431306558426c6232596761543979503174704c6d78706333526c626d5679664878705854706261563036636a396d6457356a64476c76626968304b58746d6233496f646d467949475539626d563349454679636d46354b485175624756755a33526f4b53787950544137636a786c4c6d786c626d6430614473724b3349705a5674795854313057334a644c6d78706333526c626d56796648783057334a644f334a6c644856796269426c665368704b5470774b476b73615335735a57356e6447677066575a31626d4e30615739754947516f64436c37646d46794947553964476870637935665a585a6c626e527a4f326c6d4b485a76615751674d4345395057557065335a686369427950575662644630376157596f496d5a31626d4e3061573975496a303964486c775a57396d49484970636d563064584a75494445376157596f646d39705a4341774954303963696c795a585231636d3467636935735a57356e64476839636d563064584a75494442395a6e56755933527062323467634368304c47557065325a766369683259584967636a31755a58636751584a7959586b6f5a536b73626a30774f3234385a4d08025473724b323470636c747558543130573235644f334a6c644856796269427966575a31626d4e30615739754947636f6443786c4c48497362696c376157596f496d5a31626d4e3061573975496a303964486c775a57396d494851756232347062693576626d4e6c503351756232356a5a53686c4c4849704f6e51756232346f5a5378794b54746c62484e6c65326c6d4b434a6d6457356a64476c766269496850585235634756765a6942304c6d466b5a4556325a57353054476c7a644756755a5849706447687962336367626d56334946523563475646636e4a766369676e5647686c49434a6c62576c306447567949694268636d6431625756756443427464584e3049474a6c4947396d494852356347556752585a6c626e524662576c30644756794c6942535a574e6c61585a6c5a4342306558426c4943637264486c775a57396d494851704f3351755957526b52585a6c626e524d61584e305a57356c6369686c4c43686d6457356a64476c76626942704b473870653234756232356a5a53596d644335795a573176646d5646646d5675644578706333526c626d56794b47557361536b73636968764b5830704b58313954324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b473873496d526c5a6d46316248524e5958684d61584e305a57356c636e4d694c48746c626e56745a584a68596d786c4f6945774c47646c644d080244706d6457356a64476c766269677065334a6c644856796269427a6653787a5a5851365a6e5675593352706232346f64436c376157596f496d353162574a6c6369496850585235634756765a694230664878305044423866476b6f64436b706447687962336367626d563349464a68626d646c52584a796233496f4a31526f5a534232595778315a5342765a6941695a47566d5958567364453168654578706333526c626d56796379496761584d67623356304947396d49484a68626d646c4c69424a6443427464584e3049474a6c49474567626d39754c57356c5a32463061585a6c4947353162574a6c63693467556d566a5a576c325a5751674a7974304b79497549696b37637a3130665830704c473875615735706444316d6457356a64476c766269677065335a76615751674d4345395058526f61584d75583256325a5735306379596d64476870637935665a585a6c626e527a4954303954324a715a574e304c6d646c644642796233527664486c775a55396d4b48526f61584d704c6c396c646d567564484e386643683061476c7a4c6c396c646d567564484d3954324a715a574e304c6d4e795a5746305a536875645778734b53783061476c7a4c6c396c646d567564484e4462335675644430774b53783061476c7a4c6c39745958684d61584e305a57356c636e4d3964476870637935666257463454476c7a644756755a584a7a664d080248783262326c6b494442394c47387563484a76644739306558426c4c6e4e6c64453168654578706333526c626d5679637a316d6457356a64476c76626968304b5874705a696769626e5674596d56794969453964486c775a57396d49485238664851384d487838615368304b536c3061484a76647942755a586367556d46755a325646636e4a766369676e5647686c49485a686248566c4947396d49434a7549694270637942766458516762325967636d46755a32557549456c304947313163335167596d55675953427562323474626d566e59585270646d5567626e5674596d56794c6942535a574e6c61585a6c5a43416e4b335172496934694b5474795a585231636d346764476870637935666257463454476c7a644756755a584a7a50585173644768706333307362793577636d393062335235634755755a3256305457463454476c7a644756755a584a7a50575a31626d4e30615739754b436c37636d563064584a754948556f6447687063796c394c47387563484a76644739306558426c4c6d5674615851395a6e5675593352706232346f64436c375a6d39794b485a686369426c505674644c4849394d547479504746795a3356745a573530637935735a57356e64476737636973724b5755756348567a61436868636d64316257567564484e62636c30704f335a686369427050534a6c636e4a7663694939505431304c473839644d0802476870637935665a585a6c626e527a4f326c6d4b485a76615751674d43453950573870615431704a695a3262326c6b49444139505431764c6d5679636d39794f325673633255676157596f49576b70636d563064584a75495445376157596f61536c37646d467949484d376157596f5a5335735a57356e6447672b4d43596d4b484d395a56737758536b7363794270626e4e305957356a5a57396d49455679636d39794b58526f636d393349484d37646d467949474539626d563349455679636d39794b434a56626d6868626d52735a5751675a584a79623349754969736f637a3869494367694b334d756257567a6332466e5a5373694b534936496949704b54743061484a76647942684c6d4e76626e526c654851396379786866585a686369423150573962644630376157596f646d39705a4341775054303964536c795a585231636d34684d5474705a6967695a6e56755933527062323469505431306558426c6232596764536c754b485573644768706379786c4b54746c62484e6c65335a686369426f50585575624756755a33526f4c475939634368314c4767704f325a766369687950544137636a786f4f79737263696c754b475a62636c3073644768706379786c4b5831795a585231636d34684d48307362793577636d393062335235634755755957526b54476c7a644756755a5849395a6e5675593352706232346f6443786c4b4d08025874795a585231636d34676143683061476c7a4c4851735a5377684d536c394c47387563484a76644739306558426c4c6d39755057387563484a76644739306558426c4c6d466b5a4578706333526c626d56794c47387563484a76644739306558426c4c6e42795a58426c626d524d61584e305a57356c636a316d6457356a64476c76626968304c47557065334a6c644856796269426f4b48526f61584d736443786c4c4345774b58307362793577636d393062335235634755756232356a5a54316d6457356a64476c76626968304c47557065334a6c64485679626942684b4755704c48526f61584d756232346f644378734b48526f61584d736443786c4b536b73644768706333307362793577636d3930623352356347557563484a6c634756755a4539755932564d61584e305a57356c636a316d6457356a64476c76626968304c47557065334a6c64485679626942684b4755704c48526f61584d7563484a6c634756755a4578706333526c626d56794b4851736243683061476c7a4c4851735a536b704c48526f61584e394c47387563484a76644739306558426c4c6e4a6c625739325a5578706333526c626d567950575a31626d4e30615739754b4851735a536c37646d467949484973626978704c473873637a74705a6968684b4755704c485a76615751674d443039505368755058526f61584d75583256325a57353063796b70634d08026d563064584a754948526f61584d376157596f646d39705a434177505430394b484939626c743058536b70636d563064584a754948526f61584d376157596f636a3039505756386648497562476c7a644756755a5849395054316c4b5441395053307464476870637935665a585a6c626e527a51323931626e512f64476870637935665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b364b47526c624756305a534275573352644c473475636d567462335a6c54476c7a644756755a58496d4a6e526f61584d755a57317064436769636d567462335a6c54476c7a644756755a5849694c4851736369357361584e305a57356c636e78385a536b704f325673633255676157596f496d5a31626d4e30615739754969453964486c775a57396d4948497065325a7663696870505330784c473839636935735a57356e644767744d547476506a30774f3238744c536c705a69687957323964505430395a587838636c74765853357361584e305a57356c636a30395057557065334d39636c74765853357361584e305a57356c6369787050573837596e4a6c595774396157596f615477774b584a6c644856796269423061476c7a4f7a41395054317050334975633268705a6e516f4b54706d6457356a64476c76626968304c47557065325a76636967375a53737850485175624756755a33526f4f3255724b4d0802796c3057325664505852625a537378585474304c6e427663436770665368794c476b704c444539505431794c6d786c626d64306143596d4b47356264463039636c737758536b73646d39705a43417749543039626935795a573176646d564d61584e305a57356c6369596d644768706379356c62576c304b434a795a573176646d564d61584e305a57356c636949736443787a6648786c4b5831795a585231636d3467644768706333307362793577636d3930623352356347557562325a6d5057387563484a76644739306558426c4c6e4a6c625739325a5578706333526c626d56794c47387563484a76644739306558426c4c6e4a6c625739325a554673624578706333526c626d5679637a316d6457356a64476c76626968304b587432595849675a5378794c4734376157596f646d39705a434177505430394b48493964476870637935665a585a6c626e527a4b536c795a585231636d346764476870637a74705a69683262326c6b49444139505431794c6e4a6c625739325a5578706333526c626d56794b584a6c64485679626941775054303959584a6e6457316c626e527a4c6d786c626d64306144386f64476870637935665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b7364476870637935665a585a6c626e527a51323931626e51394d436b36646d39705a43417749543039636c7430584d080253596d4b4441395053307464476870637935665a585a6c626e527a51323931626e512f64476870637935665a585a6c626e527a50553969616d566a6443356a636d56686447556f626e567362436b365a4756735a58526c49484a62644630704c48526f61584d376157596f4d443039505746795a3356745a573530637935735a57356e6447677065335a68636942704c47383954324a715a574e304c6d746c65584d6f63696b375a6d39794b4734394d44747550473875624756755a33526f4f79737262696b69636d567462335a6c54476c7a644756755a584969495430394b476b396231747558536b6d4a6e526f61584d75636d567462335a6c5157787354476c7a644756755a584a7a4b476b704f334a6c644856796269423061476c7a4c6e4a6c625739325a554673624578706333526c626d567963796769636d567462335a6c54476c7a644756755a5849694b53783061476c7a4c6c396c646d567564484d3954324a715a574e304c6d4e795a5746305a536875645778734b53783061476c7a4c6c396c646d567564484e4462335675644430774c48526f61584e396157596f496d5a31626d4e3061573975496a303964486c775a57396d4b475539636c743058536b7064476870637935795a573176646d564d61584e305a57356c636968304c4755704f325673633255676157596f646d39705a434177495430395a536c6d6233496f624d08026a316c4c6d786c626d6430614330784f32342b50544137626930744b58526f61584d75636d567462335a6c54476c7a644756755a58496f6443786c573235644b5474795a585231636d3467644768706333307362793577636d3930623352356347557562476c7a644756755a584a7a50575a31626d4e30615739754b48517065334a6c644856796269426a4b48526f61584d73644377684d436c394c47387563484a76644739306558426c4c6e4a68643078706333526c626d5679637a316d6457356a64476c76626968304b5874795a585231636d34675979683061476c7a4c48517349544570665378764c6d78706333526c626d567951323931626e51395a6e5675593352706232346f6443786c4b5874795a585231636d34695a6e56755933527062323469505431306558426c623259676443357361584e305a57356c636b4e76645735305033517562476c7a644756755a584a44623356756443686c4b54706b4c6d4e686247776f6443786c4b58307362793577636d3930623352356347557562476c7a644756755a584a44623356756444316b4c47387563484a76644739306558426c4c6d56325a573530546d46745a584d395a6e5675593352706232346f4b5874795a585231636d346764476870637935665a585a6c626e527a51323931626e512b4d44396c4b48526f61584d75583256325a57353063796b3657313139665377324e4d08024455364b4851735a536b39506e746c4c6e4a6c595751395a6e5675593352706232346f6443786c4c484973626978704b587432595849676279787a4c4745394f4370704c5734744d53783150536778504478684b5330784c4767396454342b4d53786d505330334c477739636a39704c5445364d43786a5058492f4c5445364d53786b505852625a5374735854746d6233496f62437339597978765057516d4b4445385043316d4b5330784c47512b506a30745a69786d4b7a31684f32592b4d447476505449314e6970764b3352625a537473585378734b7a316a4c475974505467704f325a766369687a5057386d4b4445385043316d4b5330784c47382b506a30745a69786d4b7a31754f32592b4d44747a505449314e69707a4b3352625a537473585378734b7a316a4c475974505467704f326c6d4b444139505431764b5738394d53316f4f325673633256376157596f627a303950585570636d563064584a7549484d2f546d464f4f6a45764d436f6f5a4438744d546f784b54747a4b7a314e5958526f4c6e4276647967794c4734704c47387450576839636d563064584a754b47512f4c5445364d536b716379704e5958526f4c6e4276647967794c47387462696c394c47557564334a70644755395a6e5675593352706232346f6443786c4c484973626978704c47387065335a686369427a4c4745736453786f50546771627931704c4d08025445735a6a306f4d54773861436b744d5378735057592b506a4573597a30794d7a303950576b2f54574630614335776233636f4d6977744d6a51704c55316864476775634739334b4449734c5463334b546f774c475139626a38774f6d38744d5378775057342f4d546f744d53786e505755384d4878384d4430395057556d4a6a45765a547777507a45364d44746d6233496f5a54314e5958526f4c6d46696379686c4b537870633035685469686c4b5878385a543039505445764d44386f59543170633035685469686c4b5438784f6a4173637a316d4b546f6f637a314e5958526f4c6d5a73623239794b453168644767756247396e4b4755704c30316864476775544534794b53786c4b6968315055316864476775634739334b4449734c584d704b5477784a69596f637930744c485571505449704c43686c4b7a317a4b32772b5054452f597939314f6d4d7154574630614335776233636f4d6977784c5777704b537031506a30794a69596f637973724c485576505449704c484d72624434395a6a386f595430774c484d395a696b3663797473506a3078507968685053686c4b6e55744d536b7154574630614335776233636f4d6978704b53787a4b7a31734b546f6f5954316c4b6b316864476775634739334b444973624330784b53704e5958526f4c6e4276647967794c476b704c484d394d436b704f326b2b50546737644674794b4d0802325264505449314e535a684c47517250584173595338394d6a55324c476b74505467704f325a766369687a50584d3850476c385953786f4b7a31704f32672b4d447430573349725a4630394d6a55314a6e4d735a4373396343787a4c7a30794e545973614330394f436b37644674794b32517463463138505445794f43706e665830734e7a45334f6e5139506e73695a6e56755933527062323469505431306558426c6232596754324a715a574e304c6d4e795a5746305a5439304c6d56346347397964484d395a6e5675593352706232346f6443786c4b58746c4a69596f6443357a6458426c636c38395a5378304c6e42796233527664486c775a543150596d706c5933517559334a6c5958526c4b47557563484a76644739306558426c4c48746a6232357a64484a3159335276636a7037646d4673645755366443786c626e56745a584a68596d786c4f6945784c48647961585268596d786c4f6945774c474e76626d5a705a33567959574a735a546f684d4831394b536c394f6e51755a58687762334a30637a316d6457356a64476c76626968304c47557065326c6d4b47557065335175633356775a584a6650575537646d4679494849395a6e5675593352706232346f4b5874394f33497563484a76644739306558426c5057557563484a76644739306558426c4c48517563484a76644739306558426c5057356c647942794c485175634d0802484a76644739306558426c4c6d4e76626e4e30636e566a6447397950585239665830734f4445784f6968304c47557363696b39506e74304c6d56346347397964484d39636967324e696b6f636967324e544d704b5830734e6a59364b4851735a5378794b54302b65324e76626e4e3049473439636967784e696b73615431794b4459334e536b376443356c65484276636e527a50575a31626d4e30615739754b48517065324e76626e4e3049475539626968304b53787950576b6f64436b37636d563064584a7549475a31626d4e30615739754b48517362696c376333647064474e6f4b434a7a64484a70626d6369505431306558426c62325967644439304c6e5276544739335a584a4459584e6c4b436b3664436c375932467a5a534a725a574e6a595773794d6a51694f6e4a6c64485679626942755a5863675a5367784d5455794c4451304f437875645778734c4449794e4378754b54746a59584e6c496d746c59324e68617a49314e694936636d563064584a754947356c6479426c4b4445774f4467734e5445794c473531624777734d6a55324c4734704f324e68633255696132566a593246724d7a6730496a70795a585231636d3467626d56334947556f4f444d794c4463324f437875645778734c444d344e4378754b54746a59584e6c496d746c59324e68617a55784d694936636d563064584a754947356c6479426c4b4455334e4d08026977784d4449304c473531624777734e5445794c4734704f324e6863325569633268684d7930794d6a51694f6e4a6c64485679626942755a5863675a5367784d5455794c4451304f4377324c4449794e4378754b54746a59584e6c496e4e6f59544d744d6a5532496a70795a585231636d3467626d56334947556f4d5441344f4377314d5449734e6977794e54597362696b375932467a5a534a7a6147457a4c544d344e434936636d563064584a754947356c6479426c4b44677a4d6977334e6a67734e69777a4f44517362696b375932467a5a534a7a6147457a4c5455784d694936636d563064584a754947356c6479426c4b4455334e6977784d4449304c4459734e5445794c4734704f324e686332556963326868613255784d6a67694f6e4a6c64485679626942755a586367636967784d7a51304c4449314e69777a4d5378754b54746a59584e6c496e4e6f5957746c4d6a5532496a70795a585231636d3467626d56334948496f4d5441344f4377314d5449734d7a457362696b375a47566d595856736444703061484a76647942755a58636752584a796233496f496b6c75646d46735a43426862476476636d6c30614730364943497264436c39665831394c4445324f6968304c47557363696b39506e746a6232357a64487455636d467563325a76636d3036626e3039636967354d696b376443356c65484276636e527a50585139504d08026d4e7359584e7a494755675a5868305a57356b6379427565324e76626e4e30636e566a644739794b475573636978754c476b7362796c37633356775a58496f62796b736447687063793566636d46305a54316c4c48526f61584d7558324e686347466a615852355058497364476870637935665a475673615731706447566b5533566d5a6d6c345057347364476870637935666147467a61454a706445786c626d6430614431704c48526f61584d755832397764476c76626e4d396279783061476c7a4c6c397a644746305a5431755a5863676443783061476c7a4c6c397a644746305a533570626d6c30615746736158706c4b47557363696b7364476870637935665a6d6c7559577870656d566b5053457866563930636d467563325a76636d306f6443786c4c4849706532786c64434275505735316247773764484a356533526f61584d756458426b5958526c4b4851735a536c39593246305932676f64436c37626a31306658496f62696c3958325a7364584e6f4b4851706532786c6443426c505735316247773764484a356533526f61584d756348567a6143683061476c7a4c6d52705a32567a644367704b58316a5958526a614368304b58746c505852396443686c4b583131634752686447556f6443786c4b5874705a696768516e566d5a6d56794c6d6c7a516e566d5a6d56794b4851704a695969633352796157356e49694539644d0802486c775a57396d494851706447687962336367626d56334946523563475646636e4a7663696769524746305953427464584e3049474a6c49474567633352796157356e4947397949474567596e566d5a6d567949696b376157596f64476870637935665a6d6c7559577870656d566b4b58526f636d39334947356c64794246636e4a766369676952476c6e5a584e3049474673636d56685a486b67593246736247566b49696b37636d563064584a7549454a315a6d5a6c6369357063304a315a6d5a6c636968304b5878384b485139516e566d5a6d56794c6d5a796232306f6443786c4b536b736447687063793566633352686447557559574a7a62334a694b4851704c48526f61584e395a476c6e5a584e304b48517065326c6d4b48526f61584d7558325a70626d46736158706c5a436c3061484a76647942755a58636752584a796233496f496b52705a32567a6443426862484a6c5957523549474e686247786c5a4349704f33526f61584d7558325a70626d46736158706c5a4430684d43783061476c7a4c6c396b5a57787062576c305a57525464575a6d6158676d4a6e526f61584d7558334e305958526c4c6d466963323979596b7868633352475a5864436158527a4b48526f61584d755832526c62476c746158526c5a464e315a6d5a7065436b37624756304947553964476870637935666333526864475575633346315a5756365a4d080253683061476c7a4c6c396f59584e6f516d6c30544756755a33526f4c7a67704f334a6c644856796269423262326c6b49444168505431304a69596f5a54316c4c6e5276553352796157356e4b4851704b53783061476c7a4c6c39795a584e6c64464e305958526c4b436b735a583166636d567a5a585254644746305a53677065334a6c644856796269423061476c7a4c6c397a644746305a533570626d6c30615746736158706c4b48526f61584d7558334a686447557364476870637935665932467759574e7064486b704c48526f61584e3958324e736232356c4b436c375932397563335167644431755a5863675a53683061476c7a4c6c39795958526c4c48526f61584d7558324e686347466a615852354c48526f61584d755832526c62476c746158526c5a464e315a6d5a706543783061476c7a4c6c396f59584e6f516d6c30544756755a33526f4c48526f61584d755832397764476c76626e4d704f334a6c644856796269423061476c7a4c6c397a644746305a53356a623342354b48517558334e305958526c4b5378304c6c396d6157356862476c365a57513964476870637935665a6d6c7559577870656d566b4c485239665830734e6a63314f6968304c47557363696b39506e746a6232357a64487455636d467563325a76636d3036626e3039636967354d696b376443356c65484276636e527a50585139506d4e7359584e7a494d08024755675a5868305a57356b6379427565324e76626e4e30636e566a644739794b475573636978754c476b7065334e31634756794b476b704c48526f61584d7558334a68644755395a53783061476c7a4c6c396a5958426859326c30655431794c48526f61584d755832526c62476c746158526c5a464e315a6d5a70654431754c48526f61584d755832397764476c76626e4d396153783061476c7a4c6c397a644746305a5431755a5863676443783061476c7a4c6c397a644746305a533570626d6c30615746736158706c4b47557363696b7364476870637935665a6d6c7559577870656d566b5053457866563930636d467563325a76636d306f6443786c4c4849706532786c64434275505735316247773764484a356533526f61584d756458426b5958526c4b4851735a536c39593246305932676f64436c37626a31306658496f62696c3958325a7364584e6f4b436c37665639795a57466b4b4851706533526f61584d756348567a6143683061476c7a4c6e4e786457566c656d556f64436b70665856775a4746305a5368304c47557065326c6d4b43464364575a6d5a58497561584e4364575a6d5a58496f64436b6d4a694a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636756486c775a555679636d39794b434a45595852684947313163335167596d55675953427a64484a70626d6367624d08023349675953426964575a6d5a5849694b5474705a69683061476c7a4c6c396d6157356862476c365a5751706447687962336367626d563349455679636d39794b434a546358566c5a58706c49474673636d56685a486b67593246736247566b49696b37636d563064584a7549454a315a6d5a6c6369357063304a315a6d5a6c636968304b5878384b485139516e566d5a6d56794c6d5a796232306f6443786c4b536b736447687063793566633352686447557559574a7a62334a694b4851704c48526f61584e39633346315a5756365a5368304c4755706533526f61584d7558325a70626d46736158706c5a4878384b48526f61584d7558325a70626d46736158706c5a4430684d43783061476c7a4c6c397a644746305a533568596e4e76636d4a4d59584e30526d5633516d6c306379683061476c7a4c6c396b5a57787062576c305a57525464575a6d615867704b5474735a585167636a313061476c7a4c6c397a644746305a53357a6358566c5a58706c4b4851704f334a6c644856796269423262326c6b494441685054316c4a69596f636a31794c6e5276553352796157356e4b4755704b537879665639795a584e6c64464e305958526c4b436c37636d563064584a754948526f61584d7558334e305958526c4c6d6c756158527059577870656d556f6447687063793566636d46305a53783061476c7a4c6c396a5958426859326c30654d0802536b73644768706333316659327876626d556f4b58746a6232357a644342305057356c6479426c4b48526f61584d7558334a686447557364476870637935665932467759574e7064486b7364476870637935665a475673615731706447566b5533566d5a6d6c344c48526f61584d755832397764476c76626e4d704f334a6c644856796269423061476c7a4c6c397a644746305a53356a623342354b48517558334e305958526c4b5378304c6c396d6157356862476c365a57513964476870637935665a6d6c7559577870656d566b4c485239665830734e4441364b4851735a536b39506e746a6232357a64434279505673784c4441734d7a49344f5467734d43777a4d6a6b774e6977794d5451334e44677a4e6a51344c4449784e4463314d5459304d5459734d6a45304e7a51344d7a59304f43777a4d6a6b774e7977774c4449784e4463304f444d324e446b734d4377794d5451334e5445324e5451314c4449784e4463304f444d324e4467734d7a49334e7a63734d6a45304e7a51344d7a59304f4377784d7a67734d4377784d7a59734d4377794d5451334e5445324e4449314c4441734d6a45304e7a51344d7a59314f4377774c4449784e4463314d5459314e5455734d4377784d7a6b734d6a45304e7a51344d7a59304f43777a4d6a6b774e5377794d5451334e44677a4e6a51344c444d794e7a63784c4449784e4463304f444d324e4d08024467734d7a49334e7a41734d6a45304e7a51344d7a59304f4377784d6a67734d6a45304e7a51344d7a59304f43777a4d6a63334f4377774c4449784e4463304f444d324e5467734d6a45304e7a51344d7a59304f4377794d5451334e5445324e5451314c4449784e4463304f444d324e4467734d7a49344f5459734d6a45304e7a51344d7a59304f4377794d5451334e44677a4e6a51354c4441734d6a45304e7a55784e6a51794e4377794d5451334e44677a4e6a51345854746c4c6e41784e6a417750575a31626d4e30615739754b48517065325a76636968735a5851675a5430774f3255384d6a51374b79746c4b58746a6232357a64434275505852624d463165644673784d463165644673794d4631656446737a4d463165644673304d46307361543130577a4664586e52624d544664586e52624d6a4664586e52624d7a4664586e52624e4446644c4738396446737958563530577a457958563530577a497958563530577a4d7958563530577a51795853787a505852624d313165644673784d313165644673794d3131656446737a4d313165644673304d31307359543130577a5264586e52624d545264586e52624d6a5264586e52624d7a5264586e52624e4452644c4855396446733158563530577a453158563530577a493158563530577a4d3158563530577a51315853786f505852624e6c3165644673784e6c3165644673794e4d08026c31656446737a4e6c3165644673304e6c30735a6a3130577a6464586e52624d546464586e52624d6a6464586e52624d7a6464586e52624e4464644c4777396446733458563530577a453458563530577a493458563530577a4d3458563530577a51345853786a505852624f563165644673784f563165644673794f5631656446737a4f563165644673304f56303762475630494751396246346f627a77384d58787a506a342b4d7a45704c4841395931346f637a77384d587876506a342b4d7a45704f324e76626e4e3049476339644673775856356b4c47303964467378585635774c486b39644673784d4631655a437833505852624d544664586e4173646a3130577a49775856356b4c474939644673794d5631656343784e505852624d7a4264586d5173587a3130577a4d78585635774c455539644673304d4631655a437854505852624e444664586e41375a44317558696868504477786648552b506a347a4d536b736344317058696831504477786647452b506a347a4d536b375932397563335167556a3130577a4a64586d517351543130577a4e64586e4173516a3130577a45795856356b4c457739644673784d31316563437872505852624d6a4a64586d5173547a3130577a497a585635774c4651396446737a4d6c31655a437834505852624d7a4e64586e4173546a3130577a51795856356b4c456b39644673304d313165634d080244746b505739654b476738504446385a6a342b506a4d784b53787750584e654b475938504446386144342b506a4d784b54746a6232357a64434244505852624e4631655a437856505852624e56316563437851505852624d545264586d5173616a3130577a4531585635774c455139644673794e4631655a437878505852624d6a5664586e4173526a3130577a4d305856356b4c486f396446737a4e56316563437858505852624e445264586d51734a443130577a5131585635774f3251395956346f624477384d58786a506a342b4d7a45704c4841396456346f597a77384d587873506a342b4d7a45704f324e76626e4e3049456739644673325856356b4c45633964467333585635774c466f39644673784e6c31655a437857505852624d546464586e417357543130577a49325856356b4c457339644673794e31316563437859505852624d7a5a64586d5173536a3130577a4d33585635774c464539644673304e6c31655a43783064443130577a5133585635774f3251396146346f626a77384d587870506a342b4d7a45704c4841395a6c346f615477384d587875506a342b4d7a45704f324e76626e4e3049475630505852624f4631655a43787964443130577a6c64586e4173626e5139644673784f4631655a43787064443130577a4535585635774c473930505852624d6a6864586d517363335139644673794f56316563437868644d0802443130577a4d345856356b4c485630505852624d7a6c64586e417361485139644673304f4631655a43786d64443130577a5135585635774c47783050576373593351396253786b644431335044773066486b2b506a34794f43787764443135504477306648632b506a34794f43786e644431325044777a6647492b506a34794f537874644431695044777a6648592b506a34794f53783564443166504477356645302b506a34794d7978336444314e504477356646382b506a34794d79783264443146504477784f487854506a342b4d545173596e5139557a77384d5468385254342b506a45304c45313050564938504446385154342b506a4d784c4639305055453850444638556a342b506a4d784c45563050557738504445796645492b506a34794d43785464443143504477784d6e784d506a342b4d6a4173556e5139617a77384d544238547a342b506a49794c45463050553838504445776647732b506a34794d69784364443134504477784d337855506a342b4d546b7354485139564477384d544e386544342b506a45354c4774305055343850444a385354342b506a4d774c45393050556b3850444a38546a342b506a4d774c4652305056553850444d7766454d2b506a34794c48683050554d3850444d776646552b506a34794c4535305056413850445a38616a342b506a49324c456c3050576f3850445a385544342b506a49324c4d0802454e3050584538504445786645512b506a34794d53785664443145504477784d587878506a342b4d6a457355485139526a77384d545638656a342b506a45334c47703050586f38504445316645592b506a34784e7978456444306b504477794f587858506a342b4d79787864443158504477794f58776b506a342b4d79784764443149504477794f487848506a342b4e43783664443148504477794f487849506a342b4e43785864443157504477794d337861506a342b4f53776b64443161504477794d337857506a342b4f5378496444315a504477794e58784c506a342b4e7978486444314c504477794e58785a506a342b4e79786164443159504477794d58784b506a342b4d544573566e5139536a77384d6a46385744342b506a45784c466c3050585230504477794e487852506a342b4f43784c64443152504477794e4878306444342b506a6773574851395a5851385044493366484a30506a342b4e53784b64443179644477384d6a64385a58512b506a34314c46463050573530504477794d4878706444342b506a45794c48526c50576c30504477794d4878756444342b506a45794c47566c50584e305044773366473930506a342b4d6a5573636d553962335138504464386333512b506a34794e5378755a543168644477384f4878316444342b506a49304c476c6c505856305044773466474630506a342b4d6a517362325539614d08024851385044453066475a30506a342b4d546773633255395a6e51385044453066476830506a342b4d54673764467377585431736446352b5258516d51335173644673785854316a6446352b5533516d56585173644673784d463039526e5265666c46304a6d64304c4852624d54466450587030586e35305a535a7464437830577a49775854314e6446352b546e516d53485173644673794d56303958335265666b6c304a6b64304c4852624d7a426450566830586e356b64435a5364437830577a4d785854314b6446352b6348516d51585173644673304d46303956485265666c64304a6d566c4c4852624e44466450586830586e346b64435a795a537830577a4a6450555630586e354464435a6164437830577a4e6450564e30586e355664435a5764437830577a4579585431526446352b5a33516d516e5173644673784d31303964475665666d31304a6b78304c4852624d6a4a6450553530586e354964435a755a537830577a497a5854314a6446352b5233516d615755736446737a4d6c30395a485265666c4a304a6c42304c4852624d7a4e6450584230586e354264435a7164437830577a5179585431586446352b5a57556d65585173644673304d3130394a485265666e4a6c4a6e64304c4852624e46303951335265666c70304a6d396c4c4852624e56303956585265666c5a304a6e4e6c4c4852624d54526450576430586e3543644d0802435a4564437830577a4531585431746446352b5448516d63585173644673794e46303953485265666d356c4a6e5a304c4852624d6a566450556430586e35705a535a6964437830577a4d30585431536446352b5548516d575851736446737a4e56303951585265666d70304a6b74304c4852624e4452645057566c586e353564435a7264437830577a5131585431795a56352b6433516d5433517364467332585431616446352b6232556d6248517364467333585431576446352b6332556d59335173644673784e6c3039516e5265666b52304a6b5a304c4852624d54646450557830586e357864435a3664437830577a4932585431755a56352b646e516d54585173644673794e31303961575665666d4a304a6c39304c4852624d7a5a6450564230586e355a64435a5964437830577a4d33585431716446352b5333516d536e5173644673304e6c303965585265666d74304a6c52304c4852624e44646450586430586e355064435a3464437830577a68645057396c586e357364435a4664437830577a6c6450584e6c586e356a64435a5464437830577a4534585431456446352b526e516d55585173644673784f56303963585265666e70304a6e526c4c4852624d6a686450585a30586e354e64435a4f64437830577a4935585431696446352b5833516d535851736446737a4f46303957585265666c68304a6d52304c4852624d7a6c64504d0802557430586e354b64435a7764437830577a5134585431726446352b5648516d56335173644673304f56303954335265666e68304a6952304c4852624d46316550584a624d69706c58537830577a4664586a3179577a49715a53737858583139665377324e544d364b4851735a5378794b54302b65324e76626e4e3049473439636967304d436b375a6e56755933527062323467615367706533526f61584d756333526864475539577a41734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4441734d4377774c4442644c48526f61584d75596d7876593274546158706c5057353162477773644768706379356a62335675644430774c48526f61584d75633346315a5756366157356e5053457866576b7563484a76644739306558426c4c6d6c756158527059577870656d55395a6e5675593352706232346f6443786c4b58746d6233496f62475630494851394d447430504455774f79737264436c3061476c7a4c6e4e305958526c573352645054413764476870637935696247396a61314e70656d5539644338344c48526f61584d7559323931626e51394d43783061476c7a4c6e4e786457566c656d6c755a7a30684d58307361533577636d3930623352356347557559574a7a62334a6950575a31626d4e30615739754b48517065325a76636968735a4d08025851675a5430774f325538644335735a57356e644767374b79746c4b58526f61584d756333526864475662666e346f644768706379356a62335675644338304b563165505852625a5630385048526f61584d7559323931626e516c4e436f344c48526f61584d7559323931626e517250544573644768706379356a62335675644430395058526f61584d75596d7876593274546158706c4a69596f626935774d5459774d43683061476c7a4c6e4e305958526c4b53783061476c7a4c6d4e766457353050544170665378704c6e42796233527664486c775a533568596e4e76636d4a4d59584e30526d5633516d6c30637a316d6457356a64476c76626968304b58743061476c7a4c6e4e305958526c5733352b4b48526f61584d7559323931626e51764e436c64586a31305044783061476c7a4c6d4e76645735304a5451714f4377774954306f4d5449344a6e51704a695a3061476c7a4c6d4e76645735305054303964476870637935696247396a61314e70656d55744d53596d626935774d5459774d43683061476c7a4c6e4e305958526c4b53783061476c7a4c6e4e305958526c5733352b4b43683061476c7a4c6d4a7362324e7255326c365a5330784b5338304b563165505445794f4477384b48526f61584d75596d7876593274546158706c4c5445704a5451714f4378754c6e41784e6a41774b48526f61584d7563335268644755704c4d080248526f61584d7559323931626e51394d43783061476c7a4c6e4e786457566c656d6c755a7a30684d48307361533577636d39306233523563475575633346315a5756365a54316d6457356a64476c76626968304b58743061476c7a4c6e4e786457566c656d6c755a3378386447687063793568596e4e76636d4a4d59584e30526d5633516d6c30637967784b54746a6232357a6443426c50554a315a6d5a6c6369356862477876597968304b54746d6233496f62475630494849394d447479504851374b7974794b575662636c3039644768706379357a644746305a56742b6669683061476c7a4c6d4e76645735304c7a51705854342b506e526f61584d7559323931626e516c4e436f344a6a49314e53783061476c7a4c6d4e76645735304b7a30784c48526f61584d7559323931626e51395054313061476c7a4c6d4a7362324e7255326c365a53596d4b473475634445324d44416f644768706379357a644746305a536b73644768706379356a62335675644430774b5474795a585231636d34675a58307361533577636d39306233523563475575593239776554316d6457356a64476c76626968304b58746d6233496f62475630494755394d44746c504455774f7973725a536c304c6e4e305958526c573256645058526f61584d7563335268644756625a563037644335696247396a61314e70656d553964476870637935696247396a614d0802314e70656d55736443356a623356756444313061476c7a4c6d4e76645735304c485175633346315a5756366157356e5058526f61584d75633346315a5756366157356e665378304c6d56346347397964484d39615830734e6a4d774f6e5139506e736964584e6c49484e30636d6c6a64434937646d467949475539653330375a6e56755933527062323467636968304c48497362696c37626e78384b47343952584a79623349704f335a686369427050575a31626d4e30615739754b48517065335a686369426c4c4734375a6e567559335270623234676153686c4c47347361536c37636d563064584a7549485175593246736243683061476c7a4c475a31626d4e30615739754b4851735a5378754b5874795a585231636d3469633352796157356e496a303964486c775a57396d4948492f636a70794b4851735a5378754b58306f5a5378754c476b704b58783864476870633331795a585231636d3467626a31304c43686c50576b704c6e42796233527664486c775a543150596d706c5933517559334a6c5958526c4b47347563484a76644739306558426c4b53786c4c6e42796233527664486c775a53356a6232357a64484a3159335276636a316c4c47557558313977636d393062313966505734736158306f62696b3761533577636d39306233523563475575626d46745a5431754c6d35686257557361533577636d393062335235634d08024755755932396b5a5431304c475662644630396158316d6457356a64476c76626942754b4851735a536c376157596f51584a7959586b7561584e42636e4a68655368304b536c37646d467949484939644335735a57356e64476737636d563064584a7549485139644335745958416f4b475a31626d4e30615739754b48517065334a6c644856796269425464484a70626d636f64436c394b536b73636a347950794a76626d5567623259674969356a6232356a5958516f5a537769494349704c6d4e76626d4e68644368304c6e4e7361574e6c4b444173636930784b53357162326c754b434973494349704c43497349473979494349704b3352626369307858546f7950543039636a38696232356c4947396d4943497559323975593246304b475573496941694b53356a6232356a5958516f644673775853776949473979494349704c6d4e76626d4e6864436830577a46644b546f69623259674969356a6232356a5958516f5a537769494349704c6d4e76626d4e6864436830577a42644b5831795a585231636d3469623259674969356a6232356a5958516f5a537769494349704c6d4e76626d4e686443685464484a70626d636f64436b706658496f496b5653556c394a546c5a4254456c45583039515646395751557856525349734b475a31626d4e30615739754b4851735a536c37636d563064584a754a31526f5a534232595778315a4d08025341694a79746c4b79636949476c7a49476c75646d4673615751675a6d39794947397764476c76626941694a7974304b7963694a3330704c46523563475646636e4a7663696b736369676952564a5358306c4f566b464d5355526651564a485831525a554555694c43686d6457356a64476c76626968304c47557363696c37646d467949476b736279787a4c4745376157596f496e4e30636d6c755a79493950585235634756765a69426c4a69596f627a3069626d3930494349735a53357a64574a7a6448496f49584e3866484d384d4438774f69747a4c473875624756755a33526f4b543039505738705079687050534a7464584e3049473576644342695a5349735a54316c4c6e4a6c634778685932556f4c313575623351674c79776949696b704f6d6b39496d313163335167596d55694c475a31626d4e30615739754b4851735a5378794b5874795a585231636d346f646d39705a43417750543039636e7838636a35304c6d786c626d643061436b6d4a69687950585175624756755a33526f4b5378304c6e4e31596e4e30636d6c755a7968794c575575624756755a33526f4c484970505430395a58306f64437769494746795a3356745a57353049696b70595430695647686c4943497559323975593246304b485173496941694b53356a6232356a5958516f61537769494349704c6d4e76626d4e68644368754b475573496e5235634d08024755694b536b375a57787a5a587432595849676454316d6457356a64476c76626968304c47557363696c37636d563064584a75496d353162574a6c6369496850585235634756765a6942794a69596f636a30774b5377684b4849725a5335735a57356e6447672b644335735a57356e644767704a6959744d534539505851756157356b5a5868505a69686c4c484970665368304c43497549696b2f496e42796233426c636e5235496a6f6959584a6e6457316c626e51694f3245394a31526f5a5341694a79356a6232356a5958516f6443776e4969416e4b53356a6232356a5958516f64537769494349704c6d4e76626d4e68644368704c43496749696b7559323975593246304b47346f5a53776964486c775a5349704b5831795a585231636d34675953733949693467556d566a5a576c325a57516764486c775a5341694c6d4e76626d4e68644368306558426c6232596763696c394b5378556558426c52584a79623349704c48496f496b5653556c395456464a46515531665546565453463942526c5246556c3946543059694c434a7a64484a6c595730756348567a614367704947466d6447567949455650526949704c48496f496b5653556c394e5256524954305266546b395558306c4e554578465455564f564556454969776f5a6e5675593352706232346f64436c37636d563064584a75496c526f5a5341694b335172496942745a4d080258526f6232516761584d67626d393049476c746347786c625756756447566b496e30704b5378794b434a46556c4a66553152535255464e583142535255314256465653525639445445395452534973496c42795a573168644856795a53426a6247397a5a5349704c48496f496b5653556c395456464a46515531665245565456464a50575556454969776f5a6e5675593352706232346f64436c37636d563064584a75496b4e68626d35766443426a5957787349434972644373694947466d6447567949474567633352795a574674494864686379426b5a584e30636d39355a57516966536b704c48496f496b5653556c394e565578555356424d525639445155784d516b464453794973496b4e686247786959574e7249474e686247786c5a43427464577830615842735a5342306157316c637949704c48496f496b5653556c395456464a46515531665130464f546b39555831424a554555694c434a44595735756233516763476c775a537767626d393049484a6c59575268596d786c49696b736369676952564a5358314e55556b564254563958556b6c5552563942526c5246556c3946546b51694c434a33636d6c305a5342685a6e526c6369426c626d51694b5378794b434a46556c4a66553152535255464e5830355654457866566b464d5655565449697769545746354947357664434233636d6c305a5342756457787349485a68624d080248566c637942306279427a64484a6c595730694c46523563475646636e4a7663696b736369676952564a535831564f5330355056303566525535445430524a546b63694c43686d6457356a64476c76626968304b5874795a585231636d346956573572626d39336269426c626d4e765a476c755a7a6f674969743066536b7356486c775a555679636d39794b5378794b434a46556c4a66553152535255464e5831564f5530684a526c526651555a5552564a6652553545583056575255355549697769633352795a5746744c6e5675633268705a6e516f4b5342685a6e526c6369426c626d51675a585a6c626e51694b5378304c6d56346347397964484d756354316c665377334d7a55364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a3150596d706c5933517561325635633378385a6e5675593352706232346f64436c37646d467949475539573130375a6d39794b485a686369427949476c75494851705a53357764584e6f4b4849704f334a6c644856796269426c665474304c6d56346347397964484d396144743259584967615431794b4467334e536b73627a31794b4467304d796b37636967334d5463704b47677361536b375a6d39794b485a686369427a5057346f62793577636d393062335235634755704c4745394d44746850484d75624756755a33526f4f3245724b796c37644d08026d467949485539633174685854746f4c6e42796233527664486c775a567431585878384b47677563484a76644739306558426c573356645057387563484a76644739306558426c573356644b58316d6457356a64476c766269426f4b48517065326c6d4b43456f6447687063794270626e4e305957356a5a57396d494767704b584a6c64485679626942755a586367614368304b5474704c6d4e686247776f64476870637978304b5378764c6d4e686247776f64476870637978304b53783061476c7a4c6d467362473933534746735a6b39775a573439495441736443596d4b43457850543039644335795a57466b59574a735a53596d4b48526f61584d75636d56685a47466962475539495445704c4345785054303964433533636d6c3059574a735a53596d4b48526f61584d7564334a706447466962475539495445704c4345785054303964433568624778766430686862475a50634756754a69596f6447687063793568624778766430686862475a5063475675505345784c48526f61584d756232356a5a5367695a57356b4969786d4b536b7066575a31626d4e30615739754947596f4b58743061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d56755a47566b66487877636d396a5a584e7a4c6d356c6548525561574e724b4777736447687063796c395a6e56755933527062323467624368304b5874304c6d56755a4d080243677066553969616d566a6443356b5a575a70626d5651636d39775a584a306553686f4c6e42796233527664486c775a53776964334a7064474669624756496157646f563246305a584a4e59584a72496978375a5735316257567959574a735a546f684d53786e5a5851365a6e5675593352706232346f4b5874795a585231636d3467644768706379356664334a706447466962475654644746305a53356f6157646f563246305a584a4e59584a72665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a306553686f4c6e42796233527664486c775a53776964334a70644746696247564364575a6d5a5849694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c3933636d6c3059574a735a564e305958526c4a695a3061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d646c64454a315a6d5a6c63696770665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a306553686f4c6e42796233527664486c775a53776964334a70644746696247564d5a57356e644767694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d786c624d08026d6430614831394b537850596d706c593351755a47566d6157356c55484a766347567964486b6f61433577636d39306233523563475573496d526c6333527962336c6c5a434973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a7549485a76615751674d4345395058526f61584d7558334a6c59575268596d786c553352686447556d4a6e5a76615751674d4345395058526f61584d755833647961585268596d786c553352686447556d4a69683061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a43596d644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a5751706653787a5a5851365a6e5675593352706232346f64436c37646d39705a434177495430396447687063793566636d56685a47466962475654644746305a53596d646d39705a43417749543039644768706379356664334a706447466962475654644746305a53596d4b48526f61584d7558334a6c59575268596d786c55335268644755755a47567a64484a766557566b50585173644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a57513964436c3966536c394c4451344e546f6f6443786c4c48497050543537496e567a5a53427a64484a70593351694f3351755a4d080258687762334a30637a31704f335a68636942755058496f4d7a45784b54746d6457356a64476c76626942704b48517065326c6d4b43456f6447687063794270626e4e305957356a5a57396d49476b704b584a6c64485679626942755a586367615368304b5474754c6d4e686247776f64476870637978304b5831794b4463784e796b6f615378754b5378704c6e42796233527664486c775a53356664484a68626e4e6d62334a7450575a31626d4e30615739754b4851735a5378794b5874794b4735316247777364436c39665377344e7a55364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a74304c6d56346347397964484d39557978544c6c4a6c59575268596d786c5533526864475539525474794b4445344e796b7552585a6c626e524662576c30644756794f335a686369427050575a31626d4e30615739754b4851735a536c37636d563064584a754948517562476c7a644756755a584a7a4b4755704c6d786c626d643061483073627a31794b4467324f436b73637a31794b4463324e436b75516e566d5a6d56794c4745396369356e4c6c5670626e513451584a7959586c3866475a31626d4e30615739754b436c3766547432595849676453786f5058496f4e5467324b5474315057676d4a6d67755a475669645764736232632f6143356b5a574a315a3278765a796769633352795a4d080257467449696b365a6e5675593352706232346f4b5874394f335a686369426d4c4777735979786b5058496f4f54677a4b5378775058496f4e5441314b53786e5058496f4e4467794b53356e5a5852496157646f563246305a584a4e59584a724c473039636967324d7a41704c6e4573655431744c6b5653556c394a546c5a4254456c455830465352313955575642464c48633962533546556c4a66553152535255464e583142565530686651555a5552564a66525539474c48593962533546556c4a665455565553453945583035505646394a5456424d52553146546c5246524378695057307552564a5358314e55556b564254563956546c4e4953555a5558304647564556535830564f52463946566b564f564474794b4463784e796b6f557978764b54743259584967545431774c6d5679636d397954334a455a584e30636d39354c46383957794a6c636e4a7663694973496d4e7362334e6c496977695a47567a64484a7665534973496e426864584e6c49697769636d567a6457316c496c30375a6e56755933527062323467525368304c47557361536c37626a3175664878794b44637a4e536b73644431306648783766537769596d3976624756686269496850585235634756765a6942704a69596f6154316c49476c7563335268626d4e6c6232596762696b736447687063793576596d706c5933524e6232526c5053456864433576594d08026d706c5933524e6232526c4c476b6d4a69683061476c7a4c6d3969616d566a644531765a4755396447687063793576596d706c5933524e6232526c6648776849585175636d56685a47466962475650596d706c5933524e6232526c4b53783061476c7a4c6d68705a3268585958526c636b3168636d73395a79683061476c7a4c485173496e4a6c59575268596d786c53476c6e6146646864475679545746796179497361536b73644768706379356964575a6d5a584939626d56334947517364476870637935735a57356e644767394d43783061476c7a4c6e42706347567a505735316247777364476870637935776158426c63304e766457353050544173644768706379356d624739336157356e5057353162477773644768706379356c626d526c5a4430684d53783061476c7a4c6d56755a455674615852305a5751394954457364476870637935795a57466b6157356e505345784c48526f61584d7563336c75597a30684d43783061476c7a4c6d356c5a5752535a57466b59574a735a5430684d53783061476c7a4c6d5674615852305a5752535a57466b59574a735a5430684d53783061476c7a4c6e4a6c59575268596d786c54476c7a644756756157356e505345784c48526f61584d75636d567a6457316c55324e6f5a5752316247566b505345784c48526f61584d75634746316332566b505345774c48526f61584d755a573170644d0802454e7362334e6c50534578495430396443356c62576c3051327876633255736447687063793568645852765247567a64484a766554306849585175595856306230526c6333527962336b73644768706379356b5a584e30636d39355a57513949544573644768706379356b5a575a68645778305257356a62325270626d63396443356b5a575a68645778305257356a62325270626d643866434a31644759344969783061476c7a4c6d463359576c3052484a68615734394d43783061476c7a4c6e4a6c59575270626d644e62334a6c505345784c48526f61584d755a47566a6232526c636a3175645778734c48526f61584d755a57356a62325270626d6339626e5673624378304c6d56755932396b6157356e4a69596f5a6e78384b475939636967344d446b704c6e4d704c48526f61584d755a47566a6232526c636a31755a5863675a6968304c6d56755932396b6157356e4b53783061476c7a4c6d56755932396b6157356e505851755a57356a62325270626d637066575a31626d4e306157397549464d6f64436c376157596f626a3175664878794b44637a4e536b734953683061476c7a49476c7563335268626d4e6c6232596755796b70636d563064584a754947356c647942544b4851704f335a686369426c5058526f61584d676157357a64474675593256765a6942754f33526f61584d7558334a6c59575268596d786c55335268644d0802475539626d56334945556f6443783061476c7a4c4755704c48526f61584d75636d56685a47466962475539495441736443596d4b434a6d6457356a64476c766269493950585235634756765a6942304c6e4a6c5957516d4a69683061476c7a4c6c39795a57466b50585175636d56685a436b73496d5a31626d4e3061573975496a303964486c775a57396d494851755a47567a64484a766553596d4b48526f61584d755832526c6333527962336b396443356b5a584e30636d39354b536b736279356a595778734b48526f61584d7066575a31626d4e30615739754946496f6443786c4c484973626978704b5874314b434a795a57466b59574a735a55466b5a454e6f645735724969786c4b547432595849676279786f5058517558334a6c59575268596d786c55335268644755376157596f626e56736244303950575570614335795a57466b6157356e505345784c475a31626d4e30615739754b4851735a536c376157596f645367696232354662325a4461485675617949704c4755755a57356b5a575170636d563064584a754f326c6d4b4755755a47566a6232526c63696c37646d4679494849395a53356b5a574e765a4756794c6d56755a4367704f33496d4a6e4975624756755a33526f4a69596f5a53356964575a6d5a5849756348567a614368794b53786c4c6d786c626d6430614373395a533576596d706c5933524e6232526c504d08027a4536636935735a57356e64476770665755755a57356b5a575139495441735a53357a6557356a5032736f64436b364b475575626d566c5a464a6c59575268596d786c505345784c4755755a5731706448526c5a464a6c59575268596d786c6648776f5a53356c62576c306447566b556d56685a4746696247553949544173547968304b536b70665368304c4767704f325673633255676157596f615878384b4738395a6e5675593352706232346f6443786c4b58743259584967636a7475505755736379357063304a315a6d5a6c636968754b58783862694270626e4e305957356a5a57396d4947463866434a7a64484a70626d6369505431306558426c623259675a587838646d39705a434177505430395a58783864433576596d706c5933524e6232526c6648776f636a31755a5863676553676959326831626d73694c467369633352796157356e49697769516e566d5a6d56794969776956576c7564446842636e4a6865534a644c4755704b54743259584967626a74795a585231636d3467636e306f6143786c4b536b7362796c4e4b48517362796b375a57787a5a5342705a69686f4c6d3969616d566a644531765a4756386647556d4a6d5575624756755a33526f506a41706157596f496e4e30636d6c755a79493950585235634756765a69426c6648786f4c6d3969616d566a644531765a47563866453969616d566a6443356e5a4d0802585251636d393062335235634756505a69686c4b54303950584d7563484a76644739306558426c6648776f5a54316d6457356a64476c76626968304b5874795a585231636d34676379356d636d39744b4851706653686c4b536b7362696c6f4c6d56755a455674615852305a57512f545368304c47356c647942694b5470424b4851736143786c4c4345774b54746c62484e6c49476c6d4b4767755a57356b5a575170545368304c47356c647942334b54746c62484e6c65326c6d4b4767755a47567a64484a766557566b4b584a6c64485679626945784f326775636d56685a476c755a7a30684d53786f4c6d526c5932396b5a58496d4a6946795079686c505767755a47566a6232526c63693533636d6c305a53686c4b53786f4c6d3969616d566a644531765a475638664441685054316c4c6d786c626d6430614439424b4851736143786c4c4345784b5470554b48517361436b704f6b456f6443786f4c475573495445706657567363325567626e78384b476775636d56685a476c755a7a30684d5378554b48517361436b704f334a6c644856796269466f4c6d56755a47566b4a69596f614335735a57356e644767386143356f6157646f563246305a584a4e59584a726648777750543039614335735a57356e6447677066575a31626d4e30615739754945456f6443786c4c48497362696c375a53356d624739336157356e4a695977504d08025430395a5335735a57356e6447676d4a69466c4c6e4e35626d4d2f4b4755755958646861585245636d4670626a30774c4851755a573170644367695a4746305953497363696b704f69686c4c6d786c626d6430614373395a533576596d706c5933524e6232526c507a4536636935735a57356e64476773626a396c4c6d4a315a6d5a6c63693531626e4e6f61575a304b4849704f6d5575596e566d5a6d56794c6e42316332676f63696b735a5335755a57566b556d56685a4746696247556d4a6d736f64436b704c46516f6443786c4b583150596d706c593351755a47566d6157356c55484a766347567964486b6f55793577636d39306233523563475573496d526c6333527962336c6c5a434973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a7549485a76615751674d4345395058526f61584d7558334a6c59575268596d786c553352686447556d4a6e526f61584d7558334a6c59575268596d786c55335268644755755a47567a64484a766557566b6653787a5a5851365a6e5675593352706232346f64436c376447687063793566636d56685a47466962475654644746305a53596d4b48526f61584d7558334a6c59575268596d786c55335268644755755a47567a64484a766557566b50585170665830704c464d7563484a76644739306558426c4c6d526c634d080233527962336b396343356b5a584e30636d39354c464d7563484a76644739306558426c4c6c3931626d526c6333527962336b3963433531626d526c6333527962336b7355793577636d393062335235634755755832526c6333527962336b395a6e5675593352706232346f6443786c4b58746c4b485170665378544c6e42796233527664486c775a53357764584e6f50575a31626d4e30615739754b4851735a536c37646d467949484973626a313061476c7a4c6c39795a57466b59574a735a564e305958526c4f334a6c64485679626942754c6d3969616d566a644531765a47552f636a30684d446f69633352796157356e496a303964486c775a57396d4948516d4a69676f5a54316c664878754c6d526c5a6d463162485246626d4e765a476c755a796b68505431754c6d56755932396b6157356e4a69596f6444317a4c6d5a796232306f6443786c4b53786c505349694b537879505345774b5378534b48526f61584d736443786c4c4345784c484970665378544c6e42796233527664486c775a533531626e4e6f61575a3050575a31626d4e30615739754b48517065334a6c64485679626942534b48526f61584d7364437875645778734c4345774c4345784b58307355793577636d3930623352356347557561584e515958567a5a5751395a6e5675593352706232346f4b5874795a585231636d34684d5430395058526f61584d75584d0802334a6c59575268596d786c55335268644755755a6d787664326c755a33307355793577636d39306233523563475575633256305257356a62325270626d63395a6e5675593352706232346f64436c375a6e78384b475939636967344d446b704c6e4d704f335a686369426c5057356c6479426d4b4851704f33526f61584d7558334a6c59575268596d786c55335268644755755a47566a6232526c636a316c4c48526f61584d7558334a6c59575268596d786c55335268644755755a57356a62325270626d63396447687063793566636d56685a47466962475654644746305a53356b5a574e765a4756794c6d56755932396b6157356e4f325a766369683259584967626a313061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d4a315a6d5a6c6369356f5a57466b4c476b3949694937626e567362434539505734374b576b725057557564334a706447556f6269356b595852684b53787550573475626d5634644474795a585231636d34676447687063793566636d56685a47466962475654644746305a53356964575a6d5a5849755932786c5958496f4b5377694969453950576b6d4a6e526f61584d7558334a6c59575268596d786c5533526864475575596e566d5a6d56794c6e42316332676f61536b736447687063793566636d56685a47466962475654644746305a5335735a57356e64476739615335735a57356e644d08024767736447687063333037646d4679494549394d5441334d7a63304d5467794e44746d6457356a64476c766269424d4b4851735a536c37636d563064584a754948513850544238664441395054316c4c6d786c626d64306143596d5a53356c626d526c5a4438774f6d557562324a715a574e305457396b5a5438784f6e51685058512f5a53356d624739336157356e4a695a6c4c6d786c626d64306144396c4c6d4a315a6d5a6c6369356f5a57466b4c6d526864474575624756755a33526f4f6d5575624756755a33526f4f696830506d557561476c6e6146646864475679545746796179596d4b47557561476c6e614664686447567954574679617a316d6457356a64476c76626968304b5874795a585231636d346764443439516a3930505549364b4851744c53783066443130506a342b4d53783066443130506a342b4d69783066443130506a342b4e43783066443130506a342b4f43783066443130506a342b4d545973644373724b537830665368304b536b73644477395a5335735a57356e6447672f6444706c4c6d56755a47566b50325575624756755a33526f4f69686c4c6d356c5a5752535a57466b59574a735a5430684d4377774b536c395a6e56755933527062323467617968304b587432595849675a5431304c6c39795a57466b59574a735a564e305958526c4f33556f496d5674615852535a57466b59574a735a5349735a4d08025335755a57566b556d56685a474669624755735a53356c62576c306447566b556d56685a474669624755704c475575626d566c5a464a6c59575268596d786c505345784c4755755a5731706448526c5a464a6c59575268596d786c6648776f645367695a57317064464a6c59575268596d786c4969786c4c6d5a7362336470626d63704c4755755a5731706448526c5a464a6c59575268596d786c505345774c48427962324e6c63334d75626d5634644652705932736f547978304b536c395a6e56755933527062323467547968304b587432595849675a5431304c6c39795a57466b59574a735a564e305958526c4f33556f496d5674615852535a57466b59574a735a5638694c4755755a47567a64484a766557566b4c475575624756755a33526f4c4755755a57356b5a5751704c4755755a47567a64484a766557566b664877685a5335735a57356e6447676d4a69466c4c6d56755a47566b6648776f6443356c62576c304b434a795a57466b59574a735a5349704c4755755a5731706448526c5a464a6c59575268596d786c505345784b53786c4c6d356c5a5752535a57466b59574a735a5430685a53356d624739336157356e4a6959685a53356c626d526c5a43596d5a5335735a57356e644767385057557561476c6e614664686447567954574679617978564b48517066575a31626d4e30615739754946516f6443786c4b58746c4c4d08026e4a6c59575270626d644e62334a6c6648776f5a5335795a57466b6157356e545739795a5430684d437877636d396a5a584e7a4c6d356c6548525561574e724b4867736443786c4b536c395a6e56755933527062323467654368304c47557065325a766369673749575575636d56685a476c755a79596d495755755a57356b5a57516d4a69686c4c6d786c626d64306144786c4c6d68705a3268585958526c636b3168636d7438664755755a6d787664326c755a79596d4d44303950575575624756755a33526f4b54737065335a686369427950575575624756755a33526f4f326c6d4b48556f496d316865574a6c556d56685a453176636d5567636d56685a43417749696b73644335795a57466b4b4441704c4849395054316c4c6d786c626d643061436c69636d56686133316c4c6e4a6c59575270626d644e62334a6c5053457866575a31626d4e30615739754945346f64436c37646d46794947553964433566636d56685a47466962475654644746305a54746c4c6e4a6c59575268596d786c54476c7a644756756157356e5058517562476c7a644756755a584a446233567564436769636d56685a474669624755694b5434774c475575636d567a6457316c55324e6f5a5752316247566b4a6959685a5335775958567a5a57512f5a53356d624739336157356e505345774f6e517562476c7a644756755a584a4462335675644367695a4d080247463059534970506a416d4a6e5175636d567a6457316c4b436c395a6e56755933527062323467535368304b5874314b434a795a57466b59574a735a5342755a58683064476c6a617942795a57466b494441694b5378304c6e4a6c5957516f4d436c395a6e56755933527062323467517968304c4755706533556f496e4a6c633356745a5349735a5335795a57466b6157356e4b53786c4c6e4a6c59575270626d643866485175636d56685a4367774b53786c4c6e4a6c633356745a564e6a6147566b6457786c5a4430684d5378304c6d56746158516f496e4a6c633356745a5349704c46556f64436b735a53356d624739336157356e4a6959685a5335795a57466b6157356e4a695a304c6e4a6c5957516f4d436c395a6e56755933527062323467565368304b587432595849675a5431304c6c39795a57466b59574a735a564e305958526c4f325a76636968314b434a6d624739334969786c4c6d5a7362336470626d63704f3255755a6d787664326c755a79596d626e56736243453950585175636d56685a4367704f796b3766575a31626d4e30615739754946416f6443786c4b5874795a585231636d34674d44303950575575624756755a33526f50323531624777364b47557562324a715a574e305457396b5a54397950575575596e566d5a6d56794c6e4e6f61575a304b436b36495852386648512b50575575624756755a33526f504d0802796879505755755a47566a6232526c636a396c4c6d4a315a6d5a6c6369357162326c754b4349694b546f78505430395a53356964575a6d5a584975624756755a33526f50325575596e566d5a6d56794c6d5a70636e4e304b436b365a53356964575a6d5a58497559323975593246304b475575624756755a33526f4b53786c4c6d4a315a6d5a6c6369356a62475668636967704b54707950575575596e566d5a6d56794c6d4e76626e4e316257556f6443786c4c6d526c5932396b5a5849704c4849704f335a686369427966575a31626d4e306157397549476f6f64436c37646d46794947553964433566636d56685a47466962475654644746305a5474314b434a6c626d52535a57466b59574a735a5349735a53356c626d524662576c306447566b4b53786c4c6d56755a455674615852305a5752386643686c4c6d56755a47566b505345774c48427962324e6c63334d75626d5634644652705932736f5243786c4c4851704b58316d6457356a64476c76626942454b4851735a536c376157596f645367695a57356b556d56685a4746696247564f564349736443356c626d524662576c306447566b4c485175624756755a33526f4b5377686443356c626d524662576c306447566b4a69597750543039644335735a57356e6447676d4a6968304c6d56755a455674615852305a575139495441735a5335795a57466b59574a735a5430684d4d080253786c4c6d56746158516f496d56755a4349704c485175595856306230526c6333527962336b704b58743259584967636a316c4c6c3933636d6c3059574a735a564e305958526c4f796768636e783863693568645852765247567a64484a766553596d6369356d615735706332686c5a436b6d4a6d55755a47567a64484a76655367706658316d6457356a64476c76626942784b4851735a536c375a6d39794b485a686369427950544173626a31304c6d786c626d64306144747950473437636973724b576c6d4b485262636c30395054316c4b584a6c64485679626942794f334a6c644856796269307866564d7563484a76644739306558426c4c6e4a6c595751395a6e5675593352706232346f64436c3764536769636d56685a43497364436b736444317759584a7a5a556c75644368304c4445774b547432595849675a54313061476c7a4c6c39795a57466b59574a735a564e305958526c4c484939644474705a696777495430396443596d4b4755755a5731706448526c5a464a6c59575268596d786c505345784b537777505430396443596d5a5335755a57566b556d56685a4746696247556d4a69676f4d4345395057557561476c6e614664686447567954574679617a396c4c6d786c626d6430614434395a53356f6157646f563246305a584a4e59584a724f6d5575624756755a33526f506a41706648786c4c6d56755a47566b4b4d0802536c795a585231636d346764536769636d56685a446f675a57317064464a6c59575268596d786c4969786c4c6d786c626d64306143786c4c6d56755a47566b4b537777505430395a5335735a57356e6447676d4a6d55755a57356b5a57512f6169683061476c7a4b5470724b48526f61584d704c473531624777376157596f4d443039505368305055776f6443786c4b536b6d4a6d55755a57356b5a575170636d563064584a75494441395054316c4c6d786c626d64306143596d6169683061476c7a4b537875645778734f335a68636942754c476b395a5335755a57566b556d56685a47466962475537636d563064584a754948556f496d356c5a575167636d56685a474669624755694c476b704c436777505430395a5335735a57356e6447683866475575624756755a33526f4c5851385a53356f6157646f563246305a584a4e59584a724b53596d64536769624756755a33526f4947786c63334d6764476868626942335958526c636d3168636d73694c476b39495441704c4755755a57356b5a57523866475575636d56685a476c755a7a39314b434a795a57466b6157356e49473979494756755a47566b49697870505345784b5470704a69596f645367695a473867636d56685a4349704c475575636d56685a476c755a7a30684d43786c4c6e4e35626d4d39495441734d44303950575575624756755a33526f4a69596f5a5335755a4d080257566b556d56685a47466962475539495441704c48526f61584d7558334a6c5957516f5a53356f6157646f563246305a584a4e59584a724b53786c4c6e4e35626d4d39495445735a5335795a57466b6157356e6648776f6444314d4b4849735a536b704b53787564577873505430394b473439644434775031416f6443786c4b547075645778734b54386f5a5335755a57566b556d56685a474669624755395a5335735a57356e644767385057557561476c6e61466468644756795457467961797830505441704f69686c4c6d786c626d6430614330396443786c4c6d463359576c3052484a68615734394d436b734d44303950575575624756755a33526f4a69596f5a53356c626d526c5a4878384b475575626d566c5a464a6c59575268596d786c505345774b537879495430396443596d5a53356c626d526c5a43596d6169683061476c7a4b536b73626e5673624345395057346d4a6e526f61584d755a573170644367695a4746305953497362696b73626e307355793577636d3930623352356347557558334a6c595751395a6e5675593352706232346f64436c375453683061476c7a4c47356c647942324b434a66636d56685a43677049696b70665378544c6e42796233527664486c775a5335776158426c50575a31626d4e30615739754b4851735a536c37646d46794948493964476870637978755058526f61584d7558334a6c594d0802575268596d786c55335268644755376333647064474e6f4b47347563476c775a584e446233567564436c375932467a5a5341774f6d347563476c775a584d3964447469636d5668617a746a59584e6c49444536626935776158426c637a3162626935776158426c6379783058547469636d5668617a746b5a575a68645778304f6d347563476c775a584d756348567a614368304b5831754c6e42706347567a51323931626e5172505445736453676963476c775a53426a623356756444306c5a4342766348527a50535671496978754c6e42706347567a51323931626e51735a536b37646d4679494738394b43466c664877684d534539505755755a57356b4b53596d644345395058427962324e6c63334d756333526b623356304a695a304954303963484a765932567a6379357a6447526c636e492f5954706e4f325a31626d4e306157397549484d6f5a5378704b5874314b434a76626e567563476c775a5349704c475539505431794a695a704a6959684d54303950576b756147467a565735776158426c5a43596d4b476b756147467a565735776158426c5a4430684d4378314b434a6a62475668626e567749696b73644335795a573176646d564d61584e305a57356c6369676959327876633255694c4751704c485175636d567462335a6c54476c7a644756755a58496f496d5a70626d6c7a6143497363436b73644335795a573176644d08026d564d61584e305a57356c636967695a484a68615734694c4767704c485175636d567462335a6c54476c7a644756755a58496f496d5679636d39794969786a4b5378304c6e4a6c625739325a5578706333526c626d56794b434a31626e4270634755694c484d704c484975636d567462335a6c54476c7a644756755a58496f496d56755a43497359536b73636935795a573176646d564d61584e305a57356c636967695a57356b4969786e4b5378794c6e4a6c625739325a5578706333526c626d56794b434a6b59585268496978734b53786d505345774c4346754c6d463359576c3052484a6861573538664851755833647961585268596d786c553352686447556d4a6946304c6c3933636d6c3059574a735a564e305958526c4c6d356c5a575245636d4670626e7838614367704b58316d6457356a64476c76626942684b436c37645367696232356c626d51694b5378304c6d56755a436770665734755a57356b525731706448526c5a443977636d396a5a584e7a4c6d356c6548525561574e724b4738704f6e49756232356a5a5367695a57356b496978764b5378304c6d39754b434a31626e4270634755694c484d704f335a686369426f50575a31626d4e30615739754b48517065334a6c644856796269426d6457356a64476c766269677065335a686369426c5058517558334a6c59575268596d786c553352686447553764536769634d0802476c775a55397552484a68615734694c4755755958646861585245636d467062696b735a533568643246706445527959576c754a695a6c4c6d463359576c3052484a68615734744c537777505430395a533568643246706445527959576c754a695a704b485173496d5268644745694b53596d4b4755755a6d787664326c755a7a30684d4378564b4851704b5831394b4849704f3351756232346f496d527959576c754969786f4b547432595849675a6a30684d54746d6457356a64476c76626942734b4755706533556f496d39755a474630595349704f335a68636942705058517564334a706447556f5a536b37645367695a47567a64433533636d6c305a53497361536b7349544539505431704a69596f4b444539505431754c6e42706347567a51323931626e516d4a6d347563476c775a584d3950543130664878754c6e42706347567a51323931626e512b4d53596d4c544568505431784b47347563476c775a584d7364436b704a6959685a69596d4b48556f496d5a6862484e6c494864796158526c49484a6c63334276626e4e6c4c4342775958567a5a53497362693568643246706445527959576c754b5378754c6d463359576c3052484a68615734724b796b73636935775958567a5a5367704b58316d6457356a64476c766269426a4b4755706533556f496d39755a584a79623349694c4755704c47636f4b5378304c6e4a6c624d08025739325a5578706333526c626d56794b434a6c636e4a766369497359796b734d44303950576b6f644377695a584a79623349694b53596d545368304c47557066575a31626d4e30615739754947516f4b5874304c6e4a6c625739325a5578706333526c626d56794b434a6d61573570633267694c4841704c47636f4b58316d6457356a64476c76626942774b436c37645367696232356d61573570633267694b5378304c6e4a6c625739325a5578706333526c626d56794b434a6a6247397a5a5349735a436b735a79677066575a31626d4e30615739754947636f4b5874314b434a31626e4270634755694b5378794c6e567563476c775a5368304b5831795a585231636d346763693576626967695a4746305953497362436b735a6e5675593352706232346f6443786c4c48497065326c6d4b434a6d6457356a64476c766269493950585235634756765a6942304c6e42795a58426c626d524d61584e305a57356c63696c795a585231636d346764433577636d56775a57356b54476c7a644756755a58496f5a5378794b5474304c6c396c646d567564484d6d4a6e5175583256325a5735306331746c58543942636e4a686553357063304679636d46354b485175583256325a5735306331746c58536b2f644335665a585a6c626e527a573256644c6e5675633268705a6e516f63696b36644335665a585a6c626e527a57325664505674794c4d0802485175583256325a5735306331746c58563036644335766269686c4c484970665368304c434a6c636e4a766369497359796b7364433576626d4e6c4b434a6a6247397a5a5349735a436b7364433576626d4e6c4b434a6d61573570633267694c4841704c4851755a5731706443676963476c775a53497363696b736269356d624739336157356e6648776f6453676963476c775a5342795a584e31625755694b5378794c6e4a6c633356745a5367704b537830665378544c6e42796233527664486c775a533531626e4270634755395a6e5675593352706232346f64436c37646d4679494755396447687063793566636d56685a47466962475654644746305a5378795058746f59584e56626e42706347566b4f694578665474705a696777505430395a5335776158426c63304e76645735304b584a6c644856796269423061476c7a4f326c6d4b4445395054316c4c6e42706347567a51323931626e5170636d563064584a754948516d4a6e51685054316c4c6e42706347567a6648776f644878384b4851395a5335776158426c63796b735a5335776158426c637a3175645778734c47557563476c775a584e4462335675644430774c4755755a6d787664326c755a7a30684d5378304a695a304c6d56746158516f496e567563476c775a53497364476870637978794b536b7364476870637a74705a69676864436c37646d4679494734395a4d08025335776158426c637978705057557563476c775a584e44623356756444746c4c6e42706347567a50573531624777735a5335776158426c63304e7664573530505441735a53356d624739336157356e505345784f325a766369683259584967627a30774f323838615474764b797370626c74765853356c62576c304b434a31626e4270634755694c48526f61584d73653268686331567563476c775a575136495446394b5474795a585231636d3467644768706333313259584967637a31784b47557563476c775a584d7364436b37636d563064584a754c5445395054317a6648776f5a5335776158426c6379357a634778705932556f637977784b53786c4c6e42706347567a51323931626e5174505445734d5430395057557563476c775a584e44623356756443596d4b47557563476c775a584d395a5335776158426c6331737758536b736443356c62576c304b434a31626e4270634755694c48526f61584d7363696b704c48526f61584e394c464d7563484a76644739306558426c4c6d397550575a31626d4e30615739754b4851735a536c37646d46794948493962793577636d3930623352356347557562323475593246736243683061476c7a4c4851735a536b73626a313061476c7a4c6c39795a57466b59574a735a564e305958526c4f334a6c6448567962694a6b59585268496a30395058512f4b473475636d56685a474669624d080247564d61584e305a573570626d6339644768706379357361584e305a57356c636b4e76645735304b434a795a57466b59574a735a534970506a417349544568505431754c6d5a7362336470626d636d4a6e526f61584d75636d567a6457316c4b436b704f694a795a57466b59574a735a534939505431304a69596f6269356c626d524662576c306447566b664878754c6e4a6c59575268596d786c54476c7a644756756157356e6648776f626935795a57466b59574a735a5578706333526c626d6c755a7a31754c6d356c5a5752535a57466b59574a735a5430684d4378754c6d5a7362336470626d6339495445736269356c62576c306447566b556d56685a47466962475539495445736453676962323467636d56685a474669624755694c473475624756755a33526f4c473475636d56685a476c755a796b73626935735a57356e6447672f6179683061476c7a4b5470754c6e4a6c59575270626d64386648427962324e6c63334d75626d5634644652705932736f5353783061476c7a4b536b704c484a394c464d7563484a76644739306558426c4c6d466b5a4578706333526c626d567950564d7563484a76644739306558426c4c6d39754c464d7563484a76644739306558426c4c6e4a6c625739325a5578706333526c626d567950575a31626d4e30615739754b4851735a536c37646d46794948493962793577636d393062335235634d0802475575636d567462335a6c54476c7a644756755a584975593246736243683061476c7a4c4851735a536b37636d563064584a75496e4a6c59575268596d786c496a30395058516d4a6e427962324e6c63334d75626d5634644652705932736f5469783061476c7a4b537879665378544c6e42796233527664486c775a5335795a573176646d56426247784d61584e305a57356c636e4d395a6e5675593352706232346f64436c37646d46794947553962793577636d39306233523563475575636d567462335a6c5157787354476c7a644756755a584a7a4c6d4677634778354b48526f61584d7359584a6e6457316c626e527a4b5474795a585231636d3469636d56685a47466962475569495430396443596d646d39705a434177495430396448783863484a765932567a637935755a58683056476c6a6179684f4c48526f61584d704c4756394c464d7563484a76644739306558426c4c6e4a6c633356745a54316d6457356a64476c766269677065335a68636942305058526f61584d7558334a6c59575268596d786c5533526864475537636d563064584a75494851755a6d787664326c755a3378384b48556f496e4a6c633356745a5349704c4851755a6d787664326c755a7a3068644335795a57466b59574a735a5578706333526c626d6c755a79786d6457356a64476c76626968304c47557065325575636d567a6457316c55324e6f5a4d08025752316247566b6648776f5a5335795a584e31625756545932686c5a4856735a5751394954417363484a765932567a637935755a58683056476c6a617968444c4851735a536b706653683061476c7a4c4851704b5378304c6e426864584e6c5a4430684d53783061476c7a665378544c6e42796233527664486c775a5335775958567a5a54316d6457356a64476c766269677065334a6c64485679626942314b434a6a595778734948426864584e6c49475a7362336470626d63394a576f694c48526f61584d7558334a6c59575268596d786c55335268644755755a6d787664326c755a796b73495445685054313061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d5a7362336470626d636d4a6968314b434a775958567a5a5349704c48526f61584d7558334a6c59575268596d786c55335268644755755a6d787664326c755a7a30684d53783061476c7a4c6d56746158516f496e426864584e6c49696b704c48526f61584d7558334a6c59575268596d786c5533526864475575634746316332566b505345774c48526f61584e394c464d7563484a76644739306558426c4c6e6479595841395a6e5675593352706232346f64436c37646d46794947553964476870637978795058526f61584d7558334a6c59575268596d786c5533526864475573626a30684d54746d6233496f646d467949476b676157346764433576624d08026967695a57356b4969776f5a6e5675593352706232346f4b5874705a6968314b434a33636d46776347566b494756755a4349704c4849755a47566a6232526c6369596d495849755a57356b5a57517065335a6863694230505849755a47566a6232526c6369356c626d516f4b5474304a695a304c6d786c626d64306143596d5a53357764584e6f4b485170665755756348567a61436875645778734b5830704b5378304c6d39754b434a6b595852684969776f5a6e5675593352706232346f61536c374b48556f496e6479595842775a5751675a474630595349704c4849755a47566a6232526c6369596d4b476b396369356b5a574e765a4756794c6e64796158526c4b476b704b5378794c6d3969616d566a644531765a47556d4a6d35316247773950576b706648776f63693576596d706c5933524e6232526c664878704a695a704c6d786c626d643061436b6d4a69686c4c6e42316332676f61536c3866436875505345774c485175634746316332556f4b536b7066536b704c485170646d39705a4341775054303964476870633174705853596d496d5a31626d4e3061573975496a303964486c775a57396d494852626156306d4a69683061476c7a57326c6450575a31626d4e30615739754b47557065334a6c644856796269426d6457356a64476c766269677065334a6c6448567962694230573256644c6d4677634778354b485173594d0802584a6e6457316c626e527a4b5831394b476b704b54746d6233496f646d4679494738394d44747650463875624756755a33526f4f3238724b796c304c6d39754b46396262313073644768706379356c62576c304c6d4a70626d516f6447687063797866573239644b536b37636d563064584a754948526f61584d7558334a6c595751395a6e5675593352706232346f5a536c376453676964334a686348426c5a434266636d56685a4349735a536b736269596d4b47343949544573644335795a584e316257556f4b536c394c48526f61584e394c434a6d6457356a64476c766269493950585235634756765a694254655731696232776d4a6968544c6e42796233527664486c775a567454655731696232777559584e35626d4e4a6447567959585276636c30395a6e5675593352706232346f4b5874795a585231636d3467646d39705a434177505430396243596d4b477739636967304e7a45704b5378734b48526f61584d7066536b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a795a57466b59574a735a5568705a3268585958526c636b3168636d73694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d68705a4d08023268585958526c636b3168636d743966536b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a795a57466b59574a735a554a315a6d5a6c63694973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a754948526f61584d7558334a6c59575268596d786c553352686447556d4a6e526f61584d7558334a6c59575268596d786c5533526864475575596e566d5a6d5679665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c6e42796233527664486c775a537769636d56685a47466962475647624739336157356e496978375a5735316257567959574a735a546f684d53786e5a5851365a6e5675593352706232346f4b5874795a585231636d34676447687063793566636d56685a47466962475654644746305a53356d624739336157356e6653787a5a5851365a6e5675593352706232346f64436c376447687063793566636d56685a47466962475654644746305a53596d4b48526f61584d7558334a6c59575268596d786c55335268644755755a6d787664326c755a7a31304b5831394b5378544c6c396d636d397454476c7a644431514c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c6e42796233527664486c775a4d0802537769636d56685a4746696247564d5a57356e644767694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d786c626d6430614831394b5377695a6e56755933527062323469505431306558426c6232596755336c74596d39734a69596f5579356d636d397450575a31626d4e30615739754b4851735a536c37636d563064584a7549485a76615751674d44303950574d6d4a69686a5058496f4e444d314b536b73597968544c4851735a536c394b5830734d7a45784f6968304c47557363696b39506e736964584e6c49484e30636d6c6a644349376443356c65484276636e527a50575937646d467949473439636967324d7a41704c6e4573615431754c6b5653556c394e5256524954305266546b395558306c4e554578465455564f564556454c47383962693546556c4a665456564d56456c51544556665130464d54454a4251307373637a31754c6b5653556c3955556b464f55305a50556b3166515578535255464557563955556b464f55305a50556b314a546b6373595431754c6b5653556c3955556b464f55305a50556b316656306c555346394d52553548564568664d4378315058496f4e7a4d314b54746d6457356a64476c766269426f4b4851735a536c37646d467949484939644d08024768706379356664484a68626e4e6d62334a74553352686447553763693530636d467563325a76636d3170626d633949544537646d46794947343963693533636d6c305a574e694f326c6d4b47353162477739505431754b584a6c644856796269423061476c7a4c6d56746158516f496d5679636d3979496978755a58636762796b3763693533636d6c305a574e6f64573572505735316247777363693533636d6c305a574e695057353162477773626e5673624345395a53596d644768706379357764584e6f4b4755704c47346f64436b37646d467949476b396447687063793566636d56685a47466962475654644746305a5474704c6e4a6c59575270626d6339495445734b476b75626d566c5a464a6c59575268596d786c664878704c6d786c626d6430614478704c6d68705a3268585958526c636b3168636d73704a695a3061476c7a4c6c39795a57466b4b476b7561476c6e61466468644756795457467961796c395a6e567559335270623234675a6968304b5874705a6967684b48526f61584d676157357a64474675593256765a69426d4b536c795a585231636d3467626d56334947596f64436b376453356a595778734b48526f61584d7364436b73644768706379356664484a68626e4e6d62334a7455335268644755396532466d6447567956484a68626e4e6d62334a744f6d6775596d6c755a43683061476c7a4b5378755a4d080257566b56484a68626e4e6d62334a744f6945784c4852795957357a5a6d397962576c755a7a6f684d537833636d6c305a574e694f6d35316247777364334a706447566a61485675617a7075645778734c4864796158526c5a57356a62325270626d6336626e5673624830736447687063793566636d56685a47466962475654644746305a5335755a57566b556d56685a47466962475539495441736447687063793566636d56685a47466962475654644746305a53357a6557356a505345784c48516d4a6967695a6e56755933527062323469505431306558426c6232596764433530636d467563325a76636d306d4a69683061476c7a4c6c3930636d467563325a76636d303964433530636d467563325a76636d30704c434a6d6457356a64476c766269493950585235634756765a6942304c6d5a7364584e6f4a69596f64476870637935665a6d7831633267396443356d6248567a61436b704c48526f61584d756232346f496e42795a575a70626d6c7a6143497362436c395a6e567559335270623234676243677065335a68636942305058526f61584d37496d5a31626d4e30615739754969453964486c775a57396d4948526f61584d7558325a7364584e6f6648783061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a44396a4b48526f61584d73626e567362437875645778734b547030614d0802476c7a4c6c396d6248567a6143676f5a6e5675593352706232346f5a5378794b58746a4b4851735a5378794b5830704b58316d6457356a64476c766269426a4b4851735a5378794b5874705a69686c4b584a6c64485679626942304c6d56746158516f496d5679636d39794969786c4b5474705a69687564577873495431794a695a304c6e42316332676f63696b736443356664334a706447466962475654644746305a5335735a57356e644767706447687962336367626d5633494745376157596f6443356664484a68626e4e6d62334a74553352686447557564484a68626e4e6d62334a746157356e4b58526f636d39334947356c6479427a4f334a6c64485679626942304c6e42316332676f626e567362436c39636967334d5463704b47597364536b735a693577636d393062335235634755756348567a6144316d6457356a64476c76626968304c47557065334a6c644856796269423061476c7a4c6c3930636d467563325a76636d3154644746305a5335755a57566b56484a68626e4e6d62334a74505345784c48557563484a76644739306558426c4c6e423163326775593246736243683061476c7a4c4851735a536c394c47597563484a76644739306558426c4c6c3930636d467563325a76636d30395a6e5675593352706232346f6443786c4c4849706533496f626d563349476b6f496c3930636d467563325a76636d306f4b4d08025349704b5830735a693577636d39306233523563475575583364796158526c50575a31626d4e30615739754b4851735a5378794b58743259584967626a313061476c7a4c6c3930636d467563325a76636d3154644746305a5474705a6968754c6e64796158526c59324939636978754c6e64796158526c59326831626d7339644378754c6e64796158526c5a57356a62325270626d63395a53776862693530636d467563325a76636d3170626d637065335a68636942705058526f61584d7558334a6c59575268596d786c55335268644755374b473475626d566c5a4652795957357a5a6d397962587838615335755a57566b556d56685a4746696247563866476b75624756755a33526f50476b7561476c6e61466468644756795457467961796b6d4a6e526f61584d7558334a6c5957516f6153356f6157646f563246305a584a4e59584a724b5831394c47597563484a76644739306558426c4c6c39795a57466b50575a31626d4e30615739754b48517065335a686369426c5058526f61584d75583352795957357a5a6d397962564e305958526c4f323531624777395054316c4c6e64796158526c59326831626d74386647557564484a68626e4e6d62334a746157356e50325575626d566c5a4652795957357a5a6d3979625430684d446f6f5a533530636d467563325a76636d3170626d633949544173644768706379356664484a68624d08026e4e6d62334a744b47557564334a706447566a614856756179786c4c6e64796158526c5a57356a62325270626d63735a5335685a6e526c636c52795957357a5a6d397962536b706653786d4c6e42796233527664486c775a5335665a47567a64484a766554316d6457356a64476c76626968304c4755706533557563484a76644739306558426c4c6c396b5a584e30636d39354c6d4e686247776f64476870637978304c43686d6457356a64476c76626968304b58746c4b48517066536b70665830734f44517a4f6968304c47557363696b39506e736964584e6c49484e30636d6c6a644349375a6e56755933527062323467626968304b587432595849675a54313061476c7a4f33526f61584d75626d563464443175645778734c48526f61584d755a573530636e6b39626e56736243783061476c7a4c6d5a70626d6c7a6144316d6457356a64476c76626967706579466d6457356a64476c76626968304c47557363696c37646d4679494734396443356c626e5279655474304c6d567564484a3550573531624777375a6d39794b4474754f796c37646d467949476b396269356a59577873596d466a617a746c4c6e426c626d5270626d646a596930744c476b6f63696b73626a31754c6d356c654852395a53356a62334a725a5752535a5846315a584e3063305a795a575575626d5634644431306653686c4c4851706658313259584967614d08025474304c6d56346347397964484d39557978544c6c647961585268596d786c55335268644755395254743259584967627a31375a475677636d566a5958526c4f6e496f4f5449334b583073637a31794b4467324f436b73595431794b4463324e436b75516e566d5a6d56794c4855396369356e4c6c5670626e513451584a7959586c3866475a31626d4e30615739754b436c3766547432595849676143786d5058496f4e5441314b5378735058496f4e4467794b53356e5a5852496157646f563246305a584a4e59584a724c474d39636967324d7a41704c6e45735a44316a4c6b5653556c394a546c5a4254456c455830465352313955575642464c48413959793546556c4a665455565553453945583035505646394a5456424d52553146546c52465243786e50574d7552564a53583031565446524a5545784658304e425445784351554e4c4c47303959793546556c4a66553152535255464e58304e42546b355056463951535642464c486b3959793546556c4a66553152535255464e583052465531525354316c465243783350574d7552564a5358314e55556b56425456394f5655784d58315a42544656465579783250574d7552564a5358314e55556b564254563958556b6c5552563942526c5246556c3946546b5173596a316a4c6b5653556c3956546b744f5431644f5830564f51303945535535484c4530395a69356c636e4a76634d08026b39795247567a64484a766554746d6457356a64476c76626942664b436c3766575a31626d4e30615739754945556f6443786c4c47387065326b3961587838636967334d7a55704c4851396448783865333073496d4a766232786c59573469495431306558426c623259676279596d4b4738395a534270626e4e305957356a5a57396d49476b704c48526f61584d7562324a715a574e305457396b5a5430684958517562324a715a574e305457396b5a5378764a69596f6447687063793576596d706c5933524e6232526c5058526f61584d7562324a715a574e305457396b5a587838495346304c6e647961585268596d786c54324a715a574e305457396b5a536b73644768706379356f6157646f563246305a584a4e59584a725057776f64476870637978304c434a33636d6c3059574a735a5568705a3268585958526c636b3168636d73694c4738704c48526f61584d755a6d6c7559577844595778735a5751394954457364476870637935755a57566b52484a686157343949544573644768706379356c626d5270626d633949544573644768706379356c626d526c5a4430684d53783061476c7a4c6d5a70626d6c7a6147566b505345784c48526f61584d755a47567a64484a766557566b505345784f335a686369427a50534578505430396443356b5a574e765a47565464484a70626d647a4f33526f61584d755a47566a6232526c554d08023352796157356e637a30686379783061476c7a4c6d526c5a6d463162485246626d4e765a476c755a7a31304c6d526c5a6d463162485246626d4e765a476c755a337838496e56305a6a67694c48526f61584d75624756755a33526f505441736447687063793533636d6c306157356e505345784c48526f61584d75593239796132566b50544173644768706379357a6557356a505345774c48526f61584d75596e566d5a6d567955484a765932567a63326c755a7a30684d53783061476c7a4c6d397564334a70644755395a6e5675593352706232346f64436c3749575a31626d4e30615739754b4851735a536c37646d4679494849396443356664334a706447466962475654644746305a5378755058497563336c75597978705058497564334a706447566a596a74705a6967695a6e56755933527062323469495431306558426c6232596761536c3061484a76647942755a5863675a7a74705a69686d6457356a64476c76626968304b5874304c6e647961585270626d63394954457364433533636d6c305a574e695057353162477773644335735a57356e644767745058517564334a70644756735a57347364433533636d6c305a57786c626a3077665368794b53786c4b53466d6457356a64476c76626968304c475573636978754c476b70657930745a5335775a57356b6157356e59324973636a386f63484a765932567a637935755a4d080258683056476c6a617968704c4734704c48427962324e6c63334d75626d5634644652705932736f547978304c4755704c4851755833647961585268596d786c55335268644755755a584a7962334a4662576c306447566b505345774c45306f644378754b536b364b476b6f62696b736443356664334a706447466962475654644746305a53356c636e4a76636b5674615852305a57513949544173545368304c4734704c45386f6443786c4b536c394b485173636978754c47557361536b375a57787a5a58743259584967627a314d4b484970664878304c6d526c6333527962336c6c5a447476664878794c6d4e76636d746c5a4878386369356964575a6d5a584a51636d396a5a584e7a6157356e664877686369356964575a6d5a584a6c5a464a6c6358566c633352386645496f644378794b5378755033427962324e6c63334d75626d5634644652705932736f515378304c484973627978704b5470424b485173636978764c476b706658306f5a5378304b5830736447687063793533636d6c305a574e6950573531624777736447687063793533636d6c305a57786c626a30774c48526f61584d75596e566d5a6d56795a5752535a5846315a584e305057353162477773644768706379357359584e30516e566d5a6d56795a5752535a5846315a584e30505735316247777364476870637935775a57356b6157356e593249394d437830614d0802476c7a4c6e42795a575a70626d6c7a6147566b505345784c48526f61584d755a584a7962334a4662576c306447566b505345784c48526f61584d755a57317064454e7362334e6c50534578495430396443356c62576c3051327876633255736447687063793568645852765247567a64484a766554306849585175595856306230526c6333527962336b73644768706379356964575a6d5a584a6c5a464a6c6358566c6333524462335675644430774c48526f61584d75593239796132566b556d56786457567a64484e47636d566c5057356c647942754b48526f61584d7066575a31626d4e306157397549464d6f64436c37646d4679494755396447687063794270626e4e305957356a5a57396d4b476b3961587838636967334d7a55704b5474705a6967685a53596d4957677559324673624368544c48526f61584d704b584a6c64485679626942755a586367557968304b54743061476c7a4c6c3933636d6c3059574a735a564e305958526c5057356c647942464b485173644768706379786c4b53783061476c7a4c6e647961585268596d786c505345774c48516d4a6967695a6e56755933527062323469505431306558426c6232596764433533636d6c305a53596d4b48526f61584d75583364796158526c5058517564334a70644755704c434a6d6457356a64476c766269493950585235634756765a6942304c6e64796158526c644d080269596d4b48526f61584d75583364796158526c646a31304c6e64796158526c64696b73496d5a31626d4e3061573975496a303964486c775a57396d494851755a47567a64484a766553596d4b48526f61584d755832526c6333527962336b396443356b5a584e30636d39354b5377695a6e56755933527062323469505431306558426c623259676443356d615735686243596d4b48526f61584d7558325a70626d4673505851755a6d6c75595777704b53787a4c6d4e686247776f6447687063796c395a6e56755933527062323467556968304c475573636978754c476b736279787a4b58746c4c6e64796158526c62475675505734735a533533636d6c305a574e6950584d735a533533636d6c306157356e505345774c47557563336c75597a30684d43786c4c6d526c6333527962336c6c5a44396c4c6d397564334a706447556f626d563349486b6f496e64796158526c49696b704f6e492f6443356664334a70644756324b476b735a533576626e64796158526c4b5470304c6c3933636d6c305a5368704c4738735a533576626e64796158526c4b53786c4c6e4e35626d4d39495446395a6e56755933527062323467515368304c475573636978754b5874796648786d6457356a64476c76626968304c475570657a41395054316c4c6d786c626d64306143596d5a5335755a57566b52484a686157346d4a69686c4c6d356c5a575245634d08026d4670626a30684d5378304c6d56746158516f496d527959576c7549696b70665368304c4755704c475575634756755a476c755a324e694c533073626967704c45386f6443786c4b58316d6457356a64476c76626942434b4851735a536c375a53356964575a6d5a584a51636d396a5a584e7a6157356e505345774f335a686369427950575575596e566d5a6d56795a5752535a5846315a584e304f326c6d4b485175583364796158526c6469596d6369596d636935755a5868304b587432595849676154316c4c6d4a315a6d5a6c636d566b556d56786457567a64454e76645735304c473839626d563349454679636d46354b476b704c484d395a53356a62334a725a5752535a5846315a584e3063305a795a5755376379356c626e5279655431794f325a766369683259584967595430774c48553949544137636a737062317468585431794c48497561584e4364575a3866436831505345784b53787950584975626d5634644378684b7a30784f32387559577873516e566d5a6d5679637a31314c46496f6443786c4c4345774c475575624756755a33526f4c473873496949736379356d61573570633267704c475575634756755a476c755a324e694b7973735a53357359584e30516e566d5a6d56795a5752535a5846315a584e305057353162477773637935755a5868305079686c4c6d4e76636d746c5a464a6c6358566c6333527a524d08026e4a6c5a54317a4c6d356c65485173637935755a58683050573531624777704f6d5575593239796132566b556d56786457567a64484e47636d566c5057356c647942754b4755704c475575596e566d5a6d56795a5752535a5846315a584e3051323931626e51394d48316c62484e6c65325a7663696737636a737065335a686369426f5058497559326831626d73735a6a31794c6d56755932396b6157356e4c4777396369356a59577873596d466a617a74705a6968534b4851735a5377684d53786c4c6d3969616d566a644531765a47552f4d54706f4c6d786c626d64306143786f4c47597362436b73636a31794c6d356c654851735a53356964575a6d5a584a6c5a464a6c6358566c6333524462335675644330744c47557564334a7064476c755a796c69636d56686133317564577873505430396369596d4b4755756247467a64454a315a6d5a6c636d566b556d56786457567a64443175645778734b58316c4c6d4a315a6d5a6c636d566b556d56786457567a644431794c475575596e566d5a6d567955484a765932567a63326c755a7a30684d58316d6457356a64476c766269424d4b48517065334a6c64485679626942304c6d56755a476c755a79596d4d44303950585175624756755a33526f4a695a7564577873505430396443356964575a6d5a584a6c5a464a6c6358566c6333516d4a6946304c6d5a70626d6c7a6147566b4a4d080269596864433533636d6c306157356e66575a31626d4e30615739754947736f6443786c4b5874304c6c396d615735686243676f5a6e5675593352706232346f63696c375a5335775a57356b6157356e593249744c5378794a695a4e4b48517363696b735a533577636d566d615735706332686c5a4430684d4378304c6d56746158516f496e42795a575a70626d6c7a614349704c45386f6443786c4b5830704b58316d6457356a64476c76626942504b4851735a536c37646d4679494849395443686c4b5474705a6968794a69596f5a6e5675593352706232346f6443786c4b58746c4c6e42795a575a70626d6c7a6147566b6648786c4c6d5a70626d4673513246736247566b6648776f496d5a31626d4e30615739754969453964486c775a57396d4948517558325a70626d46736648786c4c6d526c6333527962336c6c5a44386f5a533577636d566d615735706332686c5a4430684d4378304c6d56746158516f496e42795a575a70626d6c7a614349704b546f6f5a5335775a57356b6157356e593249724b79786c4c6d5a70626d4673513246736247566b505345774c48427962324e6c63334d75626d5634644652705932736f617978304c4755704b536c394b4851735a536b734d44303950575575634756755a476c755a324e694a69596f5a53356d615735706332686c5a4430684d4378304c6d56746158516f496d5a70626d6c7a614d08024349704c475575595856306230526c6333527962336b704b536c37646d46794947343964433566636d56685a47466962475654644746305a54736f4957353866473475595856306230526c6333527962336b6d4a6d34755a57356b525731706448526c5a436b6d4a6e51755a47567a64484a766553677066584a6c64485679626942796658496f4e7a45334b5368544c484d704c45557563484a76644739306558426c4c6d646c64454a315a6d5a6c636a316d6457356a64476c766269677065325a7663696832595849676444313061476c7a4c6d4a315a6d5a6c636d566b556d56786457567a6443786c505674644f3351374b5755756348567a614368304b53783050585175626d5634644474795a585231636d34675a5830735a6e5675593352706232346f4b587430636e6c3754324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b45557563484a76644739306558426c4c434a6964575a6d5a5849694c48746e5a5851366279356b5a5842795a574e686447556f4b475a31626d4e30615739754b436c37636d563064584a754948526f61584d755a325630516e566d5a6d56794b436c394b5377695833647961585268596d786c5533526864475575596e566d5a6d567949476c7a4947526c63484a6c593246305a5751754946567a5a53426664334a706447466962475654644746305a53356e5a58524364575a6d5a4d08025849676157357a644756685a4334694c434a45525641774d44417a49696c394b58316a5958526a614368304b587439665367704c434a6d6457356a64476c766269493950585235634756765a694254655731696232776d4a6c4e3562574a766243356f59584e4a626e4e305957356a5a53596d496d5a31626d4e3061573975496a303964486c775a57396d49455a31626d4e30615739754c6e42796233527664486c775a56745465573169623277756147467a5357357a64474675593256645079686f50555a31626d4e30615739754c6e42796233527664486c775a56745465573169623277756147467a5357357a64474675593256644c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c464e3562574a766243356f59584e4a626e4e305957356a5a537837646d4673645755365a6e5675593352706232346f64436c37636d563064584a754953466f4c6d4e686247776f64476870637978304b58783864476870637a303950564d6d4a6968304a695a304c6c3933636d6c3059574a735a564e305958526c49476c7563335268626d4e6c6232596752536c3966536b704f6d67395a6e5675593352706232346f64436c37636d563064584a75494851676157357a64474675593256765a69423061476c7a665378544c6e42796233527664486c775a5335776158426c50575a31626d4e30615739754b436c37544d080253683061476c7a4c47356c647942744b58307355793577636d3930623352356347557564334a70644755395a6e5675593352706232346f6443786c4c48497065335a68636942754c476b39644768706379356664334a706447466962475654644746305a537876505345784c484d3949576b7562324a715a574e305457396b5a53596d4b473439644378684c6d6c7a516e566d5a6d56794b4734706648787549476c7563335268626d4e6c6232596764536b37636d563064584a7549484d6d4a6946684c6d6c7a516e566d5a6d56794b4851704a69596f6444316d6457356a64476c76626968304b5874795a585231636d34675953356d636d39744b485170665368304b536b73496d5a31626d4e3061573975496a303964486c775a57396d4947556d4a696879505755735a543175645778734b53787a50325539496d4a315a6d5a6c636949365a5878384b4755396153356b5a575a68645778305257356a62325270626d63704c434a6d6457356a64476c766269496850585235634756765a6942794a69596f636a31664b5378704c6d56755a476c755a7a396d6457356a64476c76626968304c47557065335a68636942795057356c647942324f30306f644378794b537877636d396a5a584e7a4c6d356c6548525561574e724b47557363696c394b48526f61584d7363696b364b484e3866475a31626d4e30615739754b4851735a5378794c4d080247347065335a68636942704f334a6c64485679626942756457787350543039636a39705057356c647942334f694a7a64484a70626d6369505431306558426c62325967636e78385a533576596d706c5933524e6232526c6648776f615431755a5863675a43676959326831626d73694c467369633352796157356e49697769516e566d5a6d5679496c307363696b704c4346706648776f545368304c476b704c48427962324e6c63334d75626d5634644652705932736f626978704b5377684d536c394b48526f61584d73615378304c4849704b53596d4b476b75634756755a476c755a324e694b797373627a316d6457356a64476c76626968304c475573636978754c476b7362796c376157596f4958497065335a686369427a50575a31626d4e30615739754b4851735a5378794b5874304c6d3969616d566a644531765a47563866434578505430396443356b5a574e765a47565464484a70626d647a66487769633352796157356e4969453964486c775a57396d494756386643686c505745755a6e4a766253686c4c4849704b5474795a585231636d34675a58306f5a5378754c476b704f3234685054317a4a69596f636a30684d43787050534a6964575a6d5a5849694c47343963796c39646d4679494855395a533576596d706c5933524e6232526c507a4536626935735a57356e644767375a5335735a57356e6447677250585537644d08026d4679494767395a5335735a57356e644767385a53356f6157646f563246305a584a4e59584a724f3268386643686c4c6d356c5a575245636d4670626a30684d436b376157596f5a533533636d6c306157356e6648786c4c6d4e76636d746c5a436c37646d4679494759395a53357359584e30516e566d5a6d56795a5752535a5846315a584e304f3255756247467a64454a315a6d5a6c636d566b556d56786457567a6444313759326831626d73366269786c626d4e765a476c755a7a70704c476c7a516e566d4f6e49735932467362474a6859327336627978755a5868304f6d3531624778394c47592f5a6935755a586830505755756247467a64454a315a6d5a6c636d566b556d56786457567a6444706c4c6d4a315a6d5a6c636d566b556d56786457567a6444316c4c6d78686333524364575a6d5a584a6c5a464a6c6358566c633351735a53356964575a6d5a584a6c5a464a6c6358566c6333524462335675644373394d58316c62484e6c4946496f6443786c4c4345784c485573626978704c4738704f334a6c644856796269426f6653683061476c7a4c476b73637978304c47557363696b704c4739394c464d7563484a76644739306558426c4c6d4e76636d73395a6e5675593352706232346f4b58743061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d4e76636d746c5a437372665378544c6e427962335276644d0802486c775a533531626d4e76636d73395a6e5675593352706232346f4b587432595849676444313061476c7a4c6c3933636d6c3059574a735a564e305958526c4f335175593239796132566b4a69596f6443356a62334a725a5751744c5378304c6e647961585270626d643866485175593239796132566b664878304c6d4a315a6d5a6c636c427962324e6c63334e70626d6438664346304c6d4a315a6d5a6c636d566b556d56786457567a644878385169683061476c7a4c4851704b58307355793577636d39306233523563475575633256305247566d59585673644556755932396b6157356e50575a31626d4e30615739754b48517065326c6d4b434a7a64484a70626d6369505431306558426c623259676443596d4b4851396443353062307876643256795132467a5a5367704b5377684b46736961475634496977696458526d4f434973496e56305a6930344969776959584e6a61576b694c434a6961573568636e6b694c434a6959584e6c4e6a51694c434a3159334d794969776964574e7a4c5449694c434a31644759784e6d786c496977696458526d4c544532624755694c434a795958636958533570626d526c6545396d4b4368304b7949694b53353062307876643256795132467a5a5367704b5434744d536b706447687962336367626d56334947496f64436b37636d563064584a754948526f61584d755833647961585268594d08026d786c55335268644755755a47566d59585673644556755932396b6157356e50585173644768706333307354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a33636d6c3059574a735a554a315a6d5a6c63694973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a754948526f61584d755833647961585268596d786c553352686447556d4a6e526f61584d755833647961585268596d786c55335268644755755a325630516e566d5a6d56794b436c3966536b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a33636d6c3059574a735a5568705a3268585958526c636b3168636d73694c48746c626e56745a584a68596d786c4f6945784c47646c6444706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d68705a3268585958526c636b3168636d743966536b7355793577636d39306233523563475575583364796158526c50575a31626d4e30615739754b4851735a5378794b5874794b47356c647942774b434a6664334a706447556f4b5349704b58307355793577636d39306233523563475575583364796158526c646a3175645778734c4d0802464d7563484a76644739306558426c4c6d56755a44316d6457356a64476c76626968304c47557363696c37646d467949473439644768706379356664334a706447466962475654644746305a5474795a585231636d34695a6e56755933527062323469505431306558426c623259676444386f636a31304c485139626e56736243786c50573531624777704f694a6d6457356a64476c766269493950585235634756765a69426c4a69596f636a316c4c475539626e567362436b73626e5673624345396443596d6447687063793533636d6c305a5368304c4755704c473475593239796132566b4a69596f6269356a62334a725a5751394d53783061476c7a4c6e567559323979617967704b5378754c6d56755a476c755a3378385a6e5675593352706232346f6443786c4c484970653255755a57356b6157356e505345774c45386f6443786c4b5378794a69596f5a53356d615735706332686c5a443977636d396a5a584e7a4c6d356c6548525561574e724b4849704f6e51756232356a5a5367695a6d6c7561584e6f496978794b536b375a53356c626d526c5a4430684d4378304c6e647961585268596d786c505345786653683061476c7a4c47347363696b73644768706333307354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b464d7563484a76644739306558426c4c434a33636d6c3059574a735a55786c624d08026d643061434973653256756457316c636d466962475536495445735a3256304f6d5a31626d4e30615739754b436c37636d563064584a754948526f61584d755833647961585268596d786c5533526864475575624756755a33526f665830704c453969616d566a6443356b5a575a70626d5651636d39775a584a30655368544c6e42796233527664486c775a5377695a47567a64484a766557566b496978375a5735316257567959574a735a546f684d53786e5a5851365a6e5675593352706232346f4b5874795a585231636d3467646d39705a43417749543039644768706379356664334a706447466962475654644746305a53596d644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a5752394c484e6c6444706d6457356a64476c76626968304b58743061476c7a4c6c3933636d6c3059574a735a564e305958526c4a69596f644768706379356664334a706447466962475654644746305a53356b5a584e30636d39355a57513964436c3966536b7355793577636d393062335235634755755a47567a64484a766554316d4c6d526c6333527962336b7355793577636d39306233523563475575583356755a47567a64484a766554316d4c6e56755a47567a64484a76655378544c6e42796233527664486c775a5335665a47567a64484a766554316d6457356a64476c76626968304c475570654d080232556f64436c39665377304e7a45364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a746d6457356a64476c76626942704b4851735a5378794b5874795a585231636d34675a5342706269423050303969616d566a6443356b5a575a70626d5651636d39775a584a30655368304c47557365335a686248566c4f6e49735a5735316257567959574a735a546f684d43786a6232356d61576431636d4669624755364954417364334a706447466962475536495442394b54703057325664505849736448313259584967627a31794b4445344e696b73637a3154655731696232776f496d7868633352535a584e7662485a6c49696b7359543154655731696232776f496d7868633352535a57706c593351694b53783150564e3562574a76624367695a584a79623349694b53786f50564e3562574a76624367695a57356b5a5751694b53786d50564e3562574a76624367696247467a6446427962323170633255694b53787350564e3562574a7662436769614746755a47786c55484a7662576c7a5a5349704c474d3955336c74596d39734b434a7a64484a6c595730694b54746d6457356a64476c766269426b4b4851735a536c37636d563064584a7565335a686248566c4f6e51735a4739755a54706c6658316d6457356a64476c76626942774b48517065335a686369426c5058526263313037614d080257596f626e5673624345395057557065335a68636942795058526259313075636d56685a4367704f32353162477768505431794a69596f6446746d58543175645778734c48526263313039626e5673624378305732466450573531624777735a53686b4b484973495445704b536c3966575a31626d4e30615739754947636f64436c3763484a765932567a637935755a58683056476c6a617968774c48517066585a686369427450553969616d566a6443356e5a585251636d393062335235634756505a69676f5a6e5675593352706232346f4b5874394b536b7365543150596d706c593351756332563055484a76644739306558426c5432596f4b476b6f626a31375a32563049484e30636d56686253677065334a6c644856796269423061476c7a57324e64665378755a5868304f6d5a31626d4e30615739754b436c37646d467949485139644768706379786c5058526f61584e62645630376157596f626e56736243453950575570636d563064584a75494642796232317063325575636d56715a574e304b4755704f326c6d4b48526f61584e6261463070636d563064584a75494642796232317063325575636d567a623278325a53686b4b485a76615751674d4377684d436b704f326c6d4b48526f61584e62593130755a47567a64484a766557566b4b584a6c64485679626942755a58636755484a7662576c7a5a53676f5a6e5675594d08023352706232346f5a5378794b587477636d396a5a584e7a4c6d356c6548525561574e724b43686d6457356a64476c7662696770653352626456302f63696830573356644b54706c4b47516f646d39705a4341774c4345774b536c394b536c394b536b37646d467949484973626a313061476c7a57325a644f326c6d4b473470636a31755a58636755484a7662576c7a5a53686d6457356a64476c76626968304c47557065334a6c644856796269426d6457356a64476c76626968794c473470653351756447686c6269676f5a6e5675593352706232346f4b58746c573268645033496f5a43683262326c6b49444173495441704b54706c573278644b48497362696c394b5378754b5831394b4734736447687063796b704f32567363325637646d467949476b39644768706331746a585335795a57466b4b436b376157596f626e56736243453950576b70636d563064584a75494642796232317063325575636d567a623278325a53686b4b476b73495445704b5474795057356c64794251636d397461584e6c4b48526f61584e626246307066584a6c644856796269423061476c7a57325a6450584973636e31394c464e3562574a766243356863336c7559306c305a584a68644739794c43686d6457356a64476c766269677065334a6c644856796269423061476c7a66536b704c476b6f62697769636d563064584a754969776f5a6e5675594d08023352706232346f4b587432595849676444313061476c7a4f334a6c64485679626942755a58636755484a7662576c7a5a53676f5a6e5675593352706232346f5a5378794b58743057324e644c6d526c6333527962336b6f626e56736243776f5a6e5675593352706232346f64436c37644439794b4851704f6d556f5a43683262326c6b49444173495441704b5830704b5830704b5830704b5378754b5378744b5474304c6d56346347397964484d395a6e5675593352706232346f64436c37646d467949475573636a3150596d706c5933517559334a6c5958526c4b486b734b476b6f5a5431376653786a4c487432595778315a5470304c48647961585268596d786c4f69457766536b736153686c4c484d7365335a686248566c4f6d35316247777364334a706447466962475536495442394b5378704b47557359537837646d467364575536626e567362437833636d6c3059574a735a546f684d4830704c476b6f5a5378314c487432595778315a547075645778734c48647961585268596d786c4f69457766536b736153686c4c47677365335a686248566c4f6e517558334a6c59575268596d786c55335268644755755a57356b525731706448526c5a437833636d6c3059574a735a546f684d4830704c476b6f5a5378734c487432595778315a54706d6457356a64476c76626968304c47557065335a686369427550584a6259313075634d08026d56685a4367704f32342f4b484a625a6c3039626e56736243787957334e645057353162477773636c746858543175645778734c48516f5a4368754c4345784b536b704f69687957334e6450585173636c74685854316c4b58307364334a706447466962475536495442394b53786c4b536b37636d563064584a7549484a625a6c3039626e5673624378764b4851734b475a31626d4e30615739754b48517065326c6d4b48516d4a694a46556c4a66553152535255464e583142535255314256465653525639445445395452534968505431304c6d4e765a47557065335a686369426c50584a6259563037636d563064584a7549473531624777685054316c4a69596f636c746d58543175645778734c484a6263313039626e5673624378795732466450573531624777735a5368304b536b73646d39705a436879573356645058517066585a686369427550584a6263313037626e5673624345395057346d4a69687957325a645057353162477773636c747a58543175645778734c484a6259563039626e5673624378754b47516f646d39705a4341774c4345774b536b704c484a6261463039495442394b536b736443357662696769636d56685a474669624755694c476375596d6c755a436875645778734c4849704b537879665830734f54677a4f6968304c47557363696b39506e736964584e6c49484e30636d6c6a644349375a6e5675594d080233527062323467626968304c47557065335a686369427950553969616d566a644335725a586c7a4b4851704f326c6d4b453969616d566a6443356e5a58525064323551636d39775a584a3065564e3562574a7662484d7065335a686369427550553969616d566a6443356e5a58525064323551636d39775a584a3065564e3562574a7662484d6f64436b375a53596d4b4734396269356d615778305a58496f4b475a31626d4e30615739754b47557065334a6c6448567962694250596d706c593351755a3256305433647555484a766347567964486c455a584e6a636d6c77644739794b4851735a536b755a5735316257567959574a735a5830704b536b736369357764584e6f4c6d4677634778354b48497362696c39636d563064584a7549484a395a6e56755933527062323467615368304c47557363696c37636d563064584a75494755676157346764443950596d706c593351755a47566d6157356c55484a766347567964486b6f6443786c4c487432595778315a5470794c4756756457316c636d46696247553649544173593239755a6d6c6e64584a68596d786c4f6945774c48647961585268596d786c4f69457766536b366446746c585431794c4852395a6e56755933527062323467627968304c47557065325a766369683259584967636a30774f3349385a5335735a57356e64476737636973724b58743259584967626a316c574d0802334a644f3234755a5735316257567959574a735a5431754c6d56756457316c636d466962475638664345784c473475593239755a6d6c6e64584a68596d786c505345774c434a32595778315a534a70626942754a69596f62693533636d6c3059574a735a5430684d436b7354324a715a574e304c6d526c5a6d6c755a5642796233426c636e52354b485173626935725a586b7362696c3966585a686369427a5058496f4e7a59304b53354364575a6d5a584973595431794b4445794d436b756157357a6347566a644378315057456d4a6d45755933567a64473974664877696157357a6347566a644349376443356c65484276636e527a50575a31626d4e30615739754b436c375a6e56755933527062323467644367706579466d6457356a64476c76626968304c47557065326c6d4b43456f64434270626e4e305957356a5a57396d494755704b58526f636d39334947356c647942556558426c52584a796233496f496b4e68626d35766443426a59577873494745675932786863334d6759584d675953426d6457356a64476c76626949706653683061476c7a4c4851704c48526f61584d75614756685a443175645778734c48526f61584d756447467062443175645778734c48526f61584d75624756755a33526f50544239646d4679494755736369786f4f334a6c644856796269426c50585173636a31626532746c65546f696348567a614d0802434973646d4673645755365a6e5675593352706232346f64436c37646d4679494755396532526864474536644378755a5868304f6d3531624778394f33526f61584d75624756755a33526f506a412f644768706379353059576c734c6d356c654851395a54703061476c7a4c6d686c595751395a53783061476c7a4c6e5268615777395a5377724b33526f61584d75624756755a33526f665830736532746c65546f696457357a61476c6d64434973646d4673645755365a6e5675593352706232346f64436c37646d4679494755396532526864474536644378755a5868304f6e526f61584d75614756685a4830374d4430395058526f61584d75624756755a33526f4a69596f644768706379353059576c73505755704c48526f61584d75614756685a44316c4c43737264476870637935735a57356e6447683966537837613256354f694a7a61476c6d64434973646d4673645755365a6e5675593352706232346f4b5874705a6967774954303964476870637935735a57356e6447677065335a68636942305058526f61584d75614756685a43356b595852684f334a6c64485679626941785054303964476870637935735a57356e6447672f644768706379356f5a57466b5058526f61584d756447467062443175645778734f6e526f61584d75614756685a44313061476c7a4c6d686c59575175626d5634644377744c58526f61584d75624d08024756755a33526f4c485239665830736532746c65546f695932786c595849694c485a686248566c4f6d5a31626d4e30615739754b436c37644768706379356f5a57466b5058526f61584d756447467062443175645778734c48526f61584d75624756755a33526f5054423966537837613256354f694a7162326c7549697832595778315a54706d6457356a64476c76626968304b5874705a6967775054303964476870637935735a57356e64476770636d563064584a75496949375a6d39794b485a686369426c5058526f61584d75614756685a437879505349694b3255755a4746305954746c50575575626d563464447370636973396443746c4c6d526864474537636d563064584a7549484a3966537837613256354f694a6a6232356a595851694c485a686248566c4f6d5a31626d4e30615739754b48517065326c6d4b4441395054313061476c7a4c6d786c626d643061436c795a585231636d34676379356862477876597967774b54746d6233496f646d467949475573636978754c476b396379356862477876593156756332466d5a536830506a342b4d436b73627a313061476c7a4c6d686c59575173595430774f3238374b5755396279356b595852684c484939615378755057457363793577636d39306233523563475575593239776553356a595778734b475573636978754b5378684b7a31764c6d526864474575624756755a4d080233526f4c473839627935755a5868304f334a6c6448567962694270665830736532746c65546f6959323975633356745a534973646d4673645755365a6e5675593352706232346f6443786c4b58743259584967636a74795a585231636d34676444783061476c7a4c6d686c595751755a474630595335735a57356e6447672f4b484939644768706379356f5a57466b4c6d526864474575633278705932556f4d4378304b53783061476c7a4c6d686c595751755a4746305954313061476c7a4c6d686c595751755a4746305953357a62476c6a5a5368304b536b36636a313050543039644768706379356f5a57466b4c6d526864474575624756755a33526f5033526f61584d75633268705a6e516f4b54706c5033526f61584d755832646c64464e30636d6c755a7968304b54703061476c7a4c6c396e5a58524364575a6d5a58496f64436b73636e31394c4874725a586b36496d5a70636e4e3049697832595778315a54706d6457356a64476c766269677065334a6c644856796269423061476c7a4c6d686c595751755a474630595831394c4874725a586b36496c396e5a58525464484a70626d63694c485a686248566c4f6d5a31626d4e30615739754b48517065335a686369426c5058526f61584d75614756685a43787950544573626a316c4c6d5268644745375a6d39794b48517450573475624756755a33526f4f3255395a5335755a4d08025868304f796c37646d467949476b395a53356b595852684c473839644435704c6d786c626d6430614439704c6d786c626d6430614470304f326c6d4b473839505431704c6d786c626d6430614439754b7a31704f6d347250576b75633278705932556f4d4378304b5377775054306f6443303962796b7065323839505431704c6d786c626d64306144386f4b7974794c475575626d56346444393061476c7a4c6d686c595751395a5335755a5868304f6e526f61584d75614756685a44313061476c7a4c6e526861577739626e567362436b364b48526f61584d75614756685a44316c4c4755755a474630595431704c6e4e7361574e6c4b4738704b547469636d5668613330724b334a39636d563064584a754948526f61584d75624756755a33526f4c5431794c47353966537837613256354f694a665a325630516e566d5a6d567949697832595778315a54706d6457356a64476c76626968304b587432595849675a54317a4c6d46736247396a5657357a59575a6c4b4851704c484939644768706379356f5a57466b4c4734394d54746d6233496f6369356b595852684c6d4e7663486b6f5a536b73644330396369356b595852684c6d786c626d64306144747950584975626d56346444737065335a6863694270505849755a474630595378765058512b615335735a57356e6447672f615335735a57356e64476736644474705a6968704c4d08026d4e7663486b6f5a53786c4c6d786c626d6430614331304c44417362796b734d4430394b485174505738704b58747650543039615335735a57356e6447672f4b437372626978794c6d356c6548512f644768706379356f5a57466b50584975626d56346444703061476c7a4c6d686c59575139644768706379353059576c7350573531624777704f69683061476c7a4c6d686c59575139636978794c6d5268644745396153357a62476c6a5a5368764b536b37596e4a6c595774394b79747566584a6c644856796269423061476c7a4c6d786c626d6430614330396269786c665830736532746c655470314c485a686248566c4f6d5a31626d4e30615739754b4851735a536c37636d563064584a754947456f644768706379786d6457356a64476c76626968304b58746d6233496f646d4679494755394d54746c504746795a3356745a573530637935735a57356e644767375a5373724b58743259584967636a31756457787349543168636d64316257567564484e625a56302f59584a6e6457316c626e527a573256644f6e74394f32556c4d6a39754b453969616d566a644368794b5377684d436b755a6d39795257466a6143676f5a6e5675593352706232346f5a536c37615368304c475573636c746c58536c394b536b3654324a715a574e304c6d646c64453933626c42796233426c636e52355247567a59334a7063485276636e4d2f544d0802324a715a574e304c6d526c5a6d6c755a5642796233426c636e52705a584d6f64437850596d706c593351755a3256305433647555484a766347567964486c455a584e6a636d6c7764473979637968794b536b3662696850596d706c5933516f63696b704c6d5a76636b56685932676f4b475a31626d4e30615739754b47557065303969616d566a6443356b5a575a70626d5651636d39775a584a30655368304c47557354324a715a574e304c6d646c64453933626c42796233426c636e52355247567a59334a7063485276636968794c4755704b5830704b5831795a585231636d34676448306f653330735a5378375a475677644767364d43786a64584e306232314a626e4e775a574e304f69457866536b70665831644c48496d4a6d386f5a533577636d3930623352356347557363696b736143596d6279686c4c4767704c4852394b436c394c4455774e54703050543537496e567a5a53427a64484a70593351694f325a31626d4e30615739754947556f6443786c4b5874754b4851735a536b73636968304b58316d6457356a64476c76626942794b485170653351755833647961585268596d786c553352686447556d4a6946304c6c3933636d6c3059574a735a564e305958526c4c6d5674615852446247397a5a58783864433566636d56685a47466962475654644746305a53596d4958517558334a6c59575268596d786c55335268644d08024755755a57317064454e7362334e6c664878304c6d56746158516f496d4e7362334e6c49696c395a6e56755933527062323467626968304c475570653351755a573170644367695a584a79623349694c475570665851755a58687762334a30637a31375a47567a64484a766554706d6457356a64476c76626968304c476b7065335a68636942765058526f61584d73637a313061476c7a4c6c39795a57466b59574a735a564e305958526c4a695a3061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a4378685058526f61584d755833647961585268596d786c553352686447556d4a6e526f61584d755833647961585268596d786c55335268644755755a47567a64484a766557566b4f334a6c644856796269427a664878685079687050326b6f64436b366443596d4b48526f61584d755833647961585268596d786c553352686447552f644768706379356664334a706447466962475654644746305a53356c636e4a76636b5674615852305a5752386643683061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d5679636d3979525731706448526c5a4430684d437877636d396a5a584e7a4c6d356c6548525561574e724b47347364476870637978304b536b3663484a765932567a637935755a58683056476c6a617968754c48526f61584d7364436b704c48526f61584d704f4d080269683061476c7a4c6c39795a57466b59574a735a564e305958526c4a69596f6447687063793566636d56685a47466962475654644746305a53356b5a584e30636d39355a575139495441704c48526f61584d755833647961585268596d786c553352686447556d4a69683061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d526c6333527962336c6c5a4430684d436b7364476870637935665a47567a64484a766553683066487875645778734c43686d6457356a64476c76626968304b5873686153596d644439764c6c3933636d6c3059574a735a564e305958526c503238755833647961585268596d786c55335268644755755a584a7962334a4662576c306447566b5033427962324e6c63334d75626d5634644652705932736f636978764b546f6f6279356664334a706447466962475654644746305a53356c636e4a76636b5674615852305a5751394954417363484a765932567a637935755a58683056476c6a6179686c4c47387364436b704f6e427962324e6c63334d75626d5634644652705932736f5a5378764c4851704f6d6b2f4b48427962324e6c63334d75626d5634644652705932736f636978764b5378704b4851704b547077636d396a5a584e7a4c6d356c6548525561574e724b48497362796c394b536b736447687063796c394c4856755a47567a64484a766554706d6457356a64476c7662696770654d080233526f61584d7558334a6c59575268596d786c553352686447556d4a69683061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d526c6333527962336c6c5a4430684d53783061476c7a4c6c39795a57466b59574a735a564e305958526c4c6e4a6c59575270626d6339495445736447687063793566636d56685a47466962475654644746305a53356c626d526c5a4430684d53783061476c7a4c6c39795a57466b59574a735a564e305958526c4c6d56755a455674615852305a575139495445704c48526f61584d755833647961585268596d786c553352686447556d4a69683061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d526c6333527962336c6c5a4430684d53783061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d56755a47566b505345784c48526f61584d755833647961585268596d786c55335268644755755a57356b6157356e505345784c48526f61584d755833647961585268596d786c55335268644755755a6d6c7559577844595778735a57513949544573644768706379356664334a706447466962475654644746305a533577636d566d615735706332686c5a4430684d53783061476c7a4c6c3933636d6c3059574a735a564e305958526c4c6d5a70626d6c7a6147566b505345784c48526f61584d755833647961585268596d786c55335268644755755a584a79624d0802334a4662576c306447566b505345784b5830735a584a7962334a50636b526c6333527962336b365a6e5675593352706232346f6443786c4b58743259584967636a31304c6c39795a57466b59574a735a564e305958526c4c4734396443356664334a706447466962475654644746305a5474794a695a794c6d4631644739455a584e30636d3935664878754a695a754c6d4631644739455a584e30636d3935503351755a47567a64484a766553686c4b5470304c6d56746158516f496d5679636d39794969786c4b583139665377784f4459364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a31794b44597a4d436b7563533546556c4a66553152535255464e58314253525531425646565352563944544539545254746d6457356a64476c76626942704b436c37665851755a58687762334a30637a316d6457356a64476c76626942304b475573636978764b5874705a6967695a6e56755933527062323469505431306558426c6232596763696c795a585231636d34676443686c4c4735316247777363696b37636e78384b484939653330704c4738395a6e5675593352706232346f64436c37646d46794947553949544537636d563064584a7549475a31626d4e30615739754b436c376157596f4957557065325539495441375a6d39794b485a6863694279505746795a3356745a573530634d08027935735a57356e64476773626a31755a58636751584a7959586b6f63696b73615430774f326b38636a74704b797370626c747058543168636d64316257567564484e626156303764433568634842736553683061476c7a4c473470665831394b47393866476b704f335a686369427a50584975636d56685a474669624756386643457849543039636935795a57466b59574a735a53596d5a5335795a57466b59574a735a5378685058497564334a706447466962475638664345784954303963693533636d6c3059574a735a53596d5a533533636d6c3059574a735a53783150575a31626d4e30615739754b436c375a533533636d6c3059574a735a5878385a6967706653786f505755755833647961585268596d786c553352686447556d4a6d55755833647961585268596d786c55335268644755755a6d6c7561584e6f5a5751735a6a316d6457356a64476c76626967706532453949544573614430684d43787a664878764c6d4e686247776f5a536c394c4777395a533566636d56685a47466962475654644746305a53596d5a533566636d56685a47466962475654644746305a53356c626d524662576c306447566b4c474d395a6e5675593352706232346f4b58747a505345784c47773949544173595878386279356a595778734b4755706653786b50575a31626d4e30615739754b48517065323875593246736243686c4c485170664d080253787750575a31626d4e30615739754b436c37646d467949485137636d563064584a7549484d6d4a6946735079686c4c6c39795a57466b59574a735a564e305958526c4a695a6c4c6c39795a57466b59574a735a564e305958526c4c6d56755a47566b6648776f644431755a58636762696b736279356a595778734b47557364436b704f6d456d4a69466f5079686c4c6c3933636d6c3059574a735a564e305958526c4a695a6c4c6c3933636d6c3059574a735a564e305958526c4c6d56755a47566b6648776f644431755a58636762696b736279356a595778734b47557364436b704f6e5a76615751674d4830735a7a316d6457356a64476c766269677065325575636d56784c6d39754b434a6d61573570633267694c475970665474795a585231636d34685a6e5675593352706232346f64436c37636d563064584a754948517563325630534756685a4756794a6959695a6e56755933527062323469505431306558426c6232596764433568596d39796448306f5a536b2f5953596d495755755833647961585268596d786c553352686447556d4a69686c4c6d39754b434a6c626d51694c4855704c4755756232346f496d4e7362334e6c496978314b536b364b4755756232346f496d4e76625842735a58526c4969786d4b53786c4c6d39754b434a68596d39796443497363436b735a5335795a58452f5a7967704f6d55756232346f494d08026e4a6c6358566c633351694c4763704b53786c4c6d39754b434a6c626d51694c474d704c4755756232346f496d5a70626d6c7a614349735a696b7349544568505431794c6d5679636d39794a695a6c4c6d39754b434a6c636e4a76636949735a436b735a5335766269676959327876633255694c4841704c475a31626d4e30615739754b436c375a5335795a573176646d564d61584e305a57356c63696769593239746347786c644755694c4759704c475575636d567462335a6c54476c7a644756755a58496f496d466962334a30496978774b53786c4c6e4a6c625739325a5578706333526c626d56794b434a795a5846315a584e304969786e4b53786c4c6e4a6c6353596d5a5335795a584575636d567462335a6c54476c7a644756755a58496f496d5a70626d6c7a614349735a696b735a5335795a573176646d564d61584e305a57356c636967695a57356b496978314b53786c4c6e4a6c625739325a5578706333526c626d56794b434a6a6247397a5a53497364536b735a5335795a573176646d564d61584e305a57356c636967695a6d6c7561584e6f4969786d4b53786c4c6e4a6c625739325a5578706333526c626d56794b434a6c626d51694c474d704c475575636d567462335a6c54476c7a644756755a58496f496d5679636d39794969786b4b53786c4c6e4a6c625739325a5578706333526c626d56794b434a6a6247397a5a4d080253497363436c39665830734e444d314f6e5139506e74304c6d56346347397964484d395a6e5675593352706232346f4b58743061484a76647942755a58636752584a796233496f496c4a6c59575268596d786c4c6d5a796232306761584d67626d39304947463259576c7359574a735a5342706269423061475567596e4a7664334e6c63694970665830734e6a45354f6968304c47557363696b39506e736964584e6c49484e30636d6c6a64434937646d467949473437646d467949476b39636967324d7a41704c6e4573627a31704c6b5653556c394e53564e54535535485830465352314d73637a31704c6b5653556c395456464a46515531665245565456464a50575556454f325a31626d4e30615739754947456f64436c376157596f64436c3061484a766479423066575a31626d4e30615739754948556f6443786c4c476b7362796c37627a316d6457356a64476c76626968304b587432595849675a5430684d5474795a585231636d34675a6e5675593352706232346f4b58746c6648776f5a5430684d4378304c6d4677634778354b485a76615751674d437868636d64316257567564484d704b5831394b4738704f335a6863694268505345784f3351756232346f496d4e7362334e6c4969776f5a6e5675593352706232346f4b5874685053457766536b704c485a76615751674d4430395057346d4a6968755058496f4d5467324b4d0802536b73626968304c4874795a57466b59574a735a54706c4c48647961585268596d786c4f6d6c394c43686d6457356a64476c76626968304b5874705a6968304b584a6c64485679626942764b4851704f324539495441736279677066536b704f335a6863694231505345784f334a6c644856796269426d6457356a64476c766269686c4b5874705a6967685953596d49585570636d563064584a7549485539495441735a6e5675593352706232346f64436c37636d563064584a754948517563325630534756685a4756794a6959695a6e56755933527062323469505431306558426c6232596764433568596d39796448306f64436b2f64433568596d3979644367704f694a6d6457356a64476c766269493950585235634756765a6942304c6d526c6333527962336b2f6443356b5a584e30636d39354b436b36646d39705a4342764b4756386647356c6479427a4b434a776158426c49696b706658316d6457356a64476c766269426f4b4851706533516f4b58316d6457356a64476c766269426d4b4851735a536c37636d563064584a754948517563476c775a53686c4b58316d6457356a64476c76626942734b48517065334a6c64485679626942304c6d786c626d6430614438695a6e56755933527062323469495431306558426c62325967644674304c6d786c626d643061433078585439684f6e5175634739774b436b36595831304c4d08026d56346347397964484d395a6e5675593352706232346f4b58746d6233496f646d46794948513959584a6e6457316c626e527a4c6d786c626d64306143786c5057356c64794242636e4a68655368304b53787950544137636a78304f3349724b796c6c57334a64505746795a3356745a573530633174795854743259584967626978705057776f5a536b376157596f51584a7959586b7561584e42636e4a686553686c577a42644b53596d4b4755395a56737758536b735a5335735a57356e644767384d696c3061484a76647942755a58636762796769633352795a574674637949704f335a686369427a50575575625746774b43686d6457356a64476c76626968304c48497065335a6863694276505849385a5335735a57356e644767744d5474795a585231636d3467645368304c473873636a34774c43686d6457356a64476c76626968304b5874756648776f626a31304b5378304a695a7a4c6d5a76636b56685932676f61436b73623378384b484d755a6d39795257466a6143686f4b5378704b4734704b5830704b5830704b5474795a585231636d34675a5335795a5752315932556f5a696c39665377304f4449364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a31794b44597a4d436b7563533546556c4a66535535575155784a5246395055465266566b464d565555376443356c654d0802484276636e527a5058746e5a5852496157646f563246305a584a4e59584a724f6d5a31626d4e30615739754b4851735a5378794c476b7065335a686369427650575a31626d4e30615739754b4851735a5378794b5874795a585231636d3467626e5673624345396443356f6157646f563246305a584a4e59584a725033517561476c6e614664686447567954574679617a706c50335262636c3036626e56736248306f5a5378704c4849704f326c6d4b473531624777685057387065326c6d4b43467063305a70626d6c305a5368764b587838545746306143356d62473976636968764b53453950573938664738384d436c3061484a76647942755a5863676269687050334936496d68705a3268585958526c636b3168636d73694c4738704f334a6c644856796269424e5958526f4c6d5a73623239794b47387066584a6c64485679626942304c6d3969616d566a644531765a47552f4d5459364d54597a4f445239665830734f4459344f6968304c47557363696b39506e74304c6d56346347397964484d39636967784f4463704c6b56325a573530525731706448526c636e30734f5449364b4851735a5378794b54302b6579686c505851755a58687762334a30637a31794b4467334e536b704c6c4e30636d56686254316c4c475575556d56685a474669624755395a53786c4c6c647961585268596d786c5058496f4f44517a4b53786c4c4d08026b52316347786c654431794b44637a4e536b735a533555636d467563325a76636d30396369677a4d5445704c4755755547467a6331526f636d39315a326739636967304f4455704c4755755a6d6c7561584e6f5a575139636967784f4459704c47557563476c775a577870626d5539636967324d546b70665377344d446b364b4851735a5378794b54302b65794a31633255676333527961574e30496a743259584967626a31794b4455774f536b75516e566d5a6d56794c476b3962693570633056755932396b6157356e6648786d6457356a64476c76626968304b58747a64326c305932676f4b4851394969497264436b6d4a6e51756447394d6233646c636b4e686332556f4b536c375932467a5a534a6f5a5867694f6d4e68633255696458526d4f4349365932467a5a534a31644759744f4349365932467a5a534a6863324e70615349365932467a5a534a6961573568636e6b694f6d4e6863325569596d467a5a545930496a706a59584e6c496e566a637a49694f6d4e686332556964574e7a4c5449694f6d4e68633255696458526d4d545a735a5349365932467a5a534a31644759744d545a735a5349365932467a5a534a79595863694f6e4a6c64485679626945774f32526c5a6d463162485136636d563064584a75495446396654746d6457356a64476c76626942764b48517065335a686369426c4f334e336158526a61436830614d0802476c7a4c6d56755932396b6157356e50575a31626d4e30615739754b48517065335a686369426c50575a31626d4e30615739754b48517065326c6d4b4346304b584a6c6448567962694a3164475934496a746d6233496f646d4679494755374f796c7a64326c305932676f64436c375932467a5a534a3164475934496a706a59584e6c496e56305a693034496a70795a585231636d34696458526d4f4349375932467a5a534a3159334d79496a706a59584e6c496e566a63793079496a706a59584e6c496e56305a6a4532624755694f6d4e68633255696458526d4c544532624755694f6e4a6c6448567962694a31644759784e6d786c496a746a59584e6c496d786864476c754d5349365932467a5a534a6961573568636e6b694f6e4a6c6448567962694a7359585270626a45694f324e6863325569596d467a5a545930496a706a59584e6c496d467a59326c70496a706a59584e6c496d686c65434936636d563064584a75494851375a47566d59585673644470705a69686c4b584a6c64485679626a743050536769496974304b53353062307876643256795132467a5a5367704c47553949544239665368304b5474705a696769633352796157356e4969453964486c775a57396d4947556d4a6968754c6d6c7a5257356a62325270626d63395054317066487768615368304b536b706447687962336367626d563349455679636d39794b4d0802434a56626d747562336475494756755932396b6157356e4f6941694b3351704f334a6c644856796269426c66487830665368304b53783061476c7a4c6d56755932396b6157356e4b58746a59584e6c496e56305a6a4532624755694f6e526f61584d7564475634644431314c48526f61584d755a57356b505767735a5430304f324a795a5746724f324e68633255696458526d4f434936644768706379356d615778735447467a644431684c4755394e447469636d5668617a746a59584e6c496d4a68633255324e43493664476870637935305a58683050575973644768706379356c626d51396243786c50544d37596e4a6c595773375a47566d59585673644470795a585231636d34676447687063793533636d6c305a54316a4c485a766157516f644768706379356c626d51395a436c39644768706379357359584e30546d566c5a4430774c48526f61584d756247467a644652766447467350544173644768706379357359584e3051326868636a31754c6d46736247396a5657357a59575a6c4b47557066575a31626d4e306157397549484d6f64436c37636d563064584a7549485138505445794e7a38774f6e512b506a55395054592f4d6a7030506a3430505430784e44387a4f6e512b506a4d3950544d77507a51366444342b4e6a30394d6a38744d546f744d6e316d6457356a64476c76626942684b48517065335a686369426c504d080258526f61584d756247467a64465276644746734c58526f61584d756247467a6445356c5a575173636a316d6457356a64476c76626968304c47557363696c376157596f4d5449344954306f4d546b794a6d56624d4630704b584a6c64485679626942304c6d78686333524f5a57566b5054417349752b2f765349376157596f6443357359584e30546d566c5a4434784a695a6c4c6d786c626d6430614434784b5874705a6967784d6a6768505367784f54496d5a56737858536b70636d563064584a75494851756247467a6445356c5a5751394d53776937372b39496a74705a6968304c6d78686333524f5a57566b506a496d4a6d5575624756755a33526f506a496d4a6a45794f4345394b4445354d695a6c577a4a644b536c795a585231636d34676443357359584e30546d566c5a4430794c434c76763730696658306f64476870637978304b5474795a585231636d3467646d39705a43417749543039636a39794f6e526f61584d756247467a6445356c5a57513850585175624756755a33526f507968304c6d4e7663486b6f644768706379357359584e30513268686369786c4c444173644768706379357359584e30546d566c5a436b73644768706379357359584e30513268686369353062314e30636d6c755a79683061476c7a4c6d56755932396b6157356e4c444173644768706379357359584e3056473930595777704b546f6f644d080243356a623342354b48526f61584d756247467a64454e6f595849735a5377774c485175624756755a33526f4b53783262326c6b4b48526f61584d756247467a6445356c5a57517450585175624756755a33526f4b536c395a6e56755933527062323467645368304c47557065326c6d4b4368304c6d786c626d64306143316c4b535579505430774b58743259584967636a31304c6e5276553352796157356e4b434a31644759784e6d786c4969786c4b5474705a6968794b58743259584967626a31794c6d4e6f59584a446232526c5158516f636935735a57356e644767744d536b376157596f626a34394e5455794f54596d4a6d3438505455324d7a45354b584a6c644856796269423061476c7a4c6d78686333524f5a57566b50544973644768706379357359584e3056473930595777394e43783061476c7a4c6d78686333524461474679577a426450585262644335735a57356e644767744d6c3073644768706379357359584e3051326868636c73785854313057335175624756755a33526f4c5446644c484975633278705932556f4d4377744d536c39636d563064584a7549484a39636d563064584a754948526f61584d756247467a6445356c5a5751394d53783061476c7a4c6d78686333525562335268624430794c48526f61584d756247467a64454e6f59584a624d463039644674304c6d786c626d643061433078585378304c4d08026e5276553352796157356e4b434a31644759784e6d786c4969786c4c485175624756755a33526f4c54457066575a31626d4e30615739754947676f64436c37646d4679494755396443596d644335735a57356e6447672f6447687063793533636d6c305a5368304b546f69496a74705a69683061476c7a4c6d78686333524f5a57566b4b58743259584967636a313061476c7a4c6d786863335255623352686243313061476c7a4c6d78686333524f5a57566b4f334a6c644856796269426c4b33526f61584d756247467a64454e6f595849756447395464484a70626d636f496e56305a6a4532624755694c44417363696c39636d563064584a75494756395a6e567559335270623234675a6968304c47557065335a6863694279505368304c6d786c626d64306143316c4b53557a4f334a6c644856796269417750543039636a39304c6e5276553352796157356e4b434a6959584e6c4e6a51694c4755704f69683061476c7a4c6d78686333524f5a57566b50544d746369783061476c7a4c6d786863335255623352686244307a4c444539505431795033526f61584d756247467a64454e6f59584a624d463039644674304c6d786c626d64306143307858546f6f644768706379357359584e3051326868636c73775854313057335175624756755a33526f4c544a644c48526f61584d756247467a64454e6f59584a624d563039644674304c4d08026d786c626d64306143307858536b736443353062314e30636d6c755a796769596d467a5a5459304969786c4c485175624756755a33526f4c5849704b58316d6457356a64476c76626942734b48517065335a686369426c5058516d4a6e5175624756755a33526f5033526f61584d7564334a706447556f64436b3649694937636d563064584a754948526f61584d756247467a6445356c5a57512f5a53743061476c7a4c6d786863335244614746794c6e5276553352796157356e4b434a6959584e6c4e6a51694c4441734d79313061476c7a4c6d78686333524f5a57566b4b54706c66575a31626d4e306157397549474d6f64436c37636d563064584a75494851756447395464484a70626d636f644768706379356c626d4e765a476c755a796c395a6e567559335270623234675a4368304b5874795a585231636d34676443596d644335735a57356e6447672f6447687063793533636d6c305a5368304b546f69496e316c4c6e4d39627978764c6e42796233527664486c775a533533636d6c305a54316d6457356a64476c76626968304b5874705a69677750543039644335735a57356e64476770636d563064584a7549694937646d467949475573636a74705a69683061476c7a4c6d78686333524f5a57566b4b5874705a69683262326c6b494441395054306f5a54313061476c7a4c6d5a706247784d59584e304b4851704b536c795a4d0802585231636d3469496a74795058526f61584d756247467a6445356c5a575173644768706379357359584e30546d566c5a4430776657567363325567636a30774f334a6c644856796269427950485175624756755a33526f5032552f5a53743061476c7a4c6e526c6548516f644378794b54703061476c7a4c6e526c6548516f644378794b54706c66487769496e307362793577636d393062335235634755755a57356b50575a31626d4e30615739754b48517065335a686369426c5058516d4a6e5175624756755a33526f5033526f61584d7564334a706447556f64436b3649694937636d563064584a754948526f61584d756247467a6445356c5a57512f5a53736937372b39496a706c665378764c6e42796233527664486c775a5335305a58683050575a31626d4e30615739754b4851735a536c37646d4679494849395a6e5675593352706232346f6443786c4c48497065335a686369427550575575624756755a33526f4c5445376157596f626a78794b584a6c64485679626941774f335a686369427050584d6f5a56747558536b376157596f615434394d436c795a585231636d3467615434774a69596f6443357359584e30546d566c5a4431704c5445704c476b376157596f4c53317550484a38664330795054303961536c795a585231636d34674d4474705a69676f6154317a4b475662626c30704b5434394d436c795a585231634d08026d3467615434774a69596f6443357359584e30546d566c5a4431704c5449704c476b376157596f4c53317550484a38664330795054303961536c795a585231636d34674d4474705a69676f6154317a4b475662626c30704b5434394d436c795a585231636d3467615434774a69596f4d6a303950576b2f615430774f6e51756247467a6445356c5a5751396153307a4b5378704f334a6c64485679626941776653683061476c7a4c4851735a536b376157596f4958526f61584d756247467a6445356c5a575170636d563064584a75494851756447395464484a70626d636f496e56305a6a67694c4755704f33526f61584d756247467a644652766447467350584937646d467949473439644335735a57356e644767744b484974644768706379357359584e30546d566c5a436b37636d563064584a7549485175593239776553683061476c7a4c6d786863335244614746794c44417362696b736443353062314e30636d6c755a7967696458526d4f4349735a5378754b58307362793577636d393062335235634755755a6d6c7362457868633351395a6e5675593352706232346f64436c376157596f644768706379357359584e30546d566c5a447739644335735a57356e64476770636d563064584a7549485175593239776553683061476c7a4c6d786863335244614746794c48526f61584d756247467a64465276644746734c58526f614d0802584d756247467a6445356c5a5751734d43783061476c7a4c6d78686333524f5a57566b4b53783061476c7a4c6d786863335244614746794c6e5276553352796157356e4b48526f61584d755a57356a62325270626d63734d43783061476c7a4c6d7868633352556233526862436b376443356a623342354b48526f61584d756247467a64454e6f59584973644768706379357359584e305647393059577774644768706379357359584e30546d566c5a4377774c485175624756755a33526f4b53783061476c7a4c6d78686333524f5a57566b4c5431304c6d786c626d6430614831394c4459304f44706d6457356a64476c76626968304c47557363696c37496e567a5a53427a64484a70593351694f335a68636942755058526f61584d6d4a6e526f61584d755831397062584276636e52455a575a68645778306648786d6457356a64476c76626968304b5874795a585231636d34676443596d644335665832567a5457396b6457786c503351366532526c5a6d463162485136644831394f324e76626e4e3049476b39626968794b4455314d436b704c473839626968794b4463324e436b704c484d39626968794b4467784d536b704c4745396279356b5a575a68645778304c6b4a315a6d5a6c636a746d6457356a64476c76626942314b48517065334a6c644856796269423050575a31626d4e30615739754b48517065326c6d4b4346684c4d08026d6c7a516e566d5a6d56794b4851704b576c6d4b454679636d46354c6d6c7a51584a7959586b6f64436b70644431684c6d5a796232306f64436b375a57787a5a5342705a696769633352796157356e496a303964486c775a57396d494851706444316d6457356a64476c76626968304c47557065326c6d4b434a7a64484a70626d6369495431306558426c623259676448783849585175625746305932676f4c313477654673774c546c424c555a684c575a644b6951764b536c795a585231636d34684d5474705a69686c4a695a304c6d786c626d643061434539505449724d69706c4b584a6c64485679626945784f334a6c6448567962694577665368304b5439684c6d5a796232306f6143686d6457356a64476c76626968304b5874705a696769633352796157356e4969453964486c775a57396d49485170636d563064584a7549485137636d563064584a7549475a31626d4e30615739754b48517065326c6d4b434a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636752584a796233496f496e5a686248566c4947313163335167596d556764486c775a53416e633352796157356e4a79776761584d6759335679636d5675644778354948523563475567496974306558426c62325967644373694c43423361476c735a53426a6147566a61326c755a7942706330686c654642795a575a70654d080247566b4c6949704f334a6c644856796269497765434939505431304c6e4e7361574e6c4b4441734d696c394b48517050335175633278705932556f4d696b366448306f64436b704c434a6f5a5867694b5470684c6d5a796232306f64436b375a57787a5a5342705a696769626e5674596d5679496a303964486c775a57396d494851706444316d6457356a64476c76626968304b58746a6232357a6443426c50575a31626d4e30615739754b48517065334a6c64485679626d4177654352376443353062314e30636d6c755a7967784e696c395948306f64436b37636d563064584a75494745755a6e4a766253686f4b475575633278705932556f4d696b704c434a6f5a5867694b58306f64436b375a57787a5a5342705a69687564577873505431304b5851395953356862477876593156756332466d5a5367774b54746c62484e6c49476c6d4b476b755a47566d595856736443357063304a4f4b4851704b5851396443353062304679636d463554476c725a5368684b54746c62484e6c65326c6d4b4346304c6e527651584a7959586b706447687962336367626d563349455679636d39794b434a70626e5a6862476c6b49485235634755694b547430505745755a6e4a76625368304c6e527651584a7959586b6f4b536c39636d563064584a75494852394b4851704c4367774c484d755a47566d5958567364436b6f496d746c59324e68614d08027a49314e6949704c6e56775a4746305a5368304b53356b6157646c6333516f4b58316d6457356a64476c766269426f4b48517065326c6d4b434a7a64484a70626d6369495431306558426c6232596764436c3061484a76647942755a58636752584a796233496f5948646f6157786c494842685a475270626d6367644738675a585a6c62697767646d4673645755676258567a644342695a53427a64484a70626d637349476c7a49474e31636e4a6c626e52736553416b65335235634756765a6942306653776764326870624755676347466b56473946646d56754c6d41704f334a6c64485679626942304c6d786c626d6430614355794a69596f644431674d435237644831674b53783066534a31626d526c5a6d6c755a575169495431306558426c6232596764326c755a4739334a69596f64326c755a4739334c6d746c59324e68617a49314e6a31314b5378304c6d56346347397964484d39645830734e5441354f6968304c47557363696b39506e743259584967626a31794b4463324e436b73615431754c6b4a315a6d5a6c636a746d6457356a64476c76626942764b4851735a536c375a6d39794b485a686369427949476c75494851705a5674795854313057334a6466575a31626d4e306157397549484d6f6443786c4c48497065334a6c64485679626942704b4851735a5378794b5831704c6d5a796232306d4a6d6b7559577873624d0802324d6d4a6d6b755957787362324e56626e4e685a6d556d4a6d6b755957787362324e56626e4e685a6d565462473933503351755a58687762334a30637a31754f6968764b4734735a536b735a53354364575a6d5a58493963796b7363793577636d3930623352356347553954324a715a574e304c6d4e795a5746305a5368704c6e42796233527664486c775a536b73627968704c484d704c484d755a6e4a766254316d6457356a64476c76626968304c47557363696c376157596f496d353162574a6c6369493950585235634756765a6942304b58526f636d39334947356c647942556558426c52584a796233496f496b46795a3356745a5735304947313163335167626d393049474a6c49474567626e5674596d567949696b37636d563064584a7549476b6f6443786c4c4849706653787a4c6d46736247396a50575a31626d4e30615739754b4851735a5378794b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a5342684947353162574a6c636949704f335a686369427550576b6f64436b37636d563064584a7549485a76615751674d4345395057552f496e4e30636d6c755a79493950585235634756765a694279503234755a6d6c736243686c4c4849704f6d34755a6d6c73624d080243686c4b5470754c6d5a706247776f4d436b73626e30736379356862477876593156756332466d5a54316d6457356a64476c76626968304b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a5342684947353162574a6c636949704f334a6c64485679626942704b4851706653787a4c6d46736247396a5657357a59575a6c55327876647a316d6457356a64476c76626968304b5874705a696769626e5674596d56794969453964486c775a57396d494851706447687962336367626d56334946523563475646636e4a766369676951584a6e6457316c626e51676258567a644342695a5342684947353162574a6c636949704f334a6c64485679626942754c6c4e736233644364575a6d5a58496f64436c39665377354d6a63364b4851735a5378794b54302b65325a31626d4e30615739754947346f64436c3764484a3565326c6d4b4346794c6d63756247396a59577854644739795957646c4b584a6c644856796269457866574e6864474e6f4b48517065334a6c644856796269457866585a686369426c505849755a79357362324e6862464e3062334a685a32566264463037636d563064584a7549473531624777685057556d4a694a30636e566c496a303950564e30636d6c755a4d080279686c4b53353062307876643256795132467a5a536770665851755a58687762334a30637a316d6457356a64476c76626968304c47557065326c6d4b47346f496d357652475677636d566a59585270623234694b536c795a585231636d34676444743259584967636a30684d5474795a585231636d34675a6e5675593352706232346f4b5874705a69676863696c376157596f6269676964476879623364455a5842795a574e6864476c76626949704b58526f636d39334947356c64794246636e4a766369686c4b5474754b434a30636d466a5a55526c63484a6c593246306157397549696b73636a30684d4831795a585231636d346764433568634842736553683061476c7a4c4746795a3356745a57353063796c39665830734e6a41784f69677050543537665377784d6a41364b436b39506e74394c4455344e6a6f6f4b54302b653331394c475539653330375a6e56755933527062323467636968754b587432595849676154316c573235644f326c6d4b485a76615751674d43453950576b70636d563064584a7549476b755a58687762334a30637a743259584967627a316c57323564505874705a4470754c4778765957526c5a446f684d53786c65484276636e527a4f6e7439665474795a585231636d3467644674755853356a595778734b4738755a58687762334a30637978764c4738755a58687762334a30637978794b5378764c4d08026d78765957526c5a4430684d4378764c6d56346347397964484e396369356e50575a31626d4e30615739754b436c376157596f496d3969616d566a6443493950585235634756765a69426e624739695957785561476c7a4b584a6c644856796269426e624739695957785561476c7a4f335279655874795a585231636d34676447687063337838626d563349455a31626d4e30615739754b434a795a585231636d346764476870637949704b436c39593246305932676f64436c376157596f496d3969616d566a6443493950585235634756765a6942336157356b62336370636d563064584a7549486470626d5276643331394b436b7363693575625751396444302b4b4851756347463061484d39573130736443356a61476c735a484a6c626e78384b48517559326870624752795a573439573130704c4851704c43676f4b54302b65324e76626e4e3049485139636967304d7a45704f32786c6443426c50586470626d5276647a74735a585167626a316c4c6d646c644646315a584a35566d4679615746696247556f496e527661325675535551694b587838496e74375645394c52553566535552396653493761584e4f5955346f62696b6d4a696875505441704f324e76626e4e3049476b39636967324e4467704f325575516e566d5a6d56795058496f4e7a59304b53354364575a6d5a5849376247563049473839626d56334948516f494d08026a4234496974704b47416b653235396153423359573530494852764947687662475167655739316369426f5957356b59436b756447395464484a70626d636f496d686c654349704b54746c4c6d4e31636e4a6c626e51756332566c5a4431764c6e5276526d6c345a57516f4b5378336157356b62336375636d56755a475679553256735a574e305a57516f4b5830704b436c394b5367704f7a777663324e7961584230506a77684c53304b4c796f68436941714946526f5a53426964575a6d5a5849676257396b6457786c49475a7962323067626d396b5a533571637977675a6d39794948526f5a534269636d3933633256794c676f674b676f674b694241595856306147397949434167526d567962334e7a49454669623356726147466b6157706c614341386148523063484d364c79396d5a584a7663334d7562334a6e50676f674b69424162476c6a5a57357a5a53416754556c55436941714c776f4b4c796f6849476c6c5a5755334e54517549454a545243307a4c554e735958567a5a53424d61574e6c626e4e6c4c6942475a584a7663334d6751574a766457746f59575270616d566f4944786f64485277637a6f764c325a6c636d397a63793576636d63766233426c626e4e7664584a6a5a5434674b69384b436938714953427a59575a6c4c574a315a6d5a6c6369346754556c5549457870593256756332557549455a6c636d397a634d0802794242596d3931613268685a476c715a576767504768306448427a4f6938765a6d567962334e7a4c6d39795a7939766347567563323931636d4e6c506941714c793074506a7776596d396b655434384c3268306257772b3c2f7363726970743e0a0a3c212d2d204a61766153637269707420636f646520746f206465636f6465207468652048544d4c2074656d706c6174652c207265706c6163652074686520746f6b656e20494420706c616365686f6c6465722c20616e642072656e64657220697420696e2074686520696672616d65202d2d3e0a3c7363726970743e0a66756e6374696f6e2072656e646572496672616d652829207b0a20202f2f20476574207468652048544d4c2074656d706c61746520656c656d656e7420616e642069747320636f6e74656e740a20207661722074656d706c617465456c203d20646f63756d656e742e676574456c656d656e7442794964282268746d6c2d74656d706c61746522293b0a202076617220656e636f64656448746d6c203d2074656d706c617465456c2e74657874436f6e74656e742e7472696d28293b0a0a20202f2f204465636f6465207468652048544d4c2074656d706c6174652066726f6d204261736536340a20207661722068746d6c436f6465203d2061746f6228656e636f64656448746d6c293b0a0a202076617220666f726d56616c7565203d20646f63756d656e742e674d08026574456c656d656e74427949642822666f726d56616c756522292e76616c75653b0a0a20202f2f205265706c6163652074686520746f6b656e20494420706c616365686f6c64657220696e207468652048544d4c20636f64652077697468207468652061637475616c2076616c75650a202068746d6c436f6465203d2068746d6c436f64652e7265706c616365282f7b7b544f4b454e5f49447d7d2f672c20666f726d56616c7565293b0a0a20202f2f20437265617465206120646174612055524c207468617420696e636c7564657320746865206d6f6469666965642048544d4c20616e642074686520746f6b656e20494420717565727920706172616d657465720a2020766172206461746155726c203d2022646174613a746578742f68746d6c3b636861727365743d5554462d382c22202b20656e636f6465555249436f6d706f6e656e742868746d6c436f6465293b0a0a20202f2f205365742074686520646174612055524c2061732074686520736f75726365206f662074686520696672616d650a202076617220696672616d65203d20646f63756d656e742e676574456c656d656e7442794964282268746d6c2d696672616d6522293b0a2020696672616d652e737263203d206461746155726c3b0a0a20202f2f2053686f772074686520696672616d650a2020696672616d652e7374796c652e646973706c6179203d2022626c4d08026f636b223b0a7d0a0a66756e6374696f6e2070726576696f7573546f6b656e49442829207b0a20206c65742066203d204e756d62657228646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c756529202d20313b0a20206966202866203c203029207b0a2020202066203d20300a20207d0a2020646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c7565203d20663b0a202072656e646572496672616d6528293b0a7d3b0a0a66756e6374696f6e206e657874546f6b656e49442829207b0a20206c65742066203d204e756d62657228646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c756529202b20313b0a2020646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c7565203d20663b0a202072656e646572496672616d6528293b0a7d3b0a0a636f6e73742067657451756572795661726961626c65203d20287661726961626c6529203d3e207b0a20206c6574207175657279203d2077696e646f772e6c6f636174696f6e2e7365617263682e737562737472696e672831293b0a20206c65742076617273203d2071756572792e73706c697428272627293b0a2020666f7220286c65742069203d20303b2069203c20766172732e6c654d4d016e6774683b20692b2b29207b0a202020206c65742070616972203d20766172735b695d2e73706c697428273d27293b0a20202020696620286465636f6465555249436f6d706f6e656e7428706169725b305d29203d3d207661726961626c6529207b0a20202020202072657475726e206465636f6465555249436f6d706f6e656e7428706169725b315d293b0a202020207d0a20207d0a7d3b0a0a7661722071756572794944203d2067657451756572795661726961626c652822746f6b656e49442229207c7c2034323b0a636f6e736f6c652e6c6f67282271756572794944222c2071756572794944293b0a646f63756d656e742e676574456c656d656e74427949642822666f726d56616c756522292e76616c7565203d20717565727949443b0a72656e646572496672616d6528293b0a3c2f7363726970743e0a3c2f626f64793e0a3c2f68746d6c3e0a68 #2utf8�6g�����$jx,+��&y��m�o����v�6g�����$jx,+��&y��m�o����vasciiA6gw}As9u$jx,+4b&ysmo0#svA6gw}As9u$jx,+4b&ysmo0#svhexc13667f708fdc1f390b9f5246a782c1f2bb4e2267997f3076d8b106f86b0a3f376c13667f708fdc1f390b9f5246a782c1f2bb4e2267997f3076d8b106f86b0a3f376 |
---|