A method to encrypt content using hugo shortcodes without requiring additional scripts.
有一些內容開始覺得直接放出來會不太好 (指的是蠢事,不是危險事)。
花了許多時間在想辦法不靠額外的方式去加密,因為 hugo 本身有許多限制 (沒有 AES、沒有 bitwise operation) 所以有好幾次想放棄,但後來還是透過一些方法達成。雖然不是絕對安全,但是應該是夠用了。爆破的了的話,就只好讓你看看那些蠢事了。
Usage
{{< encrypt 99 >}}
**secret** content
中文字

{{< /encrypt >}}
Decrypt
Clean
RjkwMCAgICAgICAgICAgIA==-QTZFMTgzRUE3MyAgICAgIA==-RkZCMzA3QzVGNiAgICAgIA==-MTk5NThBQTA3QSAgICAgIA==-MjI3NzBFOEJFRCAgICAgIA==-NUI0OTgxNzY2MTEgICAgIA==-MjQyQjA1NTFFNDEgICAgIA==-REFGQzg4M0M1ODEgICAgIA==-NjdERTBDMTdEQjEgICAgIA==-Q0ZBMDlGRjE1RjEgICAgIA==-RTg4MjEzRUNDMjIgICAgIA==-MTM2NDk2Qzc0NjIgICAgIA==-OEIzNjFBQTJDOTIgICAgIA==-QjUxODlEOEQzRDIgICAgIA==-N0JFOTExNzhCMDMgICAgIA==-RTNDQjk0NTMzNDMgICAgIA==-NjFBRDE4M0VBNzMgICAgIA==-QkE3RjlCMTkyQjMgICAgIA==-RDM1MTJGRjNBRTMgICAgIA==-RUMyM0EyRUUxMjQgICAgIA==-MTYwNTI2Qzk5NTQgICAgIA==-RUVENkE5QTQxOTQgICAgIA==-OTVCODJEOEY4QzQgICAgIA==-RkM4QUEwN0EwMDUgICAgIA==-NkE2QzI0NTU4MzUgICAgIA==-NjQ0RUE3MzAwNzUgICAgIA==-OUQxMDNCMUI3QTUgICAgIA==-MzdGMUJFRjVGRDUgICAgIA==-OEZDMzMyRTA3MTYgICAgIA==-NTlBNUI1Q0JFNDYgICAgIA==-RjI4NzM5QTY2ODYgICAgIA==-Qjg1OUJDODFFQjYgICAgIA==-NTQzQjMwN0M1RjYgICAgIA==-OUUwREIzNTdEMjcgICAgIA==-OTRFRTM3MzI1NjcgICAgIA==-OUFCMENBMURDOTcgICAgIA==-MEUxRThDMDg0RDcgICAgIA==-RTRERDIwRjJDMDggICAgIA==-MkYxMUEzREQzNDggICAgIA==-QjIyOEM4QThCNzggICAgIA==-NUVGOTRDODMzQjggICAgIA==-OThEQkNGNkVBRTggICAgIA==-OUVBRDQzNTkyMjkgICAgIA==-OTQ4RkM2MzRBNTkgICAgIA==-REQ1MTVBMUYxOTkgICAgIA==-M0EzM0RERjk5QzkgICAgIA==-MTYxNTUxRTQxMEEgICAgIA==-OEZFNkQ0Q0Y4M0EgICAgIA==-QThDODU4QUEwN0EgICAgIA==-QzJBQURCODU4QUEgICAgIA==-REI3QzVGNjAwRUEgICAgIA==-NDQ1RUQyNUI3MUIgICAgIA==-MzkyMDY2MzZGNEIgICAgIA==-QTYwMkU5MTE3OEIgICAgIA==-NzBFMzZERkJFQkIgICAgIA==-MDlCNUUwRTY2RkIgICAgIA==-NjM5NzY0QzFFMkMgICAgIA==-QUM2OUU3QUM1NkMgICAgIA==-ODI0QjZCODdEOUMgICAgIA==-MUExREVFNjI1REMgICAgIA==-QTdGRTYyNURDMEQgICAgIA==-NzFEMEY1Mzg0NEQgICAgIA==-M0FBMjc5MTNDN0QgICAgIA==-RTM4NEZDRkQzQkQgICAgIA==-N0Q1NjcwRThCRUQgICAgIA==-NjYzOEYzQzMzMkUgICAgIA==-OEIwQTc3QUVBNUUgICAgIA==-QzhFQkZBODkyOUUgICAgIA==-ODFDRDdFNjRBQ0UgICAgIA==-QkE5RkYxNUYxMEYgICAgIA==-NDQ3MTg1M0E5M0YgICAgIA==-MEQ0MzA5MTUxN0YgICAgIA==-MzIyNThDRkY4QUYgICAgIA==-QUZGNjAwRUEwRUYgICAgIA==-MDlEODgzQzU4MTAxICAgIA==-RDJCQTA3QTAwNTAxICAgIA==-N0M4QzhBOEI3ODAxICAgIA==-QzQ2RTBFNjZGQjAxICAgIA==-REUzMDkxNTE3RjAxICAgIA==-MTMxMjE1M0NFMjExICAgIA==-MUVFMzk4MTc2NjExICAgIA==-MTRDNTFDRjFFOTExICAgIA==-QkU5NzlGREM1RDExICAgIA==-Rjc3OTEzQzdEMDIxICAgIA==-MzE1Qjk2QTI1NDIxICAgIA==-N0EyRDFBOERDNzIxICAgIA==-NzUwRjlENjg0QjIxICAgIA==-MzFFMDIxNTNDRTIxICAgIA==-Q0FCMkE0M0UzMjMxICAgIA==-RDQ5NDI4MTlCNTMxICAgIA==-Qjg2NkFCRjMzOTMxICAgIA==-MjY0ODJGREVBQzMxICAgIA==-RkYxQUEyQzkyMDQxICAgIA==-ODhGQjI2QTRBMzQxICAgIA==-RTJEREE5OEYxNzQxICAgIA==-MkNBRjJENkE5QTQxICAgIA==-MDI4MUIwNTUxRTQxICAgIA==-OTk1MzM0MzA5MTUxICAgIA==-NDczNUI3MUIwNTUxICAgIA==-QzAxNzNCRjU4ODUxICAgIA==-QTlFOEJFRDAwQzUxICAgIA==-NEZCQTMyQ0I3RjUxICAgIA==-RUI5Q0I1QTZGMjYxICAgIA==-RTU3RTM5ODE3NjYxICAgIA==-MUY0MENDNkNFOTYxICAgIA==-QjgyMjQwNTc2RDYxICAgIA==-QzAwNEMzMzJFMDcxICAgIA==-OEFENTQ3MUQ1NDcxICAgIA==-MTRCN0NBRjdENzcxICAgIA==-Q0M4OTRFRDI1QjcxICAgIA==-RDY2QkMxQ0RDRTcxICAgIA==-RkEzRDQ1QTg0MjgxICAgIA==-NjgxRkM4ODNDNTgxICAgIA==-QzFGMDVDNkUzOTgxICAgIA==-OUJDMkRGNDlCQzgxICAgIA==-MzVBNDUzMzQzMDkxICAgIA==-OEQ3NkQ2MUZBMzkxICAgIA==-OTc1ODVBRjkyNzkxICAgIA==-REIyQURERDRBQTkxICAgIA==-RDYwQzUxQ0YxRTkxICAgIA==-RENEREQ0QUE5MUExICAgIA==-NzdCRjU4ODUxNUExICAgIA==-QjA5MUVCNjA5OEExICAgIA==-Rjk2MzZGNEIwQ0ExICAgIA==-MzM0NUUyMzY4RkExICAgIA==-N0MxNzY2MTEwM0IxICAgIA==-QjVGOEU5RkI3NkIxICAgIA==-RkVDQTZERDZGOUIxICAgIA==-MzhBQ0UwQzE3REIxICAgIA==-MzM4RTY0QUNFMEMxICAgIA==-OUY1MEY3ODc2NEMxICAgIA==-RTgzMjdCNjJFN0MxICAgIA==-NjIxNEZFNEQ1QkMxICAgIA==-QUFFNTcyMzhERUMxICAgIA==-RDRDN0Y1MTM1MkQxICAgIA==-OEQ5OTc5RkRDNUQxICAgIA==-Mzc3QkZDRDg0OUQxICAgIA==-QjA1RDcwQzNDQ0QxICAgIA==-OTYyRkYzQUUzMEUxICAgIA==-OUNGMDg3ODlCM0UxICAgIA==-MzdEMjBCNjQzN0UxICAgIA==-NzBCNDhFNEZBQUUxICAgIA==-Qjk4NjAyM0EyRUUxICAgIA==-RjI2ODg1MTVBMUYxICAgIA==-M0MzQTA5RkYxNUYxICAgIA==-NzUxQzhDREE5OEYxICAgIA==-QkVFRDAwQzUxQ0YxICAgIA==-RjdDRjgzQTA5RkYxICAgIA==-MzFBMTE3OEIwMzAyICAgIA==-N0E3MzlBNjY4NjAyICAgIA==-QjM1NTFFNDEwQTAyICAgIA==-RkMyNzkxM0M3RDAyICAgIA==-RjcwOTE1MTdGMDEyICAgIA==-MDRFQTk4RjE3NDEyICAgIA==-OERCQzFDRENFNzEyICAgIA==-NjY5RTlGQjc2QjEyICAgIA==-M0I2MDIzQTJFRTEyICAgIA==-QTk0MkE2OEQ1MjIyICAgIA==-RDIyNDJBNjhENTIyICAgIA==-MkJGNUFENDM1OTIyICAgIA==-MDJENzIxM0VDQzIyICAgIA==-OTlBOUE0MTk0MDMyICAgIA==-Mzc4QjI4RjNDMzMyICAgIA==-MzE2REFCREUzNzMyICAgIA==-N0EzRjJGQjlCQTMyICAgIA==-NzMxMUIyQTQzRTMyICAgIA==-RUNFMjM2OEZBMTQyICAgIA==-OTJDNEI5NkEyNTQyICAgIA==-MkI5NjNENDVBODQyICAgIA==-NjQ3OEIwMzAyQzQyICAgIA==-NzE1QTM0MUI5RjQyICAgIA==-N0EyQ0I3RjUxMzUyICAgIA==-NjAwRTNCRDA5NjUyICAgIA==-NTlERkJFQkIwQTUyICAgIA==-MjZCMTQyQTY4RDUyICAgIA==-RUY4M0M1ODEwMTYyICAgIA==-Mjk2NTQ5NkM3NDYyICAgIA==-RTE0N0NDNDdGNzYyICAgIA==-N0IxOTQwMzI3QjYyICAgIA==-NDRGQUMzMURFRTYyICAgIA==-OEVDQzQ3Rjc2MjcyICAgIA==-QTdBRUNBRDJFNTcyICAgIA==-MDA4MDVFQkQ1OTcyICAgIA==-MUE1MkQxQThEQzcyICAgIA==-NjIzNDU1ODM1MDgyICAgIA==-NkMwNkQ4NkVDMzgyICAgIA==-OTVFNzVDNDk0NzgyICAgIA==-M0ZCOURGMjRDQTgyICAgIA==-ODc5QjUzMUYzRTgyICAgIA==-NTE3REQ2RjlCMTkyICAgIA==-RkE0RjVBRDQzNTkyICAgIA==-REYxMUVEQkZBODkyICAgIA==-NkNGMjYxQUEyQzkyICAgIA==-NjZENEU0ODVBRjkyICAgIA==-OEZBNjY4NjAyM0EyICAgIA==-RTQ4OEVCNEI5NkEyICAgIA==-NzE2QTZGMjYxQUEyICAgIA==-NjczQ0UyMTE5REEyICAgIA==-QzAxRTY2RkIwMUIyICAgIA==-M0VFRkU5RDY4NEIyICAgIA==-RDdDMTdEQjEwOEIyICAgIA==-QUY5M0YwQUM3QkIyICAgIA==-RjU3NTc0ODdGRUIyICAgIA==-NTM1N0Y3NjI3MkMyICAgIA==-OEMyOTdCNERFNUMyICAgIA==-OTUwQkZFMjg2OUMyICAgIA==-N0VEQzcyMTNFQ0MyICAgIA==-NDVCRUY1RkQ1MEQyICAgIA==-QUY4MDg5RDhEM0QyICAgIA==-QkE2MjBEQjM1N0QyICAgIA==-ODM0NDgwQUVDQUQyICAgIA==-OEIxNjA0ODk0RUQyICAgIA==-QjNGNzg3NjRDMUUyICAgIA==-M0ZDOTBCNEYzNUUyICAgIA==-NTlBQjhFMkFCOEUyICAgIA==-MzA4RDAyMTUzQ0UyICAgIA==-ODk1Rjg1RkZBRkUyICAgIA==-RTIzMTE5REEyM0YyICAgIA==-RUQwMzlDQjVBNkYyICAgIA==-MzRFNDEwQTAyQUYyICAgIA==-MjBDNjkzOEI5REYyICAgIA==-QjU5ODE3NjYxMTAzICAgIA==-NDM3QTlBNDE5NDAzICAgIA==-MkE0QzFFMkMwODAzICAgIA==-MDMyRTkxMTc4QjAzICAgIA==-NkRGRjE1RjEwRjAzICAgIA==-MjVEMUE4REM3MjEzICAgIA==-MzBCMzJDQjdGNTEzICAgIA==-OTg4NUFGOTI3OTEzICAgIA==-MDE2NzIzOERFQzEzICAgIA==-QUIzOUE2Njg2MDIzICAgIA==-MTExQjJBNDNFMzIzICAgIA==-M0FFQ0FEMkU1NzIzICAgIA==-NjhDRTIxMTlEQTIzICAgIA==-OTFBMEI0RjM1RTIzICAgIA==-MkE3MjM4REVDMTMzICAgIA==-MjQ1NEJCQjk0NTMzICAgIA==-NUQyNjNGOTRDODMzICAgIA==-RjYwOEIyOEYzQzMzICAgIA==-NEZEOTM2NkFCRjMzICAgIA==-QjlCQkI5NDUzMzQzICAgIA==-QjI5RDNEMjBCNjQzICAgIA==-OEI2RkIwMUIyQTQzICAgIA==-NDQ0MTQ0RjVBRDQzICAgIA==-MUUxM0M3RDAyMTUzICAgIA==-QzdGNDRCQkI5NDUzICAgIA==-OERDNkNFOTYxODUzICAgIA==-MTVBODQyODE5QjUzICAgIA==-NTM4QUM1NkMwRjUzICAgIA==-Q0I1QzQ5NDc4MjYzICAgIA==-RjUzRUNDMjIwNjYzICAgIA==-NEYwMDUwMUQ3OTYzICAgIA==-NThFMUQzRjdGQzYzICAgIA==-NTFDMzU3RDI3MDczICAgIA==-QjU5NURBQkRFMzczICAgIA==-NTM3NzVFOTg2NzczICAgIA==-NEM0OUQxODNFQTczICAgIA==-MzYyQjU1NkU1RTczICAgIA==-RUZGQ0Q4NDlEMTgzICAgIA==-NDhERTVDMjQ1NTgzICAgIA==-RUVBMEVGMEZDODgzICAgIA==-OTY4MjYzRjk0QzgzICAgIA==-QkY1NEU2RDRDRjgzICAgIA==-MkQzNjZBQkYzMzkzICAgIA==-RjYxOEVEOUFCNjkzICAgIA==-OEZFOTYxODUzQTkzICAgIA==-RTlDQkU0NjBCRDkzICAgIA==-MjNBRDY4NEIyMUEzICAgIA==-MDk3RkVCMjZBNEEzICAgIA==-OTA1MTdGMDEyOEEzICAgIA==-RUQyM0YyRkI5QkEzICAgIA==-NDcwNTc2RDYxRkEzICAgIA==-MTFFNkY5QjE5MkIzICAgIA==-QkFCODdEOUMwNkIzICAgIA==-MDM5QUYwODc4OUIzICAgIA==-MUQ2Qzc0NjIwREIzICAgIA==-MzE0RUY3NEQ3MEMzICAgIA==-MEYxMDhCMjhGM0MzICAgIA==-ODhGMTBGMDM3N0MzICAgIA==-NjFEMzgyRkRFQUMzICAgIA==-MDdBNTA2RDg2RUMzICAgIA==-MTU4Nzg5QjNFMUQzICAgIA==-QUQ1OTBEOUU1NUQzICAgIA==-RTYzQjgwODlEOEQzICAgIA==-MDAxRDA0NjQ1Q0QzICAgIA==-ODhFRTg3NEZDRkQzICAgIA==-RDFDMDFCMkE0M0UzICAgIA==-QkI5MjlFMDVDNkUzICAgIA==-ODQ3NDEyRkYzQUUzICAgIA==-OTk0Njk1REFCREUzICAgIA==-QjIyODE5QjUzMUYzICAgIA==-MDAwQTlDOTBCNEYzICAgIA==-RjlEQjEwOEIyOEYzICAgIA==-QjNCRDkzNjZBQkYzICAgIA==-ODk4RjE3NDEyRkYzICAgIA==-NjE2MUFBMkM5MjA0ICAgIA==-OTEwRDdDMTcxNjA0ICAgIA==-RTlBRDEwMDI5OTA0ICAgIA==-MkRFNjI1REMwRDA0ICAgIA==-RjVDOEE4Qjc4MDE0ICAgIA==-NzNBQTJDOTIwNDE0ICAgIA==-OEM3Q0FGN0Q3NzE0ICAgIA==-RjY1RTIzNjhGQTE0ICAgIA==-MEYyMEI2NDM3RTE0ICAgIA==-MDUwMjNBMkVFMTI0ICAgIA==-ODFFM0JEMDk2NTI0ICAgIA==-RUFCNTMxRjNFODI0ICAgIA==-MzU5N0I0REU1QzI0ICAgIA==-Q0Q2OTM4QjlERjI0ICAgIA==-Njc0QkJCOTQ1MzM0ICAgIA==-OTAyRDNGN0ZDNjM0ICAgIA==-QzZGRUIyNkE0QTM0ICAgIA==-NUVDMDQ2NDVDRDM0ICAgIA==-MURBMkM5MjA0MTQ0ICAgIA==-QTU4NDREMEJCNDQ0ICAgIA==-RUU1NkMwRjUzODQ0ICAgIA==-MDgzODQ0RDBCQjQ0ICAgIA==-OUMwQUM3QkIyRjQ0ICAgIA==-NTRFQjRCOTZBMjU0ICAgIA==-RkVCRENFNzEyNjU0ICAgIA==-Mzg5RjQyNkM5OTU0ICAgIA==-NzE3MUQ1NDcxRDU0ICAgIA==-QkE0MzU5MjI5MDY0ICAgIA==-RjMyNURDMEQwNDY0ICAgIA==-M0RGNjUwRjc4NzY0ICAgIA==-NzZEOEQzRDIwQjY0ICAgIA==-QkZBQTU3QkQ3RTY0ICAgIA==-Rjg4Q0RBOThGMTc0ICAgIA==-MzI2RTVFNzM3NTc0ICAgIA==-N0IzMEUxNkVFODc0ICAgIA==-QjQxMjY1NDk2Qzc0ICAgIA==-RkRFM0U4MjRFRjc0ICAgIA==-MzdDNTZDMEY1Mzg0ICAgIA==-NzBBN0VGRTlENjg0ICAgIA==-Qjk3OTYzRDQ1QTg0ICAgIA==-Mzg1QkU2QkZDRDg0ICAgIA==-QzAzRDZBOUE0MTk0ICAgIA==-QkEwRkVENzVDNDk0ICAgIA==-NzNFMDcxNjA0ODk0ICAgIA==-NENCMkY0NEJCQjk0ICAgIA==-MDM5NDc4MjYzRjk0ICAgIA==-RUE2NkZCMDFCMkE0ICAgIA==-MUIwMkRERkIyNkE0ICAgIA==-NjNCMjcxRTZBOUE0ICAgIA==-QTZGQjc2QjEyREE0ICAgIA==-NTFEREY5OUM5MEI0ICAgIA==-NTdBRjdENzcxNEI0ICAgIA==-RjE4MTAxNjI5N0I0ICAgIA==-M0I1Mzg0NEQwQkI0ICAgIA==-NzQzNTA4Mjg4RUI0ICAgIA==-QkQwNzhCMDMwMkM0ICAgIA==-RjZFODBGRUQ3NUM0ICAgIA==-MzBDQTgyRDhGOEM0ICAgIA==-Nzk5QzA2QjM3Q0M0ICAgIA==-QjI3RTg5OUVFRkM0ICAgIA==-QkQ0MDFENzk2M0Q0ICAgIA==-MjYyMjkwNjRFNkQ0ICAgIA==-NTMwNDE0NEY1QUQ0ICAgIA==-QUNENTk3MkFEREQ0ICAgIA==-MjZCNzFCMDU1MUU0ICAgIA==-NkU4OTlFRUZDNEU0ICAgIA==-OTg2QjEyREE0OEU0ICAgIA==-NDE0RDk1QjVDQkU0ICAgIA==-RkExRjE5OTA0RkU0ICAgIA==-NzRGMEFDN0JCMkY0ICAgIA==-NUFDMjIwNjYzNkY0ICAgIA==-NTBBNEEzNDFCOUY0ICAgIA==-RkE3NjI3MkMyREY0ICAgIA==-MzQ1OEFBMDdBMDA1ICAgIA==-N0QyQTJFRTEyNDA1ICAgIA==-QjYwQ0ExREM5NzA1ICAgIA==-RkZERDI1QjcxQjA1ICAgIA==-MzlCRkE4OTI5RTA1ICAgIA==-NzI5MTNDN0QwMjE1ICAgIA==-QkI2M0JGNTg4NTE1ICAgIA==-QjY0NTMzNDMwOTE1ICAgIA==-QzIyN0I2MkU3QzE1ICAgIA==-NENGODNBMDlGRjE1ICAgIA==-MjVEQUJERTM3MzI1ICAgIA==-RjlBQzMxREVFNjI1ICAgIA==-Nzc4RUI0Qjk2QTI1ICAgIA==-ODA2MDQ4OTRFRDI1ICAgIA==-RkEzMkNCN0Y1MTM1ICAgIA==-MDMxNDRGNUFENDM1ICAgIA==-MDlFNUMyNDU1ODM1ICAgIA==-QTZDNzQ2MjBEQjM1ICAgIA==-NEY5OUM5MEI0RjM1ICAgIA==-OTk3QjRERTVDMjQ1ICAgIA==-ODE1REMwRDA0NjQ1ICAgIA==-QUIyRjQ0QkJCOTQ1ICAgIA==-ODEwMUQ3OTYzRDQ1ICAgIA==-MTlEMjVCNzFCMDU1ICAgIA==-NDZCNERFNUMyNDU1ICAgIA==-QzA5NjUyNDdBNzU1ICAgIA==-Rjk2OEQ1MjIyQjU1ICAgIA==-RTI0QTU5MEQ5RTU1ICAgIA==-NTcxQ0RDRTcxMjY1ICAgIA==-MUZFRDUwRDI5NTY1ICAgIA==-QjlDRkQzQkQwOTY1ICAgIA==-RjJBMTY3OTg4QzY1ICAgIA==-M0M3M0VBNzMwMDc1ICAgIA==-NzU1NTZFNUU3Mzc1ICAgIA==-QkUyN0UxNDlGNjc1ICAgIA==-RjcwOTY1MjQ3QTc1ICAgIA==-MzFFQUU4MEZFRDc1ICAgIA==-N0FCQzZDRTk2MTg1ICAgIA==-RTg5RUVGQzRFNDg1ICAgIA==-MTI3MDczQkY1ODg1ICAgIA==-NkE0MkY2OUFEQjg1ICAgIA==-NDEyNDdBNzU1Rjg1ICAgIA==-RDhGNUZENTBEMjk1ICAgIA==-NzZENzcxNEI0Njk1ICAgIA==-NzBCOUY0MjZDOTk1ICAgIA==-Qjk4Qjc4MDE0RDk1ICAgIA==-QjI2REZCRUJCMEE1ICAgIA==-MkMzRjdGQzYzNEE1ICAgIA==-RDExMTAzQjFCN0E1ICAgIA==-NkFFMjg2OUMyQkE1ICAgIA==-QTNDNDBBNzdBRUE1ICAgIA==-MzBBNjhENTIyMkI1ICAgIA==-OEE3ODAxNEQ5NUI1ICAgIA==-NDM1QTg0MjgxOUI1ICAgIA==-OEMyQzA4MDM5Q0I1ICAgIA==-ODYwRThCRUQwMEM1ICAgIA==-Q0VERjBGQzg4M0M1ICAgIA==-NDhCMTkyQjMwN0M1ICAgIA==-QzA5MzE2OUU3QUM1ICAgIA==-NkE2NTk5NzlGREM1ICAgIA==-ODM0NzFENTQ3MUQ1ICAgIA==-NTkxOTkwNEZFNEQ1ICAgIA==-RTVGQTE0MkE2OEQ1ICAgIA==-RUZDQzk3MDVFQkQ1ICAgIA==-MDlBRTFCRUY1RkQ1ICAgIA==-NkU3MEFFQ0FEMkU1ICAgIA==-MTg1MjIyQjU1NkU1ICAgIA==-RjAzNEE1OTBEOUU1ICAgIA==-M0EwNjI5N0I0REU1ICAgIA==-RjdFN0FDNTZDMEY1ICAgIA==-RkNCOTIwNDE0NEY1ICAgIA==-RjU5QkEzMkNCN0Y1ICAgIA==-M0Y2RDI3MDczQkY1ICAgIA==-Njg0RkFBRTFCRUY1ICAgIA==-MTIyMTNFQ0MyMjA2ICAgIA==-NUJGMkIxQjdBNTA2ICAgIA==-OTRENDM1OTIyOTA2ICAgIA==-NkRBNkI4N0Q5QzA2ICAgIA==-MUE4ODNDNTgxMDE2ICAgIA==-NTM2QUJGMzM5MzE2ICAgIA==-OUMzQzMzMkUwNzE2ICAgIA==-RDExRUI2MDk4QTE2ICAgIA==-RkZFRjNBRTMwRTE2ICAgIA==-NDhDMUNEQ0U3MTI2ICAgIA==-QjJBMzQxQjlGNDI2ICAgIA==-QkI3NUM0OTQ3ODI2ICAgIA==-ODE1NzQ4N0ZFQjI2ICAgIA==-NkUyOUNCNUE2RjI2ICAgIA==-NDYwQjRGMzVFMjM2ICAgIA==-MDBFQ0MyMjA2NjM2ICAgIA==-RjlCRTQ2MEJEOTM2ICAgIA==-MUU4MEQ5RTU1RDM2ICAgIA==-Mzc2MjVEQzBEMDQ2ICAgIA==-QjQ0NEQwQkI0NDQ2ICAgIA==-Q0QxNjU0OTZDNzQ2ICAgIA==-MzhGN0Q3NzE0QjQ2ICAgIA==-NDBEOTVCNUNCRTQ2ICAgIA==-NDZBQkRFMzczMjU2ICAgIA==-RTM4RDUyMjJCNTU2ICAgIA==-MUQ1RkQ1MEQyOTU2ICAgIA==-NjUzMTY5RTdBQzU2ICAgIA==-NEMwM0VDQzIyMDY2ICAgIA==-RDNFNDYwQkQ5MzY2ICAgIA==-NzFDNkUzOTgxNzY2ICAgIA==-N0I5ODY3NzM5QTY2ICAgIA==-QjQ3QUVBNUUwRTY2ICAgIA==-QkQ0QzZFMzk4MTc2ICAgIA==-MjcyRUUxMjQwNTc2ICAgIA==-RENGRjY1MEY3ODc2ICAgIA==-NjVEMUY4RTlGQjc2ICAgIA==-QUVBMzdDQzQ3Rjc2ICAgIA==-QkI4NUZGQUZFMjg2ICAgIA==-QjQ2NzczOUE2Njg2ICAgIA==-QUEzOUY2NzVFOTg2ICAgIA==-OTMxQjdBNTA2RDg2ICAgIA==-NjBGQ0ZEM0JEMDk2ICAgIA==-MkFDRTcxMjY1NDk2ICAgIA==-NjNBMDA1MDFENzk2ICAgIA==-MkM3Mjg4RUI0Qjk2ICAgIA==-QjU1NDBDQzZDRTk2ICAgIA==-OEUyNjhGQTE0MkE2ICAgIA==-QzgwODAzOUNCNUE2ICAgIA==-RTFFOTg2NzczOUE2ICAgIA==-NEFCQjBBNTJCQ0E2ICAgIA==-NTQ5RDhEM0QyMEI2ICAgIA==-QUM2RjAxMjhBM0I2ICAgIA==-QTY0MTk0MDMyN0I2ICAgIA==-REYxMzE4RUQ5QUI2ICAgIA==-NzlGNDlCQzgxRUI2ICAgIA==-QzFENjFGQTM5MUM2ICAgIA==-OUJBODkyOUUwNUM2ICAgIA==-MzU4QTE2Nzk4OEM2ICAgIA==-MUE1Qzk5NTQwQ0M2ICAgIA==-QTYzRTFEM0Y3RkM2ICAgIA==-QTAxMEEwMkFGMkQ2ICAgIA==-QzlFMTI0MDU3NkQ2ICAgIA==-MkZCM0E3RUZFOUQ2ICAgIA==-QkI5NTJCQ0E2REQ2ICAgIA==-QTE3N0FFQTVFMEU2ICAgIA==-MEI0OTIyOTA2NEU2ICAgIA==-NzgyQkE1N0JEN0U2ICAgIA==-MTIwRDI5NTY1QkU2ICAgIA==-RTlERUFDMzFERUU2ICAgIA==-MzBCMDMwMkM0MkY2ICAgIA==-OUQ4MkIzMDdDNUY2ICAgIA==-QzY2NDM3RTE0OUY2ICAgIA==-REYzNkJBQ0NCQ0Y2ICAgIA==-QjgxODNFQTczMDA3ICAgIA==-OEZFOUIxOTJCMzA3ICAgIA==-RTlDQjM1N0QyNzA3ICAgIA==-RjRBREI4NThBQTA3ICAgIA==-Q0Q3RjNDMzMyRTA3ICAgIA==-QzU1MUNGMUU5MTE3ICAgIA==-RkQyMzQzMDkxNTE3ICAgIA==-NzkwNUM2RTM5ODE3ICAgIA==-OTNFNjRBQ0UwQzE3ICAgIA==-N0FCOENEQTk4RjE3ICAgIA==-QzM5QTQxOTQwMzI3ICAgIA==-MkQ2Q0M0N0Y3NjI3ICAgIA==-Mjg0RTQ4NUFGOTI3ICAgIA==-N0UxMERCMzU3RDI3ICAgIA==-NkFGMTVGMTBGMDM3ICAgIA==-RkZDM0QyMEI2NDM3ICAgIA==-OERBNTU2RTVFNzM3ICAgIA==-NjQ4N0Q5QzA2QjM3ICAgIA==-NEQ1OTVEQUJERTM3ICAgIA==-QTczQkQwOTY1MjQ3ICAgIA==-NkYwRDU0NzFENTQ3ICAgIA==-N0FFRUQ3NUM0OTQ3ICAgIA==-RDJDMDZCMzdDQzQ3ICAgIA==-NEI5MkVFMTI0MDU3ICAgIA==-RTU3NDYyMERCMzU3ICAgIA==-NUI0NkU1RTczNzU3ICAgIA==-NzQyODY5QzJCQTU3ICAgIA==-QTIwQUVDQUQyRTU3ICAgIA==-REJEQjYwOThBMTY3ICAgIA==-NjRCREUzNzMyNTY3ICAgIA==-NkU4RjY3NUU5ODY3ICAgIA==-OTc2MUZBMzkxQzY3ICAgIA==-MzE0MzdFMTQ5RjY3ICAgIA==-ODkxNUYxMEYwMzc3ICAgIA==-RjNGNjc1RTk4Njc3ICAgIA==-RkNDOEY4QzQwQTc3ICAgIA==-QzVBQTdDQUY3RDc3ICAgIA==-OEU3Q0ZGOEFGMDg3ICAgIA==-NTg1RTczNzU3NDg3ICAgIA==-MDIzMDA3NTBGNzg3ICAgIA==-QzcwMjhBM0I2Qjg3ICAgIA==-NUZEMzBFMTZFRTg3ICAgIA==-OURCNTgxMDE2Mjk3ICAgIA==-MDY5NzA1RUJENTk3ICAgIA==-MzA3OTg4QzY1OTk3ICAgIA==-ODk0QjBDQTFEQzk3ICAgIA==-OTIyRDhGOEM0MEE3ICAgIA==-OUJGRTAzNzdDM0E3ICAgIA==-RkZDMDk2NTI0N0E3ICAgIA==-OURBMjFBM0RCQUE3ICAgIA==-ODY4NDlEMTgzRUE3ICAgIA==-NzA2NjExMDNCMUI3ICAgIA==-MkEzODk0RUQyNUI3ICAgIA==-ODIxQTE4QzhBOEI3ICAgIA==-MjlFQjlCQTMyQ0I3ICAgIA==-RDBDRDFGOEU5RkI3ICAgIA==-Rjk5RjkyNzkxM0M3ICAgIA==-Njc3MTI2NTQ5NkM3ICAgIA==-MzE1M0E5M0YwQUM3ICAgIA==-QzkyNTJEMUE4REM3ICAgIA==-MjQwN0EwMDUwMUQ3ICAgIA==-NkREODI0RUY3NEQ3ICAgIA==-NDNCQUE3Q0FGN0Q3ICAgIA==-REE4QzJCQTU3QkQ3ICAgIA==-Mjg2RUFFODBGRUQ3ICAgIA==-ODE0MDMyN0I2MkU3ICAgIA==-NUIxMkI1NTZFNUU3ICAgIA==-RjRGMzM5MzE2OUU3ICAgIA==-NERDNUJDMUNEQ0U3ICAgIA==-NTdBNzMwMDc1MEY3ICAgIA==-N0I3OUIzRTFEM0Y3ICAgIA==-NDk1QjM3Q0M0N0Y3ICAgIA==-QzIzREJBQTdDQUY3ICAgIA==-QUIwRjNFODI0RUY3ICAgIA==-NDFFMEMxN0RCMTA4ICAgIA==-NUZCMjQ1NTgzNTA4ICAgIA==-RTc5NEM4MzNCODA4ICAgIA==-MjE3NjRDMUUyQzA4ICAgIA==-NEE0OENGRjhBRjA4ICAgIA==-QzIyQTQzRTMyMzE4ICAgIA==-MUNGQkM2Q0U5NjE4ICAgIA==-RjVERDRBQTkxQTE4ICAgIA==-Q0VBRkNEODQ5RDE4ICAgIA==-QjM4MTUxN0YwMTI4ICAgIA==-QjE2M0Q0NUE4NDI4ICAgIA==-NEEzNTU4MzUwODI4ICAgIA==-MTUxN0RCMTA4QjI4ICAgIA==-NEVFODVGRkFGRTI4ICAgIA==-QjZDQUQyRTU3MjM4ICAgIA==-MjBBQzU2QzBGNTM4ICAgIA==-ODg3RUQ5QUI2OTM4ICAgIA==-RjE1MDZEODZFQzM4ICAgIA==-MTcyMkUwNzE2MDQ4ICAgIA==-MzAwNDY0NUNEMzQ4ICAgIA==-OERENUU3Mzc1NzQ4ICAgIA==-NzdCNzZCMTJEQTQ4ICAgIA==-MzE5OUVFRkM0RTQ4ICAgIA==-MDc2QjYyRTdDMTU4ICAgIA==-RUUzREU1QzI0NTU4ICAgIA==-MUZEOEM3QkRCODU4ICAgIA==-Njc4OTZCOTgzQzU4ICAgIA==-QUFDMjcwNzNCRjU4ICAgIA==-NzNBNEYzNUUyMzY4ICAgIA==-RTE4Njc3MzlBNjY4ICAgIA==-M0I1OEZBMTQyQTY4ICAgIA==-QzQzQTdFRkU5RDY4ICAgIA==-M0QwQ0YxRTkxMTc4ICAgIA==-MDZFRDc1QzQ5NDc4ICAgIA==-Q0NCRkY4QUYwODc4ICAgIA==-NTQ5MThDOEE4Qjc4ICAgIA==-QjE3MzAwNzUwRjc4ICAgIA==-NEI0NTgzNTA4Mjg4ICAgIA==-MjUyNzA3M0JGNTg4ICAgIA==-M0VGODhBMTY3OTg4ICAgIA==-MzdEQTBFRjBGQzg4ICAgIA==-Q0ZBQzgxRUI2MDk4ICAgIA==-OEE4RTA1QzZFMzk4ICAgIA==-REY1MDk4QTE2Nzk4ICAgIA==-NzczMjFDOENEQTk4ICAgIA==-RDQxNDlGNjc1RTk4ICAgIA==-QkVFNTEzNTJEMUE4ICAgIA==-MjhDNzk2M0Q0NUE4ICAgIA==-QTBBOTFBMThDOEE4ICAgIA==-NkE3QjlERjI0Q0E4ICAgIA==-QTA1RDExRURCRkE4ICAgIA==-NTgyRjk0QzgzM0I4ICAgIA==-MTAwMTI4QTNCNkI4ICAgIA==-QkFEMkFCOEUyQUI4ICAgIA==-RjNCNDJGNjlBREI4ICAgIA==-M0Q4NkEyNTQyMUM4ICAgIA==-NzY2ODI2M0Y5NEM4ICAgIA==-QkYzQUE5MUExOEM4ICAgIA==-RjgxQzJERjQ5QkM4ICAgIA==-MzJGREEwRUYwRkM4ICAgIA==-N0JDRjI0Q0E4MkQ4ICAgIA==-QjRBMUI3QTUwNkQ4ICAgIA==-RkQ3MzNCODA4OUQ4ICAgIA==-Mzc1NUJFNkJGQ0Q4ICAgIA==-NzAzNzMyNTY3MEU4ICAgIA==-MkYwOUI1MzFGM0U4ICAgIA==-ODdFQTM5MUM2N0U4ICAgIA==-NzBDQ0JDRjZFQUU4ICAgIA==-QkE5RTMwRTE2RUU4ICAgIA==-MzM3MEMzQ0NEMUY4ICAgIA==-Qzk0MjQ3QTc1NUY4ICAgIA==-NTEyNENBODJEOEY4ICAgIA==-Q0JGNTRFNkQ0Q0Y4ICAgIA==-RjREN0MxNThDRkY4ICAgIA==-RkRBOTQ1MzM0MzA5ICAgIA==-NTY4QkM4MUVCNjA5ICAgIA==-N0Y1RDRDRjgzQTA5ICAgIA==-RkMzRkNGRDNCRDA5ICAgIA==-MDYxMTUzQ0UyMTE5ICAgIA==-NzBGMkQ2QTlBNDE5ICAgIA==-ODhDNDVBODQyODE5ICAgIA==-OEU5NkRENkY5QjE5ICAgIA==-MEI3ODUxNUExRjE5ICAgIA==-NjQ1QUQ0MzU5MjI5ICAgIA==-QkUyQzU4MTAxNjI5ICAgIA==-NDcwRURCRkE4OTI5ICAgIA==-RTBFRjVGRDUwRDI5ICAgIA==-MUFCMUUyQzA4MDM5ICAgIA==-NDA5MzY2QUJGMzM5ICAgIA==-RDc2NUU5ODY3NzM5ICAgIA==-OTY0NzZENjFGQTM5ICAgIA==-MkYxOUUwNUM2RTM5ICAgIA==-NjhGQTY0MzdFMTQ5ICAgIA==-ODFEQ0U3MTI2NTQ5ICAgIA==-MTZBRTZCRkNEODQ5ICAgIA==-M0Y3MEZFRDc1QzQ5ICAgIA==-QkQ1MjcyQzJERjQ5ICAgIA==-NDYzNEY1QUQ0MzU5ICAgIA==-MzAxNjc5ODhDNjU5ICAgIA==-RjhFN0ZDNjM0QTU5ICAgIA==-QzFDOTcwNUVCRDU5ICAgIA==-ODg5QkYzMzkzMTY5ICAgIA==-NjA3RDc3MTRCNDY5ICAgIA==-OTAxOTU5MEYyODY5ICAgIA==-RThCOUZDRTlBQjY5ICAgIA==-MkNGMjAyQzQyRjY5ICAgIA==-RjRENDg1QUY5Mjc5ICAgIA==-MkZBNjA5OEExNjc5ICAgIA==-NTk4ODhDNjU5OTc5ICAgIA==-NUY1QTAwNTAxRDc5ICAgIA==-RjkzQzgzM0I4MDg5ICAgIA==-MzMxRTA3MTYwNDg5ICAgIA==-N0NFRjhBRjA4Nzg5ICAgIA==-QjVDMTFFREJGQTg5ICAgIA==-QjBBMzkxQzY3RTg5ICAgIA==-Mjk3NTE1QTFGMTk5ICAgIA==-QjU1Nzk4OEM2NTk5ICAgIA==-NEYyOTFDNjdFODk5ICAgIA==-NTkwQjlGNDI2Qzk5ICAgIA==-MUZEQzEzM0RERjk5ICAgIA==-MTVCRTk2MTg1M0E5ICAgIA==-QkY4MDJBRjJENkE5ICAgIA==-Rjg2MkFEREQ0QUE5ICAgIA==-MzI0NDIxQzhDREE5ICAgIA==-N0IxNkE0QTM0MUI5ICAgIA==-NzZGNzI4OEVCNEI5ICAgIA==-NTJEOUFCNjkzOEI5ICAgIA==-Q0JBQjJGNDRCQkI5ICAgIA==-RTQ4REEyM0YyRkI5ICAgIA==-RUQ1RjI2MUFBMkM5ICAgIA==-MDczMUI5RjQyNkM5ICAgIA==-MzExMzNEREY5OUM5ICAgIA==-QkFFNEIwQ0ExREM5ICAgIA==-NDNDNjM0QTU5MEQ5ICAgIA==-RUM5OEI3ODAxNEQ5ICAgIA==-MTY3QTNCNkI4N0Q5ICAgIA==-N0E0Q0JFNDYwQkQ5ICAgIA==-RTcyRTMyMzE4RUQ5ICAgIA==-QjEwMEM1MUNGMUU5ICAgIA==-NEFEMTQ5RjY3NUU5ICAgIA==-QTRCM0NDRDFGOEU5ICAgIA==-RUQ4NTQwQ0M2Q0U5ICAgIA==-QzM2N0MzQTdFRkU5ICAgIA==-NUIzOTQ3ODI2M0Y5ICAgIA==-QTgxQkNBNkRENkY5ICAgIA==-MDJGQzRFNDg1QUY5ICAgIA==-REJDRUMxMzNEREY5ICAgIA==-NzVBMDU1MUU0MTBBICAgIA==-Q0Q3MkQ4RjhDNDBBICAgIA==-RDc1NDVDRDM0ODBBICAgIA==-MUMyNkRGQkVCQjBBICAgIA==-MTcwODUzQTkzRjBBICAgIA==-MUREOUQ2ODRCMjFBICAgIA==-QjdCQjVBNkYyNjFBICAgIA==-RjA5RERENEFBOTFBICAgIA==-M0E2RjUxMzUyRDFBICAgIA==-NzM0MUU0MTBBMDJBICAgIA==-QkMxMzY4RkExNDJBICAgIA==-RjVGNEVCRDU5NzJBICAgIA==-M0ZDNjZGQjAxQjJBICAgIA==-NzhBOEUyQUI4RTJBICAgIA==-NzM4QTY2ODYwMjNBICAgIA==-MkY1Q0U5NjE4NTNBICAgIA==-ODgzRTZENENGODNBICAgIA==-NTIxMEYwMzc3QzNBICAgIA==-RkJFMTc0MTJGRjNBICAgIA==-NDRDM0Y3RkM2MzRBICAgIA==-NUU5NTdCRDdFNjRBICAgIA==-NzI3N0ZFQjI2QTRBICAgIA==-RUY0OTcyQURERDRBICAgIA==-QjkyQkY1ODg1MTVBICAgIA==-NDIwRDc5NjNENDVBICAgIA==-QUNERUZDNEU0ODVBICAgIA==-RTVCMDgwMzlDQjVBICAgIA==-Q0I4MjA0MTQ0RjVBICAgIA==-NTM2NDg3RkVCMjZBICAgIA==-QTA0NjBCRDkzNjZBICAgIA==-QzkxODhFQjRCOTZBICAgIA==-RjNGOTAyQUYyRDZBICAgIA==-N0RDQjg1OEFBMDdBICAgIA==-MDZBRDA5NjUyNDdBICAgIA==-QUY3RjhDNDBBNzdBICAgIA==-RDg1MTEwM0IxQjdBICAgIA==-MEUyMzkzMTY5RTdBICAgIA==-QkIwNTE3RjAxMjhBICAgIA==-MDRFNjlBREI4NThBICAgIA==-N0VCODFFQjYwOThBICAgIA==-Nzc5QTkxQTE4QzhBICAgIA==-OUI2QzE1OENGRjhBICAgIA==-QjQ0RTk4Njc3MzlBICAgIA==-MjMyMDJDNDJGNjlBICAgIA==-N0NGMUFGMkQ2QTlBICAgIA==-MDZEMzIzMThFRDlBICAgIA==-N0VBNUE2RjI2MUFBICAgIA==-NDc4NzJBRERENEFBICAgIA==-MEU1OUFEQjg1OEFBICAgIA==-OTUzQjIxQTNEQkFBICAgIA==-ODMxREE0OEU0RkFBICAgIA==-MENFRTI4NjlDMkJBICAgIA==-NTZDMEJCNDQ0NkJBICAgIA==-RUU5MjNGMkZCOUJBICAgIA==-NDg3NEIyMUEzREJBICAgIA==-RDE1NjM2RjRCMENBICAgIA==-RDcyOEI5REYyNENBICAgIA==-N0ZGOTNEQkFBN0NBICAgIA==-QjlEQkIwQTUyQkNBICAgIA==-RjFCRDM0ODBBRUNBICAgIA==-MUM4RkI3NkIxMkRBICAgIA==-QTU2MTRCNDY5NURBICAgIA==-RDI0M0NFMjExOURBICAgIA==-NEIxNTQyMUM4Q0RBICAgIA==-MDVGNkM1RjYwMEVBICAgIA==-NzlDODQ5RDE4M0VBICAgIA==-QjNBQUNDQkNGNkVBICAgIA==-QUQ3QzQwQTc3QUVBICAgIA==-NTU1RUMzODJGREVBICAgIA==-NTAzMDU3NkQ2MUZBICAgIA==-NTYwMkRBNDhFNEZBICAgIA==-RjBFMzVFMjM2OEZBICAgIA==-M0FCNUQxMUVEQkZBICAgIA==-NzM5NzU1Rjg1RkZBICAgIA==-QkM2OUQ4RDNEMjBCICAgIA==-RjU0QjVDQkU0NjBCICAgIA==-M0YxRERGOTlDOTBCICAgIA==-NzhGRTUzODQ0RDBCICAgIA==-QjFEMEU2NkZCMDFCICAgIA==-RkFBMjZBNEEzNDFCICAgIA==-MzQ4NEVEMjVCNzFCICAgIA==-N0Q1NjYxMTAzQjFCICAgIA==-QjYzOEU0RkFBRTFCICAgIA==-QjExQTY4RDUyMjJCICAgIA==-M0VFQkVCQjBBNTJCICAgIA==-NzJDRDZGOUIxOTJCICAgIA==-RTBBRkUyODY5QzJCICAgIA==-M0E3MTc2NjExMDNCICAgIA==-QzM1M0Y5NEM4MzNCICAgIA==-M0MyNTdEMjcwNzNCICAgIA==-MDUwN0YwMTI4QTNCICAgIA==-Q0JEODc0RkNGRDNCICAgIA==-NTNCQUY3RDc3MTRCICAgIA==-NDE5QzdCQjJGNDRCICAgIA==-Qzk2RUZFOUQ2ODRCICAgIA==-MTQ0MDgyODhFQjRCICAgIA==-QUMxMjA2NjM2RjRCICAgIA==-MDZGMzg5NEVEMjVCICAgIA==-OUZDNTBEMjk1NjVCICAgIA==-OTVBNzgwMTREOTVCICAgIA==-M0Q3OTA0RkU0RDVCICAgIA==-NTc1Qjg3RDlDMDZCICAgIA==-MDEzRDBCQjQ0NDZCICAgIA==-MUUwRjhFOUZCNzZCICAgIA==-ODZFMDEyOEEzQjZCICAgIA==-NDBDMjk1NjVCRTZCICAgIA==-QjQ5NDE5NDAzMjdCICAgIA==-RkU2NjlDMkJBNTdCICAgIA==-Mzc0ODEwMTYyOTdCICAgIA==-NzEyQTkzRjBBQzdCICAgIA==-NkJGQjE3REIxMDhCICAgIA==-MTNERDlBQjY5MzhCICAgIA==-MUVBRjFFOTExNzhCICAgIA==-REM0QkZGOEM4QThCICAgIA==-MjVGQjkzNzcwRThCICAgIA==-QjkzNUE4NDI4MTlCICAgIA==-MjIxNzJDMkRGNDlCICAgIA==-N0ZFOEFGMDg3ODlCICAgIA==-OTVDQTIzRjJGQjlCICAgIA==-OUI5Q0E2REQ2RjlCICAgIA==-MzY3RTJBQjhFMkFCICAgIA==-N0Y0MEJEOTM2NkFCICAgIA==-QjgyMjMxOEVEOUFCICAgIA==-RjEwNEI0Njk1REFCICAgIA==-M0JENTM4NDREMEJCICAgIA==-NzRCN0JCMkY0NEJCICAgIA==-QkQ4OTNGMEFDN0JCICAgIA==-RjY2QkIyRjQ0QkJCICAgIA==-MzA0RDM2REZCRUJCICAgIA==-NzkxRkI5QkEzMkNCICAgIA==-QjJGMDREOTVCNUNCICAgIA==-RkJDMkMwODAzOUNCICAgIA==-RjZBNDQ0NkJBQ0NCICAgIA==-RDI4NkM3NDYyMERCICAgIA==-QUM1ODRCMjFBM0RCICAgIA==-RDUzQUNFMEMxN0RCICAgIA==-N0YwQzQyRjY5QURCICAgIA==-NzNFREM1RDExRURCICAgIA==-RTBDRjQ5QkM4MUVCICAgIA==-QkE5MURDOTcwNUVCICAgIA==-NDM3MzUwODI4OEVCICAgIA==-QUQ0NUQzNkRGQkVCICAgIA==-RTYyNzU3NDg3RkVCICAgIA==-Q0NGOERBMjNGMkZCICAgIA==-NTREQTVFMEU2NkZCICAgIA==-QjFCQ0QxRjhFOUZCICAgIA==-QUI4RTU1RDM2REZCICAgIA==-NDU2MEU4QkVEMDBDICAgIA==-Q0UzMjZDOTk1NDBDICAgIA==-MDcxNEVGNzRENzBDICAgIA==-OTBGNTYzNkY0QjBDICAgIA==-RjRDN0U2NEFDRTBDICAgIA==-QjJBOTZBMjU0MjFDICAgIA==-NkM3QkVEMDBDNTFDICAgIA==-MTY1RDYxRkEzOTFDICAgIA==-NEUyRkU0RDVCQzFDICAgIA==-NTgwMTc4QjAzMDJDICAgIA==-NEREMkZCOUJBMzJDICAgIA==-RUFCNDdGNzYyNzJDICAgIA==-NzM5NkYyNjFBQTJDICAgIA==-MkQ2ODc2NEMxRTJDICAgIA==-RTY0QUY5Mjc5MTNDICAgIA==-REExQzdEMDIxNTNDICAgIA==-RDVGREYwRkM4ODNDICAgIA==-REJDRjc0RDcwQzNDICAgIA==-NzZBMTA4QjI4RjNDICAgIA==-QkY3MzhCOURGMjRDICAgIA==-Rjg1NTBGNzg3NjRDICAgIA==-MzIzNzgyNjNGOTRDICAgIA==-N0IwOTA2NEU2RDRDICAgIA==-QjRFQTg5MjlFMDVDICAgIA==-RkRCQzBEMDQ2NDVDICAgIA==-Mzc5RTgwRkVENzVDICAgIA==-NzA3MDE0RDk1QjVDICAgIA==-Qjk0Mjk3QjRERTVDICAgIA==-RjIyNDFCOUY0MjZDICAgIA==-M0NGNTlFN0FDNTZDICAgIA==-NzVENzEyNjU0OTZDICAgIA==-QkVBOTk1NDBDQzZDICAgIA==-Rjc4QjE5MkIzMDdDICAgIA==-MzE2RDlDMDZCMzdDICAgIA==-M0MzRjEwRjAzNzdDICAgIA==-QzcxMUEzREJBQTdDICAgIA==-RkNFMjI3QjYyRTdDICAgIA==-QkFDNEFBOTFBMThDICAgIA==-OTRBNjJFN0MxNThDICAgIA==-MEQ3OEExNjc5ODhDICAgIA==-NTY1QTI1NDIxQzhDICAgIA==-MEQyQ0E4MkQ4RjhDICAgIA==-OTQwRTJDMDgwMzlDICAgIA==-MzJFRkFGRTI4NjlDICAgIA==-M0NCMTMzRERGOTlDICAgIA==-NzU5M0I2Qjg3RDlDICAgIA==-N0U2NTNBOTNGMEFDICAgIA==-RTc0N0JEN0U2NEFDICAgIA==-OUQxOTMxNjlFN0FDICAgIA==-MjZGQUI0NDQ2QkFDICAgIA==-NkZDQzM4MkZERUFDICAgIA==-N0NBRUJCMEE1MkJDICAgIA==-NzU4MDRGRTRENUJDICAgIA==-NkI1MkMyREY0OUJDICAgIA==-NTQzNDQ2QkFDQ0JDICAgIA==-MjExNkM5OTU0MENDICAgIA==-RUFFNzRENzBDM0NDICAgIA==-MjRDOUMwNkIzN0NDICAgIA==-RUM5QjQ0NDZCQUNDICAgIA==-NzY3REM3MjEzRUNDICAgIA==-NEY0RjRCMENBMURDICAgIA==-ODkyMURFRTYyNURDICAgIA==-QTIwMzUyRDFBOERDICAgIA==-MEJENEQ1QkMxQ0RDICAgIA==-MTVCNjU5OTc5RkRDICAgIA==-NkQ4OERDNzIxM0VDICAgIA==-Njc2QTUwNkQ4NkVDICAgIA==-OTA0Q0QzNDgwQUVDICAgIA==-M0ExRTU3MjM4REVDICAgIA==-ODJGRkRBMEVGMEZDICAgIA==-NUNDMTZFRTg3NEZDICAgIA==-RjVBM0UxRDNGN0ZDICAgIA==-REE3NTY1QkU2QkZDICAgIA==-Njc1N0U4OTlFRUZDICAgIA==-NjEzOTZDNzQ2MjBEICAgIA==-OEEwQkVGNUZENTBEICAgIA==-RUZEQzYzNEE1OTBEICAgIA==-N0NCRUU2MjVEQzBEICAgIA==-NjI5MDdBMDA1MDFEICAgIA==-Q0I2MkZERUFDMzFEICAgIA==-Mzk0NDcxRDU0NzFEICAgIA==-RDIyNkY0QjBDQTFEICAgIA==-QUFGNzc4OUIzRTFEICAgIA==-RjBEOUZCNzZCMTJEICAgIA==-NUVBQjdGNTEzNTJEICAgIA==-ODc4REYyNENBODJEICAgIA==-OTA2Rjc2MjcyQzJEICAgIA==-NzkzMTBBMDJBRjJEICAgIA==-NDAxMzhERUMxMzNEICAgIA==-QUFFNDAxRDc5NjNEICAgIA==-QjVDNjg0QjIxQTNEICAgIA==-OEU5ODA4OUQ4RDNEICAgIA==-ODY3QThCNzgwMTREICAgIA==-QkU0QzBGNTM4NDREICAgIA==-M0EyRTgyNEVGNzREICAgIA==-NTQwMDE2Mjk3QjREICAgIA==-M0JEMTk5MDRGRTREICAgIA==-ODRCMzFERUU2MjVEICAgIA==-RUQ4NTkwRDlFNTVEICAgIA==-RTg2NzE0QjQ2OTVEICAgIA==-M0YzOTk3OUZEQzVEICAgIA==-MkIxQjFCN0E1MDZEICAgIA==-QjBGQzlFNTVEMzZEICAgIA==-NEVDRTEyNDA1NzZEICAgIA==-MjVBMEE1MkJDQTZEICAgIA==-MEU3MjI5MDY0RTZEICAgIA==-Njg1NEFDRTBDMTdEICAgIA==-MjAzNjIwREIzNTdEICAgIA==-M0IwOEEzQjZCODdEICAgIA==-OTNFOTI3OTEzQzdEICAgIA==-MENCQkFBN0NBRjdEICAgIA==-QTY5RDJFNTcyMzhEICAgIA==-MUM2RkExNDJBNjhEICAgIA==-MzU0MTM1MkQxQThEICAgIA==-QjMyM0I4MDg5RDhEICAgIA==-Q0JGNDNDRTIxMTlEICAgIA==-MTZENkJGQ0Q4NDlEICAgIA==-QUVBODMzQjgwODlEICAgIA==-Qzc4QUI2OTM4QjlEICAgIA==-RjE2QzNBN0VGRTlEICAgIA==-QzczRUJENTk3MkFEICAgIA==-NUYwMDQxNDRGNUFEICAgIA==-NkNFMUM0MkY2OUFEICAgIA==-RDVDMzQ4MEFFQ0FEICAgIA==-QkY5NUNCRTQ2MEJEICAgIA==-NDg3NzRGQ0ZEM0JEICAgIA==-NTI1OUMyQkE1N0JEICAgIA==-NkIyQjQ2OTVEQUJEICAgIA==-MTAwREM5NzA1RUJEICAgIA==-MzlERTRENUJDMUNEICAgIA==-OTdCMEQwNDY0NUNEICAgIA==-MDA5MjU0MjFDOENEICAgIA==-Qjk2NEQ3MEMzQ0NEICAgIA==-MDA0NjVCRTZCRkNEICAgIA==-OTcxOERFQzEzM0REICAgIA==-OTVGOTUyQkNBNkREICAgIA==-RUVDQkQ1OTcyQUREICAgIA==-NThBRDU5NzJBREREICAgIA==-QzA4RkRDNUQxMUVEICAgIA==-MUE1MTYwNDg5NEVEICAgIA==-NDMzM0UzMjMxOEVEICAgIA==-NUQwNTY3MEU4QkVEICAgIA==-OTZFNkVBRTgwRkVEICAgIA==-MEZCODZFQzM4MkZEICAgIA==-MTk5QUUxQkVGNUZEICAgIA==-M0Q2QzY1OTk3OUZEICAgIA==-NUI0RUU4NzRGQ0ZEICAgIA==-QTQyMDdDNUY2MDBFICAgIA==-RURGMUZGM0FFMzBFICAgIA==-MzdEMzczMjU2NzBFICAgIA==-Q0ZBNUY2MDBFQTBFICAgIA==-OTk4NzdBRUE1RTBFICAgIA==-NDI2OUZEQzVEMTFFICAgIA==-NUMzQjcxQjA1NTFFICAgIA==-OTAxREY0OUJDODFFICAgIA==-NThFRTc4NzY0QzFFICAgIA==-RjJDMDBDNTFDRjFFICAgIA==-M0M5MjhGM0MzMzJFICAgIA==-NzU3NDAzMjdCNjJFICAgIA==-QkU0Njg2MDIzQTJFICAgIA==-RjcyODBBRUNBRDJFICAgIA==-MzEwQThEQzcyMTNFICAgIA==-N0FEQjAxQjJBNDNFICAgIA==-QjNCRDg0OUQxODNFICAgIA==-RkM4RjA4Nzg5QjNFICAgIA==-MzY2MTlCNTMxRjNFICAgIA==-N0YzMzFGM0U4MjRFICAgIA==-QjgxNTkyMjkwNjRFICAgIA==-RjFGNjE2MDQ4OTRFICAgIA==-M0JDODk5RUVGQzRFICAgIA==-NzRBQTFEQzk3MDVFICAgIA==-QkQ3QzkwQjRGMzVFICAgIA==-RjY1RTE0OUY2NzVFICAgIA==-MzAzMEE3N0FFQTVFICAgIA==-NzkwMjJCNTU2RTVFICAgIA==-QjJFM0FFMzBFMTZFICAgIA==-MjFDNTIyMkI1NTZFICAgIA==-N0E5N0E1MDZEODZFICAgIA==-MDQ3OTI5RTA1QzZFICAgIA==-N0M0QkFDQ0JDRjZFICAgIA==-NDUyRDIwQjY0MzdFICAgIA==-MENGRUEzOTFDNjdFICAgIA==-OTNEMDM3N0MzQTdFICAgIA==-QTFCMkJBNTdCRDdFICAgIA==-RkE4NDNFMzIzMThFICAgIA==-NDM2NkIxMkRBNDhFICAgIA==-QUMzODM1MDgyODhFICAgIA==-NDYxQUI4RTJBQjhFICAgIA==-MzBGQjNDQ0QxRjhFICAgIA==-QzlDREJGQTg5MjlFICAgIA==-MUY5RjMzOTMxNjlFICAgIA==-QjY3MUM2N0U4OTlFICAgIA==-MDE1MzRBNTkwRDlFICAgIA==-MUEyNUNEMzQ4MEFFICAgIA==-NzMwNzQxMkZGM0FFICAgIA==-NkREOEM0MEE3N0FFICAgIA==-RjRCQTQ4RTRGQUFFICAgIA==-NzM5Q0NCQ0Y2RUFFICAgIA==-Q0I2RTRGQUFFMUJFICAgIA==-MzY0MEQyOTU2NUJFICAgIA==-M0YxMjU2NzBFOEJFICAgIA==-MDRGM0Q5NUI1Q0JFICAgIA==-QjBENTVEMzZERkJFICAgIA==-MEFBN0QwMjE1M0NFICAgIA==-MjM4OTU0MENDNkNFICAgIA==-MkQ1QkQ3RTY0QUNFICAgIA==-OTYzRDVCQzFDRENFICAgIA==-Q0UwRkRFQUMzMURFICAgIA==-MzlFMDYyOTdCNERFICAgIA==-QzFDMkU1NzIzOERFICAgIA==-NkI5NDY5NURBQkRFICAgIA==-OTQ3NkVDMzgyRkRFICAgIA==-OUE0ODYwMjNBMkVFICAgIA==-MzIyQUUzMEUxNkVFICAgIA==-NTAwQzY3RTg5OUVFICAgIA==-QTlEREVBQzMxREVFICAgIA==-RDJCRjZFQUU4MEZFICAgIA==-OEI4MUYxOTkwNEZFICAgIA==-MjI2Mzc1NzQ4N0ZFICAgIA==-RDkzNUY4NUZGQUZFICAgIA==-RDQxNzdDM0E3RUZFICAgIA==-MkZFOEZGMTVGMTBGICAgIA==-Q0FDQTczMDA3NTBGICAgIA==-QTFBQ0Y2RUFFODBGICAgIA==-Qjk3RTdBQzU2QzBGICAgIA==-MjI1MDBFQTBFRjBGICAgIA==-OEUyMjgxOUI1MzFGICAgIA==-OTUwNDA1NzZENjFGICAgIA==-OUJENTg4NTE1QTFGICAgIA==-MzZCNzBDM0NDRDFGICAgIA==-N0Y4OThGMTc0MTJGICAgIA==-Qjg2QjAzMDJDNDJGICAgIA==-RjE0RDg2RUMzODJGICAgIA==-M0IxRjBBQzdCQjJGICAgIA==-NzRGMDlEQTIzRjJGICAgIA==-QkRDMjExOURBMjNGICAgIA==-RjZBNDk0NzgyNjNGICAgIA==-MzA4NjE4NTNBOTNGICAgIA==-Nzk1ODlCM0UxRDNGICAgIA==-QjIzQTFGMTk5MDRGICAgIA==-RkIwQzkyMDQxNDRGICAgIA==-RjZFRDE2RUU4NzRGICAgIA==-NkZCRjk5QzkwQjRGICAgIA==-MUM5MTJEQTQ4RTRGICAgIA==-RTU3M0EwOUZGMTVGICAgIA==-MUY0NTI0N0E3NTVGICAgIA==-QjgyN0E3NTVGODVGICAgIA==-OUVGODJCMzA3QzVGICAgIA==-OTREQUFFMUJFRjVGICAgIA==-M0ZBQzIyMDY2MzZGICAgIA==-Nzg4RUE1RTBFNjZGICAgIA==-QjE2MDM5Q0I1QTZGICAgIA==-RkEzMkJDQTZERDZGICAgIA==-MzQxNDMwOTE1MTdGICAgIA==-N0RFNUIzN0NDNDdGICAgIA==-QjZDNzM3NTc0ODdGICAgIA==-RkY5OUJBMzJDQjdGICAgIA==-RkE3QjNFMUQzRjdGICAgIA==-NjM1REIxMDhCMjhGICAgIA==-RUYyRjM1RTIzNjhGICAgIA==-NDkwMUM4Q0RBOThGICAgIA==-MTNFMjRDQTgyRDhGICAgIA==-QkNCNENGODNBMDlGICAgIA==-MDU5NjQzN0UxNDlGICAgIA==-MUY2OEM2NTk5NzlGICAgIA==-MTU0QTRBMzQxQjlGICAgIA==-MUIxQ0NEMUY4RTlGICAgIA==-QjVGRDQxMEEwMkFGICAgIA==-RkVDRkM0RTQ4NUFGICAgIA==-MzhBMTU4Q0ZGOEFGICAgIA==-NzE4M0RCQUE3Q0FGICAgIA==-N0M1NTVGODVGRkFGICAgIA==-RTQzN0QyNzA3M0JGICAgIA==-OTExOTU2NUJFNkJGICAgIA==-MEJFQUQ5MzY2QUJGICAgIA==-MjRDQzVEMTFFREJGICAgIA==-MkQ5RUQwMEM1MUNGICAgIA==-NDY3MDY0RTZENENGICAgIA==-NzA1MkU3QzE1OENGICAgIA==-RjkyNDZCQUNDQkNGICAgIA==-ODIwNkVFODc0RkNGICAgIA==-MkNENzYyNzJDMkRGICAgIA==-NTVCOUU1NUQzNkRGICAgIA==-OUI4QjY5MzhCOURGICAgIA==-OTE2REVDMTMzRERGICAgIA==-RkQzRjYwMEVBMEVGICAgIA==-NjYxMUYzRTgyNEVGICAgIA==-MTNGMjc3QzNBN0VGICAgIA==-OENDNEZBQUUxQkVGICAgIA==-QTVBNjdFODk5RUVGICAgIA==-Q0Y3OEYxNzQxMkZGICAgIA==-RDg1QTc1NUY4NUZGICAgIA==-NDEzQ0Y4M0EwOUZGICAgIA==-MTgwRTdDMTU4Q0ZGICAgIA==-
Some things are hidden...
The secret content is encrypted and stored in a hidden element, as shown in the screenshot below.
ciphertext
OuO
Install or setup
Use my costom theme: hugOuO or plug below codes in your blog Encrypt (backend)
We utilize Hugo’s shortcode system to create a template for content encryption, allowing users to define hidden sections with {{< encrypt 99 >}} and {{< /encrypt >}}, where 99 is the password.
themes\hugOuO\layouts\shortcodes\encrypt.html:{{- $password := 0 -}}
{{- $msg := "The %q shortcode requires a password parameter: see %s" }}
{{ if isset .Params 0 }}
{{- $password = index .Params 0 -}}
{{- else -}}
{{- errorf $msg .Name .Position }}
{{- end -}}
{{- $chars := split (.Inner | markdownify) "" -}}
{{- $unique_id := (printf "%d" now.UnixNano) -}}
{{- $step := (int (math.Floor (div 281474976710656 (len $chars)))) -}}
<div class = "encrypt-wrapper" >
<div class = "input-wrapper" >
<input id = {{ printf "password- %s " $unique_id }} type = "text" placeholder = "Password" >
<button class = "toggle-password" style = "cursor:pointer;" onclick = "decrypt({{ $unique_id }})" >
Decrypt
</button >
<button class = "toggle-password" style = "cursor:pointer;" onclick = "cleanDecrypt({{ $unique_id }})" >
Clean
</button >
</div >
<div id = {{ printf "encrypt-wrapper- %s " $unique_id }} style = "display: none;" >
{{- range $char := $chars -}}
{{- $x := (add (int (printf "0x%x" .)) (int $password)) -}}
{{- $password = (mod (add $password $step) 281474976710656)}}
{{- $y := replace (string (printf "%018U" $x)) "U+" "" -}}
{{- $ry := delimit (collections.Reverse (split $y "")) "" -}}
{{- $ey := (string $ry) | base64Encode -}}
{{- printf "%s-" $ey -}}
{{- end -}}
</div >
<div id = {{ printf "decrypt-result- %s " $unique_id }}>
<p >Some things are hidden...</p >
</div >
</div >
{{/* tool: https://apps.timwhitlock.info/unicode/inspect */}}
Decrypt (frontend)
We use JavaScript to decrypt ciphertext.
add following content in themes\hugOuO\static\js\hugouo.js: function rhexToBytes(hex) {
const bytes = new Uint8Array(hex.length / 2 );
for (let i = 0 ; i !== bytes.length; i++ ) {
bytes[i] = parseInt (hex.substring((bytes.length - i) * 2 , (bytes.length - i) * 2 - 2 ).split("" ).reverse().join("" ), 16 );
}
return bytes;
}
function byteArrayToInt(byteArray) {
let value = 0 ;
for (var i = 0 ; i < byteArray.length; i++ ) {
value = (value * 256 ) + byteArray[i];
}
return value;
}
function intToBytes(input, length) {
const bytes = new Uint8Array(length);
for (let i = length - 1 ; i >= 0 ; i-- ) {
let byte = input & 0xff ;
bytes[i] = byte ;
input = (input - byte ) / 256 ;
}
return bytes;
}
function removeLeadingZeroes(bytes) {
let i = 0 ;
while (i < bytes.length && bytes[i] === 0 ) {
i++ ;
}
return bytes.slice(i);
}
function decrypt(id) {
let success = true ;
const password_str = document .querySelector("#password-" + id).value
if (password_str.trim() === "" ) {
success = false ;
}
let password = parseInt (password_str);
const encodedString = document .querySelector("#encrypt-wrapper-" + id).innerText;
const list = encodedString.split('-' );
const step = Math .floor(281474976710656 / (list.length - 1 ));
let decryptResult = [];
for (let i = 0 ; i < list.length; i++ ) {
xb = rhexToBytes(Base64.decode(list[i]));
x = byteArrayToInt(xb) - password;
password = (password + step) % 281474976710656 ;
dxb = intToBytes(x, xb.length);
try {
decryptResult.push(new TextDecoder("utf8" , { fatal: true }).decode(removeLeadingZeroes(dxb)));
} catch (e) {
success = false ;
if (e instanceof TypeError) {
} else {
console.error(e);
}
}
}
if (success) {
document .querySelector("#decrypt-result-" + id).innerHTML = '<p>' + decryptResult.join('' ) + '</p>' ;
} else {
document .querySelector("#decrypt-result-" + id).innerHTML = '<p>Wrong password!</p>' ;
}
}
function cleanDecrypt(id) {
document .querySelector("#decrypt-result-" + id).innerHTML = '<p>Some things are hidden...</p>' ;
document .querySelector("#password-" + id).value = '' ;
}
References