diff --git a/i18n/gi18n/gi18n_unit_test.go b/i18n/gi18n/gi18n_unit_test.go index 34dc71fbc..965cf02e8 100644 --- a/i18n/gi18n/gi18n_unit_test.go +++ b/i18n/gi18n/gi18n_unit_test.go @@ -29,7 +29,7 @@ import ( func Test_Basic(t *testing.T) { gtest.C(t, func(t *gtest.T) { i18n := gi18n.New(gi18n.Options{ - Path: gdebug.CallerDirectory() + gfile.Separator + "testdata" + gfile.Separator + "i18n", + Path: gdebug.TestDataPath("i18n"), }) i18n.SetLanguage("none") t.Assert(i18n.T("{#hello}{#world}"), "{#hello}{#world}") @@ -46,7 +46,7 @@ func Test_Basic(t *testing.T) { gtest.C(t, func(t *gtest.T) { i18n := gi18n.New(gi18n.Options{ - Path: gdebug.CallerDirectory() + gfile.Separator + "testdata" + gfile.Separator + "i18n-file", + Path: gdebug.TestDataPath("i18n-file"), }) i18n.SetLanguage("none") t.Assert(i18n.T("{#hello}{#world}"), "{#hello}{#world}") @@ -75,7 +75,7 @@ func Test_Basic(t *testing.T) { func Test_DefaultManager(t *testing.T) { gtest.C(t, func(t *gtest.T) { - err := gi18n.SetPath(gdebug.CallerDirectory() + gfile.Separator + "testdata" + gfile.Separator + "i18n") + err := gi18n.SetPath(gdebug.TestDataPath("i18n")) t.Assert(err, nil) gi18n.SetLanguage("none") diff --git a/os/gres/gres_unit_1_test.go b/os/gres/gres_unit_1_test.go index bfb36a864..f7b88b0fa 100644 --- a/os/gres/gres_unit_1_test.go +++ b/os/gres/gres_unit_1_test.go @@ -20,8 +20,8 @@ import ( func Test_PackToGoFile(t *testing.T) { gtest.C(t, func(t *gtest.T) { - srcPath := gdebug.CallerDirectory() + "/testdata/files" - goFilePath := gdebug.CallerDirectory() + "/testdata/testdata.go" + srcPath := gdebug.TestDataPath("files") + goFilePath := gdebug.TestDataPath("testdata.go") pkgName := "testdata" err := gres.PackToGoFile(srcPath, goFilePath, pkgName) t.Assert(err, nil) @@ -30,7 +30,7 @@ func Test_PackToGoFile(t *testing.T) { func Test_Pack(t *testing.T) { gtest.C(t, func(t *gtest.T) { - srcPath := gdebug.CallerDirectory() + "/testdata/files" + srcPath := gdebug.TestDataPath("files") data, err := gres.Pack(srcPath) t.Assert(err, nil) @@ -43,7 +43,7 @@ func Test_Pack(t *testing.T) { func Test_PackToFile(t *testing.T) { gtest.C(t, func(t *gtest.T) { - srcPath := gdebug.CallerDirectory() + "/testdata/files" + srcPath := gdebug.TestDataPath("files") dstPath := gfile.Join(gfile.TempDir(), gtime.TimestampNanoStr()) err := gres.PackToFile(srcPath, dstPath) t.Assert(err, nil) @@ -59,8 +59,8 @@ func Test_PackToFile(t *testing.T) { func Test_PackMulti(t *testing.T) { gtest.C(t, func(t *gtest.T) { - srcPath := gdebug.CallerDirectory() + "/testdata/files" - goFilePath := gdebug.CallerDirectory() + "/testdata/data/data.go" + srcPath := gdebug.TestDataPath("files") + goFilePath := gdebug.TestDataPath("data/data.go") pkgName := "data" array, err := gfile.ScanDir(srcPath, "*", false) t.Assert(err, nil) @@ -71,8 +71,8 @@ func Test_PackMulti(t *testing.T) { func Test_PackWithPrefix1(t *testing.T) { gtest.C(t, func(t *gtest.T) { - srcPath := gdebug.CallerDirectory() + "/testdata/files" - goFilePath := gdebug.CallerDirectory() + "/testdata/testdata.go" + srcPath := gdebug.TestDataPath("files") + goFilePath := gdebug.TestDataPath("testdata.go") pkgName := "testdata" err := gres.PackToGoFile(srcPath, goFilePath, pkgName, "www/gf-site/test") t.Assert(err, nil) @@ -81,8 +81,8 @@ func Test_PackWithPrefix1(t *testing.T) { func Test_PackWithPrefix2(t *testing.T) { gtest.C(t, func(t *gtest.T) { - srcPath := gdebug.CallerDirectory() + "/testdata/files" - goFilePath := gdebug.CallerDirectory() + "/testdata/testdata.go" + srcPath := gdebug.TestDataPath("files") + goFilePath := gdebug.TestDataPath("testdata.go") pkgName := "testdata" err := gres.PackToGoFile(srcPath, goFilePath, pkgName, "/var/www/gf-site/test") t.Assert(err, nil) diff --git a/os/gres/testdata/data/data.go b/os/gres/testdata/data/data.go index 4d554c9c0..bf304c6c0 100644 --- a/os/gres/testdata/data/data.go +++ b/os/gres/testdata/data/data.go @@ -3,7 +3,7 @@ package data import "github.com/gogf/gf/os/gres" func init() { - if err := gres.Add("1f8b08000000000002ffb45a0b5c4ce9fb7f51d2284a5159721a29bacc34a3c2340d69baa10b06159b9d66ce3493b93533a51a5149620bb9e45224724b2256a2dc4a422db9acdc369794b5d522bbe4baffcfcc54ce9999a6d1efbf3e9f31cd39e7f97e9fe7799ff73de77dce3768e6001d53300800f006e60401c4bf61401f30047c162702aff8c249043cee3c9a2ee8d74c6285c570e0a542ba840db943583c5bc083f14b972ec54b609e904b97c0622c66a1086672c43f62200882981cf112487625813809e78473c21148ae13274d7170c2ca4f33e80c36ace634011b34536f504ec506260b0020fbf4ecaee137777971380e9ff3ffeb2951b3a713e59e762479baa97a1a3c5082f27460b7a77217392692309931f2929ec3b4e8367664448b2502de7f3738ce9a437691874ca3ba3eec7d704c55bcfe2fc6c855b3c393e40e3be935a5f43e4686ca0ef761a806017dc0e488087871747877a0da9b8f4098cb3e8e12582c21e024b1926eb0eea31043c097c07c890cfddc894d24630080b146744c17badcbe1b51052d6dc0d4af86f284684a974e275adfb344fcdfb244446589a8364b44645cd2f59603b4ce12519e25222a4b2834ffa9c7abb5ce12b10f593200fa804398ccc7c37cf44cc7b0612e5720ab765fd91f58cc528188cb94fd5e20fb435ef28ca58ed3200000a41d4524bd278ac6a44d8dc99b1a930e3726e535261d45903d2fcd7ab1255dce363b028ab10700d86bc7268aee89ad2ef766625d69ddf1ba933793115475e575a5371315814d3eb3643c0060bc46aaa15d54f16c47cf00345b37d9f3b3bb9bf69d551fd1cb866b195600002bad69680bfedf68d415918ca60f4534b8d3d491c911e1617e1f671b02012f8f4b7341cac0452d910c230080d17781cb73a404aea6ba771a47dbf60e8e8a3d92febfc61e49ef8c3d8eae123b4975a2c858ca59762116f23bf8f7b028928062911f22a14a6797c762ee50790d6a9d0351741f72301c8dd09903e48d5cfdec95317097598d1f218ff07b1814f12319d42d04704b5b59ef353004892d5f0cfa90020b1590ce2c448a05dfa69454fe2482959fc192becdfb04f91dda6af099de2b410d912219ea88e467b0df8a424184699bf9b57722e5b4d016f4212de62a209d698945542e796a2c8f0bc5c0223147c077c712704e5808e633044c0e3fc21d1b2d61394ec64ea560c832208a3c30b21c84a2481f590149c190f1f22b64de19c58f581f080008fc5eef14b9fc1fbd9383501439272b2051de7db499b545d53be5257d10c2bb3e2cebc65de62c0e17fe0f1f10d03c91742dd73e8c9af5caf4724df00400c0048d8446284251b4160b8ddac7848a39f82fb60000db5ef728dfd814cf0a2a534d65463b607a9c7d94207c890300c04123ad89322d6dc17f3267b4aad7abd3aedde60000381aeb551fe9721f1ff945028104cf108bfbb0d40c4398e3c592382e8c4302d9418a359125e04b1cc59c7898044d240a63dde4072570acc491cee544f0491003e64b60919b62b0ec1ac2ff24020088bdee07e4d41c1e3d02ee83ef2628003c571021c009f911dd486b82027c0c312331b2bd849f2f754ea747c4410301009653d38a0100fdc4737ca683a2eba35ecac642e81b220660b089ecd30fecc83107a07f1187162c09f69f45620878383a53100ee3627942b903e458522c4fc88325742896c7e58b49b1ee58f91524be98243b8cc742f24b244bdcb1c1fe4190a74004432e38679c13565e44641193459a43f5ee34173159ee58b6442224e1655b76dcd289388128024f9832650ade898827121d454c96a3388e2fa1c73af2c56315205d385458cc107184128e800fc97ed3c305d112772cb6f31ac5bf4e3f79c26e22beb8332a8680878fa50bf1049c135e9d1193d16d238c1671e5ae311978980bf360be448c27e0086aed241c164b3d9bec8c828ef2cd8e1ccb13923c45305d0253e912984274224c717472717472a51188a4894412c125948c57ba489db940441308b8140f191de4cd11c14b05a22562c873ae33c2bcf322257b7f0193c38a53a17721b9b892264eeea4475c84306732482c8188479750145529e44790f1df0e22ae94454f0a147160be842e1b340a818c5739d635c078a51156940fbeb37e64eb4e772d5230af17de19000066851fd583c6d66d0b5e28a0d55bfc18c18fe097540facad32b7356f341aa63b7dae8e5df28683f3e6def29e310f3b7dde8479777e094cf8837198624a3b3474f627bd07e77c786b93b1ab86414f23f7d858ad3388f19f059d3cadc390726f34d56e7f19faa9768aa5814d0063e684f6ac77b5db13421e9f3af7b021a2706a8e79e1130a3bef53e2cabc63d39eb7345fd55def10cbdce570cc28f42df3debf16efcebdf16596d81c2b0d3a5bf2728693597dff31f5ffbe8397597cc65b3f3311a615fc35819f49d3b50af0be5fb979d1bb7d2bd608c694d1aa707afbb1ae51e115ac5cc377ee6b7c37ccb4d27d972ad4e5dd24de320e5c54cc7d3a7f424a76c020939cf5738fa7bc8d9aefbf0436a7d7afb20bb6b41febd93aded69932e3d1e100731366e6936d92d366efd2a9d6e305d3eceed15eec76993d3d39d9b9c8a66ed8d5f44db517983a66a2d9a653d8372a92e7d8f9b4a6faea06e68f2a4cdbbac1606bc63fab8ed80c60cda4ff1d488ddad5f1c0e450784b5c7c997da6d16f39f91bedd9fb7edd4e1ef952bfdf56fbac0fae10f5c4bd8904b3f5277efee350e664ef19596faecf7a0a8da386473faa9a341273b972607601c9253be577a3a61de93f37c5e81cf0e68dbc4bcc73181b203897b432caf079297d9c5f6bf066cf546bcce7b68d293b74b65d8fe877cd7e88f4445bb86dfda45bd7dad34f85baeddfb1dab0d0bfb463fedc217ef1f7aa47cc4ffcf1f756c6d15959af6973770d2c98f6c1d92406f21b9c9fd24e9fc9b024f069b8f187c6e52fc23dbe7bb2c10cb7eacf43f758a121fe6b7f731db3903a4670253b8198b83e6346936b2b6685debda2555ece77e6870f5e4a2a79fee8a931a181b6983a7a4bbbae3ecd7dc4cf5699bed0f65958cb53bf6ebb6c68e432fc25ebb2d4adac7d09a9746307bd99ba91c9e46506bddd5cd2bf954a5ee76b9d8c313cb03fda6b2387de511448b2711efef5a4e31563fa88d240ab93c93f8c4adde8f06cb0f1ebba3aa381037156b93718bfee88f9e5e4c98b51393f65ec5e75bba2e355cdeccc917ed7569aba97dfc16d27df26b93c5d5d496fcc187a6367e59327d0c889169298186ce5abf0625ff7f2dff69c4c4ded98543cf34ee0befb5ba3b26ffef2da63635aa864e2823f0aebd6186356099f5f99bd4c5c33bfb5e1841ee33e216772dcb0ea86b8d559b7273c73596372ac9c6372ffc4019f805dd7eb4cf4538fac4d1558d367de5f316a7262cd56fcdea34787def8973d69f9c7f69a3fcec7dea4264d0f6df931be78dd94b2b5a93b76adee673ca128fe6cda705f0c9bb17d25c12db5a121ecf3f37d5bd34bce3f3e3f746a43999974f13263bda1969756355052431e05d3fe0acaf7e27c30cf989d4132fca156a7ba72d4fbec72fa43d7068a48a7f17e54ebbecce55fafd9777c2d7a95d7d22abd774a30d5dbdbdb28c33be3c52f8118fcbe7591737d7f73ca82fcf785d498b462f7cd131d2a8cfa586b316403737fbf88eb92a79f3fbcedd87cf7d3c32547f3caca1ed6ea57fadc3d117f04f2af99bcfcada7ddd69aa7474e0da13fb93db374b253a265786edb9f159e4bdc84db74a4f1f1e5cb32e7952eded65eca373dd9e1b1ce37eedf19bb136f11737d5db35ddacdf021c90304e5499baa1f7bed2fbe9a73e19a71e63f27371f5fbb785cc92bbebee99eb549ab794f0cce55cc305ff1b566f19bebc50c6bf1d55998c58e33037533a6a5b81e389f36fed5b2c68ee391f5f137e609c65f7523916a83493bbd7da46ee106fb9876f0e5d0850bfd875cad889c33b91a33f7607392c5f3d5014d8597e71d2928d9dc8fa65b7feb63e421dac8c3a1a1e99396e93e7c305f970e5f381db087cc61657f1844de33ecc0caa0bbbf1c395e9c437e76a6f0f1c2929fea27de78f2245b30d04def6858e52eb3184663aae1e53dcbe19bc9d955c7a6947e6e599b5250919e79c5fc55d0a1523e26ec9eddd7dc4f17c5b1ffac5f51e13366c5a8272d4f4f9dffe0f28053ba5b64ecab031b8c2b2b7f36c9939acc24e8dffa7d02a7e5c96d9b61f65b66593c3aff6ae9bd33d183037229bc2bbc87258637fe7ab0cad9bd5198617de52c26b7e6c3b18b26458f9d0f049556dc3a9dfe227dc7e2e2f947971b55af1f5df578f18ad15fbe7c61b3affc54bdaeed5e714259c858c68cad913b1ed1c7d343be4ecd10bdd7d912eb30afc2a6e1a8c47cedd91d15de5636c7debc896abc4b4add7ed98bd6788d903d8ff31371edde53dcb9fd5c5e6dd237b56a5e6af6a2d6bde0dd85dfe8f60ee3ce33c76dd28f3fc36cbfd1bacf728e8fa8e12b39e907e752d183eaa122ead6b7936de3e36e8f62b10fa6446eda91684df53b34d7bdaae845e8b033d7d38d3f7f29deb66076812e648ad19b621a6e7c374fba6e49ca91398582a76698f2e51b4a5f0fe7af5a4680ac464f8625672a16be33aa3c9195d23c00dbacb7e6e083f2eaecfdcfea6c2badc6ceeadfc48abe41d955e6355d7f79ea2ef3179be3ee1f6fb4364a6d89c578315c0b7dd32fdb3112f3de5f64e76c33785970d1c1321d8be58a019193613b7e119367993f6930fdb3fd0f2e4731b74e95e85e2df29850f843731021a5b1529fdb5445a8127be95e78bfce67da25b66e282dab7476da9356dfda52b79119af75708d0f5689ff981235686c3d65e5ce597b9bf2aaeb3e5c8ab964e6e855f87cb7945cfb29b8ff0f2d078ada8ba6edd3c926ef0ede584f1b5fb4e9f39b8551372eccada90d4d78e44d1d8021ec7c9d3b7c7a872d23caf347e39aed39c7cf8c24a43b18d7dcaabab666d79a41a3ec6b5d6087d167935b57e1ca3fd62cdef6cf49e9b92fcf03ca5f9f584ccf6f9a4ddb43f83b304bb877db85b19c738bde44e66fb58fca3470f9dd4984835f37fd3936e647f1735ec6a725bf04b40dc18ebc333d73f670b70a2187558b6b84e71c3ddd9e18264cf50b4f3bed7c35e838e738f3745a56d2d29be4bb1927dc5fe8ae8c6eb14cad1c10f8e0f47c9dd5eb2c2f0e9de44cff7dafdbcdfa8fd68534139b6dd26a8b6bdba3ae0a7ffdb4fed9622bca748b959b09338851f1ded6cceb2fadad5b8aa8ce56c40707976ff25b96b13bb2ffcd978576074e9b32eaf5bdeac81dfd88f501791bc2929a0e93defcdd6c38f9d13f79f71b57b47ebd1e7307ff8aca9480a1a66fff58fc9ebca8d9bf608eab20ffec19c28b65160da732f3c8445142bedbf995edd21777eea46d5eb0e0f0c9b4b5877d0f2dfd7b3435bcd5a4f4a98efefca09f5e8e3a1337d864535cd86d4fb6efb8e2fc624be3b0fb3b3187c3a3cc3d0fe7563d39ee63e4181756566610b8df36a1f98685fb9c32af6b873ff1fedcbe67fb16d86e81af83c7c7b7ef67075cfa708b2a203cb20c7ea03333e4f08505ba8d7b1b6a3c9fdc6f6c2e3f6d77d0e98050b0e25d53438b743ef52fdddda78d3c19c22a6f6a8e7efeeab20f2c9f40af4dc79eb5d2c32efeb8cbe3b4835d95dfdc5bbf0b4755dae75efea76af4207151d605b3ab3b385f0f9be49d74cc5a681bced89d60fbece77ac6d99d5505cda68507af0fb35c99839f689bfa553c3cf7586b002b34d33fbee1385ba7b178bb734e53c7025bac87b5895d197981c3a2a32fda5c1aa1cceb79bbedcddb463f7bca7a9b585b1892ee912559b530bf35f6cdde63d92b5d2751f3d366a79d7e3a22b3c66dd09bc0e48313ee86e91adc6ee767aea878f3d873b470f891dc1f865c3610fba4080bc28ce7bf3c1ca0b3d5964186421e875ccc17afd95220255f7e7be9d3ed0bbeb995eba7d83cdbe9f631b0e3b5f05170d8513d6279c3983b125cad9748ca9e9b2b9e7169f56f33778415e41f1b4274ef48695e9942ad1d9c59f0d7c7f65bd370f46cfcb08a777f8d8eff385530987a8e3f64d1eb2bc93ecd57fbbff7677f31fb30b6686a528a7eb56cabe4e715402d9afe53b2bc79f96a77e2664300641fcdaf0014bb3b3e138ec5b125c87dbcec1705a34f66c3742605a3af4fe672f84b2011cc75c7ca37b162360c4bb0105b04b3dcb1a8ad2d1692c4096177ac6cf38a97ffc6cb80f09d48e47001334ef6cde4c450c81c5e04241631dcb1e81d269642c6cbce63f4696c8e18e28821091b86e47e422c918007458860314e86aa4023e3e5feca62a7b775d04a000025bdbe9790c5de877e806c53dcf5aa575deafc24b64877bb2e85581c2e8c93d19ccd1a0f460320ff686e2775d370e9718268c48b4fedbd1da30606cf10f025740e1f16a13d974a99308bc387216cf705d884040c994da0780606d03cfc02bce690f16c02052395c27c6682bc15314eefe12b020080a0d18d51eadc600904929e7d509ced72c03b3090a6869d76d9cdb7f7d7776ad965f5d833bbe2ac8c5dd1a422507cbd3ca86a3cf828dd701b0f00c07fbf078a6fa58967450df4a4850479418a1948eefa92cf9ece6dad840b537c04de223a0f8666c941641b5bd951f915526977d121e2e89a819d1350b197e6c4400c2e5d2c76470cb92a08aa1c14bb65f9ec54c6e81c3255806f6389b0563379af5dcfb4fa0800f8f8bd5383d887a9a1664c886a6b52a9fe640ca1dcbf7fedfd15965a067575a7545f320607f7fbe43e32a8ab2ba994c36770a399dd25213f8d85700909986fe7703c3a874f1372950e631159919bc81cd4f9f0422f000010d0eb1b321507652c7d1830a8272cf97f04d594fa7bf80510ba335aebdfc618227f83d47712a27a12623749f8d4b826551275ef50ba4834dc82faf5371df0cd4ba4b26c18d0efbe2e3f49f6bf06f19b321052f86588023afa0d4849f284c4502711eb7ae902a685f403aa8231b40348199605ca81ac6e634d8231653ca44aca148537ab3fd02ce5d21497212aae2fca503d86a73cd25dab569b87c700a04e648536474aa246a0a2494498f720b25206432aa23028b0862e30b4a64a534274500971d001ca322a6df310a130256acc0352f484cec37e84790f322a6530a4e6099d071d5da04e35a57d1ee67402f49807e40b4b031477862e502f94528640ca94d010afbb209485502a5e20e4476888b08140bdba491902a9f9198a82b8da05a146b5a43d8a931ee85194a4fd786ced44d1aa2e07a3eaf256a7a9aae6088d809408a14bd37410e84d73a40c869404a1c1a294c0d4688cb48fed3a120ca529422320953f68778cf4416f9a226530a4d4070d16a304a6463af41de38604436985d0084855cf70f4b861402f5a21652ca48a078d15a384a5aa0ad214d9107464482c651590d27d0321d441df55cd06032d5440ca78483d0e1a2f51154f8dd847fb205f2ae1a1343d6810a482c61ce514ce00f4aee95186434a5ed070b5aa70aa221c4d8bd220d4a2146908d4a9667abe5118a3bc39d465ae5635a38c8314aca0718c87000daa18651ca414c50885938cc25112bb28c320a525e8c7b3d72818352a166528a4e4c304051531146854a6681a2a7dd4508d34026a0523da3edc841a01758211b43952c1817e98df8e30572318d1e40706e587a931502fff505a1311cd42744ae7a10054e51fca48c8d61bfac63e710ce8b1d5a8fd8d1d0f01e5a61dda0164670d1d4a24043436ed3465d50895d59b4824d5be1c1a06d91c1b8372c8dc0a68dd9753d93e219a5ea350a8b9ea50d5b53454d64144170b0d391a0bb4eb9d2943227b394a5eaa8354d7b4d07e545ac7024d2d21340cb27983f66ca235d0ae25a40c89ecd6a021b7a883d4267fc8fe0a1af2bd3ac8efcddf7054feb68d03bdb669d058c86e0a8472ef794f58eada34cab0c8fe091ad6cf0668df98d1fec65c8480452c2cba036517500005488d0168b391fdfabf000000fffffdd456717e380000"); err != nil { + if err := gres.Add("1f8b08000000000002ffb45a095c4cebfb7f51d2284a5159721a295a669a51619a86346d68c1580ab9d3cc9966325b3353aa1195246e214b9622912d89b812652b0975c97265bb5952ae5b5de45eb2deff67662ae7cc4cd3e8f7bf3e9f31cd39e7f97e9fe7799ff73de77dce3768463f1d53300000f016e60401c4bf21401f30047c16271caff8c249043cee5c9a2ee8d34462854673e06542ba840db943583c5bc083f1cb962dc34b609e904b97c0622c66a1086672c48b311004414c8e782924bb92409c8873c239e10824d70913273b3861e5a71974061b56739a800d9aa13720bb7c23930500907dba77d7f0bbbbbc581c87cff9fff594a8d9d309724fdb133ddd543dbd151f85f2b47f97a772171fb94687ca8c9197741fa64597b123234a2c11f0febbc171d61cb28b3c641ad5f551cf8363aae2f57f3146ae9a1d9e2877d849af31b9e731325476b817433500e803264744c08ba3c2ba02d5de7c18c25cf67194c06209012789917481751d851802be04e64b64e8e74f6e261903008c35a2633ad1e5f65d882a68a9fda67c3394274453ba743ad07a9f25e2ff9625222a4b44b5592222e3926eb0eca7759688f22c11515942a1f94f3951a5759688bdc89201d0071cc2243e1ee6a3673a860d73b90259b5fbcafec0629609445ca6ecf77cd91ff292672c739c0a010020ed2822e8dd5134246e6e48dadc9078a42131b721f11882ec4549e6cbad6972b659e150b43d00c05e3b365154776cb539b7126a4b6a4fd49eba9584a0aa2dab2db995a0086cd2d9a5e30000e334520deea48a633b7a06a0d9bac85e9cdbd3b8ff9cfa885ed55f4fb7020058694d439bffff46a3ae886434bd28a2811da68e4c8e080ff37b39db100878795c9a0b52062e6a8e601801008c7e085c9e23257035d5bdcb38cab6677054ec11f4ff35f6087a47ecb17495d849aa1345c652c6b20bb690dfc17f84459104148bfc1009553abb3d967007cb6b50eb1c88a27a9183a168848e1c206fe4ea67af8c81bbdc6adc3079843fc2a0881fc9a06e21809b5b4b7bae8141486cf962d08b1458a880746421422cf83ea5a4f22711acfc0c96f47ddec7cbefd05603cff65c096a8814c95047243f83fd5e140a224ceb8c6f3d1329a78536bf1769315701e9484b0ca272c95362785c281a16893902be3b968073c242309f216072f8e1eed82809cb7112760a0543960151e48191e5201445fac80a480a868c975f21f3ce286ed886400040e08f7aa7c8e5ffe89d1c84a2c839590189f2ee93cdccadaade292fe90310def5625937ee346771b8f07ff88080e689a06bb9f661d4ac57a657aa178c07008cd748688422144569b1d0a87d4c289f8dff6a0b00b0ed718ff29d4df1aca032d55466b403a6dbd94709c2173b00001c34d29a28d3d2e6ff277346ab7abd36f5fa1d0e0080a3b15ef5912ef7f2915f241048f00cb1b8174bcd1084395e2c89e5c23824901da458135902bec451cc898349d004a230c64d7e5002c7481ce95c4e389f043160be0416b92906cbae3eec4f220080d8e37e404ecde1d1c3e15ef86e8202c07305e1029c901fde85b43628c0c710331c23db4bf8f952677778441cd01f00603925b50800d0473cdb671a28bc31f2956c2c84bec16200069ac83e7dc0ce6c7300fa1672680b240bfc679218021e8ece1484c1b8189e50ee00398614c313f260091d8ae171f962528c3b567e05892f26c90ee3b190fc12c95277ec02ff20c853208221179c33ce092b2f22b288c922cda67a77988b982c772c5b221192f0b22d3b6ed9049c40148e274c9e3c19ef44c413898e2226cb511ccb97d0631cf9e2310a904e1c2a2c668838420947c08764bfe9618228893b16db718de25f879f3c6117115fdc111543c0c3c7d0857802ce09afce88c9e8b2114689b872d7980c3ccc8579305f22c6137004b576120e8ba59e4d76464147f96e478ee109499e22982e81a974094c213a11263b3ab9383ab9d20844d2042289e01242c62b5da4ce5c20a209045c8a878c0ef2e688e06502d15231e439c71961de719192bdbf80c961c5aad0bb905c5c49132675d0232e42983319249640c4a34b288aaa14f2c3c9f8ef071157caa227058a38305f42970d1a8540c6ab1ceb1c60bcd2082bca07df513fb275a7ab162998370beff60300b3d28fea4163ebb62e5828a0d5592c0ee787f38babfad7549adb9a37180dd19d3647c72e69e3a1b9736e7b4f9f8b9d3677fcdcbbbf04c6ffc1384231a51d1e3cebb3dec3f33ebc7549d8d543a067117b6dacd61b44fbcf844e9dd16148b9371b6b76bc0af95c33d9d2c0268031637c5be6fb9a1df1c14f4e9f7f541f5e3025dbbce029859dfb396155eef1a92f9a9baee96e708861ee76386e14f28e79ff5f8bf7e7dffa328b6d8e97049d2b7e35ddc9acaeefe8ba7fdfc3cb2dbee0ad9f9b0853f3ff1acfcfa0e95a05783fa8d8b2e8fdfe956b05a34b699538bd0358d7c8b072568ee17bf7b5be1b6758e9be4f11eaf26e116f1b072e2ae23e9b373e392b608049f686392792df45cef35f0a9bd3eb56db2db0b41fe3d932ced69932fdf19100731366c6d3ed923366efd3a8d6e30453edeed35eee7199352d29c9b9d0a676c8b5b4cd3517993a66a259a693d937cb9366dbf9b4a4f8ea06e68d2c48ddb6d1605bfa3fab8fdaf463cda0ff1d488ddcddfed0e47058736c5ca97d86d16fd9799becd9fb7fdd411efe4abfcf36fbcc8fae10f5e4fd0904b30d277ffee370c624efe9996f6fcc7c068da586453dae9c381c73a5a27f563ec9252bf977a3c69d693f3746eb1cf4e60dbf47cc75181320389fb82ad2f045097dac5fcb822d9e29d6982fad9b9277ea6cbf11dee7bafd20e9c9d630dbba89b7afb7a59d0e713bb0738d61817f49fbbc3983fce2ee570d9b97b0f8f716c6b199996f687376f7cf9ffad1d9241af21b9897dc469fc1b024f069b87187c7e62dc23db977aade0cb7facfc3f75921c1feeb7e731dbd903a5a70352b9e98b0217d7aa36b0b66a5defdc2d55ece77e7850d5c462a7ef1f89931a19eb6843a6a6b9bae3ecd7dd8cf5619bed08e9958cbd3bf6ebf6268e432f415eb8ad4adb46d29a964533bbd89ba89c9e46504bddb52dcb7854a5eef6b9d84313c7820ca6b1387de5e1848b2711efaed94e35563fab09240ab53492346a66c72783ed0f84d6dad51fffe38ab9c9b8c5f7746ff72ead4a5c8ec9fd2f7acbe53defeba7a56c670bfebab4cddcbeee27690ef905c9eada9a037a40fbeb9abe2e95368f8040b497434b6e2755891af7bd96f7b4fa5a4b44f2c9a713770ff836d9159b77e79e3b12935443261fe1f05b56b8d31ab852faece5a2eae9ed7527f528ff180903d297648557dec9acc3be39fbbac35395ec6317970f2a04fc0ee1bb526fa2947d7a508ace9331eac1c3929a17a1b7edfb163836ffecb9eb8e2535bf51f17626e5113a785342f8e2b5a3fb9745dcacedd6bfa188f2f8c3b973ad417c366ec5845704ba9af0ffdf262ffb6b4e20b4f2e0c9e525f6a265db2dc586fb0e5e5d5f59494e0c70b687f05e579713e9aa7cf4a27198ea8d1a9aa18f921ab8cfec8b59e22d2697810d9b23f63c5b7ebf6eddf0a5fe736b748ef9f164cf1f6f6364af74e7ff94b2006bf7f7dc41cdfdf9c3221fffdc1d5262dd8fd7345870b223fd5580cdac83cd027fc86e4d9978fefdab7dcfbfc68e9b1dcd2d24735fa153ef74ec61d85fcab27ad78e769b7adfad9d1d383e84fefcc2899e494601996d3fa67b9e75237e1761d695c5cd9f28cb9254bb6b795f04d4fb57bacf78dfd77fa9e84dbc41c5fd72c9736337c70523f4159e2e6aa275e078aae655fbc6e9cf1cfa92d27d62d195bfc9aaf6fba775de21ade5383f3e5d3cd577eab5ef2f64611c35a7c6d266689e38c40ddf4a9c9ae072fa48e7bbdbca1fd44445ddccdb98271d7dc48a49a05a45dde3e52b73083fd4c3bf84ac8c285fe83ae9547cc9e54859973a829d1e2c59a80c6822b738fe6176fe943d3adbbfd29e2306df8919090b489cb751f3d9ca74b872f9e09d84be6b0b23e0e20ef1d727055d0bd5f8e9e28ca263f3f5bf06461f14f75136e3e7d9a25e8efa6772cb462b75934a321c5f0cade15f0ada4accae3934bbe34af4bce2f4fcbb86afe3ae870091f137adfee5bcee74be2987f36ac2cf719bd72e4d3e667a72f7c7479c829d92332f6d5810dc696963d9fe8494d6212f46fff3e9ed3fcf48ecd10fbad332d1e5f78bdecfed9a881013914de55dea362c39b7f3d5cedecde204cb7be7a0e9353fdf1f82593c227ce07834aca6f9f497b99b67349d1bc632b8caa368caa7cb264e5a8af5fbfb2d9577faa5adf7abf28be34780c63fab6889d8fe9e3e8c1dfa6a48b3ee86c8d71985b6e537f4c62beeedcce726f2b9be36fdf4636dc23a5ecb8e2456bb84ec89acbf989b86edf69ee9c3e2eaf37eb9b5a352d337b59e39efffee26f747b87b117986337ebc79d65b6dd6cd96f39db4754ff8d9c38c2b944f4b06ab088baeddd24dbb8d83b2359ec43c9119b77265853fd0ecf71af2c7c1932e4ec8d34e32f5f8bb6cf9f95af0b9962f4269b8619dfcb95ae5f9a7c747681e09919a66cc5c6923743f9ab971320ab519360c9d9f285ef8d2a4e662637f5c336e9ad3df4b0ac2aebc0f35adb0aab3133fb36b2a26e5276977a4dd35f91b2dbfce596d807271aac8d529a63305e0cd702dfb42b768c84dc0f97d8d9db0d5ee55f72b04cc362b96240e4a4db8e5bc4e459e64d1c48ff623fc2e518e6f6e962dd6b851ee30b46340511921b2af4b98d95844ab197eec50feb7da65e66eb86d0324b66a53e6df1ad29711b9efe4607d7f070b5f88fc99103c6d45156ed9ab9af31b7aaf6e3e5e8cb668e5e052ff648c9359f17f41dd17cb0b0ad70ea7e9d2cf29e059bea68e30a377f79bb30f2e6c539d53521f18fbda9fd30845d6f72864e6bb765447a2e36aede917de2ec70429a8371f5edcaeb6b77af1d30d2bec6057618752ea96535aeec53f592edff9c929efffa22a0eccdc925f4bcc659b4bd84bf033385fbb65f1cc339bfe86d44de36fbc80c0397df9d4438f84de39f63a2178b5ff0d23f2ffd25a0751076f8dd6919b386ba950b39ac1a5c033cfbd899b68450618a5f58ea19e76b41273827986752331397dd22df4b3fe9fe52775554b3654a45bfc08767e6e9ac596f7969f04467faeffbdc6ed57db22ea099d86c9756595cdf11794df8ebe70dcf975851a659acda42984e8c8cf3b666de78656ddd5c4875b6223e3cb462b3dff2f43d117d6fbd2ab03b78c69451a7ef554b6eef43ac0bc8dd189ad87884f4f6ef26c3498fffc97dd0b0b2e5db8de8bbf8d754a6040c367df7c7920fe4454dfef9b35d0579e7ce125e2eb7a83f9d914b268ae2f3dc2eac6a93bebc7b3775cbfcf9474ea5ae3be27b78d9dfa3a8612d2625cf74f4e705fdf46ae4d9d881269b6343ef78b27dc716e515591a873ed88539121669ee7924a7f2e9091f23c7d8d0d25283c003b6f14d372ddc67977a5d3ff299f7e78ebd3bb6c276f37d1d3c3ebdfb302be0f2c7db5401e1b1e582873a33828f5c9cafdbb0afbedaf3e98386a6b23376879c0e0a052bdf37d6374be751ffd2dd73c6c89321acf4a666ebe7ad29fdc8f209f4da7cfc790b3df4d2e2dd1e671cec2afde6dcfe5d38b2c23ee7ca3f95a306880b332f9a5ddbc9f976c424f79463e642db30c69e78dbe73fd731ceedaacc6f322d38746388e5aa6cfc04db946fe2a139c75b02582119fe71f527d83a0d453b9cb31bdbe7db623dac4dec4ac9f31d161d7bd9ead20065dcc8dd636fde3aeaf933d6bb849a82e0348f4cc9ea85792d316ff71dcf5ae53a919a973a2bf5ccb36119d56e03de06261d1a7f2f54d7e04e1b3f6365f9db279ea384438fe68c1874c540ec932ccc0f359ef7ea4880ce365b06190a7e127c294fbc766bbe947ce5dde5cf772efae6546c986cf37c97dba7c0f637c2c70b428fe911cbea47df95e06abc4452f69c1cf1f4cb6b7e9bb133343feff820a27b7b72d3aa646acdc08cfcbf3eb5dd9e8aa367e18794bfff6b54dca7298281d4f3fc418bde5c4df269bad6f7833ffbabd9c73185531293f5ab645b253faf006ae1b49f92e4cdcbd77b12b6180220fb687e05a0d8ddf199700c8e2d41eee365bf28187d321ba63329187d7d3297c35f0a8960ae3b56be8915b361588285d82298e58e456d6db190245608bb63659b57bcfc375e0684ef4022870998b1b26f26279a42e6f0c221b188e18e45ef30b114325e761ea34f6373c410470c49d83024f7136289043c285c048b713254051a192ff757163bbdb59d560c0028eef1bd842cf65ef403649be2ce57bdea52e727b145badb7929c4e270619c8ce65ce638300a00f947733ba98b864b8f1544215e7c6aefed6835307886802fa173f8b008edb954ca84591c3e0c61bb2ec0c6c763c86c02c5333080e6e117e0359b8c67132818a914e633e3e5ad88b17a8f5e130000048d6e8c54e7064b209074ef83e26ca703de81813435ecb42b6ebe3dbfbe53cb2eabc7eed9156765ec8a261581e2ebe54155e3c127e9c63b780000fec73d507c2b4d3c2b6aa0272d38c80b52cc4072e7977cf6746c6b255c98e223f016d1793034530e22dbd8ca8ecaaf904abb8a0e1147e70cec98808abd34271a6270e962b13b62c8554150e5a0d82dcb67a73246c790a9027c1f4b84b59ac97bfd4686d52700c0a71f9d1ac45e4c0d356342545b934af5276308e1fefd6bcfafb0d432a8ab3ba5fa923138b83f20f792415d5d49a51c3e831bc5ec2a09f9692c848b8fc77c3f87e3d1397c9a90ab74188bc88adc44e6a0cec7977a010080801edf90a9382863e9c58041dd61c9ff23a8a6d4dfc32f80d095d11aff56c620f91ba4de9310d59310bb48c2a6c436aa92a87b87d249a2e116d4a7af69bfef5e22956543807ed7757989b2ff3588df948190c22f4314d0b1ef404a922724863a8958e74b173035b80f50158ca11d40cab02c500e6476196b128c29e3215552a628bc997d81662997a6b80c51717d5586ea363ce591ee5cb55a3d3cfa0175222bb4395212350c154d02c2bc1b919532185211854181d57782a135559a12a2834a88830e509651699b8770852951631e90a227741e0e20ccbb9151298321354fe83ce8e80275aa29edf330bb03a0db3c205f581aa0b8d375817aa194320452a6848678d309a12c8452f102213f424384f607ead54dca1048cdcf6014c4b54e0835aa25ed519cf440b7a224edc7635b078a567539105597b73b4c5535476804a444085d9aa603404f9a236530a424080d16a904a64663a47d6c379060284d111a01a9fc41bb63a40f7ad214298321a53e68b068253035d2a11f183724184a2b844640aa7a86a2c70d037ad00a296321553c68ac68252c555590a6c806a123436229ab8094ee1b08a10efaae6a361068a10252c643ea71d07809aa786ac43eda07f94a090fa5e94183201534e628a77006a0674d8f321c52f28286ab51855315e1685a9406a016a50843a04e35d3fd8dc218e5cde14e73b5aa19651ca460058d633c086850c528e320a52846289c24148e92d8451906292d413f9ebd41c1a851b1284321251f2628a8f0c140a33245d350e9a3866ab811502b18d1f6e126c408a8138ca0cd910a0ef4c3fc0e84b91ac188263f30283f4c8d817af987d29a886816a2533a1705a02aff504642b6ded037f609a341b7ad46ed6fec78082837edd00e203b6be8502220a0b169a729ab46a8acde4222a9f6e5d030c8e6d8689443e65640ebbe9ccaf609d1f41a8942cd5187aaaea5a1b20e22ba5868c85158a05def4c1912d9cb51f2521da4baa685f6a3d23206686a09a16190cd1bb46713ac81762d21654864b7060db9551da436f943f657d0901fd441fe68fe86a2f2b77d2ce8b14d83c642765320947b2fbac352d7a6518645f64fd0b07e3640fbc68cf637e642042c6261d1ed2fbb800228406a0c40ab8decd7ff050000ffffc14244877e380000"); err != nil { panic(err) } } diff --git a/os/gres/testdata/testdata.go b/os/gres/testdata/testdata.go index 2c8871504..e9cc38ab2 100644 --- a/os/gres/testdata/testdata.go +++ b/os/gres/testdata/testdata.go @@ -3,7 +3,7 @@ package testdata import "github.com/gogf/gf/os/gres" func init() { - if err := gres.Add("1f8b08000000000002ffb45a0b584ce91ffe50d210a5502e99464ab7996674619a8634ddd08506159b9d66ce3493b93533a58b502af12f84cda548368b24ca4a945b6d422db9acdc369794b565915d9b58fb7fe6949c33cd34d368e77986e67ce77bdfdfed7ce77ce7f706cc1ba26504860100de40dc0080f84c04ba8010cd101356ae5c490867db49b85288208524520253286073c317d1b5c1a016323b34609ece30e444e590535440da31a32452215f03647ba5c868e8ee5f78a990cfeba189e6422b450c2907eb8ac51138423e04a34821be88c79042121c66a918627125df60b0582c96c595acc0cace24929cf1f6787b3c91ec34dd79a6ad030e1e6632981c48c1b0234ee60c9de6f4800d0060f7e98c8dbacef063f15c017760fd70eadb0f67d80f7b9de664d57e58a9f2e3bfcb867ddf5e10612f722ab7b0547b61aed28bff220da4be1d980e3bd091e8eea2da81f14a1d6071c5440d2eb6c9ca2322432448a2c23440b5538d2afbdac90e11f1d218690f47cf512c5328904202a98cf4dc896d64030080419fa4662a4861d81ea25e246943667dd20300e8699e00d2802780f49f2480844a0049610248c8d8c46f361df2b50920c17f9250094091f8ce2aa9f99a04708933041a84cab44f403b1657ac01284e79283ea31220c1c02616014ce0403c9e10bd1663e063b2f5c75bf607bce8885b2398fa0000fd81e05c2914f358729cf03119e712d91f30e71e83284bd59cea043082f11f053082d11dc05846af0092b1b8a6c46d4d49db9a128f3425e635251e83bdaa605b079b00004c0682bc2b922872f810198b7b5696f5fcbb749872afdb72de2800c0a8af0ea4384a8340daaa05dc1d48e43db5a70eeb736facad2fab2fa93f792309f688b7ca6cda5800c0d88120ee0a2292b8a718eb2beacb6eac8529a1d697e5aaab71aa1a94711c3b77bf817ddc45637787324222fcb270c4c34f16387804272b8fb3fb9a0f9cc56112e0dba6d9f033aa6b527dfeae882ae28747705fcab38b1ff372de27d5fc6ac696be4483d812d4c5ee8e6d0ce28aa3cc8ae1f3b0d19058c2150a5c7144bc3d0e0b099842165710ee8a8b92b2ed66e0665131141910150e030506a176e580d20549c550602aaacc68fdb8b19bfd0100fe0364745742bed2681884da95384a1724cae84e8bf9dfa9367a72df77513697076990bf692a422183254082be6f748a6e42cc9576b3b10000ecd7d34730d4bc4d6014ace146976a83ace0ed555f7658aa6387384a8d5516a3680dac5c48f8c712a6d17027fbc50878a1e8bd44f45aa06c314a570d6a00a1d4165ee6fbb2c65a4d6be84bfe938b5aad2be7caecabb7b80000ae862f5260a4ffb0bc5531473094312b2e6dd908a2b6178463a36de0c2f91a23c451ca8c505dd8cc1967564c83afe3be2cb0506141574da38ce8b1e1f3fd5691ff2f1aaf6698c1dba2af64a72ff9cfd895efa6c442a17460b7b33244025322d100d54a352a41228de5417824be35b6ebf1842d1448ed24dc38888c9d4e12c5b8c007a5508cd48ec1e3860bc858262490426297aef5c7ba31ec77120080a4e95e17b688cb67846b72c7b3560797c013860bf122c197f7b61b02fcbcf430e331b2edb38f376d61b7fda46143653bdc5969c500804192855e7340d1b5892f0000ba22ef600900c30d65df4160778e3100838bb8f4206990ef7c3253c8c73358c230081fc317c1765162c8317c111f9232b0317c9e40428e71c5c167900512b2ec300187854f91ae70c505f90660dd856208eb8877c0dbe3e0e5922266b1c90b699eddd3c52cb62b8e23958ac80499abf895d3f1427138813873e64c823d894022d989596c3b49ac40ca88b11348a674817cc6a14112a6982b92728502acec37234c182575c5e1bacfe9fa74dbc917f5100924dd5e31857c420c434420e2ed098a26b1983d734451621e6c1a8b498078101f12482504229ea8709e94cb662b66938d74d151bfcca3c4f045647731c49042348614a292ec8933edec1dedec9de84412793a894c740ca110e44e52345d28a60b853caa9b8c0eebc915432b85e21512ac7ba003627af74972f37d852c2e3bb617bd23d9d1893c7d46373de224c4741693cc168af90c29b5ab2a4582700ae1cb41c49932efc9fe622e2490326449a31229845ec73e27982097e1aef22174d78fec0edb538b54cceba5b787008059e34373a373b45f062d15d21b4cbe0917840b4a6b86d6551b5b1a37e98fd69e13a8659db4e5d0a2c09b9e7317e1e62cb25a74fb47ff84df9847a846f4c3a3167cd0b97fce8bbf310997321afb2462bf85d9a611d1bef3b1274f6b31e379d79beb76bd08f95037d37484851f739e557bd6bbba5d09c18f4e9d7bd0185e382bc7b8f0319593f761edbabce3b39fb5b65cd1de6c1bc3da6b7b5c3fe42debeebf26efcebdf166955a1c2f0b385bfa62aefdb886c1931bfe7d07ad32f948307f6a284a2bf8c34a9049d736f3f3bc57b57dd9bb036b36082797d3abf13a3fe09c22c32ad9b97aef5c37786f9967a6fd2e55a4cdbf41ba69e0bfac98f764b15572b6df30c39ccd8125c96f2317fbae808c190d29d641a63653dcdba6593a50e73e3ce2676cc8ca7cbc537a7adcbb749af934e16cebbbf4e7fb1c17cc494a7228b2a81f7d257d5bdd0596d638f102a3999ceb95490badbdda52bdb5fdf32716a6edd8326247c65f29472d86b0e731fef4a745eeedb86f7838ac3536aedc2653ff979cfcad369c033fefa28c7fa13b68874dd67b272cedc4dde9c4719b4ffcefb7c399333ce766bdb936ff09762a2d2cea61b5f378cca5aaa1d90564c7ece45ff59b77a7ffaf395aeba0277ffc1d529eed143fe1b9c475917acfca18537dda82b6bba79a633ebedc9abc5b6be7b5f041576d46c69f781966d9e07cf36a7bfaa910971f76afd72bf42deb581c38d227ee6ecdd8c56bbff9b58d796c7ed66b7ae0dea105b3df3b1846637d86e727b733e6314d89023a7edae1a9f9cbf08fee9c6c1c874ff9fdf05d7648b0efc65f9c262fa54d165ece4e20addd9c31b7d9a90db346e76e518a87c3edc561c357924b9f3d7c62406ca42fa74dfaae5d5b97ee3af67f6699ded85df371a6a77ede79494fdf71cc0bf6a57897f2f615e4b2ad1d8c16da56168b9f19f0767be9e0361a6593b7791246efe00f511e5bb98c8e227fb285c3984f27ed2e1b30c696f99b9d4c9a303175abedd3e106afebebf5870ec59be55e67febc3bfac793272f46e67c9bb12fe55665c7abda0599e37daeae3372adb88ddf45b945767cb2be8ad19431eafa9eaac78fb1e3a79b48a3a37155afc28abd5d2b7ed97f3235b5c3b978de6dff03f7764466dff8f1b5dbd6b410e9f425bf15d66f30c0a4889e5d5eb04a52bbb8adf1840ef31e316746ece89ac6d8f559b7ac9e3a6e303c5ec135bc77e2a097dfde6bf586baa94737a60acd19f3eead9938636ded0ec2f7c78e8dbafe2fc77975677bed6fe7636ed012e784b47e1357bc6966f9c6d4dd7bd70f32b02a8a3b9b36c61bc361ee5a4774496d6c0cfdf8ecc08ef4d2f38fce8f9ad5583e2e7ef92a039d51a63fa5345253831f06d1ff08c8f7e0be37ce589041d69b50a7555335f1efec0ac603a746aa58abe95e64db81ccd59faeda747c2a7a95d7da167ff7947096a7a7a77e8667c6f31ffd3184039b2202bd7fb1cfc2fa1e08ae356cc31d58243e5c18d9596732720beb8741e1d7a44f3ebe7fdbb1fdce87072b8ee595973fa8d3adf2ba7322ee28d6b776c6eab7eed63b6a9f1c3d3592f1f8d6bcb219f66b4dc3725ffe5ee9bec245b4532b3e2eae6255e6a2b2e53bdbcb0446273bdc3679c7fe3b77dfda9ba45c6fa76cc7f67184e0a421c28ac46d358f3c7e28be9273e1aa41e65f27b7976c5c3eb5f49540d768ffc6c4f5fcc723ce55ce355ef3a976f99b6bc54c73c995f998e576f3fcb53366273b1d3c9f36edd5aaa68e928886b8eb8b84d3aeb890c97541e43d9e5ef12e61230eb0aca14b214b97fa8ebc5219b170460d26f0504ba2c9b3f57ecd8597161d2d28dd3e88aedd70b333e2307dfc91909074e755da0fee2fd66640174efbeda770d9d9ef8751f68f3eb82ee0ce8f474b8a73284fcf143e5a5afa6dc3f4eb8f1f670b87bae81c0badda3b2e9ad994aa7769ff6ae8465276f5f199651f5b37261754a6675e367e1570b84c8009bd6bfd29f7c34549cc5f9bd7547a4d5e33f171eb9353e7df3bdee796ed131b786b4123a696573c7576a725b188ba377fb5e2b63ebe6531dae6bbf9260fcfbf5a79f74cd470bf5c2aff32ff41a9def53feea738b8368932cc2f9fc5e4d6be3f7ed1b0e891c3c180b2ca9ba7d39fa7ef5e5ebcf8d86afd9acd93aa1f2d5f33e99f7ffee1702e7f5bb3e9e5dde284f2e029ccb93b22763f644c63047f9a9521fe5bebbb18db4595168dc7a4c61bcfeeaef434b338fee64d64d31d72eaae4b1ef4a6abc4ec45dc6f491bbf3fc50b1ce4f86a9bae9159cbca71cfeb5c0bde5df88561633bf53c6bea36ddb833acf6eb6d074c177a891b3f511227389489efd78c12d376bc9d6119177b6b229b73283962dbeeb5e6349fc381aed545cf43469fb9966ef0f19fe29d4b161468638d303a338dc20ceee4c56f5a917c7461a1f0c9384cc5ea2d65afc708525611b166936640d233954bdfe9579dc84a6e19826bd1d970e87e454df60f4feb2dabcca6cc1fdccc8eba4edd5bee31477775ea5ee3e7db63ef953499eba7b6c6603c984e85dee997ac996bf3febec8c9d939e245c1455bd3741c8e2701246e86e5b4652cbe69bef370c6479b098ec730374f956a5f2972b32a9cd012404c6eaad2e5355713ab251eda17fedee435fb278e76083dab6c41dae336efba3297f119afb5f04df75324bfcd8c1c36a581ba6ecffcef9bf36aeadfff14fdd3383b8fc267fbe229751f82064f683d58d45e34fb805636655fd0d606fab4a26d1fdf2c8dbc7e21b0b62e24e1a1276d0886b8e775ee98391d96cc48f76f0c6a77e5949c194f4cb735a8bd597d75c3de0dc326dad43942b693ce26b5a5e02b3a6b97effceb64fcb97f9ef955bc3eb19c91dfbc80be9ff8a77f96e8fb9d17a670cf2d7b1391bfc326327384e3aff6623cf4baf9f729d1df489ef1333eacf8d1efe548dcf8db7332178c71a91471d975f82668e1b1d3ed6b4345a93e6169a71dae0494704b58a7d3b21257dea0dcc938e1fa5c7b5d54ab696ad510fffba7176baddf647a7194b303e3d7ef5d6e34749a17d20d2d76c6d7985cdd157945f4f387cd4f979b51e798acdb4e9c4b8a8cf334675d7b616ede5a44733023dd3fb47a9bcfaa8c7d11836fbc28b43e78da88d9a0eb514fe918446af0cbdb129ad87c84fce6cf16bd190fffcabbd7b4a6edd3b5e8db84573496148c327afbdbf2bf29cb5a7c0b163a09f3cf9e213e5f65d2782a338f421227e4bb9c5fd71efffcf6edb4ed4b961c3999b6f188f7e1957f4ea285b519963dd1d25d1cf0ed8b896762871b6e8b0dbde5cef19e5a9c5f6c6a107a6f0fe64858a4b1fb91dceac7255efa76b1a1e5e523fc7fb04c68b96ee2bab0dce3ea910ffcdf77eddff51d64bdc4dbd6adf3eddf0bfc7e7a7f9326243e340dbaaf352ff8c88525da4ddf37d6ba3fbed7d45271dafa90fd419170cdbbe6c6d6f8c5b43fb4f79dd677678aaa3d6939baf9ebcbdfb3bdfc3db61d7fdac608bdf8cd5eb7d3b6d6d53e81377f154dacb2c9bdf457f5a46192a2ac0be3aeece67e3a629877d22e6ba96518735f82e5d3ff3530cfeea92e68312a3c746db4e9ba1cc274cbd44f9231b9c7dbfcd82199be718d251cada6e25d0e39cd1d4b2c716ee686d6e59425b6cb8e3d7fe9d884cdbc96b7cfc6f8e5a4a74fd86fd7d61506a7bb65495396e6b7c5bcf9fe78f63a27675a7eda82b4d34fc666d6ba0c7be39f74c8ea4ea8f6885bed82cc35956f1eb94f128d399a3b61e4a51112af645141a8c1e21747fcb476583229d8e047c117f3251bbe2b88a75c7afbd3875b17bc73ab36cfb478bac7a5d3bfe3b5e86150e8311d5245e3e4db527c9d87389e13982b99fbd3fa5fe6ed0e2dc83f3e92e4da91dcb22e9956373cb3e08fcef69bb3f18c6cc2e8ca777f4c8aeb9c251c4e3b2718b9ecf5e524af962b83fff6e5fc33eefd94a25989c9ba35b2ad928f871fad68ceb7497047e3d5beb5dbf500907d357a07d0b5e913b0a0183c478a7c9125fb45c5e85238108345c5e8ea52785cc10aac18e2b9e2e09db0840341521c962386d8ae38d4fe188795c68a20579c6c074c807f136440846e244a9890152bfb9fc58da652b8fc70ac44cc74c5a1379e382a85201bc7e8d2395c09962bc14a391016b613cb160bf9d8703124c1cb50bbd02804d85e5948182f3be8a50080520dbbb29fc51703bbb9fe8caa28d63e524ba47f9f4fc5b2b93c082f633f9b350d4c0200fe6af416b7879dc78815464935117238a98f4e600a055206570089d17ec6c7b32036570061713d27e0121230140e91eaeeef4777f3f1f35848217088544c7c3c246025c0af4ba6ea3c7845040010fbb46e7a3fac630b8552e5a6758d7eb6cbd3df9faec028fa25176fd5af1efb6394ece2506e54d7a8cca8ae57c644aab7871b4d81619df15b6e11e01ecf4019d6f5bfdce26046f377a707077860bb5609cae7ffe02bbc7b472ee541542fa1a798c187b0f36110d99e5c76143e233ebea7ce11ee7d5e25ba1789aed700dc682c93c790485c1175d31b0455535d1b7d780591c7e84e706f802f9947cc56b0c05cbd9669d60900e81ca0ab5113558ffa192429ac77b9da961187f0fefc5975bbbf3fc48a6a5aae7665c4b6aef728034baca866e3e3b902262f8ad5536ef0300e8b4f48c07c19c3f3195c015dc4933b8c43c4109e22b35bebfd731d3f00809fa66a825e76cbc8352806e77e52c0ff107be7c5d7cdc78fd893963adf97cc9100809103cf4d52cc4deae10e9b15db8ce6967d82864a51dc639572c3d05c4369e817c3e5278f51361931575902e4b1f415606900330c01a3c174adeee92aa62a8ae420d954c4bc41838d8628577a7f76faa51b2c27504ff7ad1c720a0a325005646fdd371a19299bb6ef4106203ff1a852643574dff2344855b30d8a266e10d048912dcf80541c5ba118e60c061a68a5e5f19182607314feb021a07f2ae6beb23b1e95dd2b4aa1e5f4c5ca0127a300c76b817ee88bd1a848d9af1d2a0222d5a84af4c5f21c48d5af198aa35905075a4eac7e88e76a03f514c4ea86385b1bf443418c46450a7bd1217ea31a558982589e03a9eb4587983d14f44330ac7e886b95e2ca698495039aa20027ea00f535c2ca417128d048a5a04a34c26860a476179dbaab6a012bd208cb7320b5ba680eea30a0a12658fd0095a8c181d200a38191925cb4f1c37581861a60790ea40617cd91a61e8702a9affa01faa006074adb8b0646ca6d6d51c6d33140336daf3c05525e8ba6f8593d8ade2adebec23315159ed9c341bf55bb727720848216fdb092a32eb622d5ae3c0d52288ba6993802682ece553f5239ead1a034b8686ca4b4958072a1435d6c051a5c7916a41615cd72540f682c9a55ff561b3612f443e58a46456af2a6a16c2f1b09faaf729587472a49d1f0cea340ff55acf2f0488da8250afebc3af072e2547974a4e613fdb44ed3071aa94ee519905a4c6b14c34d3519e494a47da5770a7aa93000fd1278ca2323759468e4b1a341bf049cbd6c46e823d1c8d92a90e55599f2c848f5a1050a799221e8afda527df06cd5e0f2624af59f2a4d8c807a5a4975579308a5808ab4926854a44a11bdfbbca01a558156b22fabcd50562f1c03faa57c947be64034c4d0d761813ab8bd958ff204c8f612ba3872a780fe76d9d4df21949803f5fb55685064f7081d129da940937e555f565ba2ac4e5183a0774b0a8d8e6c0039a1cc6f521f5d594baad7db234463673a8a2cd1027c5587a9d7a306a25383661a6b09beaa6d24cf84ec57a0998ef58349d13b75f50bc1d00a68d00d41a3231b14683f22d547572b37c88e049ae9f77e30a9931b640f01cdc4b4065fd5efe82b37b6a8dc4cb0019a7628d014c88e8133ca99d5fda450d4a1906743f608d06c9d9ab09114b329eb3b747d0c00981d6d0b547721be98aea80ff105ec843230b5b0f45158ff2ac0520b66180ac6d30e28ea4a289fae859a9ed23dbdd754657d882f532fc8a622e6690f958dd0000d641903f09b9decd7ff030000fffff2af776694460000"); err != nil { + if err := gres.Add("1f8b08000000000002ffb45a0b584ce91ffe50d210a5502e99464ab7996674619a8634ddd085c6a5d8ec3473a699ccad99295d8452897f216c2e45b259245156a2dc6a136ac965e5b6b9a4ac2d8becdae4b2ff674ec939d34c338dccf30ccdf9cef7bebfdbf9cef9ceef0d983348cb080c0100bc86b80100f1190f7401218a2126ac58b18210c6b69370a510410a49a404a650c0e6862da06b8301cd647648c01c9d21c889ca2127a980b463464aa442be06c8f64a91d1d05dbff052219fd74d13c585568818520ed6158b2370847c084691427c118f21852438cc1231c4e24abec360b1582c8b2b598e959d492439e3edf1f67822d969aaf3745b071c3ccc643039908261479ccc193acde93e1b00c0eed5191b759de1c7e0b9026efffae1d4bb1fceb01ff63a4d49aafdb052e5c7b7cb867def5e10612fb22b36b3547b61aed28b6f910652ef0e4c851d684f707751edc058a50eb0b862a20617db44e5119121122491a11aa0daa946957ded6487887869b4b49ba3fb2896291448218154467af6f856b20100c0a057523315a4306c37510f92d441333ee90100f4344f00a9df1340fa260920a11240529800123236719b4c077d6d0248f09f2454025024be338aabbf26015ce2348106a132ed15d08ec5156b008a531e8acfa80448d0bf8945001338108f2744afc518f8986cfdf196fd012f3ae29670a63e0040bf3f385708c53c961c277c4cc6b948f607ccb9db20d25235a73a010c677ca3008633ba0218c3e811403216d798b0b531716b63c2e1c684dcc684a3b057e56ceb20130080497f90774612450e1f2263714f4b339ffd900653ee715bc61b010018f1d58114476a10485bb580bb0289bca776d7615dcef53575a575c57527ae27c21ef1569a4d190d0018dd1fc49d4144127717635d795de9f5353025d4f2a24c75354e5683329663e7eed7bf8fbb68ecae50864b845f168e38f8c902078fe064e571666fd3fe33384c3c7cdb341b7a5a754daacfdf195145fcf008ee4b7976f2635eccf9a49a5fcdd8d21769105b82bad85db18d465c719419d17c1e360a124bb842812b8e88b7c761210153c8e20ac25c719152b6dd34dc0c2a862203a2c261a0c020d4ce1c503a21a9180a4c459519ad1f3b7a933f00c0bf9f8cee4cc8571a0d83503b1347e9844419dd6131f707d5464fecfd2ecae6f2200df23745452864b00448d0fb8d4ed14d88b9c26e26160080fd7afa70869ab7098c8235dce862cd622b787bd59b1d96ead8218e546395c5285a032be6133e5ac2341aee64bf18012f143d97881e0b942d46e9aa410d2094d8c2cb7c6fd658ab690d7dd137b9a8d5ba722ecfbc72930b00e06af8220546fa86e5ad8a399ca18c597169cb4610b53d2f0c1b650317ced718218e546684eac2664e3bbd7c0a7c1df76681850a0b3a6b1a6544b70d9fefb78afc7fde7025dd0cde167d253b7dd1376357be9b120b85d2feddceca10094c894403542bd5a80489348607e191f8d6d8cec713b65020b59370632132762a4914ed021f9442d1523b068f1b2620639990400a895d3ad71feb86d03f49000092a67b5dd8222e9f11a6c91dcf5a1d5c024f1826c48b045fdedbae0ff0f3d2c38cc5c8b6cf3edeb4f95df693860c96ed7067a41601000648e67bcd028557c73f0700e88abc8324000c35947d07805dd9c6000c2ce4d2174b17fbce2533857c3c83250c85f0d17c116c17259a1ccd17f12129031bcde70924e468571c7c06592021cb0e137058f814e97257dc62df00acbb500c611df10e787b1cbc5c52c42c36793ecdb36bba98c576c571a4521199207315bf622a5e280e2310a74f9f4eb0271148243b318b6d2789114819d17602c9a44e90cf383448c214734552ae508095fd66840a23a5ae385cd7399d9f2e3bf9a26e2281a4cb2ba6904f8866880844bc3d41d12416b37b8e2852cc834d633109100fe24302a98440c41315ce9372d96cc56cb2914e3aea97799468be88ec2e86185288c6904254923d71ba9dbda39dbd139d48224f2591898ec11482dc498aa60bc574a190477593d1613db962688550bc5c82750f74404cef3a496ebeaf90c565c7f4a077243b3a91a74eeba2479c8498ce6292d942319f21a57656a5481046217c39883853e63dd95fcc850452862c69542285d0e3d8e70413e432dc593e84aefa91dd61bb6b918a79b5e4d6200030ab7d686e748ef68bc54b84f47a93efc204618292eac1b555c696c68dfa23b567056a59276e3eb820f086e7ec05b8590bac16dcfad93ffe0fe661aa11fdd08879ef75ee9df5e26f48c4258fc43e0edf6761b6715894ef5cec89535acc38deb5a6da9dcf83dfd74e371d66e1c79c63d596f9b676677cd0c39367ef378415ccc8362e7844e5e4be5fb336f7d8cca72dcd97b537d946b3f6d81ed30f7ec3baf39fc9dbb3afbd592516c74a03ce943c9f6d3fa67ee0c4faffde422b4d3e10cc9f188a52f3ffb21264d0b5cdfc3cef566e5bfa76ffeaf5c28965f42abcce4f38a788d00a768ede5bd7f5de9be79869bf4d1169f3af936e18f82f2de23d5e689594e537c4307b536071d29b8885becb2163467db2f562539b49eead532c1da8b31f1cf6333664653cda213d35e66d1acd7c8a70a6f51dfab3bd8ef36625263a145ad48dbc9cb6b5f63c4b6b8c789ed174ceb58ac4f9d65ead29dedafe79e30b52b76f1eb63dfd9fe4231683d873187ffbd322f6b4df333c14da12135b6693a1ff5b76de161bcefe5f7752c63ed71db0dd26f39d139676fcce54e2984dc7fff7c7a18c699eb3335f5f9dfb183b99161af9a0ca792ce662e5e0ac7cb26356d2effa4dbbd2fed714a575c0933ff63629d776929ff06cc2da08bda7a58cc93ead8bb7b9a798633ebcd892b44b6bc7d5b001576c86c71d7f116a59ef7ce34a5bdac960979f76add32bf02d6d5f1838dc27f64ef5e8856bbefbbd9579746ee62b7ae09ec1f933df391846617d86e625b531e6304d89023a7ecaa1c9794bf10f6f9f6818834ffef3d01d767090ef86df9c262ea14d145eca8a27add9943ebbc9a915b35ae74e61b287c3ad85a14357904b9e3e786c406ca02fa34df8a14d5b97ee3afa7f6619ded89d7371a6277fdd71514fdf71d473f6c53897b2b6e5e4d22ded8c66da16168b9f11f0665bc9c0561a65a3b7792246efc04f911e5bb88cf6427fb285c3a84f27ec2e19304697fa9b9d481c373e658bed93a106afeaeaf4070fc69be55c63feba2beae713272e44647f9fbe37f96645fbcb9a7919637daeac35722dbf85df49b949767cbcae92d1983ee2daeeca478fb063a79a48a3a270952f438bbc5dcb7fdb772225a5ddb968ce2dfffd77b747645dfff995db96d460e9d4457f14d4ad37c0248b9e5e9ab75252b3b0b5e1b80ef32e317b5accc8ea8698759937ad9e38ae373c56ce35bc7bfc8097df9eab7586ba294736a408cd1973eeae1e3f6d4dcd76c28f478f8eb8f61fc77955475bcd1fe7a2afd3126605b77c175bb4717ad986945d7bd60d30b02a8c3d933aca1bc361ee5c4b7449696808f9f074fff6b492730fcf8d98d15036266ed94a039d11a6bf24375053821e2ca6ff1590e7c17d679c3e2f9dac37ae56abba72fcbf59e58cfb4e0d54b156e3dd88d6fd19ab3e5db169ff54f832b7a535eece49e10c4f4f4ffd74cff4673ffb6308fb3786077aff669f89f5dd1f5463d88adbbf407ca820a2a3d664f866d64f03c2ae4a1f7f78f7a67ddbedf7f7971fcd2d2bbb5fab5be975fb78ec11ac6fcdb4556fdcadb7d73c3e727238e3d1cd39a5d3ecd79886e6bcf8b3c27db98b6887565c6c6cf9ca8c05a5cb76b4950a8c4eb4bb6df48ef96ff6de35374839de4e598e6d630841898384e5095bab1f7afc547439fbfc15838c7f4e6c2bdeb06c72c94b81aed1be0d09ebf88f869dad986dbcfa53cdb2d7578b98e692cb7331cbece6f86ba7cf4c723a702e75cacb958dedc5e1f5b1d71608a75c7621936b1793777b7ac5b9840edbcfb2862e062f59e23bfc7245f8fc69d598c083cd09264fd7f935155c5c7024bf64db00ba76fd8d8ef043f4b1878383d39c576adfbfb7509b019d3fe5b78fc26567bd1b42d937f2c0da80db3f1f292ecaa63c395df07049c9f7f553af3d7a94251ceca27334a472cf982866638adec57daba0eb895955c7a6977e68d990945f919671c9f865c0a1520126e48ef5a79cf71724d1ff6c5a5de13571f5f8472d8f4f9e7be7788f5bba576ce0ad050d9b5c56fec4d99d96c822eadef8dd8adbf2e8a6c5489b1fe69a3c38f772c59dd39143fd72a8fc4bfcfb257ad7feba97ece0da284a37bf74069353f3eed805c3c2870e07024a2b6e9c4a7b96b66b59d1c2a3abf4ab374da87ab86cf5848f1f3f723897beafdef8e24e517c59d024e6ecede1bb1e30a630823ecd4817ffabf543b4ed820a8b86a352e30d677655789a591c7bfd3aa2f1363965e7450f7ae31562d602eef7a40d3f9ee4050e707cb955d7c8ac79c59867b5aef96fcfffc6b0b19d7c8e3579ab6eec6956dbb5d6fda6f3bdc40d9f2809e31c4ac5f7aa478869dbdf4cb38c8db9399ecd399814be75d71a739acfa140d7aac267c1234f5f4d33f8f0b168c7a279f9da58238cce74a35083dbb9711b97271d995f207c3c0653be6a73e9ab5182e49544acd9846990f474c592b7fa95c733939a07e19a75d61fbc575e9df5d3933acb4ab349730736b123af51f79479ccd25d95b2c7f8d9b698bbc58de6fa292dd1180fa6538177da456be69adc7f2f70b2770c7b9e7fc1d6340d87e34900899b6e3965298b6f9ae73c94f1c1669ce351cc8d9325da970bddac0ac6350710931a2b75794d55c42a8987f6f97f377acdfc85a31d4ccf2c9d97faa8d5bbb6d4656cfa2b2d7ce3bd64c91fd323864caaa7aedd3df7c7a6dceaba77bf44fd32c6cea3e0e9de384aedfbc503c7b51c286c2b9cb95f2b8bb277f1967afa94c2ad1f5e2f89b8763eb0a63638fe81276d1086b8fb55cea859ed96cc08f7ef0c6a7666179f1e4b4cb335a8b9517565fd9ef543c6dbd43a42b613ce24b626e3cb3b6a96edf8e744dcd98f4ffdca5f1d5fc6c86b9a47df47fcdb3f53f4e38ef393b86797be0ecfdb6e139131ccf1777b311e7ad5f4e7a4a8ef244ff9e9ef97ffecf762386eecad5919f346b95488b8ec5a7c2334ffe8a9b63521a2149fd0d4530e97038ab9c5ac53a999092bae536ea71f777da6bd36b2c534a57290ffbd530bb5d66d34bd30c2d981f1fb8f2ed7eb3bcc0be886163be2aa4daeec8cb82cfaf5fda627cbcca8b34cd66e23ce2645c47a9ab3ae3e37376f29a4399891ee1d5cb5d56765fadef081d79f17581f3865c4acd7f5a8a3b40f20d5fbe56e0e49683a4c7efd77b3deb407ffe4de6d5cddfae96ad42dc24b1a4b0a4618bdf963d9bf94a5cdbef9f39d8479674e139fad34693899914b2189e3f35ccead6d8b7b76eb56eab6458b0e9f48dd70d8fbd08abf27d0425b0d4b1f6be92e0cf8fef9f8d331430db7c684dc74e7784f2eca2b323508b9bb1b733834c2d8fd704ed5a3622f7dbb9890b2b261fe3f59c6375f33719d5fe671e5f07bfe9f3bf7edfc01b25ee46debd6f1e6df797ebfbcbb4113121f982ebea73527e8f0f945da8d3f36d4b83fbadbd85c7ecafaa0fd019170f5dba68696b885b4bfb4f79ed277678aaa3c69d9ba79ebcadeb1bdfc3db61e7bd2ca08b9f0dd1eb753b6d6553e81377e178dafb4c9b9f84fd5842192c2ccf3632eefe27e3a6c987bc22e73896528736fbce593ffd533cfecaeca6f362a387875a4e9da6cc254cb944f925139c75afdd8c119beb10dc51cadc6a29d0ed94ded8b2c716ee686d6659445b64b8f3e7be1d888cdb89abbd7c6f8c584278fd96fd6d41604a5b9654a9397e4b546bffef158d65a27675a5eeabcd4538f4767d4b80c79ed9f78d0ea7688f6b09b6d828cd515af1fba4f108d3a92336ef8c56112af24517e88c1c2e787fdb4b65b3229d8a0874117f224eb7fc88fa35c7cf3cbfb9be7bd732a374db778b2dba5c3bffd95e8c1e290a33aa4f28689b7a4f85a0f711c27304732fb9775bfcdd915929f776c38c9b53da9796d12ad766846fe5f1d6d3766e219598491156fff9a10db314338947656307ce9ab4b895ecd9707feebcbf938e6dda4c2190949bad5b2ad928f871fad70d6f7897047e3e5de35dbf400907d357a07d0b9e913b0a0683c478a7c9125fb45c5e85238108345c5e8ea52785cc172ac18e2b9e2e09db0840341521c962386d8ae38d4fe188795c68820579c6c074c807f136440842e244aa8901523fb9fc58da252b8fc30ac44cc74c5a1379e382a85201bc7e8d2395c09962bc14a391016b613cb160bf9d8303124c1cb503bd12804d85e5948182fdae9250080120dbbb29fc517fdbbb9fe8caa28d63e524ba47f9f4fc5b2b93c082f633f9339054c0000fe6af416b79b9dc78811464a35117238a98f4e600a055206570089d17ec6c5b1203657006171dd27e0e2e331140e91eaeeef4777f3f1f3984f217088544c5c1c2460c5c3af4b26ebdc7f490400107bb56e6a1fac630b8552e5a6758e7eb6cbd3df9faec028fa45176fd5af1efb6294ece2506e54e7a8cca8ce57c644aab7871b4d81611d719b6f12e01e4f7f19d6f9bfdce26046f377a7070578603b5709cae7ffe02bbc6b472ee541542fa1a798c187b0736110d99e5c76143e232eaebbce11ee7d5e25ba1689ced700dc282c93c790485c1175d3130455539d1b7d780591c7e84a704f802f9947cc56b0c05cb99a61d60100e8e8a7ab5113558ffa192429ac77b9da961107f3fefe5575bbbf2fc48a6a5aae7665c4b6ae7729fd4baca866e3e2b802262f92d55d6ef0300e8b8f8fc77c19c3f3195c015dc4933b8c43c4109e22b35bebdd331d3f00809fa66a821e76cbc8352806e73e52c0ff107be6c5d7cdc78fd89d965adf17cce10080e1fdcf4d52cc4deae60e9d11d384e6967daec747a2b8472be586a1ef3b45857c315c7ef228659311739525401e4b5f019606304310301a4cd7ea9aae62aaa2480e904d45cc1b30d0689072a5f767a75fb8c17202f574dfca2127a120035540f6d47da39191b269fb6e6400f2128e28455643f72d4f835435dba0686207008d14d9f20c48c5b1158a61d640a081565a1e1f29083647e10f1904faa662ee2dbb6351d9bdac145a4e5fac1c70220a70ac16e883be188d8a94fddaa12220528daa445f2ccf8154fd9aa1389a5470a0e5c4ea8778b636504f41ac6e88b3b4411f14c46854a4b0171de2d7aa51952888e53990ba5e7488d983411f04c3ea87b84629ae9c465839a0290a70bc0e505f23ac1c1487028d500aaa44238c06466a77d1a9bba216b0228db03c0752ab8be6a00e011a6a82d50f50b11a1c280d301a1829c9451b3f541768a80196e7406a70d11ca9ea712890faaa1fa0f76a70a0b4bd6860a4dcd616653c1d0334d3f6ca5320e5b5688a5fd5a3e8a9e2ed2d3c9351e1993914f459b52b7707422868d10f2bd9ea622b52edcad32085b2689af1c380e6e25cf52395ad1e0d4a838bc6464a5b092817dad5c556a0c19567416a51d12c47f480c6a259f56fb5a1c3411f54ae6854a4266f0acaf6d2e1a0ef2a577978a492140def3c02f45dc52a0f8fd4885aa2e0cfa9032f274e9547476a3ed14feb347da091ea549e01a9c5b44631dc5093414e49da5b7a27a1970a03d02781a73c32524789461e3d12f449c0d9c366843e128d9ca502595e95298f8c541f5aa090271882beaa2dd507cf520d2e2fa654ffa9d2c408a8a79554773509570aa8482b894645aa14d1bbcff3aa511568257bb3da0c65f5fc51a04fca47b9670e44430c7d1de6ab83db53f9284f806c2fa18b236712e86b974dfd1d42b13950bf5f850645768fd021d1990c34e957f566b525caea6435087ab6a4d0e8c8069013cafc46f5d195b5a47abc3d423476a6a2c8122cc05775987a3c6a203a3568a6d196e0abda46f24cc87e059ae9681f9814bd5357bf100cad8006dd10343ab24181f623427d74b57283ec48a099feec03933ab941f610d04c4c6bf055fd8ede72638bcacd381ba06987024d81ec1838a39c59d5470a451d0a7936648f00cdd6a1091b49319bb2be43e7c700809951b6407517e28be98afa105fc08e2b03530b4b1f85f59f022cb56086a0603ced80a2ae84f2e95aa8e9c95dd37b4c55d687f832f5bc6c2a629ef660d9080dd040a631007fd8c97efd3f0000ffff63060bd894460000"); err != nil { panic(err) } } diff --git a/os/gview/gview_unit_i18n_test.go b/os/gview/gview_unit_i18n_test.go index 2dbb3ce71..216e1309a 100644 --- a/os/gview/gview_unit_i18n_test.go +++ b/os/gview/gview_unit_i18n_test.go @@ -23,7 +23,7 @@ func Test_I18n(t *testing.T) { expect2 := `john says "こんにちは世界!"` expect3 := `john says "{#hello}{#world}!"` - g.I18n().SetPath(gdebug.CallerDirectory() + gfile.Separator + "testdata" + gfile.Separator + "i18n") + g.I18n().SetPath(gdebug.TestDataPath("i18n")) g.I18n().SetLanguage("zh-CN") result1, err := g.View().ParseContent(content, g.Map{