Apache mod_proxy SSRF(CVE-2021-40438)的一点分析和延伸【破产求金币】

longhack520   ·   发表于 2021-10-19 11:34:51   ·   代码审计
5ZGo5LqU5pma5LiK5byA5aeL5a2m5LmgQXBhY2hlIEhUVFAgU2VydmVy77yI5ZCO5paH566A56ew5Li6QXBhY2hl77yJbW9kX3Byb3h555qEU1NSRua8j+a0nu+8iENWRS0yMDIxLTQwNDM477yJ77yM5bm25Zyo5pif55CD566A5Y2V5LuL57uN5LqG5LiA5LiL57yW6K+R44CB6LCD6K+VQXBhY2hl5pyN5Yqh5Zmo55qE5pa55rOV77yM5LuK5aSp57un57ut5rex5YWl5YiG5p6Q5LiA5LiL6L+Z5Liq5ryP5rSe55qE5oiQ5Zug77yM5Lul5Y+K5LiA5Lqb5bu25Ly455qE6Zeu6aKY56CU56m244CCCgrmiJHlvojkuYXkuI3lj5HmvI/mtJ7liIbmnpDkuobvvIzlm6DkuLrkuI3mmK/oh6rlt7HmjJbnmoTmvI/mtJ7vvIzmiJHoh6rlt7HnmoTmgJ3ogIPlhbblrp7mmK/kuI3lpJ/nmoTvvIzlho3liqDkuIrlvojlpJrlh7rmvI/mtJ7nmoTova/ku7bmiJHpg73msqHnlKjov4fvvIzkuZ/mm7TosIjkuI3kuIrmt7HlhaXnmoTnkIbop6PvvIzlvojlrrnmmJPokL3kv5flpZflj5jmiJDmtYHmsLTotKbvvJvlj6blpJbov5nkupvlubTnvZHlj4vku6zkuZ/lvojnp6/mnoHvvIzkuI3nvLrmiJHnmoTkuIDnr4fmvI/mtJ7liIbmnpDmlofnq6DvvIzmiYDku6XmiJHlsLHlhpnnmoTlsJHkuobjgILkuI3ov4fmnIDov5FBcGFjaGUgSFRUUCBTZXJ2ZXLlh7rnmoTlh6DkuKrmvI/mtJ7vvIzov5jmmK/lgLzlvpfliIbmnpDkuIDkuIvjgIIKCuWPpuWklu+8jOmYheivu+acrOaWh+WJje+8jOW7uuiuruaMieeFp+aIkeWcqOi/meS4pOevh+W4luWtkOmHjOWPkeeahOaWueW8j2h0dHBzOi8vdC56c3hxLmNvbS9SdmZtRXUz44CBaHR0cHM6Ly90LnpzeHEuY29tLzdxTmZlaWXkuIvovb3lpb1hcHLjgIFhcHItdXRpbOOAgWFwYWNoZeeahOa6kOeggeW5tue8luivke+8jOS+v+S6juWQjue7reiwg+ivleS7peeQhuino+aWh+eroOOAggoKMHgwMSBBcGFjaGUgTW9kdWxl57u86L+wCuWmguaenOaIkeS7rOimgemDqOe9suS4gOS4qlBIUOi/kOihjOeOr+Wig++8jOS4lOWwhkFwYWNoZeS9nOS4uldlYuW6lOeUqOacjeWKoeWZqO+8jOmCo+S5iOW4uOeUqOeahOacieS4ieenjeaWueazle+8mgoKQXBhY2hl5LulQ0dJ55qE5b2i5byP6L+Q6KGMUEhQ6ISa5pysClBIUOS7pW1vZF9waHDnmoTmlrnlvI/kvZzkuLpBcGFjaGXnmoTkuIDkuKrmqKHlnZfov5DooYwKUEhQ5LulRlBN55qE5pa55byP6L+Q6KGM5Li654us56uL5pyN5Yqh77yMQXBhY2hl5L2/55SobW9kX3Byb3h5X2ZjZ2nmqKHlnZfkvZzkuLrlj43ku6PmnI3liqHlmajlsIbor7fmsYLku6PnkIbnu5lQSFAtRlBNCuesrOS4gOenjeaWueW8j+avlOi+g+WPpOiAge+8jOaAp+iDvei+g+W3ru+8jOWfuuacrOW3sue7j+a3mOaxsO+8m+esrOS6jOenjeaWueW8j+WcqEFwYWNoZeeOr+Wig+S4i+S9v+eUqOi+g+W5v++8jOmFjee9ruacgOS4uueugOWNle+8m+esrOS4ieenjeaWueazleS5n+aciei+g+Wkp+eUqOaIt+S9k+mHj++8jOS4jei/h0FwYWNoZeS7heS9nOS4uuS4gOS4quS4remXtOeahOWPjeS7o+acjeWKoeWZqO+8jOabtOWkmuaWsOeahOeUqOaIt+S8mumAieaLqeS9v+eUqOaAp+iDveabtOWlveeahE5naW545pu/5Luj44CCCgrov5nlhbbkuK3vvIznrKzkuInnp43mlrnms5Xkvb/nlKjnmoRtb2RfcHJveHlfZmNnaeWwseaYr+acrOaWh+S4u+inkm1vZF9wcm94eeaooeWdl+eahOS4gOS4quWtkOaooeWdl+OAgm1vZF9wcm94eeaYr0FwYWNoZeacjeWKoeWZqOS4reeUqOS6juWPjeS7o+WQjuerr+acjeWKoeeahOS4gOS4quaooeWdl++8jOiAjOWug+aLpeacieaVsOS4quS4jeWQjOWKn+iDveeahOWtkOaooeWdl++8jOWIhuWIq+eUqOS6juaUr+aMgeS4jeWQjOmAmuS/oeWNj+iurueahOWQjuerr++8jOavlOWmguW4uOingeeahOacie+8mgoKbW9kX3Byb3h5X2ZjZ2kg55So5LqO5Y+N5Luj5ZCO56uv5pivZmFzdGNnaeWNj+iurueahOacjeWKoe+8jOavlOWmgnBocC1mcG0KbW9kX3Byb3h5X2h0dHAg55So5LqO5Y+N5Luj5ZCO56uv5pivaHR0cOOAgWh0dHBz5Y2P6K6u55qE5pyN5YqhCm1vZF9wcm94eV91d3NnaSDnlKjkuo7lj43ku6PlkI7nq6/mmK91d3NnaeWNj+iurueahOacjeWKoe+8jOS4u+imgemSiOWvuXVXU0dJCm1vZF9wcm94eV9hanAg55So5LqO5Y+N5Luj5ZCO56uv5pivYWpw5Y2P6K6u55qE5pyN5Yqh77yM5Li76KaB6ZKI5a+5VG9tY2F0Cm1vZF9wcm94eV9mdHAg55So5LqO5Y+N5Luj5ZCO56uv5pivZnRw5Y2P6K6u55qE5pyN5YqhCumZpOWOu21vZF9wcm94eV9mY2dp55So5LqO5Y+N5LujUEhQ77yM5oiR5Lus5Zyo5L2/55SoTm9kZS5qc+OAgVB5dGhvbuetieiEmuacrOivreiogOe8luWGmeeahOW6lOeUqOS5n+W4uOW4uOS8muS9v+eUqG1vZF9wcm94eV9odHRw5L2c5Li65LiA5bGC5Y+N5Luj5pyN5Yqh5Zmo77yM6L+Z5qC35Lit6Ze05bGC5Y+v5Lul5YGaQUNM44CB6Z2Z5oCB5paH5Lu25pyN5Yqh562J44CCCgrov5nmrKHnmoRTU1JG5ryP5rSe5piv5Ye65ZyobW9kX3Byb3h56L+Z5Liq5qih5Z2X5Lit55qE77yM5oiR5Lus5bCx5p2l5LuO5Luj56CB55qE5bGC6Z2i5YiG5p6Q5LiA5LiL5a6D55qE5Y6f55CG5piv5LuA5LmI77yM56m256uf5b2x5ZON5pyJ5aSa5aSn44CCCgoweDAyIOa8j+a0nuWOn+eQhuWIhuaekArjgIpCdWlsZGluZyBhIFBPQyBmb3IgQ1ZFLTIwMjEtNDA0MzjjgIvov5nnr4fmlofnq6DkuK3mj5DliLDkuobov5nkuKrmvI/mtJ7nmoTlpI3njrDmlrnms5XvvJrlvZPnm67moIfnjq/looPkvb/nlKjkuoZtb2RfcHJveHnlgZrlj43lkJHku6PnkIbvvIzmr5TlpoJQcm94eVBhc3MgLyAiaHR0cDovL2xvY2FsaG9zdDo4MDAwLyLvvIzmraTml7bpgJrov4for7fmsYJodHRwOi8vdGFyZ2V0Lz91bml4OnsnQScqNTAwMH18aHR0cDovL2V4YW1wbGUuY29tL+WNs+WPr+WQkWh0dHA6Ly9leGFtcGxlLmNvbeWPkemAgeivt+axgu+8jOmAoOaIkOS4gOS4qlNTUkbmlLvlh7vjgIIKCui/memHjOmdou+8jEFwYWNoZeS7o+eggeS4reeKr+W+l+mUmeivr+aYr+WcqG1vZHVsZXMvcHJveHkvcHJveHlfdXRpbC5j55qEZml4X3Vkc19maWxlbmFtZeWHveaVsO+8mgoKLyoKICogSW4gdGhlIGNhc2Ugb2YgdGhlIHJldmVyc2UgcHJveHksIHdlIG5lZWQgdG8gc2VlIGlmIHdlCiAqIHdlcmUgcGFzc2VkIGEgVURTIHVybCAoZWc6IGZyb20gbW9kX3Byb3h5KSBhbmQgYWRqdXN0IHVkc19wYXRoCiAqIGFzIHJlcXVpcmVkLiAgCiAqLwpzdGF0aWMgdm9pZCBmaXhfdWRzX2ZpbGVuYW1lKHJlcXVlc3RfcmVjICpyLCBjaGFyICoqdXJsKSAKewogICAgY2hhciAqcHRyLCAqcHRyMjsKICAgIGlmICghciB8fCAhci0mZ3Q7ZmlsZW5hbWUpIHJldHVybjsKCiAgICBpZiAoIXN0cm5jbXAoci0mZ3Q7ZmlsZW5hbWUsICJwcm94eToiLCA2KSAmYW1wOyZhbXA7CiAgICAgICAgICAgIChwdHIyID0gYXBfc3RyY2FzZXN0cihyLSZndDtmaWxlbmFtZSwgInVuaXg6IikpICZhbXA7JmFtcDsKICAgICAgICAgICAgKHB0ciA9IGFwX3N0cmNocihwdHIyLCAnfCcpKSkgewogICAgICAgIGFwcl91cmlfdCB1cmlzb2NrOwogICAgICAgIGFwcl9zdGF0dXNfdCBydjsKICAgICAgICAqcHRyID0gJyc7CiAgICAgICAgcnYgPSBhcHJfdXJpX3BhcnNlKHItJmd0O3Bvb2wsIHB0cjIsICZhbXA7dXJpc29jayk7CiAgICAgICAgaWYgKHJ2ID09IEFQUl9TVUNDRVNTKSB7CiAgICAgICAgICAgIGNoYXIgKnJ1cmwgPSBwdHIrMTsKICAgICAgICAgICAgY2hhciAqc29ja3BhdGggPSBhcF9ydW50aW1lX2Rpcl9yZWxhdGl2ZShyLSZndDtwb29sLCB1cmlzb2NrLnBhdGgpOwogICAgICAgICAgICBhcHJfdGFibGVfc2V0bihyLSZndDtub3RlcywgInVkc19wYXRoIiwgc29ja3BhdGgpOwogICAgICAgICAgICAqdXJsID0gYXByX3BzdHJkdXAoci0mZ3Q7cG9vbCwgcnVybCk7IC8qIHNvIHdlIGdldCB0aGUgc2NoZW1lIGZvciB0aGUgdWRzICovCiAgICAgICAgICAgIC8qIHItJmd0O2ZpbGVuYW1lIHN0YXJ0cyB3LyAicHJveHk6Iiwgc28gYWRkIGFmdGVyIHRoYXQgKi8KICAgICAgICAgICAgbWVtbW92ZShyLSZndDtmaWxlbmFtZSs2LCBydXJsLCBzdHJsZW4ocnVybCkrMSk7CiAgICAgICAgICAgIGFwX2xvZ19yZXJyb3IoQVBMT0dfTUFSSywgQVBMT0dfVFJBQ0UyLCAwLCByLAogICAgICAgICAgICAgICAgICAgICIqOiByZXdyaXRlIG9mIHVybCBkdWUgdG8gVURTKCVzKTogJXMgKCVzKSIsCiAgICAgICAgICAgICAgICAgICAgc29ja3BhdGgsICp1cmwsIHItJmd0O2ZpbGVuYW1lKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICpwdHIgPSAnfCc7CiAgICAgICAgfQogICAgfQp9CkFwYWNoZeWcqOmFjee9ruWPjeS7o+eahOWQjuerr+acjeWKoeWZqOaXtu+8jOacieS4pOenjeaDheWGte+8mgoK55u05o6l5L2/55So5p+Q5Liq5Y2P6K6u5Y+N5Luj5Yiw5p+Q5LiqSVDlkoznq6/lj6PvvIzmr5TlpoJQcm94eVBhc3MgLyAiaHR0cDovL2xvY2FsaG9zdDo4MDgwIgrkvb/nlKjmn5DkuKrljY/orq7lj43ku6PliLB1bml45aWX5o6l5a2X77yM5q+U5aaCUHJveHlQYXNzIC8gInVuaXg6L3Zhci9ydW4vd3d3LnNvY2t8aHR0cDovL2xvY2FsaG9zdDo4MDgwLyIK56ys5LiA56eN5oOF5Ya15q+U6L6D5aW955CG6Kej77yM56ys5LqM56eN5oOF5Ya155qE6K6+6K6h5oiR6KeJ5b6X5LiN5piv5b6I5aW977yM55u45b2T5LqO6K6p55So5oi35Y+v5Lul5L2/55So5LiA5LiqQXBhY2hl6Ieq5Yib55qE5YaZ5rOV5p2l6YWN572u5ZCO56uv5Zyw5Z2A44CC6YKj5LmI6L+Z5pe25YCZ5bCx5Lya5raJ5Y+K5YiwcGFyc2XnmoTov4fnqIvvvIzpnIDopoHlsIbov5nnp43oh6rliJvnmoTor63ms5XovazmjaLmiJDog73lhbzlrrnmraPluLhzb2NrZXTov57mjqXnmoTnu5PmnoTvvIzogIxmaXhfdWRzX2ZpbGVuYW1l5Ye95pWw5bCx5piv5YGa6L+Z5Liq5LqL5oOF55qE44CCCgrkvb/nlKjlrZfnrKbkuLLmlofms5XmnaXooajnpLrlpJrnp43lkKvkuYnnmoTmlrnlvI/pgJrluLjmmpfol4/kuIDkupvmvI/mtJ7vvIzmr5TlpoLov5nph4zvvIzov5vlhaXov5nkuKppZuivreWPpemcgOimgea7oei2s+S4ieS4quadoeS7tu+8mgoKci0mZ3Q7ZmlsZW5hbWXnmoTliY025Liq5a2X56ym562J5LqOcHJveHk6CnItJmd0O2ZpbGVuYW1l55qE5a2X56ym5Liy5Lit5ZCr5pyJ5YWz6ZSu5a2XdW5peDoKdW5peDrlhbPplK7lrZflkI7nmoTpg6jliIblkKvmnInlrZfnrKZ8CuW9k+a7oei2s+i/meS4ieS4quadoeS7tuWQju+8jOWwhnVuaXg65ZCO6Z2i55qE5YaF5a656L+b6KGM6Kej5p6Q77yM6K6+572u5oiQdWRzX3BhdGjnmoTlgLzvvJvlsIblrZfnrKZ85ZCO6Z2i55qE5YaF5a6577yM6K6+572u5oiQcnVybOeahOWAvOOAggoK5Li+5Liq5L6L5a2Q77yM5YmN6Z2i5LuL57uN5Lit55qEUHJveHlQYXNzIC8gInVuaXg6L3Zhci9ydW4vd3d3LnNvY2t8aHR0cDovL2xvY2FsaG9zdDo4MDgwLyLvvIzlnKjop6PmnpDlrozmiJDlkI7vvIx1ZHNfcGF0aOeahOWAvOetieS6ji92YXIvcnVuL3d3dy5zb2Nr77yMcnVybOeahOWAvOetieS6jmh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC/jgIIKCueci+WIsOi/memHjOWFtuWunumDveayoeacieS7gOS5iOmXrumimO+8jOmCo+S5iOaIkeS7rOiCr+WumuS8muaAneiAg++8jHItJmd0O2ZpbGVuYW1l5piv5LuO5ZOq5p2l55qE77yM55So5oi35Y+v5o6n5ZCX77yM5Li65LuA5LmI77yfCgrov5nml7blsLHopoHor7TliLDlj6bkuIDkuKrlh73mlbDvvIxwcm94eV9ob29rX2Nhbm9uX2hhbmRsZXLvvIzov5nkuKrlh73mlbDnlKjkuo7ms6jlhoxjYW5vbiBoYW5kbGVy77yM5q+U5aaC77yaCgppbWFnZS0yMDIxMTAxNzIzNDM1NDYxNS5wbmcKCuWPr+S7peeci+WIsO+8jOavj+S4gOS4qm1vZF9wcm94eV94eHjpg73kvJrms6jlhozkuIDkuKroh6rlt7HnmoRjYW5vbiBoYW5kbGVy77yMY2Fub24gaGFuZGxlcuS8muWcqOWPjeS7o+eahOaXtuWAmeiiq+iwg+eUqO+8jOeUqOS6juWRiuiviUFwYWNoZeS4u+eoi+W6j+Wug+W6lOivpeaKiui/meS4quivt+axguS6pOe7meWTquS4quWkhOeQhuaWueazleadpeWkhOeQhuOAggoK5q+U5aaC77yM5oiR5Lus55yL5YiwbW9kX3Byb3h5X2h0dHDnmoRwcm94eV9odHRwX2Nhbm9u5Ye95pWw77yaCgpzdGF0aWMgaW50IHByb3h5X2h0dHBfY2Fub24ocmVxdWVzdF9yZWMgKnIsIGNoYXIgKnVybCkKewogICAgLy8gLi4uCiAgICAvLyBmaXJzdCBwYXJ0CiAgICBpZiAoc3RybmNhc2VjbXAodXJsLCAiaHR0cDoiLCA1KSA9PSAwKSB7CiAgICAgICAgdXJsICs9IDU7CiAgICAgICAgc2NoZW1lID0gImh0dHAiOwogICAgfQogICAgZWxzZSBpZiAoc3RybmNhc2VjbXAodXJsLCAiaHR0cHM6IiwgNikgPT0gMCkgewogICAgICAgIHVybCArPSA2OwogICAgICAgIHNjaGVtZSA9ICJodHRwcyI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gREVDTElORUQ7CiAgICB9CiAgICBwb3J0ID0gZGVmX3BvcnQgPSBhcF9wcm94eV9wb3J0X29mX3NjaGVtZShzY2hlbWUpOwoKICAgIC8vIHNlY29uZCBwYXJ0CiAgICBhcF9wcm94eV9jYW5vbl9uZXRsb2Moci0mZ3Q7cG9vbCwgJmFtcDt1cmwsIE5VTEwsIE5VTEwsICZhbXA7aG9zdCwgJmFtcDtwb3J0KTsKICAgIHN3aXRjaCAoci0mZ3Q7cHJveHlyZXEpIHsKICAgIGRlZmF1bHQ6IC8qIHd0ZiBhcmUgd2UgZG9pbmcgaGVyZT8gKi8KICAgIGNhc2UgUFJPWFlSRVFfUkVWRVJTRToKICAgICAgICBpZiAoYXByX3RhYmxlX2dldChyLSZndDtub3RlcywgInByb3h5LW5vY2Fub24iKSkgewogICAgICAgICAgICBwYXRoID0gdXJsOyAgIC8qIHRoaXMgaXMgdGhlIHJhdyBwYXRoICovCiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBwYXRoID0gYXBfcHJveHlfY2Fub25lbmMoci0mZ3Q7cG9vbCwgdXJsLCBzdHJsZW4odXJsKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY19wYXRoLCAwLCByLSZndDtwcm94eXJlcSk7CiAgICAgICAgICAgIHNlYXJjaCA9IHItJmd0O2FyZ3M7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwogICAgY2FzZSBQUk9YWVJFUV9QUk9YWToKICAgICAgICBwYXRoID0gdXJsOwogICAgICAgIGJyZWFrOwogICAgfQoKICAgIGlmIChwYXRoID09IE5VTEwpCiAgICAgICAgcmV0dXJuIEhUVFBfQkFEX1JFUVVFU1Q7CgogICAgaWYgKHBvcnQgIT0gZGVmX3BvcnQpCiAgICAgICAgYXByX3NucHJpbnRmKHNwb3J0LCBzaXplb2Yoc3BvcnQpLCAiOiVkIiwgcG9ydCk7CiAgICBlbHNlCiAgICAgICAgc3BvcnRbMF0gPSAnJzsKCiAgICBpZiAoYXBfc3RyY2hyX2MoaG9zdCwgJzonKSkgeyAvKiBpZiBsaXRlcmFsIElQdjYgYWRkcmVzcyAqLwogICAgICAgIGhvc3QgPSBhcHJfcHN0cmNhdChyLSZndDtwb29sLCAiWyIsIGhvc3QsICJdIiwgTlVMTCk7CiAgICB9CgogICAgLy8gZm91cnRoIHBhcnQKICAgIHItJmd0O2ZpbGVuYW1lID0gYXByX3BzdHJjYXQoci0mZ3Q7cG9vbCwgInByb3h5OiIsIHNjaGVtZSwgIjovLyIsIGhvc3QsIHNwb3J0LAogICAgICAgICAgICAiLyIsIHBhdGgsIChzZWFyY2gpID8gIj8iIDogIiIsIChzZWFyY2gpID8gc2VhcmNoIDogIiIsIE5VTEwpOwogICAgcmV0dXJuIE9LOwp9Cui/meS4quWHveaVsOS4reacieS4ieS4quS4u+imgeeahOmDqOWIhu+8jOesrOS4gOmDqOWIhuajgOafpeS6humFjee9ruS4reeahHVybOeahOW8gOWktOaYr+S4jeaYr2h0dHA65oiWaHR0cHM677yM5aaC5p6c5LiN5piv77yM6K+05piO6L+Z5Liq6K+35rGC5LiN6K+l55SxbW9kX3Byb3h5X2h0dHDmqKHlnZflpITnkIbvvIzlkI7nu63nmoTov4fnqIvot7Pov4fvvJvnrKzkuozpg6jliIbvvIznlKjlkITnp43mlrnlvI/ojrflj5bliLBzY2hlbWXjgIFob3N044CBcG9ydOOAgXBhdGjjgIFzZWFyY2jnrYnlh6DkuKpVUkznmoTnu4TmiJDlj5jph4/vvJvnrKzkuInpg6jliIbvvIzmi7zmjqVwcm94eTrjgIFzY2hlbWXjgIE6Ly/jgIFob3N044CBc3BvcnTjgIEv44CBcGF0aOOAgXNlYXJjaO+8jOaIkOS4uuS4gOS4quWtl+espuS4su+8jOi1i+WAvOe7mXItJmd0O2ZpbGVuYW1l44CCCgrov5nph4zpnaLvvIxzY2hlbWXjgIFob3N044CBc3BvcnTmnaXoh6rkuo7phY3nva7mlofku7bkuK3phY3nva7nmoRQcm94eVBhc3PvvIzogIxwYXRo44CBc2VhcmNo5p2l6Ieq5LqO55So5oi35Y+R6YCB55qE5pWw5o2u5YyF44CC5Lmf5bCx5piv6K+077yMci0mZ3Q7ZmlsZW5hbWXkuK3nmoTlkI7ljYrpg6jliIbmmK/nlKjmiLflj6/mjqfnmoTjgIIKCumCo+aIkeS7rOWbnueci+WJjemdoueahGZpeF91ZHNfZmlsZW5hbWXlh73mlbDvvIzlroPlnKhyLSZndDtmaWxlbmFtZeS4reafpeaJvuWFs+mUruWtl3VuaXg677yM5bm25bCG6L+Z5Liq5YWz6ZSu5a2X5ZCO6Z2i55u05YiwfOeahOmDqOWIhuS9nOS4unVuaXjlpZfmjqXlrZflnLDlnYDvvIzogIzlsIZ85ZCO6Z2i55qE6YOo5YiG5L2c5Li65Y+N5Luj55qE5ZCO56uv5Zyw5Z2A44CCCgrmiJHku6zlj6/ku6XpgJrov4for7fmsYLnmoRwYXRo5oiW6ICFc2VhcmNo5p2l5o6n5Yi26L+Z5Lik5Liq6YOo5YiG77yM5o6n5Yi25LqG5Y+N5Luj55qE5ZCO56uv5Zyw5Z2A77yM6L+Z5Lmf5bCx5piv5Li65LuA5LmI6L+Z6YeM5Lya5Ye6546wU1NSRueahOWOn+WboOOAggoKMHgwMyDpmZDliLbnu5Xov4cK5b2T54S277yM6L+Z6YeM6Z2i5pyJ5LiA5Liq6Zeu6aKY77yM6YKj5bCx5pivQXBhY2hl5Zyo5q2j5bi45oOF5Ya15LiL77yM5Zug5Li66K+G5Yir5Yiw5LqGdW5peOWll+aOpeWtl++8jOaJgOS7peS8muaKiueUqOaIt+ivt+axguWPkemAgee7mei/meS4quacrOWcsOaWh+S7tuWll+aOpeWtl++8jOiAjOS4jeaYr+WQjuerr1VSTOOAggoK5Y+v5Lul5p2l5YGa5Liq5rWL6K+V77yM5oiR5Lus5Y+R6YCB6L+Z5qC35LiA5Liq6K+35rGC77yaCgpHRVQgLz91bml4Oi92YXIvcnVuL3Rlc3Quc29ja3xodHRwOi8vZXhhbXBsZS5jb20vIEhUVFAvMS4xCi4uLgrmraTml7bkvJrlvpfliLDkuIDkuKo1MDPplJnor6/vvIzplJnor6/ml6Xlv5fkvJrlj43ppojov5nmoLfnmoTnu5PmnpzvvJoKCltNb24gT2N0IDE4IDAwOjE0OjM4LjYzNDc5NSAyMDIxXSBbcHJveHk6ZXJyb3JdIFtwaWQgNzgyMTgwOnRpZCAxNDA3MzczMDY3OTc4MjRdICgyKU5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rvcnk6IEFIMDI0NTQ6IEhUVFA6IGF0dGVtcHQgdG8gY29ubmVjdCB0byBVbml4IGRvbWFpbiBzb2NrZXQgL3Zhci9ydW4vdGVzdC5zb2NrICgxOTIuMTY4LjEuMSkgZmFpbGVkCltNb24gT2N0IDE4IDAwOjE0OjM4LjYzNDg3NSAyMDIxXSBbcHJveHlfaHR0cDplcnJvcl0gW3BpZCA3ODIxODA6dGlkIDE0MDczNzMwNjc5NzgyNF0gW2NsaWVudCAxOTIuMTY4LjEuMTQyOjU5Njk2XSBBSDAxMTE0OiBIVFRQOiBmYWlsZWQgdG8gbWFrZSBjb25uZWN0aW9uIHRvIGJhY2tlbmQ6IGh0dHBkLVVEUwrmib7kuI3liLB1bml45aWX5o6l5a2XL3Zhci9ydW4vdGVzdC5zb2Nr77yM6L+Z5piv5b2T54S244CCCgrmiJHku6zkuI3og73orqnku5bmioror7fmsYLlj5HpgIHliLB1bml45aWX5o6l5a2X5LiK77yM6ICM5piv5Y+R6YCB57uZ5oiR5Lus6ZyA6KaB55qEfOWQjumdoueahOWcsOWdgOOAggoK5Zu95aSW6YKj5L2N5L2c6ICF57uZ5Ye65LqG5LiA5Liq6Z2e5bi45ben5aaZ55qE5pa55rOV77yM5ZyoZml4X3Vkc19maWxlbmFtZeWHveaVsOS4re+8jHVuaXjlpZfmjqXlrZfnmoTlnLDlnYDmnaXoh6rkuo7kuIvpnaLov5nkuKTooYzku6PnoIHvvJoKCmNoYXIgKnNvY2twYXRoID0gYXBfcnVudGltZV9kaXJfcmVsYXRpdmUoci0mZ3Q7cG9vbCwgdXJpc29jay5wYXRoKTsKYXByX3RhYmxlX3NldG4oci0mZ3Q7bm90ZXMsICJ1ZHNfcGF0aCIsIHNvY2twYXRoKTsK5aaC5p6c6L+Z6YeMYXBfcnVudGltZV9kaXJfcmVsYXRpdmXlh73mlbDov5Tlm57lgLzmmK9udWxs77yM5YiZ5ZCO6Z2i6I635Y+WdWRzX3BhdGjml7blsIbkuI3kvJrkvb/nlKh1bml45aWX5o6l5a2X5Zyw5Z2A77yM6ICM5Y+Y5oiQ5pmu6YCa55qEVENQ6L+e5o6l77yaCgp1ZHNfcGF0aCA9ICgqd29ya2VyLSZndDtzLSZndDt1ZHNfcGF0aCA/IHdvcmtlci0mZ3Q7cy0mZ3Q7dWRzX3BhdGggOiBhcHJfdGFibGVfZ2V0KHItJmd0O25vdGVzLCAidWRzX3BhdGgiKSk7CmlmICh1ZHNfcGF0aCkgewogICAgaWYgKGNvbm4tJmd0O3Vkc19wYXRoID09IE5VTEwpIHsKICAgICAgICAvKiB1c2UgKCpjb25uKS0mZ3Q7cG9vbCBpbnN0ZWFkIG9mIHdvcmtlci0mZ3Q7Y3AtJmd0O3Bvb2wgdG8gbWF0Y2ggbGlmZXRpbWUgKi8KICAgICAgICBjb25uLSZndDt1ZHNfcGF0aCA9IGFwcl9wc3RyZHVwKGNvbm4tJmd0O3Bvb2wsIHVkc19wYXRoKTsKICAgIH0KICAgIC8vIC4uLgogICAgY29ubi0mZ3Q7aG9zdG5hbWUgPSAiaHR0cGQtVURTIjsKICAgIGNvbm4tJmd0O3BvcnQgPSAwOwp9CmVsc2UgewogICAgLy8gLi4uCiAgICBjb25uLSZndDtob3N0bmFtZSA9IGFwcl9wc3RyZHVwKGNvbm4tJmd0O3Bvb2wsIHVyaS0mZ3Q7aG9zdG5hbWUpOwogICAgY29ubi0mZ3Q7cG9ydCA9IHVyaS0mZ3Q7cG9ydDsKICAgIC8vIC4uLgp9CumCo+S5iOWmguS9leiuqWFwX3J1bnRpbWVfZGlyX3JlbGF0aXZl55qE6L+U5Zue5YC85pivbnVsbO+8n2FwX3J1bnRpbWVfZGlyX3JlbGF0aXZl5Ye95pWw5pyA5ZCO5byV55So5LqGYXBy5bqT5Lit55qEYXByX2ZpbGVwYXRoX21lcmdl5Ye95pWw77yM5a6D55qE5Li76KaB5L2c55So5bCx5piv6Lev5b6E55qEam9pbu+8jOeUqOS6juWkhOeQhuebuOWvuei3r+W+hOOAgee7neWvuei3r+W+hOOAgS4uL+i/nuaOpeOAggoK6L+Z5Liq5Ye95pWw5Lit77yM5b2T5b6Fam9pbueahOS4pOautei3r+W+hOmVv+W6pis05aSn5LqOQVBSX1BBVEhfTUFY77yM5Lmf5bCx5pivNDA5NueahOaXtuWAme+8jOWImeWHveaVsOS8mui/lOWbnuS4gOS4qui3r+W+hOi/h+mVv+eahOeKtuaAgeegge+8jOWvvOiHtOacgOWQjnVuaXjlpZfmjqXlrZfnmoTlgLzmmK9udWxs77yaCgpyb290bGVuID0gc3RybGVuKHJvb3RwYXRoKTsKbWF4bGVuID0gcm9vdGxlbiArIHN0cmxlbihhZGRwYXRoKSArIDQ7IC8qIDQgZm9yIHNsYXNoZXMgYXQgc3RhcnQsIGFmdGVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcm9vdCwgYW5kIGF0IGVuZCwgcGx1cyB0cmFpbGluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG51bGwgKi8KaWYgKG1heGxlbiAmZ3Q7IEFQUl9QQVRIX01BWCkgewogICAgcmV0dXJuIEFQUl9FTkFNRVRPT0xPTkc7Cn0K5Lmf5bCx5piv6K+077yM5oiR5Lus5Y+q6ZyA6KaB5ZyodW5peDrkuI585LmL6Ze05Lyg5YWl5YaF5a656ZW/5bqm5aSn5qaC6LaF6L+HNDA5MueahOWtl+espuS4su+8jOWwseiDveaehOmAoOWHunVkc19wYXRo5Li6bnVsbOeahOe7k+aenO+8jOiuqUFwYWNoZeS4jeWGjeWPkemAgeivt+axgue7mXVuaXjlpZfmjqXlrZfjgIIKCuacgOWQju+8jOi/meagt+aehOmAoOWHuueahOivt+axguaIkOWKn+inpuWPkVNTUkbmvI/mtJ7vvJoKCmltYWdlLTIwMjExMDE4MDEwNDAwNTk0LnBuZwoKQXBhY2hl5a6Y5pa55a+56L+Z5Liq5ryP5rSe55qE5L+u5aSN5Lmf5q+U6L6D566A5Y2V77yM5Zug5Li655So5oi35Y+q6IO95o6n5Yi2ci0mZ3Q7ZmlsZW5hbWXnmoTlkI7ljYrpg6jliIbvvIzogIzliY3ljYrpg6jliIZwcm94eTp7c2NoZW1lfTovL3tob3N0fXtzcG9ydH0v5p2l6Ieq5LqO6YWN572u5paH5Lu277yM5omA5Lul5pyA5paw54mI5pS55oiQ5qOA5p+l5YW25byA5aS05piv5LiN5pivcHJveHk6dW5peDrvvIzov5nkuIDpg6jliIbnlKjmiLfml6Dms5XmjqfliLbjgIIKCjB4MDQgbW9kX3Byb3h5X2ZjZ2nmmK/lkKblrZjlnKjmvI/mtJ7vvJ8K5oiR5Lus5YmN5paH6YO95LulbW9kX3Byb3h5X2h0dHDkvZzkuLrkvovlrZDmnaXnoJTnqbbvvIzogIzlnKhBcGFjaGUrUEhQ546v5aKD5LiL77yMbW9kX3Byb3h5X2ZjZ2nnmoTkvb/nlKjpopHnjofmm7Tpq5jvvIzpgqPkuYjlroPmmK/lkKbkuZ/kvJrooqtTU1JG5ryP5rSe5b2x5ZON5ZGi77yfCgrov5nkuKrmvI/mtJ7lh7rnjrDlnKhtb2R1bGVzL3Byb3h5L3Byb3h5X3V0aWwuY+eahGZpeF91ZHNfZmlsZW5hbWXlh73mlbDvvIznkIborrrkuIrmmK9tb2RfcHJveHnnmoTmvI/mtJ7vvIzpgqPkuYjlroPnmoTlrZDmqKHlnZflupTor6Xpg73kvJrooqvlvbHlk43vvIzkvYbov5nkuKrmvI/mtJ7kuK3mnInkuIDkuKrlvojlhbPplK7nmoTlj5jph4/mmK9yLSZndDtmaWxlbmFtZe+8jOS7luaYr+WQpuWPr+aOp+WGs+WumuS6huWQjumdoueahOWIqeeUqOaYr+WQpuWPr+S7peaIkOWKn+OAggoK5oiR5Lus55yL5LiA5LiLbW9kX3Byb3h5X2ZjZ2nnmoRjYW5vbuWHveaVsO+8mgoKc3RhdGljIGludCBwcm94eV9mY2dpX2Nhbm9uKHJlcXVlc3RfcmVjICpyLCBjaGFyICp1cmwpCnsKICAgIGNoYXIgKmhvc3QsIHNwb3J0WzddOwogICAgY29uc3QgY2hhciAqZXJyOwogICAgY2hhciAqcGF0aDsKICAgIGFwcl9wb3J0X3QgcG9ydCwgZGVmX3BvcnQ7CiAgICBmY2dpX3JlcV9jb25maWdfdCAqcmNvbmYgPSBOVUxMOwogICAgY29uc3QgY2hhciAqcGF0aGluZm9fdHlwZSA9IE5VTEw7CgogICAgaWYgKGFwX2NzdHJfY2FzZWNtcG4odXJsLCAiZmNnaToiLCA1KSA9PSAwKSB7CiAgICAgICAgdXJsICs9IDU7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gREVDTElORUQ7CiAgICB9CgogICAgLy8gLi4uCgogICAgaWYgKGFwcl90YWJsZV9nZXQoci0mZ3Q7bm90ZXMsICJwcm94eS1ub2Nhbm9uIikpIHsKICAgICAgICBwYXRoID0gdXJsOyAgIC8qIHRoaXMgaXMgdGhlIHJhdyBwYXRoICovCiAgICB9CiAgICBlbHNlIHsKICAgICAgICBwYXRoID0gYXBfcHJveHlfY2Fub25lbmMoci0mZ3Q7cG9vbCwgdXJsLCBzdHJsZW4odXJsKSwgZW5jX3BhdGgsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0mZ3Q7cHJveHlyZXEpOwogICAgfQogICAgaWYgKHBhdGggPT0gTlVMTCkKICAgICAgICByZXR1cm4gSFRUUF9CQURfUkVRVUVTVDsKCiAgICByLSZndDtmaWxlbmFtZSA9IGFwcl9wc3RyY2F0KHItJmd0O3Bvb2wsICJwcm94eTpmY2dpOi8vIiwgaG9zdCwgc3BvcnQsICIvIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgTlVMTCk7CiAgICAvLyAuLi4KfQrlj6/op4HvvIzov5nph4znmoRyLSZndDtmaWxlbmFtZeetieS6jnByb3h5OmZjZ2k6Ly97aG9zdH17c3BvcnR9L3twYXRofe+8jOebuOavlOS6jm1vZF9wcm94eV9odHRw5bCR5LqGc2VhcmNo44CC5LiN6L+H77yMcGF0aOS7jeeEtuaYr+eUqOaIt+WPr+S7peaOp+WItueahO+8jOaIkeS7rOWPr+S7peWwneivleWPkemAgei/meagt+eahOaVsOaNruWMhe+8mgoKR0VUIC91bml4OnRlc3R0ZXN0fGh0dHA6Ly9leGFtcGxlLmNvbS8xLnBocCBIVFRQLzEuMQouLi4K57uP6L+H6LCD6K+V5Y+v6KeB77yMcGF0aOS4reeahHzooqthcF9wcm94eV9jYW5vbmVuY+WHveaVsOe8lueggeaIkOS6hiU3Q++8mgoKaW1hZ2UtMjAyMTEwMTgwMTM3MDg3NDUucG5nCgrmsqHmnIl877yM5ZCO6Z2i5Lmf5bCx5peg5rOV5a6M5oiQU1NSRuWIqeeUqOS6huOAggoKMHgwNSDlk6rkupvmqKHlnZflj5fliLDlvbHlk40K6YKj5LmI77yM5oiR5Lus5YW25a6e5Y+v5Lul6K6k5Li677yM5aaC5p6cci0mZ3Q7ZmlsZW5hbWXmnInpg6jliIblj6/mjqfvvIzkuJTlj6/mjqfnmoTpg6jliIbmsqHmnInooqvnvJbnoIHvvIjkuI3mmK9wYXRo77yJ77yM6L+Z5Liq5qih5Z2X5bCx5Lya5Y+X5YiwU1NSRua8j+a0nueahOW9seWTjeOAggoK5a+56L+Z5Liq57uT6K665oiR5rKh5pyJ6YCQ5LiA5rWL6K+V6ICD6K+B77yM5oiR5LuF5oyR6YCJ5Y+m5LiA5Liq6L6D5Li65bi455So55qE5qih5Z2XbW9kX3Byb3h5X2FqcOadpeWkjeeOsOa8j+a0nuOAggoKbW9kX3Byb3h5X2FqcOaYr+eUqOS6juWPjeS7o1RvbWNhdOeahOS4gOS4qkFwYWNoZeaooeWdl++8jFRvbWNhdOWcqDguNS41MeeJiOacrOS7peWJjem7mOiupOS8muW8gOWQr+S4pOS4querr+WPozgwODDlkow4MDA577yM5YiG5Yir5a+55bqUSFRUUOWNj+iuruWSjEFKUOWNj+iuruOAgkhUVFDljY/orq7lpb3nkIbop6PvvIxBSlDljY/orq7mmK/kuIDkuKrkuozov5vliLbljY/orq7vvIzpgJrkv6HljY/orq7nm7jmr5TotbfmnaXmlYjnjofmm7Tpq5jjgILmiYDku6Xku6XliY3lvojlpJrov5Dnu7TkurrlkZjkvJrlsIZUb21jYXTlgYforr7lnKhBcGFjaGXkuYvlkI7vvIznhLblkI7kuozogIXkuYvpl7Tkvb/nlKhBSlDljY/orq7pgJrkv6HjgIIKClRvbWNhdCA4LjUuNTHkuYvlkI7nmoTniYjmnKzlj5fliLBHaG9zdGNhdOa8j+a0nuW9seWTjeS4jeWGjem7mOiupOW8gOaUvjgwMDnnq6/lj6PjgIIKCkFwYWNoZeS4i+acieS4pOS4quaooeWdl+iDveWunueOsEFKUOeahOWPjeS7o+mAmuS/oe+8mgoKbW9kX3Byb3h5X2FqcCDov5nlsLHmmK9tb2RfcHJveHnnmoTkuIDkuKrlrZDmqKHlnZfvvIznlLFBcGFjaGUgSFRUUGTlrpjmlrnnu7TmiqQKbW9kX2prIOi/meaYr1RvbWNhdOWumOaWuee7tOaKpOeahOS4gOS4qkFwYWNoZeaooeWdl++8jOabtOWKoOWHuuWQjeeUqOaIt+S5n+abtOWkmgrnlLHkuo5tb2RfamvkuI3mmK/nlKhtb2RfcHJveHnnmoTku6PnoIHvvIzmiYDku6XkuI3lj5fliLDlvbHlk43vvIzmiJHku6zku4rlpKnku4XmtYvor5Vtb2RfcHJveHlfYWpw44CCCgrnroDljZXpg6jnvbLkuIDkuKrlvIDmlL44MDA556uv5Y+j55qEVG9tY2F05pyN5Yqh5Zmo77yM5bm26YWN572u5aW9bW9kX3Byb3h5X2FqcOi/m+ihjOiwg+ivle+8jOWPr+ingeWFtnByb3h5X2FqcF9jYW5vbuWHveaVsHItJmd0O2ZpbGVuYW1l5Lit5piv5YyF5ZCrc2VhcmNo55qE77yaCgpzdGF0aWMgaW50IHByb3h5X2FqcF9jYW5vbihyZXF1ZXN0X3JlYyAqciwgY2hhciAqdXJsKQp7CiAgICBjaGFyICpob3N0LCAqcGF0aCwgc3BvcnRbN107CiAgICBjaGFyICpzZWFyY2ggPSBOVUxMOwogICAgY29uc3QgY2hhciAqZXJyOwogICAgYXByX3BvcnRfdCBwb3J0LCBkZWZfcG9ydDsKCiAgICAvKiBhcF9wb3J0X29mX3NjaGVtZSgpICovCiAgICBpZiAoc3RybmNhc2VjbXAodXJsLCAiYWpwOiIsIDQpID09IDApIHsKICAgICAgICB1cmwgKz0gNDsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiBERUNMSU5FRDsKICAgIH0KCiAgICAvLyAuLi4KICAgIHItJmd0O2ZpbGVuYW1lID0gYXByX3BzdHJjYXQoci0mZ3Q7cG9vbCwgInByb3h5OmFqcDovLyIsIGhvc3QsIHNwb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIsIHBhdGgsIChzZWFyY2gpID8gIj8iIDogIiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWFyY2gpID8gc2VhcmNoIDogIiIsIE5VTEwpOwogICAgcmV0dXJuIE9LOwp9CumCo+S5iOaMieeFp+aIkeS7rOeahOmihOa1i++8jOi/memHjOS5n+S8muWtmOWcqFNTUkbmvI/mtJ7jgILmnpznhLbmtYvor5XmiJDlip/vvJoKCmltYWdlLTIwMjExMDE4MDIwMjU5Mjg4LnBuZwoK6YKj5LmI77yMbW9kX3Byb3h5X2h0dHAy44CBbW9kX3Byb3h5X2JhbGFuY2Vy44CBbW9kX3Byb3h5X3dzdHVubmVs562J6L+Z5Lqb5qih5Z2X5Lmf5Lya5Y+X5Yiw5b2x5ZON77yM6ICMbW9kX3Byb3h5X3V3c2dp44CBbW9kX3Byb3h5X3NjZ2nnrYnmqKHlnZfkuI3lj5flvbHlk43jgILmiJHmsqHmnInkuKXmoLzpqozor4HvvIzmnInlhbTotqPnmoTlkIzlrablj6/ku6Xoh6rlt7HkuIvljrvosIPor5XkuIDkuIvvvIzkuZ/orrjov5jog73mib7liLDnu5Xov4fmlrnms5XjgIIKCjB4MDYg5Yeg5Liq5bi46KeB6Zeu6aKY5ZKM5oC757uTCuS4gOS4quWkp+WutumXrueahOavlOi+g+WkmueahOmXrumimO+8mui/meS4qlNTUkbmvI/mtJ7mmK/lkKbog73lpJ9QT1NU77yf562U5qGI5piv6IKv5a6a55qE77yM55CG6Kej5LqG5Y6f55CG55qE5ZCM5a2m6IKv5a6a6IO95piO55m977yM5oiR5Lus5a6e6ZmF5LiK5piv5o6n5Yi25LqG5Y+N5ZCR5Luj55CG55qE55uu5qCH5pyN5Yqh5Zmo5Zyw5Z2A44CC5pei54S25piv5Y+N5ZCR5Luj55CG77yM6YKj5LmI5a6e6ZmF5LiK55So5oi36K+35rGC55qE5aSn6YOo5YiG5Y6f5aeL5pWw5o2u6YO95Lya6KKr55u05o6l6L2s5Y+R57uZ5ZCO56uv77yM5omA5Lul77yM5oiR5Lus5Y+q6ZyA6KaB5Y+R6YCBUE9TVOivt+axgu+8jOWNs+WPr+iuqeaJp+ihjFBPU1TnmoRTU1JG77yM5q+U5aaC77yaCgppbWFnZS0yMDIxMTAxODAyMTYwNzM3Ny5wbmcKCuWPpuS4gOS4qu+8jOi/meS4qlNTUkbmvI/mtJ7mmK/lkKblj6/ku6XmiZPmnKzlnLDnmoR1bml4IHNvY2tldO+8n+etlOahiOaYr+iCr+WumueahOOAguWOn+acrOi/meS4qua8j+a0nueahOesrOS4gOivt+axguebruagh+WwseaYr+acrOWcsOeahHVuaXjlpZfmjqXlrZfvvIzmiJHku6zkvb/nlKg0MDky5Liq6LaF6ZW/c2VhcmNo57uV6L+H5LqG6L+Z5Liq6ZmQ5Yi26K6p5LuW5Y+v5Lul5omT5Lu75oSP6L+c56iL5Zyw5Z2A77yM5Y+q6KaB6K6p5a6D5Zue5b2S5Y6f5pys55qE5pa55rOV5bCx5Y+v5Lul5omT5pys5Zyw55qEdW5peOWll+aOpeWtl+S6hu+8mgoKaW1hZ2UtMjAyMTEwMTgwMjE5NDU0NjAucG5nCgrmiZPmnKzlnLB1bml45aWX5o6l5a2X55qE5aW95aSE5piv5Y+v5Lul5pS75Ye757G75Ly85LqORG9ja2Vy44CBU3VwZXJ2aXNvcui/meagt+eahOacrOWcsOacjeWKoeOAggoK5pyA5ZCO5LiA5Liq6Zeu6aKY77yM6L+Z5LiqU1NSRua8j+a0nuaYr+WQpuWPr+S7peaUu+WHu+S4gOS6m+mdnkhUVFDljY/orq7nmoTmnI3liqHvvJ/nrZTmoYjkuZ/mmK/ogq/lrprnmoTjgIJUQ1DmmK/kuIDkuKrmlbDmja7mtYHvvIzljbPkvb/miJHku6zmiZPlh7rnmoTmlbDmja7ljIXliY3pnaLmnIlIVFRQ5aS077yM6L+Z5bm25LiN5b2x5ZON5ZCO57ut5q2j5bi455qE5ruh6Laz5LqM6L+b5Yi25Y2P6K6u55qE5pWw5o2u5rWB55qE5Y+R6YCB5LiO5o6l5pS244CC5LiN6L+H5pyJ5LiA5Liq5L6L5aSW5oOF5Ya177yM5aaC5p6c55uu5qCH5pyN5Yqh5pyJ5LiA5Lqb54m55q6K55qE5pON5L2c77yM57G75Ly85LqO6auY54mI5pyscmVkaXPor7vlj5bliLDkuIDkupvnibnmrornmoRIVFRQ5pWw5o2u5q615bCx5pat5byAVENQ6L+e5o6l6L+Z5qC355qE5pON5L2c77yM6YKj5LmI5Y+v6IO96ZyA6KaB6L+b6KGM5LiA5Lqb6aKd5aSW57uV6L+H5LqG44CCCgrmgLvnu5PkuIDkuIvvvIzov5nkuKpTU1JG5ryP5rSe55qE5pys6LSo5pivQXBhY2hl5Zyo6Kej5p6Q5Y+N5Luj5pyN5YqhVVJM55qE5pe25YCZ77yM55Sx5LqO5a+5dW5peDrkvY3nva7opoHmsYLkuI3kuKXmoLzvvIzlr7zoh7TnlKjmiLfnmoTovpPlhaXlj6/ku6XmjqfliLblj43ku6PnmoTpgLvovpHvvIzmnIDnu4jlr7zoh7Tlj43ku6NVUkzooqvmjqfliLbvvIzpgKDmiJBTU1JG5ryP5rSe44CCCgrlj4LogIPpk77mjqXvvJoKCmh0dHBzOi8vZmlyemVuLmRlL2J1aWxkaW5nLWEtcG9jLWZvci1jdmUtMjAyMS00MDQzOApodHRwczovL3QuenN4cS5jb20vUnZmbUV1MwpodHRwczovL3QuenN4cS5jb20vN3FOZmVpZQ==
用户名金币积分时间理由
Track-劲夫 55.00 0 2021-10-29 16:04:19 一个受益终生的帖子~~
奖励系统 50.00 0 2021-10-25 14:02:02 投稿满 5 赞奖励

打赏我,让我更有动力~

0 条回复   |  直到 2021-10-19 | 769 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2026 掌控者 All Rights Reserved.