[ruby-dev:48538] [ruby-trunk - Feature #9816] 文字列内の数字を数値として比較するメソッド
From:
akr@...
Date:
2014-09-12 14:21:50 UTC
List:
ruby-dev #48538
SXNzdWUgIzk4MTYgaGFzIGJlZW4gdXBkYXRlZCBieSBBa2lyYSBUYW5ha2Eu CgoKWXVpIE5BUlVTRSB3cm90ZToKPiDnhp/ogIPjga7ntZDmnpzjgIFHZW06 OlZlcnNpb27jgajku5Xmp5jjgpLjgYLjgo/jgZvjgb7jgZfjgZ/jgIIKPiDn kIbnlLHjga/jgIEKPiAqIEdlbTo6VmVyc2lvbuOBp+OBk+OCjOOCkuS9v+OB o+OBpuOBj+OCjOOCjOOBsOOCquODluOCuOOCp+OCr+ODiOOBrueUn+aIkOaV sOOBjOa4m+OCiwo+ICogMi4yLjAtcHJldmlldzHjga7jgojjgYbjgapSdWJ5 44Gu44OQ44O844K444On44Oz44Gu5q+U6LyD44GM44Gn44GN44KLCj4g44GL 44KJ44Gn44GZ44CCCj4gCj4g6aCG5bqP44Gu44Kk44Oh44O844K444GvIFBy ZXJlbGVhc2VzIHNvcnQgYmV0d2VlbiByZWFsIHJlbGVhc2VzIChuZXdlc3Qg dG8gb2xkZXN0KSDjga7jgojjgYbjgarmhJ/jgZjjgafjgZkKPiAKPiAxLiAx LjAKPiAyLiAxLjAuYjEKPiAzLiAxLjAuYS4yCj4gNC4gMC45CgrjgojjgY/j go/jgYvjgonjgarjgYvjgaPjgZ/jga7jgafoqabjgZfjgabjgb/jgZ/jga7j gafjgZnjgYzjgIEKUnVieSDjga7jg5Djg7zjgrjjg6fjg7Pjga7mr5TovIPj gYzjgafjgY3jgovjgajjgYTjgYbjga7jga/jgIEKcHJldmlldywgcmMsIHBh dGNoIHJlbGVhc2Ug44Gu6aCG44Gr5Lim44G244Go44GE44GG5oSP5ZGz44Gn 44Gv44Gq44GE44Gn44GZ44KI44GtPwoo44Gd44GG44GX44Gf44GE44Go44GE 44GG6Kmx44Gn44Gv44GC44KK44G+44Gb44KT44CCKQoKfn5+CiUgY2F0IHQu cmIKcHV0cyAld1sKMS45LjItcHJldmlldzEKMS45LjItcHJldmlldzMKMS45 LjItcmMxCjEuOS4yLXJjMgoxLjkuMi1wMAoxLjkuMi1wMTM2CjEuOS4yLXAx ODAKMS45LjItcDI5MAoxLjkuMi1wMzIwCjEuOS4yLXAzMzAKXS5zb3J0IHt8 YSwgYnwgYS52ZXJzaW9uY21wKGIpIH0KJSAuL3J1YnkgdC5yYgoxLjkuMi1w MAoxLjkuMi1wMTM2CjEuOS4yLXAxODAKMS45LjItcDI5MAoxLjkuMi1wMzIw CjEuOS4yLXAzMzAKMS45LjItcHJldmlldzEKMS45LjItcHJldmlldzMKMS45 LjItcmMxCjEuOS4yLXJjMgp+fn4KCuaAneOBhuOBruOBp+OBmeOBjOOAgeaM meWLleOBruiqrOaYjuOBjOi2s+OCiuOBquOBhOawl+OBjOOBl+OBvuOBmeOA ggoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K RmVhdHVyZSAjOTgxNjog5paH5a2X5YiX5YaF44Gu5pWw5a2X44KS5pWw5YCk 44Go44GX44Gm5q+U6LyD44GZ44KL44Oh44K944OD44OJCmh0dHBzOi8vYnVn cy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy85ODE2I2NoYW5nZS00ODg3NQoKKiBB dXRob3I6IFl1aSBOQVJVU0UKKiBTdGF0dXM6IEFzc2lnbmVkCiogUHJpb3Jp dHk6IE5vcm1hbAoqIEFzc2lnbmVlOiBZdWtpaGlybyBNYXRzdW1vdG8KKiBD YXRlZ29yeTogY29yZQoqIFRhcmdldCB2ZXJzaW9uOiAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQrmloflrZfliJflhoXjga7m lbDlrZfjgpLmlbDlgKTjgajjgZfjgabmr5TovIPjgZnjgovjg6Hjgr3jg4Pj g4njgpLov73liqDjgZfjgb7jgZvjgpPjgYsKCuOBneOBruOCiOOBhuOBquav lOi8g+OBr+S4gOiIrOeahOOBqueUqOmAlOOBqOOBl+OBpuOBr0dVSeOCt+OC p+ODq+OBruODleOCoeOCpOODqeODvOOBjOavlOi8g+OBq+eUqOOBhOOBpuOB iuOCiuOAgQpXaW5kb3dzIOOBp+OBryBTdHJDbXBMb2dpY2FsVyDjgYzjgIFP UyBYIOOBp+OBryBOU1N0cmluZzpjb21wYXJlOm9wdGlvbnM644G444GuTlNO dW1lcmljU2VhcmNo5a6a5pWw44GM5o+Q5L6b44GV44KM44Gm44GE44G+44GZ 44CCCmh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS93 aW5kb3dzL2Rlc2t0b3AvYmI3NTk5NDcodj12cy44NSkuYXNweApodHRwczov L2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9tYWMvZG9jdW1lbnRhdGlv bi9Db2NvYS9SZWZlcmVuY2UvRm91bmRhdGlvbi9DbGFzc2VzL05TU3RyaW5n X0NsYXNzL1JlZmVyZW5jZS9OU1N0cmluZy5odG1sIy8vYXBwbGVfcmVmL2Mv ZWNvbnN0L05TTnVtZXJpY1NlYXJjaAoK5LiK6KiY44Gu44KI44GG44Gq5Yem 55CG6Ieq5L2T44Gv44GV44G744Gp6Zuj44GX44GE44KC44Gu44Gn44Gv44GC 44KK44G+44Gb44KT44GM44CBUnVieeODrOODmeODq+OBp+Wun+ijheOBmeOC i+OBqOWkp+mHj+OBruOCquODluOCuOOCp+OCr+ODiOOCkuS9nOOBo+OBpuOB l+OBvuOBhOOBvuOBmeOAggrkvovjgYjjgbAgYEdlbTo6VmVyc2lvbi5uZXco IjIuMS4xMCIuZnJlZXplKTw9PkdlbTo6VmVyc2lvbi5uZXcoIjIuMS45Ii5m cmVlemUpYCDjga80N+WAi+OAgQpgIjIuMS4xMCIuZnJlZXplLnNwbGl0KCcu JykubWFwKCY6dG9faSk8PT4iMi4xLjkiLmZyZWV6ZS5zcGxpdCgnLicpLm1h cCgmOnRvX2kpYCDjgaDjgagxNuWAi+OBruOCquODluOCuOOCp+OCr+ODiOOC kuS9nOOCiuOBvuOBmeOAggpgIjIuMS4xMCIuZnJlZXplLm51bWVyaWNjbXAi Mi4xLjkiLmZyZWV6ZWAg44Gq44KJ44Gw44CB44KC44Gh44KN44KT44Kq44OW 44K444Kn44Kv44OI44Gv5LiA44Gk44KC5L2c44KK44G+44Gb44KT44CCCgrj garjgYrjgIHkuIroqJjjga7kvovjgafjgoLnpLrllIbjgZfjgabjgYTjgb7j gZnjgYzjgIHmnKzjg6Hjgr3jg4Pjg4njga8gUnVieSDjga7jg5Djg7zjgrjj g6fjg7PooajoqJjjga4gVEVFTlkg44GMMuahgeOBq+OBquOBo+OBn+WgtOWQ iOOBruavlOi8g+OBq+eUqOOBhOOCi+OBk+OBqOOBjOOBp+OBjeOBvuOBmeOA ggoK44OR44OD44OB44Gv5Lul5LiL44Gu6YCa44KK44Gn44GZ44CCCuOBquOB iuOAgeODoeOCveODg+ODieWQjeOBryBTdHJpbmcjbnVtZXJpY2NtcCDjgajj gZfjgabjgYTjgb7jgZnjgIIK77yIU3RyaW5nI2Nhc2VjbXDjgpLlv7XpoK3j gavnva7jgYTjgZ/vvIkKCmBgYApkaWZmIC0tZ2l0IGEvc3RyaW5nLmMgYi9z dHJpbmcuYwppbmRleCBjNTg5YzgwLi42NmY2NjdmIDEwMDY0NAotLS0gYS9z dHJpbmcuYworKysgYi9zdHJpbmcuYwpAQCAtMjU2OSw2ICsyNTY5LDEzMSBA QCByYl9zdHJfY2FzZWNtcChWQUxVRSBzdHIxLCBWQUxVRSBzdHIyKQogICAg IHJldHVybiBJTlQyRklYKC0xKTsKIH0KIAorVkFMVUUKK251bWVyaWNhbF9j b21wYXJlKGNvbnN0IGNoYXIgKipwcDEsIGNvbnN0IGNoYXIgKnAxZW5kLCBj b25zdCBjaGFyICoqcHAyLCBjb25zdCBjaGFyICpwMmVuZCkKK3sKKyAgICBj b25zdCBjaGFyICpzMSA9ICpwcDEsICpwMSwgKnMyID0gKnBwMiwgKnAyOwor ICAgIHB0cmRpZmZfdCBsZW4xLCBsZW4yOworICAgIGludCByOworCisgICAg d2hpbGUgKHMxIDwgcDFlbmQgJiYgKnMxID09ICcwJykgczErKzsKKyAgICBw MSA9IHMxOworICAgIHdoaWxlIChwMSA8IHAxZW5kICYmIElTRElHSVQoKnAx KSkgcDErKzsKKyAgICBsZW4xID0gcDEgLSBzMTsKKworICAgIHdoaWxlIChz MiA8IHAyZW5kICYmICpzMiA9PSAnMCcpIHMyKys7CisgICAgcDIgPSBzMjsK KyAgICB3aGlsZSAocDIgPCBwMmVuZCAmJiBJU0RJR0lUKCpwMikpIHAyKys7 CisgICAgbGVuMiA9IHAyIC0gczI7CisKKyAgICBpZiAobGVuMSAhPSBsZW4y KSB7CisJcmV0dXJuIElOVDJGSVgobGVuMSA8IGxlbjIgPyAtMSA6IDEpOwor ICAgIH0KKworICAgIHIgPSBtZW1jbXAoczEsIHMyLCBsZW4xKTsKKyAgICBp ZiAocikgcmV0dXJuIHIgPCAwID8gSU5UMkZJWCgtMSkgOiBJTlQyRklYKDEp OworCisgICAgbGVuMSA9IHMxIC0gKnBwMTsKKyAgICBsZW4yID0gczIgLSAq cHAyOworICAgIGlmIChsZW4xICE9IGxlbjIpIHsKKwlyZXR1cm4gSU5UMkZJ WChsZW4xIDwgbGVuMiA/IC0xIDogMSk7CisgICAgfQorCisgICAgKnBwMSA9 IHAxOworICAgICpwcDIgPSBwMjsKKyAgICByZXR1cm4gUW5pbDsKK30KKwor LyoKKyAqICBjYWxsLXNlcToKKyAqICAgICBzdHIubnVtZXJpY2NtcChvdGhl cl9zdHIpICAgLT4gLTEsIDAsICsxIG9yIG5pbAorICoKKyAqICBWYXJpYW50 IG9mIDxjb2RlPlN0cmluZyM8PT48L2NvZGU+LCB3aGljaCBjb25zaWRlcnMg ZGlnaXRzIGluIHN0cmluZ3MKKyAqICBhcmUgbnVtZXJpYyB2YWx1ZS4uCisg KgorICogICAgICJhMSIubnVtZXJpY2NtcCgiYTEiKSAgICAgICAgICAgICM9 PiAwCisgKiAgICAgImFhIi5udW1lcmljY21wKCJhMSIpICAgICAgICAgICAg Iz0+IDEKKyAqICAgICAiYTEiLm51bWVyaWNjbXAoImFhIikgICAgICAgICAg ICAjPT4gLTEKKyAqICAgICAiYTEiLm51bWVyaWNjbXAoImEwMSIpICAgICAg ICAgICAjPT4gLTEKKyAqICAgICAiMi4xLjIiLm51bWVyaWNjbXAoIjIuMS4x MCIpICAgICAjPT4gMQorICovCisKK3N0YXRpYyBWQUxVRQorcmJfc3RyX251 bWVyaWNjbXAoVkFMVUUgc3RyMSwgVkFMVUUgc3RyMikKK3sKKyAgICBsb25n IGxlbjsKKyAgICByYl9lbmNvZGluZyAqZW5jOworICAgIGNvbnN0IGNoYXIg KnAxLCAqcDFlbmQsICpwMiwgKnAyZW5kOworCisgICAgU3RyaW5nVmFsdWUo c3RyMik7CisgICAgZW5jID0gcmJfZW5jX2NvbXBhdGlibGUoc3RyMSwgc3Ry Mik7CisgICAgaWYgKCFlbmMpIHsKKwlyZXR1cm4gUW5pbDsKKyAgICB9CisK KyAgICBwMSA9IFJTVFJJTkdfUFRSKHN0cjEpOyBwMWVuZCA9IFJTVFJJTkdf RU5EKHN0cjEpOworICAgIHAyID0gUlNUUklOR19QVFIoc3RyMik7IHAyZW5k ID0gUlNUUklOR19FTkQoc3RyMik7CisgICAgaWYgKHNpbmdsZV9ieXRlX29w dGltaXphYmxlKHN0cjEpICYmIHNpbmdsZV9ieXRlX29wdGltaXphYmxlKHN0 cjIpKSB7CisJd2hpbGUgKHAxIDwgcDFlbmQgJiYgcDIgPCBwMmVuZCkgewor CSAgICBpZiAoSVNESUdJVCgqcDEpKSB7CisJCWlmIChJU0RJR0lUKCpwMikp IHsKKwkJICAgIFZBTFVFIHIgPSBudW1lcmljYWxfY29tcGFyZSgmcDEsIHAx ZW5kLCAmcDIsIHAyZW5kKTsKKwkJICAgIGlmICghTklMX1AocikpIHJldHVy biByOworCQl9CisJCWVsc2UgeworCQkgICAgcmV0dXJuIElOVDJGSVgoLTEp OworCQl9CisJICAgIH0KKwkgICAgZWxzZSBpZiAoSVNESUdJVCgqcDIpKSB7 CisJCXJldHVybiBJTlQyRklYKDEpOworCSAgICB9CisJICAgIGlmICgqcDEg IT0gKnAyKSByZXR1cm4gSU5UMkZJWCgqcDEgPCAqcDIgPyAtMSA6IDEpOwor CSAgICBwMSsrOworCSAgICBwMisrOworCX0KKyAgICB9CisgICAgZWxzZSB7 CisJd2hpbGUgKHAxIDwgcDFlbmQgJiYgcDIgPCBwMmVuZCkgeworICAgICAg ICAgICAgaW50IGwxLCBjMSA9IHJiX2VuY19hc2NnZXQocDEsIHAxZW5kLCAm bDEsIGVuYyk7CisgICAgICAgICAgICBpbnQgbDIsIGMyID0gcmJfZW5jX2Fz Y2dldChwMiwgcDJlbmQsICZsMiwgZW5jKTsKKworICAgICAgICAgICAgaWYg KDAgPD0gYzEgJiYgMCA8PSBjMikgeworCQlpZiAoSVNESUdJVCgqcDEpKSB7 CisJCSAgICBpZiAoSVNESUdJVCgqcDIpKSB7CisJCQlWQUxVRSByID0gbnVt ZXJpY2FsX2NvbXBhcmUoJnAxLCBwMWVuZCwgJnAyLCBwMmVuZCk7CisJCQlp ZiAoIU5JTF9QKHIpKSByZXR1cm4gcjsKKwkJICAgIH0KKwkJICAgIGVsc2Ug eworCQkJcmV0dXJuIElOVDJGSVgoLTEpOworCQkgICAgfQorCQl9CisJCWVs c2UgaWYgKElTRElHSVQoKnAyKSkgeworCQkgICAgcmV0dXJuIElOVDJGSVgo MSk7CisJCX0KKwkJaWYgKCpwMSAhPSAqcDIpIHJldHVybiBJTlQyRklYKCpw MSA8ICpwMiA/IC0xIDogMSk7CisJCXAxKys7CisJCXAyKys7CisgICAgICAg ICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBp bnQgcjsKKyAgICAgICAgICAgICAgICBsMSA9IHJiX2VuY19tYmNsZW4ocDEs IHAxZW5kLCBlbmMpOworICAgICAgICAgICAgICAgIGwyID0gcmJfZW5jX21i Y2xlbihwMiwgcDJlbmQsIGVuYyk7CisgICAgICAgICAgICAgICAgbGVuID0g bDEgPCBsMiA/IGwxIDogbDI7CisgICAgICAgICAgICAgICAgciA9IG1lbWNt cChwMSwgcDIsIGxlbik7CisgICAgICAgICAgICAgICAgaWYgKHIgIT0gMCkK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIElOVDJGSVgociA8IDAgPyAt MSA6IDEpOworICAgICAgICAgICAgICAgIGlmIChsMSAhPSBsMikKKyAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIElOVDJGSVgobDEgPCBsMiA/IC0xIDog MSk7CisgICAgICAgICAgICB9CisJICAgIHAxICs9IGwxOworCSAgICBwMiAr PSBsMjsKKwl9CisgICAgfQorICAgIGlmIChSU1RSSU5HX0xFTihzdHIxKSA9 PSBSU1RSSU5HX0xFTihzdHIyKSkgcmV0dXJuIElOVDJGSVgoMCk7CisgICAg aWYgKFJTVFJJTkdfTEVOKHN0cjEpID4gUlNUUklOR19MRU4oc3RyMikpIHJl dHVybiBJTlQyRklYKDEpOworICAgIHJldHVybiBJTlQyRklYKC0xKTsKK30K Kwogc3RhdGljIGxvbmcKIHJiX3N0cl9pbmRleChWQUxVRSBzdHIsIFZBTFVF IHN1YiwgbG9uZyBvZmZzZXQpCiB7CkBAIC04NzIxLDYgKzg4NDYsNyBAQCBJ bml0X1N0cmluZyh2b2lkKQogICAgIHJiX2RlZmluZV9tZXRob2QocmJfY1N0 cmluZywgImVxbD8iLCByYl9zdHJfZXFsLCAxKTsKICAgICByYl9kZWZpbmVf bWV0aG9kKHJiX2NTdHJpbmcsICJoYXNoIiwgcmJfc3RyX2hhc2hfbSwgMCk7 CiAgICAgcmJfZGVmaW5lX21ldGhvZChyYl9jU3RyaW5nLCAiY2FzZWNtcCIs IHJiX3N0cl9jYXNlY21wLCAxKTsKKyAgICByYl9kZWZpbmVfbWV0aG9kKHJi X2NTdHJpbmcsICJudW1lcmljY21wIiwgcmJfc3RyX251bWVyaWNjbXAsIDEp OwogICAgIHJiX2RlZmluZV9tZXRob2QocmJfY1N0cmluZywgIisiLCByYl9z dHJfcGx1cywgMSk7CiAgICAgcmJfZGVmaW5lX21ldGhvZChyYl9jU3RyaW5n LCAiKiIsIHJiX3N0cl90aW1lcywgMSk7CiAgICAgcmJfZGVmaW5lX21ldGhv ZChyYl9jU3RyaW5nLCAiJSIsIHJiX3N0cl9mb3JtYXRfbSwgMSk7CmRpZmYg LS1naXQgYS90ZXN0L3J1YnkvdGVzdF9zdHJpbmcucmIgYi90ZXN0L3J1Ynkv dGVzdF9zdHJpbmcucmIKaW5kZXggODM2NjQyNC4uZjljNzg4YiAxMDA2NDQK LS0tIGEvdGVzdC9ydWJ5L3Rlc3Rfc3RyaW5nLnJiCisrKyBiL3Rlc3QvcnVi eS90ZXN0X3N0cmluZy5yYgpAQCAtMjEwNCw2ICsyMTA0LDI5IEBAIGNsYXNz IFRlc3RTdHJpbmcgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQogICAgIGFzc2Vy dF9lcXVhbCgxLCAiXHUzMDQyQiIuY2FzZWNtcCgiXHUzMDQyYSIpKQogICBl bmQKIAorICBkZWYgdGVzdF9udW1lcmljY21wCisgICAgYXNzZXJ0X2VxdWFs KC0xLCAiMi4xLjAiLm51bWVyaWNjbXAoIjIuMS4xIikpCisgICAgYXNzZXJ0 X2VxdWFsKC0xLCAiMi4xLjkiLm51bWVyaWNjbXAoIjIuMS4xMCIpKQorICAg IGFzc2VydF9lcXVhbCggMCwgImExIi5udW1lcmljY21wKCJhMSIpKQorICAg IGFzc2VydF9lcXVhbCggMSwgImFhIi5udW1lcmljY21wKCJhMSIpKQorICAg IGFzc2VydF9lcXVhbCgtMSwgImExIi5udW1lcmljY21wKCJhYSIpKQorICAg IGFzc2VydF9lcXVhbCgtMSwgImExIi5udW1lcmljY21wKCJhMDEiKSkKKyAg ICBhc3NlcnRfZXF1YWwoLTEsICJhMDAwMSIubnVtZXJpY2NtcCgiYTAwMDAx IikpCisgICAgYXNzZXJ0X2VxdWFsKCAwLCAiYTFhIi5udW1lcmljY21wKCJh MWEiKSkKKyAgICBhc3NlcnRfZXF1YWwoIDEsICJhMWIiLm51bWVyaWNjbXAo ImExYSIpKQorICAgIGFzc2VydF9lcXVhbCgtMSwgImE5YSIubnVtZXJpY2Nt cCgiYTEwYSIpKQorICAgIGFzc2VydF9lcXVhbCggMSwgImIiLm51bWVyaWNj bXAoImEiKSkKKyAgICBhc3NlcnRfZXF1YWwoIDAsICJcdTMwNDIxIi5udW1l cmljY21wKCJcdTMwNDIxIikpCisgICAgYXNzZXJ0X2VxdWFsKCAxLCAiXHUz MDQyXHUzMDQyIi5udW1lcmljY21wKCJcdTMwNDIxIikpCisgICAgYXNzZXJ0 X2VxdWFsKC0xLCAiXHUzMDQyMSIubnVtZXJpY2NtcCgiXHUzMDQyXHUzMDQy IikpCisgICAgYXNzZXJ0X2VxdWFsKC0xLCAiXHUzMDQyMSIubnVtZXJpY2Nt cCgiXHUzMDQyMDEiKSkKKyAgICBhc3NlcnRfZXF1YWwoLTEsICJcdTMwNDIw MDAxIi5udW1lcmljY21wKCJcdTMwNDIwMDAwMSIpKQorICAgIGFzc2VydF9l cXVhbCggMCwgIlx1MzA0MjFcdTMwNDIiLm51bWVyaWNjbXAoIlx1MzA0MjFc dTMwNDIiKSkKKyAgICBhc3NlcnRfZXF1YWwoIDEsICJcdTMwNDIxXHUzMDQ0 Ii5udW1lcmljY21wKCJcdTMwNDIxXHUzMDQyIikpCisgICAgYXNzZXJ0X2Vx dWFsKC0xLCAiXHUzMDQyOVx1MzA0MiIubnVtZXJpY2NtcCgiXHUzMDQyMTBc dTMwNDIiKSkKKyAgICBhc3NlcnRfZXF1YWwoIDEsICJcdTMwNDQiLm51bWVy aWNjbXAoIlx1MzA0MiIpKQorICBlbmQKKwogICBkZWYgdGVzdF91cGNhc2Uy CiAgICAgYXNzZXJ0X2VxdWFsKCJcdTMwNDJBQiIsICJcdTMwNDJhQiIudXBj YXNlKQogICBlbmQKYGBgCgoKCi0tIApodHRwczovL2J1Z3MucnVieS1sYW5n Lm9yZy8K