This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch deploy
in repository https://gitbox.apache.org/repos/asf/incubator-fury-site.git


The following commit(s) were added to refs/heads/deploy by this push:
     new a6cabfe  deploy: 504113d18936826226d2cea91dbddf920b785039
a6cabfe is described below

commit a6cabfebaa557715b9b3a7920d0f6d59cb9b02e0
Author: PragmaTwice <pragmatw...@users.noreply.github.com>
AuthorDate: Mon Dec 25 14:26:52 2023 +0000

    deploy: 504113d18936826226d2cea91dbddf920b785039
---
 404.html                                           |   2 +-
 blog/fury_0_1_0_release/index.html                 |   2 +-
 blog/fury_0_1_1_release/index.html                 |   2 +-
 blog/fury_0_1_2_release/index.html                 |   2 +-
 blog/fury_0_2_0_release/index.html                 |   2 +-
 blog/fury_0_2_1_release/index.html                 |   2 +-
 blog/fury_0_3_0_release/index.html                 |   2 +-
 blog/fury_0_3_1_release/index.html                 |   2 +-
 blog/fury_0_4_0_release/index.html                 |   2 +-
 blog/fury_0_4_1_release/index.html                 |   2 +-
 .../index.html                                     |   2 +-
 blog/list/index.html                               |   2 +-
 guide/development/index.html                       |   2 +-
 guide/graalvm_guide/index.html                     |   2 +-
 guide/java_object_graph_guide/index.html           |   2 +-
 guide/row_format_guide/index.html                  |   2 +-
 guide/scala_guide/index.html                       |   2 +-
 guide/xlang_object_graph_guide/index.html          |   2 +-
 introduction/benchmark/index.html                  |   2 +-
 introduction/features/index.html                   |   2 +-
 introduction/introduction/index.html               |   2 +-
 start/install/index.html                           |   2 +-
 start/usage/index.html                             |   2 +-
 umi.51f73f40.js => umi.39c9eede.js                 | 162 ++++++++++-----------
 zh/blog/fury_0_1_0_release/index.html              |   2 +-
 zh/blog/fury_0_1_1_release/index.html              |   2 +-
 zh/blog/fury_0_1_2_release/index.html              |   2 +-
 zh/blog/fury_0_2_0_release/index.html              |   2 +-
 zh/blog/fury_0_2_1_release/index.html              |   2 +-
 zh/blog/fury_0_3_0_release/index.html              |   2 +-
 zh/blog/fury_0_3_1_release/index.html              |   2 +-
 zh/blog/fury_0_4_0_release/index.html              |   2 +-
 zh/blog/fury_0_4_1_release/index.html              |   2 +-
 .../index.html                                     |   2 +-
 zh/blog/list/index.html                            |   2 +-
 zh/guide/java_object_graph_guide/index.html        |   2 +-
 zh/guide/row_format_guide/index.html               |   2 +-
 zh/guide/xlang_object_graph_guide/index.html       |   2 +-
 zh/introduction/benchmark/index.html               |   2 +-
 zh/introduction/features/index.html                |   2 +-
 zh/introduction/introduction/index.html            |   2 +-
 zh/start/install/index.html                        |   2 +-
 zh/start/usage/index.html                          |   2 +-
 ~demos/:id/index.html                              |   2 +-
 44 files changed, 124 insertions(+), 124 deletions(-)

diff --git a/404.html b/404.html
index e71e1a9..f6537e9 100644
--- a/404.html
+++ b/404.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_1_0_release/index.html 
b/blog/fury_0_1_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_1_0_release/index.html
+++ b/blog/fury_0_1_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_1_1_release/index.html 
b/blog/fury_0_1_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_1_1_release/index.html
+++ b/blog/fury_0_1_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_1_2_release/index.html 
b/blog/fury_0_1_2_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_1_2_release/index.html
+++ b/blog/fury_0_1_2_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_2_0_release/index.html 
b/blog/fury_0_2_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_2_0_release/index.html
+++ b/blog/fury_0_2_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_2_1_release/index.html 
b/blog/fury_0_2_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_2_1_release/index.html
+++ b/blog/fury_0_2_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_3_0_release/index.html 
b/blog/fury_0_3_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_3_0_release/index.html
+++ b/blog/fury_0_3_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_3_1_release/index.html 
b/blog/fury_0_3_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_3_1_release/index.html
+++ b/blog/fury_0_3_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_4_0_release/index.html 
b/blog/fury_0_4_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_4_0_release/index.html
+++ b/blog/fury_0_4_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/fury_0_4_1_release/index.html 
b/blog/fury_0_4_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/blog/fury_0_4_1_release/index.html
+++ b/blog/fury_0_4_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git 
a/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html 
b/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
index e71e1a9..f6537e9 100644
--- 
a/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
+++ 
b/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/blog/list/index.html b/blog/list/index.html
index e71e1a9..f6537e9 100644
--- a/blog/list/index.html
+++ b/blog/list/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/development/index.html b/guide/development/index.html
index e71e1a9..f6537e9 100644
--- a/guide/development/index.html
+++ b/guide/development/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/graalvm_guide/index.html b/guide/graalvm_guide/index.html
index e71e1a9..f6537e9 100644
--- a/guide/graalvm_guide/index.html
+++ b/guide/graalvm_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/java_object_graph_guide/index.html 
b/guide/java_object_graph_guide/index.html
index e71e1a9..f6537e9 100644
--- a/guide/java_object_graph_guide/index.html
+++ b/guide/java_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/row_format_guide/index.html 
b/guide/row_format_guide/index.html
index e71e1a9..f6537e9 100644
--- a/guide/row_format_guide/index.html
+++ b/guide/row_format_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/scala_guide/index.html b/guide/scala_guide/index.html
index e71e1a9..f6537e9 100644
--- a/guide/scala_guide/index.html
+++ b/guide/scala_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/guide/xlang_object_graph_guide/index.html 
b/guide/xlang_object_graph_guide/index.html
index e71e1a9..f6537e9 100644
--- a/guide/xlang_object_graph_guide/index.html
+++ b/guide/xlang_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/introduction/benchmark/index.html 
b/introduction/benchmark/index.html
index e71e1a9..f6537e9 100644
--- a/introduction/benchmark/index.html
+++ b/introduction/benchmark/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/introduction/features/index.html b/introduction/features/index.html
index e71e1a9..f6537e9 100644
--- a/introduction/features/index.html
+++ b/introduction/features/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/introduction/introduction/index.html 
b/introduction/introduction/index.html
index e71e1a9..f6537e9 100644
--- a/introduction/introduction/index.html
+++ b/introduction/introduction/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/start/install/index.html b/start/install/index.html
index e71e1a9..f6537e9 100644
--- a/start/install/index.html
+++ b/start/install/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/start/usage/index.html b/start/usage/index.html
index e71e1a9..f6537e9 100644
--- a/start/usage/index.html
+++ b/start/usage/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/umi.51f73f40.js b/umi.39c9eede.js
similarity index 53%
rename from umi.51f73f40.js
rename to umi.39c9eede.js
index 57b7031..0c93292 100644
--- a/umi.51f73f40.js
+++ b/umi.39c9eede.js
@@ -1,23 +1,23 @@
-(function(){var __webpack_modules__={25687:function(d,m,e){"use 
strict";e.d(m,{kG:function(){return f}});function n(v){return 
Math.floor(Math.log(v)*Math.LOG10E)}function r(v,I){if(typeof 
v.repeat=="function")return v.repeat(I);for(var g=new 
Array(I),x=0;x<g.length;x++)g[x]=v;return g.join("")}function 
o(v,I,g,x){v.get(I)||v.set(I,Object.create(null));var 
E=v.get(I);E[g]=x}function u(v,I,g){for(var 
x=0,E=Object.keys(g);x<E.length;x++){var k=E[x];o(v,I,k,g[k])}}function 
s(v,I,g){return l( [...]
+(function(){var __webpack_modules__={25687:function(d,m,e){"use 
strict";e.d(m,{kG:function(){return f}});function n(v){return 
Math.floor(Math.log(v)*Math.LOG10E)}function r(v,I){if(typeof 
v.repeat=="function")return v.repeat(I);for(var g=new 
Array(I),x=0;x<g.length;x++)g[x]=v;return g.join("")}function 
o(v,I,g,x){v.get(I)||v.set(I,Object.create(null));var 
E=v.get(I);E[g]=x}function u(v,I,g){for(var 
x=0,E=Object.keys(g);x<E.length;x++){var k=E[x];o(v,I,k,g[k])}}function 
s(v,I,g){return l( [...]
 `).concat(k?`
 `.concat(k.message,`
 `).concat(k.stack):""))||this,E.code=I,typeof 
Error.captureStackTrace=="function"&&Error.captureStackTrace(E,v),E}return 
v}(Error),u=function(f){(0,n.ZT)(v,f);function v(I,g){return 
f.call(this,r.UNSUPPORTED_FORMATTER,I,g)||this}return 
v}(o),s=function(f){(0,n.ZT)(v,f);function v(I,g){return 
f.call(this,r.INVALID_CONFIG,I,g)||this}return 
v}(o),l=function(f){(0,n.ZT)(v,f);function v(I,g){return 
f.call(this,r.MISSING_DATA,I,g)||this}return 
v}(o),c=function(f){(0,n.ZT)(v,f);function v(I,g,x [...]
 Locale: `).concat(g,`
-`),x)||this;return E.locale=g,E}return 
v}(o),y=function(f){(0,n.ZT)(v,f);function v(I,g,x,E){var 
k=f.call(this,"".concat(I,`
+`),x)||this;return E.locale=g,E}return 
v}(o),h=function(f){(0,n.ZT)(v,f);function v(I,g,x,E){var 
k=f.call(this,"".concat(I,`
 MessageID: `).concat(x==null?void 0:x.id,`
 Default Message: `).concat(x==null?void 0:x.defaultMessage,`
 Description: `).concat(x==null?void 0:x.description,`
-`),g,E)||this;return k.descriptor=x,k.locale=g,k}return 
v}(c),h=function(f){(0,n.ZT)(v,f);function v(I,g){var 
x=f.call(this,r.MISSING_TRANSLATION,'Missing message: "'.concat(I.id,'" for 
locale "').concat(g,'", using ').concat(I.defaultMessage?"default message 
(".concat(typeof 
I.defaultMessage=="string"?I.defaultMessage:I.defaultMessage.map(function(E){var
 k;return(k=E.value)!==null&&k!==void 
0?k:JSON.stringify(E)}).join(),")"):"id"," as fallback."))||this;return 
x.descriptor=I,x}return v [...]
+`),g,E)||this;return k.descriptor=x,k.locale=g,k}return 
v}(c),y=function(f){(0,n.ZT)(v,f);function v(I,g){var 
x=f.call(this,r.MISSING_TRANSLATION,'Missing message: "'.concat(I.id,'" for 
locale "').concat(g,'", using ').concat(I.defaultMessage?"default message 
(".concat(typeof 
I.defaultMessage=="string"?I.defaultMessage:I.defaultMessage.map(function(E){var
 k;return(k=E.value)!==null&&k!==void 
0?k:JSON.stringify(E)}).join(),")"):"id"," as fallback."))||this;return 
x.descriptor=I,x}return v [...]
 Try polyfilling it using "@formatjs/intl-relativetimeformat"
-`,kt.jK.MISSING_INTL_API));try{return 
fa(oe,_e,ze).format(pe,le)}catch(We){oe.onError(new De.Qe("Error formatting 
relative time.",oe.locale,We))}return String(pe)}var 
Ue=["formatMatcher","timeZone","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName","hourCycle","dateStyle","timeStyle","calendar","numberingSystem","fractionalSecondDigits"];function
 Xe(oe,_e,pe,le){var 
ze=oe.locale,Ae=oe.formats,We=oe.onError,Ye=oe.timeZone;le===void 
0&&(le={});var Tt=le.f [...]
+`,Tt.jK.MISSING_INTL_API));try{return 
ha(re,_e,Re).format(pe,ie)}catch(We){re.onError(new Me.Qe("Error formatting 
relative time.",re.locale,We))}return String(pe)}var 
$e=["formatMatcher","timeZone","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName","hourCycle","dateStyle","timeStyle","calendar","numberingSystem","fractionalSecondDigits"];function
 Qe(re,_e,pe,ie){var 
Re=re.locale,Te=re.formats,We=re.onError,Ye=re.timeZone;ie===void 
0&&(ie={});var Ot=ie.f [...]
 Try polyfilling it using "@formatjs/intl-pluralrules"
-`,kt.jK.MISSING_INTL_API));var We=(0,b.L6)(le,Oa);try{return 
_e(ze,We).select(pe)}catch(Ye){Ae(new De.Qe("Error formatting 
plural.",ze,Ye))}return"other"}var Qa=["type","style"],Wa=Date.now();function 
Ka(oe){return"".concat(Wa,"_").concat(oe,"_").concat(Wa)}function 
sn(oe,_e,pe,le){le===void 0&&(le={});var 
ze=cn(oe,_e,pe,le).reduce(function(Ae,We){var Ye=We.value;return typeof 
Ye!="string"?Ae.push(Ye):typeof 
Ae[Ae.length-1]=="string"?Ae[Ae.length-1]+=Ye:Ae.push(Ye),Ae},[]);return 
ze.leng [...]
+`,Tt.jK.MISSING_INTL_API));var We=(0,b.L6)(ie,Ba);try{return 
_e(Re,We).select(pe)}catch(Ye){Te(new Me.Qe("Error formatting 
plural.",Re,Ye))}return"other"}var Na=["type","style"],Ma=Date.now();function 
Ha(re){return"".concat(Ma,"_").concat(re,"_").concat(Ma)}function 
un(re,_e,pe,ie){ie===void 0&&(ie={});var 
Re=ln(re,_e,pe,ie).reduce(function(Te,We){var Ye=We.value;return typeof 
Ye!="string"?Te.push(Ye):typeof 
Te[Te.length-1]=="string"?Te[Te.length-1]+=Ye:Te.push(Ye),Te},[]);return 
Re.leng [...]
 Try polyfilling it using "@formatjs/intl-listformat"
-`,kt.jK.MISSING_INTL_API));var Ye=(0,b.L6)(le,Qa);try{var 
Tt={},da=pe.map(function(aa,sa){if(typeof aa=="object"){var ca=Ka(sa);return 
Tt[ca]=aa,ca}return String(aa)});return 
_e(ze,Ye).formatToParts(da).map(function(aa){return 
aa.type==="literal"?aa:(0,Q.pi)((0,Q.pi)({},aa),{value:Tt[aa.value]||aa.value})})}catch(aa){Ae(new
 De.Qe("Error formatting list.",ze,aa))}return pe}var 
pr=["style","type","fallback","languageDisplay"];function rr(oe,_e,pe,le){var 
ze=oe.locale,Ae=oe.onError,We=Intl. [...]
+`,Tt.jK.MISSING_INTL_API));var Ye=(0,b.L6)(ie,Na);try{var 
Ot={},pa=pe.map(function(ia,da){if(typeof ia=="object"){var ua=Ha(da);return 
Ot[ua]=ia,ua}return String(ia)});return 
_e(Re,Ye).formatToParts(pa).map(function(ia){return 
ia.type==="literal"?ia:(0,Q.pi)((0,Q.pi)({},ia),{value:Ot[ia.value]||ia.value})})}catch(ia){Te(new
 Me.Qe("Error formatting list.",Re,ia))}return pe}var 
pr=["style","type","fallback","languageDisplay"];function Wr(re,_e,pe,ie){var 
Re=re.locale,Te=re.onError,We=Intl. [...]
 Try polyfilling it using "@formatjs/intl-displaynames"
-`,kt.jK.MISSING_INTL_API));var Ye=(0,b.L6)(le,pr);try{return 
_e(ze,Ye).of(pe)}catch(Tt){Ae(new De.Qe("Error formatting display 
name.",ze,Tt))}}function cr(oe){var _e=oe?oe[Object.keys(oe)[0]]:void 0;return 
typeof _e=="string"}function 
dn(oe){oe.onWarn&&oe.defaultRichTextElements&&cr(oe.messages||{})&&oe.onWarn(`[@formatjs/intl]
 "defaultRichTextElements" was specified but "message" was not pre-compiled. 
+`,Tt.jK.MISSING_INTL_API));var Ye=(0,b.L6)(ie,pr);try{return 
_e(Re,Ye).of(pe)}catch(Ot){Te(new Me.Qe("Error formatting display 
name.",Re,Ot))}}function sr(re){var _e=re?re[Object.keys(re)[0]]:void 0;return 
typeof _e=="string"}function 
cr(re){re.onWarn&&re.defaultRichTextElements&&sr(re.messages||{})&&re.onWarn(`[@formatjs/intl]
 "defaultRichTextElements" was specified but "message" was not pre-compiled. 
 Please consider using "@formatjs/cli" to pre-compile your messages for 
performance.
-For more details see 
https://formatjs.io/docs/getting-started/message-distribution`)}function 
Xa(oe,_e){var 
pe=(0,b.ax)(_e),le=(0,Q.pi)((0,Q.pi)({},b.Z0),oe),ze=le.locale,Ae=le.defaultLocale,We=le.onError;return
 ze?!Intl.NumberFormat.supportedLocalesOf(ze).length&&We?We(new De.gb('Missing 
locale data for locale: "'.concat(ze,'" in Intl.NumberFormat. Using default 
locale: "').concat(Ae,'" as fallback. See 
https://formatjs.io/docs/react-intl#runtime-requirements for more 
details'))):!Intl. [...]
+For more details see 
https://formatjs.io/docs/getting-started/message-distribution`)}function 
Za(re,_e){var 
pe=(0,b.ax)(_e),ie=(0,Q.pi)((0,Q.pi)({},b.Z0),re),Re=ie.locale,Te=ie.defaultLocale,We=ie.onError;return
 Re?!Intl.NumberFormat.supportedLocalesOf(Re).length&&We?We(new Me.gb('Missing 
locale data for locale: "'.concat(Re,'" in Intl.NumberFormat. Using default 
locale: "').concat(Te,'" as fallback. See 
https://formatjs.io/docs/react-intl#runtime-requirements for more 
details'))):!Intl. [...]
 other distributed systems.
 `,paraId:3,tocIndex:1},{value:`Data transfer between 
processes/languages/nodes, or object persistence, state read/write and
 copy`,paraId:3,tocIndex:1},{value:` all need serialization.
@@ -133,7 +133,7 @@ development and discussion are open-sourced and transparent 
in the community. An
 including but not limited to questions, code contributions, technical 
discussions, etc. We are looking forward to
 receiving your ideas and feedback, participating in the project together, 
pushing the project forward and creating a
 better serialization framework.`,paraId:47,tocIndex:15},{value:`The GitHub 
address of the fury repository is:
-`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],y={},h={title:"Join 
US",toc:"menu",filename:"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.md",lastUpdated:1703512111e3,description:"Author:
 chaokunyang"},f=[{id:"fury---a-blazing-fast-multi-language-s [...]
+`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],h={},y={title:"Join 
US",toc:"menu",filename:"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.md",lastUpdated:170351429e4,description:"Author:
 chaokunyang"},f=[{id:"fury---a-blazing-fast-multi-language-se [...]
 zero-copy`,paraId:1,tocIndex:0},{value:", providing up to 
",paraId:1,tocIndex:0},{value:"170x performance",paraId:1,tocIndex:0},{value:" 
and ultimate ",paraId:1,tocIndex:0},{value:"ease of 
use",paraId:1,tocIndex:0},{value:".",paraId:1,tocIndex:0},{value:"The GitHub 
address of fury repository is: 
",paraId:2,tocIndex:0},{value:"https://github.com/alipay/fury",paraId:2,tocIndex:0},{value:`Serialization
 is a basic component of system communication, and widely used in big data, AI 
framework,  [...]
 other distributed systems.
 `,paraId:3,tocIndex:1},{value:`Data transfer between 
processes/languages/nodes, or object persistence, state read/write and
@@ -250,7 +250,7 @@ development and discussion are open-sourced and transparent 
in the community. An
 including but not limited to questions, code contributions, technical 
discussions, etc. We are looking forward to
 receiving your ideas and feedback, participating in the project together, 
pushing the project forward and creating a
 better serialization framework.`,paraId:47,tocIndex:15},{value:`The GitHub 
address of the fury repository is:
-`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],I={},g={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.zh.md",lastUpdated:1703512111e3,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, str [...]
+`,paraId:48,tocIndex:15},{value:"https://github.com/alipay/fury",paraId:48,tocIndex:15},{value:"Official
 website: 
",paraId:49,tocIndex:15},{value:"https://furyio.org",paraId:49,tocIndex:15},{value:"All
 issues, PR, and Discussion are 
welcome.",paraId:50,tocIndex:15}],I={},g={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.zh.md",lastUpdated:170351429e4,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, stri [...]
 
 import java.util.*;
 
@@ -616,7 +616,7 @@ func main() {
        fmt.Println(newList)
 }
 `,paraId:32,tocIndex:4},{value:"JavaScript",paraId:33,tocIndex:4},{value:`// 
Coming soon
-`,paraId:34,tocIndex:4}],k={},w={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.zh.md",lastUpdated:1703512111e3,order:0,description:"When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object graph 
serialization."},A=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advan [...]
+`,paraId:34,tocIndex:4}],k={},w={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.zh.md",lastUpdated:170351429e4,order:0,description:"When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object graph 
serialization."},A=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advanc [...]
 import java.util.Arrays;
 import io.fury.*;
 
@@ -745,7 +745,7 @@ Object newObj = fury.execute(
 } else {
   return fury.deserialize(bytes);
 }
-`,paraId:19,tocIndex:10}],R={},T={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.md",lastUpdated:1703512111e3,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, string, 
binary, array, list, map and so 
on."},O=[{id:"cross-language-object-graph-serialization",depth:2,title:"Cross-language
 object graph 
serialization"},{id:"serialize-built-in-types",depth:3,title:"Serialize 
built-in types"},{id:"serialize-cus [...]
+`,paraId:19,tocIndex:10}],R={},T={title:"Xlang Object Graph 
Guide",toc:"menu",filename:"docs/guide/xlang_object_graph_guide.md",lastUpdated:170351429e4,order:2,description:"Common
 types can be serialized automatically: primitive numeric types, string, 
binary, array, list, map and so 
on."},O=[{id:"cross-language-object-graph-serialization",depth:2,title:"Cross-language
 object graph 
serialization"},{id:"serialize-built-in-types",depth:3,title:"Serialize 
built-in types"},{id:"serialize-cust [...]
 import io.fury.config.*;
 
 import java.util.*;
@@ -1231,8 +1231,8 @@ func main() {
        fmt.Println(newList)
 }
 `,paraId:37,tocIndex:4},{value:"JavaScript",paraId:38,tocIndex:4},{value:`// 
Coming soon
-`,paraId:39,tocIndex:4}],G={},W={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.md",lastUpdated:1703512111e3,order:0,description:`When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object
-graph 
serialization.`},K=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advanced 
Usage"},{id:"furybuilder--options",depth:3,title:"FuryBuilder  
options"},{id:"fury-creation",depth:3,title:"Fury 
creation"},{id:"smaller-size",depth:3,title:"Smaller 
size"},{id:"implement-a-customized-serializer",depth:3,title:"Implement a 
customized serializer"},{id:"security--class-re [...]
+`,paraId:39,tocIndex:4}],H={},W={title:"Java Object Graph 
Guide",toc:"menu",filename:"docs/guide/java_object_graph_guide.md",lastUpdated:170351429e4,order:0,description:`When
 only java object serialization needed, this mode will have better performance 
compared to cross-language object
+graph 
serialization.`},K=[{id:"java-object-graph-serialization",depth:1,title:"Java 
object graph serialization"},{id:"quick-start",depth:2,title:"Quick 
Start"},{id:"advanced-usage",depth:2,title:"Advanced 
Usage"},{id:"furybuilder--options",depth:3,title:"FuryBuilder  
options"},{id:"fury-creation",depth:3,title:"Fury 
creation"},{id:"smaller-size",depth:3,title:"Smaller 
size"},{id:"implement-a-customized-serializer",depth:3,title:"Implement a 
customized serializer"},{id:"security--class-re [...]
 graph serialization.`,paraId:0,tocIndex:0},{value:"Note that fury creation is 
not cheap, the ",paraId:1,tocIndex:1},{value:"fury instances should be reused 
between serializations",paraId:1,tocIndex:1},{value:` instead of creating
 it everytime.
 You should keep fury to a static global variable, or instance variable of some 
singleton object or limited objects.`,paraId:1,tocIndex:1},{value:"Fury for 
single-thread usage:",paraId:2,tocIndex:1},{value:`import java.util.List;
@@ -1475,20 +1475,20 @@ package, and load fury by 
version.`,paraId:49,tocIndex:14},{value:`If you upgrad
 no need to 
`,paraId:50,tocIndex:14},{value:"versioning",paraId:50,tocIndex:14},{value:" 
the data.",paraId:50,tocIndex:14},{value:"If you create fury without setting 
",paraId:51,tocIndex:16},{value:"CompatibleMode",paraId:51,tocIndex:16},{value:"
 to 
",paraId:51,tocIndex:16},{value:"io.fury.config.CompatibleMode.COMPATIBLE",paraId:51,tocIndex:16},{value:`,
 and you got a strange
 serialization error, it may be caused by class inconsistency between 
serialization peer and deserialization peer.`,paraId:51,tocIndex:16},{value:"In 
such cases, you can invoke 
",paraId:52,tocIndex:16},{value:"FuryBuilder#withClassVersionCheck",paraId:52,tocIndex:16},{value:"
 to create fury to validate it, if deserialization throws 
",paraId:52,tocIndex:16},{value:"io.fury.exception.ClassNotCompatibleException",paraId:52,tocIndex:16},{value:`,
 it shows class are inconsistent, and you shoul [...]
 
`,paraId:52,tocIndex:16},{value:"FuryBuilder#withCompaibleMode(CompatibleMode.COMPATIBLE)",paraId:52,tocIndex:16},{value:".",paraId:52,tocIndex:16},{value:"CompatibleMode.COMPATIBLE",paraId:53,tocIndex:16},{value:"
 has more performance and space cost, do not set it by default if your classes 
are always consistent between serialization and 
deserialization.",paraId:53,tocIndex:16},{value:"If you serialize an object by 
invoking ",paraId:54,tocIndex:17},{value:"Fury#serialize",paraId:54,tocI [...]
-`,paraId:54,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:54,tocIndex:17},{value:".",paraId:54,tocIndex:17},{value:"If
 you serialize an object by invoking 
",paraId:55,tocIndex:17},{value:"Fury#serializeJavaObject",paraId:55,tocIndex:17},{value:",
 you should invoke 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:55,tocIndex:17},{value:"
 for deserialization instead of 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObjectAndClass",paraId:55,tocIndex:17},{
 [...]
+`,paraId:54,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:54,tocIndex:17},{value:".",paraId:54,tocIndex:17},{value:"If
 you serialize an object by invoking 
",paraId:55,tocIndex:17},{value:"Fury#serializeJavaObject",paraId:55,tocIndex:17},{value:",
 you should invoke 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObject",paraId:55,tocIndex:17},{value:"
 for deserialization instead of 
",paraId:55,tocIndex:17},{value:"Fury#deserializeJavaObjectAndClass",paraId:55,tocIndex:17},{
 [...]
 multiple binary protocols for those 
requirements:`,paraId:1,tocIndex:0},{value:`Cross-language object graph 
protocol:
 `,paraId:2,tocIndex:0},{value:`Cross-language serialize any object 
automatically, no need for IDL definition, schema compilation and object 
to/from protocol
 conversion.`,paraId:3,tocIndex:0},{value:"Support shared reference and 
circular reference, no duplicate data or recursion 
error.",paraId:3,tocIndex:0},{value:"Support object 
polymorphism.",paraId:3,tocIndex:0},{value:"Native java/python object graph 
protocol: highly-optimized based on type system of the 
language.",paraId:2,tocIndex:0},{value:`Row format protocol: a cache-friendly 
binary random access format, supports skipping serialization and partial 
serialization,
 and can convert to column-format 
automatically.`,paraId:2,tocIndex:0},{value:`New protocols can be added easily 
based on fury existing buffer, encoding, meta, codegen and other capabilities. 
All of those share same codebase, and the optimization for one protocol
-can be reused by another protocol.`,paraId:4,tocIndex:0},{value:"Fury java 
object graph serialization support class schema forward/backward compatibility. 
The serialization peer and deserialization peer can add/delete fields 
independently.",paraId:5,tocIndex:2},{value:"We plan to add support 
cross-language serialization after ",paraId:6,tocIndex:2},{value:"meta 
compression",paraId:6,tocIndex:2},{value:" are 
finished.",paraId:6,tocIndex:2},{value:"We are still improving our protocols, 
bin [...]
+can be reused by another protocol.`,paraId:4,tocIndex:0},{value:"Fury java 
object graph serialization support class schema forward/backward compatibility. 
The serialization peer and deserialization peer can add/delete fields 
independently.",paraId:5,tocIndex:2},{value:"We plan to add support 
cross-language serialization after ",paraId:6,tocIndex:2},{value:"meta 
compression",paraId:6,tocIndex:2},{value:" are 
finished.",paraId:6,tocIndex:2},{value:"We are still improving our protocols, 
bin [...]
 
`,paraId:1,tocIndex:0},{value:"\u901A\u8FC7\u5185\u8054\u53D8\u91CF\u51CF\u5C11\u5185\u5B58\u8BBF\u95EE\uFF1B",paraId:2,tocIndex:0},{value:"\u901A\u8FC7\u5728\u751F\u6210\u4EE3\u7801\u5F53\u4E2D\u5185\u8054\u65B9\u6CD5\u8C03\u7528\u51CF\u5C11\u865A\u65B9\u6CD5\u5F00\u9500\uFF1B",paraId:2,tocIndex:0},{value:"\u51CF\u5C11\u6761\u4EF6\u5206\u652F\uFF1B",paraId:2,tocIndex:0},{value:"\u68C0\u67E5hash\u67E5\u627E\uFF1B",paraId:2,tocIndex:0},{value:"\u591A\u4E2A\u4E8C\u8FDB\u5236\u534F\u8BAE",p
 [...]
 
`,paraId:4,tocIndex:0},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:4,tocIndex:0},{value:"\u3002",paraId:4,tocIndex:0},{value:"\u652F\u6301Golang\u5171\u4EAB\u5F15\u7528\u3001\u5FAA\u73AF\u5F15\u7528\u3001\u6307\u9488\u5E8F\u5217\u5316\u3002",paraId:4,tocIndex:0},{value:"\u652F\u6301\u81EA\u52A8\u5316\u7684Golang
 
struct\u5E8F\u5217\u5316\u3002",paraId:4,tocIndex:0},{value:"\u4E0D\u540C\u7684\u534F\u8BAE\u6709\u4E0D\u540C\u7684\u5E8F\u5217\u5316\u9700\u
 [...]
 
`,paraId:6,tocIndex:1},{value:"\u8DE8\u8BED\u8A00\u81EA\u52A8\u5E8F\u5217\u5316\u4EFB\u610F\u5BF9\u8C61\uFF0C\u4E0D\u9700\u8981\u5B9A\u4E49IDL\uFF0C\u9759\u6001\u751F\u6210\u4EE3\u7801\uFF0C\u4EE5\u53CA\u5728\u5BF9\u8C61\u548C\u751F\u6210\u4EE3\u7801\u4E4B\u95F4\u8FDB\u884C\u8F6C\u6362\u3002",paraId:7,tocIndex:1},{value:"\u652F\u6301\u5171\u4EAB\u5F15\u7528\u548C\u5FAA\u73AF\u5F15\u7528\uFF0C\u4E0D\u4F1A\u51FA\u73B0\u91CD\u590D\u5E8F\u5217\u5316\u548C\u9012\u5F52\u9519\u8BEF\u3002",paraI
 [...]
 \u7684\u7C7B, 
`,paraId:12,tocIndex:3},{value:"Sample",paraId:12,tocIndex:3},{value:`
 \u662F\u6765\u81EA `,paraId:12,tocIndex:3},{value:"kryo 
benchmark",paraId:12,tocIndex:3},{value:`
-\u7684\u7C7B.`,paraId:12,tocIndex:3},{value:"\u53EF\u4EE5\u8BBF\u95EE 
",paraId:13,tocIndex:3},{value:"benchmarks",paraId:13,tocIndex:3},{value:" 
\u67E5\u770B\u57FA\u51C6\u6D4B\u8BD5\u73AF\u5883\u3001\u4EE3\u7801\u4EE5\u53CA\u96F6\u62F7\u8D1D\u548C\u5806\u5916\u5E8F\u5217\u5316\u7B49\u573A\u666F\u6D4B\u8BD5\u7ED3\u679C\u3002",paraId:13,tocIndex:3},{value:"Fury
 
Java\u5E8F\u5217\u5316\u652F\u6301schema\u5411\u524D\u5411\u540E\u517C\u5BB9\u3002\u5E8F\u5217\u5316\u548C\u53CD\u5E8F\u5217\u5316
 [...]
+\u7684\u7C7B.`,paraId:12,tocIndex:3},{value:"\u53EF\u4EE5\u8BBF\u95EE 
",paraId:13,tocIndex:3},{value:"benchmarks",paraId:13,tocIndex:3},{value:" 
\u67E5\u770B\u57FA\u51C6\u6D4B\u8BD5\u73AF\u5883\u3001\u4EE3\u7801\u4EE5\u53CA\u96F6\u62F7\u8D1D\u548C\u5806\u5916\u5E8F\u5217\u5316\u7B49\u573A\u666F\u6D4B\u8BD5\u7ED3\u679C\u3002",paraId:13,tocIndex:3},{value:"Fury
 
Java\u5E8F\u5217\u5316\u652F\u6301schema\u5411\u524D\u5411\u540E\u517C\u5BB9\u3002\u5E8F\u5217\u5316\u548C\u53CD\u5E8F\u5217\u5316
 [...]
 `,paraId:2,tocIndex:1},{value:"Dubbo fury integration: 
",paraId:3,tocIndex:1},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:3,tocIndex:1},{value:"Add
 class checker API to customize security check 
behaviour(#890)",paraId:3,tocIndex:1},{value:`Python
-`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
+`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
 `,paraId:3,tocIndex:2},{value:`val fury = Fury.builder()
   .withScalaOptimizationEnabled(true)
   // 
\u6700\u597D\u5173\u95ED\u8BE5\u5F00\u5173\uFF0C\u63D0\u524D\u6CE8\u518C\u7C7B\u578B
@@ -1526,7 +1526,7 @@ println(fury.deserialize(fury.serialize(ColorEnum.Green)))
 println(fury.deserialize(fury.serialize(opt)))
 val opt1: Option[Long] = None
 println(fury.deserialize(fury.serialize(opt1)))
-`,paraId:13,tocIndex:9},{value:"[Scala] 
\u652F\u6301\u4EFB\u610Fscala\u5BF9\u8C61\u5E8F\u5217\u5316\uFF0C\u5305\u62ECcase/object/tuple/string/collection/enum/basic
 \u7B49",paraId:14,tocIndex:10},{value:"[Scala] \u589E\u52A0fury scala 
\u5E8F\u5217\u5316\u7528\u6237\u6587\u6863\uFF1A",paraId:14,tocIndex:10},{value:"https://github.com/alipay/fury/blob/main/docs/guide/scala_guide.md",paraId:14,tocIndex:10},{value:"[Scala]
 \u5B9E\u73B0\u4F18\u5316\u7684scala object singleton\u5E8F\u5217\u5316 [...]
+`,paraId:13,tocIndex:9},{value:"[Scala] 
\u652F\u6301\u4EFB\u610Fscala\u5BF9\u8C61\u5E8F\u5217\u5316\uFF0C\u5305\u62ECcase/object/tuple/string/collection/enum/basic
 \u7B49",paraId:14,tocIndex:10},{value:"[Scala] \u589E\u52A0fury scala 
\u5E8F\u5217\u5316\u7528\u6237\u6587\u6863\uFF1A",paraId:14,tocIndex:10},{value:"https://github.com/alipay/fury/blob/main/docs/guide/scala_guide.md",paraId:14,tocIndex:10},{value:"[Scala]
 \u5B9E\u73B0\u4F18\u5316\u7684scala object singleton\u5E8F\u5217\u5316 [...]
   String f1;
   List<Long> f2;
 }
@@ -1626,25 +1626,25 @@ for (int i = 0; i < 10; i++) {
   arrowWriter.write(encoder.toRow(beanA));
 }
 return arrowWriter.finishAsRecordBatch();
-`,paraId:9,tocIndex:3}],qe={},ut={title:"Benchmark",toc:"menu",filename:"docs/introduction/benchmark.en.md",lastUpdated:1703512111e3,order:1,description:"Different
 serialization frameworks are suitable for different scenarios, and benchmark 
results here are for reference 
only."},ot=[{id:"java-serialization",depth:3,title:"Java 
Serialization"},{id:"java-deserialization",depth:3,title:"Java 
Deserialization"},{id:"javascript",depth:3,title:"JavaScript"}],Rt=[{value:"Different
 serialization  [...]
+`,paraId:9,tocIndex:3}],Xe={},ut={title:"Benchmark",toc:"menu",filename:"docs/introduction/benchmark.en.md",lastUpdated:170351429e4,order:1,description:"Different
 serialization frameworks are suitable for different scenarios, and benchmark 
results here are for reference 
only."},it=[{id:"java-serialization",depth:3,title:"Java 
Serialization"},{id:"java-deserialization",depth:3,title:"Java 
Deserialization"},{id:"javascript",depth:3,title:"JavaScript"}],jt=[{value:"Different
 serialization f [...]
 to static serialization frameworks, unless it uses the jit techniques as fury 
did.
-Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
+Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
 to static serialization frameworks, unless it uses the jit techniques as fury 
did.
-Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
+Since fury will generate code at runtime, please warm up before collecting 
benchmark statistics.`,paraId:2},{value:"See 
",paraId:3,tocIndex:1},{value:"benchmarks",paraId:3,tocIndex:1},{value:" for 
more benchmarks about type forward/backward compatibility, off-heap support, 
zero-copy serialization.",paraId:3,tocIndex:1},{value:"The data used for this 
bar graph includes a complex object that has many kinds of field types, and the 
size of the JSON data is 3KB.",paraId:4,tocIndex:2},{value:" [...]
 by `,paraId:0},{value:"pickle5",paraId:0},{value:" and off-heap 
read/write.",paraId:0},{value:`High performance: A highly-extensible JIT 
framework to generate serializer code at runtime in an async multi-thread way 
to speed serialization, providing 20-170x speed up by:
 `,paraId:0},{value:"reduce memory access by inline variable in generated 
code.",paraId:1},{value:"reduce virtual method invocation by inline call in 
generated code.",paraId:1},{value:"reduce conditional 
branching.",paraId:1},{value:"reduce hash lookup.",paraId:1},{value:"binary 
protocols: object graph, row format and so on.",paraId:1},{value:"In addition 
to cross-language serialization, Fury also features 
at:",paraId:2},{value:`Drop-in replace Java serialization frameworks such as 
JDK/Kr [...]
 It can greatly improve the efficiency of high-performance RPC calls, data 
transfer and object persistence.`,paraId:3},{value:`JDK serialization 100% 
compatible, support java custom serialization
-`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for 
golang.",paraId:3}],Xe={},Ct={title:"Features",toc:"menu",filename:"docs/introduction/features.zh.md",lastUpdated:1703512111e3,order:2,description:"In
 addition to cross-language serialization, Fury also features at:"},Lt=[] [...]
+`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for 
golang.",paraId:3}],Qe={},At={title:"Features",toc:"menu",filename:"docs/introduction/features.zh.md",lastUpdated:170351429e4,order:2,description:"In
 addition to cross-language serialization, Fury also features at:"},Dt=[], [...]
 by `,paraId:0},{value:"pickle5",paraId:0},{value:" and off-heap 
read/write.",paraId:0},{value:`High performance: A highly-extensible JIT 
framework to generate serializer code at runtime in an async multi-thread way 
to speed serialization, providing 20-170x speed up by:
 `,paraId:0},{value:"reduce memory access by inline variable in generated 
code.",paraId:1},{value:"reduce virtual method invocation by inline call in 
generated code.",paraId:1},{value:"reduce conditional 
branching.",paraId:1},{value:"reduce hash lookup.",paraId:1},{value:"binary 
protocols: object graph, row format and so on.",paraId:1},{value:"In addition 
to cross-language serialization, Fury also features 
at:",paraId:2},{value:`Drop-in replace Java serialization frameworks such as 
JDK/Kr [...]
 It can greatly improve the efficiency of high-performance RPC calls, data 
transfer and object persistence.`,paraId:3},{value:`JDK serialization 100% 
compatible, support java custom serialization
-`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for golang.",paraId:3}],ba={},La={title:"Fury v0.1.0 
released",toc:"menu",filename:"docs/blog/fury_0_1_0_release.md",lastUpdated:1703512111e3,description:"Author:
 chaokunyang"},Oa=[{id:"fury-v010-released",depth:1,title:"Fury v [...]
+`,paraId:3},{value:"writeObject/readObject/writeReplace/readResolve/readObjectNoData",paraId:3},{value:"
 natively.",paraId:3},{value:"Supports shared and circular reference object 
serialization for golang.",paraId:3},{value:"Supports automatic object 
serialization for golang.",paraId:3}],ba={},La={title:"Fury v0.1.0 
released",toc:"menu",filename:"docs/blog/fury_0_1_0_release.md",lastUpdated:170351429e4,description:"Author:
 chaokunyang"},Ba=[{id:"fury-v010-released",depth:1,title:"Fury v0 [...]
 `,paraId:4,tocIndex:0},{value:"Highly optimized Java serialization 
primives",paraId:5,tocIndex:0},{value:"Runtime codegen 
framework",paraId:5,tocIndex:0},{value:"Interpreter mode java 
serialization",paraId:5,tocIndex:0},{value:"JIT accelerated serializer for java 
serialization",paraId:5,tocIndex:0},{value:"Support async and multi-thread 
JIT",paraId:5,tocIndex:0},{value:"Support type forward-backward 
compatibility.",paraId:5,tocIndex:0},{value:"Support meta sharing to send class 
meta only [...]
 `,paraId:4,tocIndex:0},{value:"Support basic types cross-language between 
java/python/javascript/rust",paraId:6,tocIndex:0},{value:"Support struct 
cross-language automatically, no need for IDL 
definition",paraId:6,tocIndex:0},{value:"Supports shared and circular reference 
object serialization between 
java/python/javascript.",paraId:6,tocIndex:0},{value:"Support object 
polymorphism between 
java/python/javascript.",paraId:6,tocIndex:0},{value:"Out-of-band zero-copy 
serialization between ja [...]
 `,paraId:4,tocIndex:0},{value:"Support row format between 
java/python/c++.",paraId:7,tocIndex:0},{value:"Support lazy/partial 
deserialization.",paraId:7,tocIndex:0},{value:"Support convert to arrow format 
automatically.",paraId:7,tocIndex:0},{value:`With this release, we take big 
strides towards our goal of making serialization fast, cross-language, unified 
and open.
-For details, please refer to the following commit 
messages.`,paraId:8,tocIndex:0},{value:"Note that javascript/rust support is 
still experimental, please let us know if you have any 
issues.",paraId:9,tocIndex:0},{value:"@wangweipeng2 made their first 
contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/215",paraId:10,tocIndex:1},{value:"@rainsonGain
 made their first contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/429",par 
[...]
+For details, please refer to the following commit 
messages.`,paraId:8,tocIndex:0},{value:"Note that javascript/rust support is 
still experimental, please let us know if you have any 
issues.",paraId:9,tocIndex:0},{value:"@wangweipeng2 made their first 
contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/215",paraId:10,tocIndex:1},{value:"@rainsonGain
 made their first contribution in 
",paraId:10,tocIndex:1},{value:"https://github.com/alipay/fury/pull/429",par 
[...]
 `,paraId:2,tocIndex:1},{value:"Dubbo fury integration: 
",paraId:3,tocIndex:1},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:3,tocIndex:1},{value:"Add
 class checker API to customize security check 
behaviour(#890)",paraId:3,tocIndex:1},{value:`Python
-`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
+`,paraId:2,tocIndex:1},{value:"Support pyarrow6 bazel build (#859 
#862)",paraId:4,tocIndex:1},{value:"Support python 3.10 (#859 
#862)",paraId:4,tocIndex:1},{value:"[Java] Dubbo fury integration: 
",paraId:5,tocIndex:2},{value:"https://github.com/fury-project/dubbo-serialization-fury",paraId:5,tocIndex:2},{value:"[Java]
 fix isSecure check for xlang in java 
(#822)",paraId:5,tocIndex:2},{value:"[Java] register empty object by default 
(#829)",paraId:5,tocIndex:2},{value:"[Java] upgrade guava  [...]
 `,paraId:4,tocIndex:1},{value:"Creating 
fury:",paraId:5,tocIndex:1},{value:`val fury = Fury.builder()
  .withScalaOptimizationEnabled(true) 
  .requireClassRegistration(false)
@@ -1666,8 +1666,8 @@ println(fury.deserialize(fury.serialize(list)))
 println(fury.deserialize(fury.serialize(map)))
 `,paraId:12,tocIndex:1},{value:"Serialize 
enum:",paraId:13,tocIndex:1},{value:`enum Color { case Red, Green, Blue }
 println(fury.deserialize(fury.serialize(Color.Green)))
-`,paraId:14,tocIndex:1},{value:"[Scala] Support scala serialization: 
",paraId:15,tocIndex:2},{value:"case/object/tuple/string/collection/enum/basic",paraId:15,tocIndex:2},{value:"
 all supported",paraId:15,tocIndex:2},{value:"[Scala] Add 
",paraId:15,tocIndex:2},{value:"scala user 
documentation",paraId:15,tocIndex:2},{value:"[Scala] add optimized scala 
singleton object serializer",paraId:15,tocIndex:2},{value:"[Java] Make 
",paraId:15,tocIndex:2},{value:"java.io.Externalizable",paraId:15,to [...]
-Multiple scala serialization JIT optimization are included, and java 
serialization compatibility is improved 
too.`,paraId:1,tocIndex:0},{value:"Support python 3.11 and 3.12, drop python 
3.6 support",paraId:2,tocIndex:1},{value:"Refactor collection serialization 
framework to support writeReplace JIT",paraId:2,tocIndex:1},{value:"Integrate 
scala collection with fury java collection 
framework",paraId:2,tocIndex:1},{value:"Support scala collection jit 
serialization",paraId:2,tocIndex:1},{val [...]
+`,paraId:14,tocIndex:1},{value:"[Scala] Support scala serialization: 
",paraId:15,tocIndex:2},{value:"case/object/tuple/string/collection/enum/basic",paraId:15,tocIndex:2},{value:"
 all supported",paraId:15,tocIndex:2},{value:"[Scala] Add 
",paraId:15,tocIndex:2},{value:"scala user 
documentation",paraId:15,tocIndex:2},{value:"[Scala] add optimized scala 
singleton object serializer",paraId:15,tocIndex:2},{value:"[Java] Make 
",paraId:15,tocIndex:2},{value:"java.io.Externalizable",paraId:15,to [...]
+Multiple scala serialization JIT optimization are included, and java 
serialization compatibility is improved 
too.`,paraId:1,tocIndex:0},{value:"Support python 3.11 and 3.12, drop python 
3.6 support",paraId:2,tocIndex:1},{value:"Refactor collection serialization 
framework to support writeReplace JIT",paraId:2,tocIndex:1},{value:"Integrate 
scala collection with fury java collection 
framework",paraId:2,tocIndex:1},{value:"Support scala collection jit 
serialization",paraId:2,tocIndex:1},{val [...]
   String f1;
   List<Long> f2;
 }
@@ -1767,9 +1767,9 @@ for (int i = 0; i < 10; i++) {
   arrowWriter.write(encoder.toRow(beanA));
 }
 return arrowWriter.finishAsRecordBatch();
-`,paraId:9,tocIndex:3}],le={},ze={title:"GraalVM 
Guide",toc:"menu",filename:"docs/guide/graalvm_guide.md",lastUpdated:1703512111e3,order:6,description:`GraalVM
 native image can compile java code into native code ahead to build faster, 
smaller, leaner applications.
+`,paraId:9,tocIndex:3}],ie={},Re={title:"GraalVM 
Guide",toc:"menu",filename:"docs/guide/graalvm_guide.md",lastUpdated:170351429e4,order:6,description:`GraalVM
 native image can compile java code into native code ahead to build faster, 
smaller, leaner applications.
 The native image doesn't have a JIT compiler to compile bytecode into machine 
code, and doesn't support
-reflection unless configure reflection 
file.`},Ae=[{id:"graalvm-native-image",depth:1,title:"GraalVM Native 
Image"},{id:"not-thread-safe-fury",depth:2,title:"Not thread-safe 
Fury"},{id:"thread-safe-fury",depth:2,title:"Thread-safe 
Fury"},{id:"framework-integration",depth:2,title:"Framework 
Integration"},{id:"benchmark",depth:2,title:"Benchmark"},{id:"struct-benchmark",depth:3,title:"Struct
 Benchmark"},{id:"class-fields",depth:4,title:"Class 
Fields"},{id:"benchmark-results",depth:4,title: [...]
+reflection unless configure reflection 
file.`},Te=[{id:"graalvm-native-image",depth:1,title:"GraalVM Native 
Image"},{id:"not-thread-safe-fury",depth:2,title:"Not thread-safe 
Fury"},{id:"thread-safe-fury",depth:2,title:"Thread-safe 
Fury"},{id:"framework-integration",depth:2,title:"Framework 
Integration"},{id:"benchmark",depth:2,title:"Benchmark"},{id:"struct-benchmark",depth:3,title:"Struct
 Benchmark"},{id:"class-fields",depth:4,title:"Class 
Fields"},{id:"benchmark-results",depth:4,title: [...]
 The native image doesn't have a JIT compiler to compile bytecode into machine 
code, and doesn't support
 reflection unless configure reflection 
file.`,paraId:0,tocIndex:0},{value:"Fury runs on GraalVM native image pretty 
well. Fury generates all serializer code for 
",paraId:1,tocIndex:0},{value:"Fury JIT 
framework",paraId:1,tocIndex:0},{value:" and 
",paraId:1,tocIndex:0},{value:"MethodHandle/LambdaMetafactory",paraId:1,tocIndex:0},{value:`
 at graalvm build time. Then use those generated code for serialization at 
runtime without
 any extra cost, the performance is great.`,paraId:1,tocIndex:0},{value:"In 
order to use Fury on graalvm native image, you must create Fury as an 
",paraId:2,tocIndex:0},{value:"static",paraId:2,tocIndex:0},{value:" field of a 
class, and 
",paraId:2,tocIndex:0},{value:"register",paraId:2,tocIndex:0},{value:` all 
classes at
@@ -1910,7 +1910,7 @@ Fury serialization took mills: 1289
 JDK serialization took mills: 15069
 Compare speed: Fury is 12.11x speed of JDK
 Compare size: Fury is 0.48x size of JDK
-`,paraId:30,tocIndex:10}],Ye={},Tt={title:"Development",toc:"menu",filename:"docs/guide/DEVELOPMENT.md",lastUpdated:1703512111e3,order:6,description:"Github
 repo: 
https://github.com/alipay/fury"},da=[{id:"how-to-build-to-fury",depth:1,title:"How
 to build to Fury"},{id:"get-the-source-code",depth:2,title:"Get the source 
code"},{id:"building-fury-\uFE0F",depth:2,title:"Building Fury 
\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F"},{id:"building-fury-java",depth:3,title:"Building
 Fury Java"},{id:"env [...]
+`,paraId:30,tocIndex:10}],Ye={},Ot={title:"Development",toc:"menu",filename:"docs/guide/DEVELOPMENT.md",lastUpdated:170351429e4,order:6,description:"Github
 repo: 
https://github.com/alipay/fury"},pa=[{id:"how-to-build-to-fury",depth:1,title:"How
 to build to Fury"},{id:"get-the-source-code",depth:2,title:"Get the source 
code"},{id:"building-fury-\uFE0F",depth:2,title:"Building Fury 
\u{1F3CB}\u{1F3FF}\u200D\u2640\uFE0F"},{id:"building-fury-java",depth:3,title:"Building
 Fury Java"},{id:"envi [...]
 mvn clean compile -DskipTests
 `,paraId:1,tocIndex:3},{value:"java 1.8+",paraId:2,tocIndex:4},{value:"maven 
3.6.3+",paraId:2,tocIndex:4},{value:`cd python
 pip install pyarrow==14.0.0 Cython wheel numpy pytest
@@ -1929,7 +1929,7 @@ cargo build
 # run test
 cargo test
 `,paraId:12,tocIndex:11},{value:`curl --proto '=https' --tlsv1.2 -sSf 
https://sh.rustup.rs | sh
-`,paraId:13,tocIndex:12}],sa={},ca={title:"Scala Serialization 
Guide",toc:"menu",filename:"docs/guide/scala_guide.md",lastUpdated:1703512111e3,order:4,description:"Fury
 supports all scala object 
serialization:"},nr=[{id:"scala-serialization",depth:1,title:"Scala 
serialization"},{id:"install",depth:2,title:"Install"},{id:"fury-creation",depth:2,title:"Fury
 creation"},{id:"serialize-case-object",depth:2,title:"Serialize case 
object"},{id:"serialize-pojo",depth:2,title:"Serialize pojo"},{id [...]
+`,paraId:13,tocIndex:12}],da={},ua={title:"Scala Serialization 
Guide",toc:"menu",filename:"docs/guide/scala_guide.md",lastUpdated:170351429e4,order:4,description:"Fury
 supports all scala object 
serialization:"},or=[{id:"scala-serialization",depth:1,title:"Scala 
serialization"},{id:"install",depth:2,title:"Install"},{id:"fury-creation",depth:2,title:"Fury
 creation"},{id:"serialize-case-object",depth:2,title:"Serialize case 
object"},{id:"serialize-pojo",depth:2,title:"Serialize pojo"},{id: [...]
 `,paraId:3,tocIndex:1},{value:"When using fury for scala serialization, you 
should create fury at least with following 
options:",paraId:4,tocIndex:2},{value:`val fury = Fury.builder()
   .withScalaOptimizationEnabled(true)
   .requireClassRegistration(false)
@@ -1971,7 +1971,7 @@ println(fury.deserialize(fury.serialize(ColorEnum.Green)))
 println(fury.deserialize(fury.serialize(opt)))
 val opt1: Option[Long] = None
 println(fury.deserialize(fury.serialize(opt1)))
-`,paraId:18,tocIndex:11},{value:"Scala 
",paraId:19,tocIndex:12},{value:"pojo/bean/case/object",paraId:19,tocIndex:12},{value:"
 are supported by fury jit well, the performance is as good as fury 
java.",paraId:19,tocIndex:12},{value:"Scala collections and generics doesn't 
follow java collection framework, and is not fully integrated with Fury JIT in 
current release version. The performance won't be as good as fury collections 
serialization for java.",paraId:20,tocIndex:12},{value:"The exec [...]
+`,paraId:18,tocIndex:11},{value:"Scala 
",paraId:19,tocIndex:12},{value:"pojo/bean/case/object",paraId:19,tocIndex:12},{value:"
 are supported by fury jit well, the performance is as good as fury 
java.",paraId:19,tocIndex:12},{value:"Scala collections and generics doesn't 
follow java collection framework, and is not fully integrated with Fury JIT in 
current release version. The performance won't be as good as fury collections 
serialization for java.",paraId:20,tocIndex:12},{value:"The exec [...]
   <repository>
     <id>sonatype</id>
     <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
@@ -2019,7 +2019,7 @@ fury = { git= "https://github.com/alipay/fury.git";, 
branch = "main" }
 fury_derive = { git= "https://github.com/alipay/fury.git";, branch = "main" }
 lazy_static = { version = "1.4.0" }
 
-`,paraId:8,tocIndex:5}],vr={},Ao={title:"\u5B89\u88C5Fury",toc:"menu",filename:"docs/start/install.zh.md",lastUpdated:1703512111e3,order:0,description:"Nightly\u5FEB\u7167\u7248\u672C:"},io=[{id:"java",depth:3,title:"Java"},{id:"scala",depth:3,title:"Scala"},{id:"python",depth:3,title:"Python"},{id:"javascript",depth:3,title:"JavaScript"},{id:"golang",depth:3,title:"Golang"},{id:"javascript-1",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],Oo=[{value:"Nightly\u5FEB\u7167\u
 [...]
+`,paraId:8,tocIndex:5}],wr={},Go={title:"\u5B89\u88C5Fury",toc:"menu",filename:"docs/start/install.zh.md",lastUpdated:170351429e4,order:0,description:"Nightly\u5FEB\u7167\u7248\u672C:"},po=[{id:"java",depth:3,title:"Java"},{id:"scala",depth:3,title:"Scala"},{id:"python",depth:3,title:"Python"},{id:"javascript",depth:3,title:"JavaScript"},{id:"golang",depth:3,title:"Golang"},{id:"javascript-1",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],bo=[{value:"Nightly\u5FEB\u7167\u7
 [...]
   <repository>
     <id>sonatype</id>
     <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
@@ -2067,7 +2067,7 @@ fury = { git= "https://github.com/alipay/fury.git";, 
branch = "main" }
 fury_derive = { git= "https://github.com/alipay/fury.git";, branch = "main" }
 lazy_static = { version = "1.4.0" }
 
-`,paraId:9,tocIndex:6}],Zi={},ui={title:"Usage",toc:"menu",filename:"docs/start/usage.en.md",lastUpdated:1703512111e3,order:1},$o=[{id:"java-serialization",depth:2,title:"Java
 Serialization"},{id:"crosslanguage-serialization",depth:2,title:"CrossLanguage 
Serialization"},{id:"java",depth:3,title:"Java"},{id:"python",depth:3,title:"Python"},{id:"golang",depth:3,title:"Golang"},{id:"javascript",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],ji=[{value:`import
 java.util.List;
+`,paraId:9,tocIndex:6}],ki={},$i={title:"Usage",toc:"menu",filename:"docs/start/usage.en.md",lastUpdated:170351429e4,order:1},ui=[{id:"java-serialization",depth:2,title:"Java
 Serialization"},{id:"crosslanguage-serialization",depth:2,title:"CrossLanguage 
Serialization"},{id:"java",depth:3,title:"Java"},{id:"python",depth:3,title:"Python"},{id:"golang",depth:3,title:"Golang"},{id:"javascript",depth:3,title:"JavaScript"},{id:"rust",depth:3,title:"Rust"}],li=[{value:`import
 java.util.List;
 import java.util.Arrays;
 import io.fury.*;
 
@@ -2218,7 +2218,7 @@ fn main() {
     let obj: Person = from_buffer(&bin).expect("should success");
     assert_eq!(obj, penson);
 }
-`,paraId:5,tocIndex:6}],Ho={},Go={title:"\u5FEB\u901F\u5F00\u59CB",toc:"menu",filename:"docs/start/usage.zh.md",lastUpdated:1703512111e3,order:1,description:"\u4E0B\u9762\u662F\u4E00\u4E2A\u5982\u4F55\u4F7F\u7528Fury\u7684\u5FEB\u901F\u6307\u5357\uFF0C\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B
 
\u7528\u6237\u6307\u5357\uFF0C\u8DE8\u8BED\u8A00\u5E8F\u5217\u5316\u6307\u5357\uFF0C
 
\u884C\u5B58\u6307\u5357."},xn=[{id:"fury-java-\u5E8F\u5217\u5316",depth:3,title:"Fury
 Java \u5E8F\u5217\u5316"} [...]
+`,paraId:5,tocIndex:6}],si={},Wo={title:"\u5FEB\u901F\u5F00\u59CB",toc:"menu",filename:"docs/start/usage.zh.md",lastUpdated:170351429e4,order:1,description:"\u4E0B\u9762\u662F\u4E00\u4E2A\u5982\u4F55\u4F7F\u7528Fury\u7684\u5FEB\u901F\u6307\u5357\uFF0C\u66F4\u591A\u4FE1\u606F\u8BF7\u67E5\u770B
 
\u7528\u6237\u6307\u5357\uFF0C\u8DE8\u8BED\u8A00\u5E8F\u5217\u5316\u6307\u5357\uFF0C
 
\u884C\u5B58\u6307\u5357."},Nn=[{id:"fury-java-\u5E8F\u5217\u5316",depth:3,title:"Fury
 Java \u5E8F\u5217\u5316"}, [...]
 
 import java.util.*;
 
@@ -2449,8 +2449,8 @@ foo = Foo(f1=10, f2=list(range(1000_000)),
 binary: bytes = encoder.to_row(foo).to_bytes()
 foo_row = pyfury.RowData(encoder.schema, binary)
 print(foo_row.f2[100000], foo_row.f4[100000].f1, foo_row.f4[200000].f2[5])
-`,paraId:12,tocIndex:6}],Wo={},Yi={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - 
\u4E00\u4E2A\u57FA\u4E8EJIT\u548C\u96F6\u62F7\u8D1D\u7684\u9AD8\u6027\u80FD\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6</font>',toc:"menu",filename:"docs/blog/list.zh.md",lastUpdated:1703512111e3,order:-1,description:`2023\u5E74
 12\u67089\u53F7
-\u5F88\u9AD8\u5174\u5411\u5927\u5BB6\u53D1\u5E03Fury 
0.4.1\u7248\u672C\uFF0C\u672C\u6B21\u53D1\u5E03\u91CD\u70B9\u65B0\u589E\u4E86 
Fury \u884C\u5B58 Rust \u652F\u6301\uFF0C\u540C\u65F6\u5BF9Fury \u884C\u5B58 
C++\u652F\u6301\u8FDB\u884C\u4E86\u5B8C\u5584\uFF0C\u652F\u6301\u53EF\u8FED\u4EE3\u7C7B\u578B\uFF0C\u6B22\u8FCE\u4F7F\u7528\uFF01`},Mi=[{id:"\u9879\u76EE\u65B0\u95FB\u548C\u535A\u5BA2",depth:1,title:"\u9879\u76EE\u65B0\u95FB\u548C\u535A\u5BA2"},{id:"fury-041-released",depth:1,title:"
 [...]
+`,paraId:12,tocIndex:6}],fo={},ru={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - 
\u4E00\u4E2A\u57FA\u4E8EJIT\u548C\u96F6\u62F7\u8D1D\u7684\u9AD8\u6027\u80FD\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6</font>',toc:"menu",filename:"docs/blog/list.zh.md",lastUpdated:170351429e4,order:-1,description:`2023\u5E74
 12\u67089\u53F7
+\u5F88\u9AD8\u5174\u5411\u5927\u5BB6\u53D1\u5E03Fury 
0.4.1\u7248\u672C\uFF0C\u672C\u6B21\u53D1\u5E03\u91CD\u70B9\u65B0\u589E\u4E86 
Fury \u884C\u5B58 Rust \u652F\u6301\uFF0C\u540C\u65F6\u5BF9Fury \u884C\u5B58 
C++\u652F\u6301\u8FDB\u884C\u4E86\u5B8C\u5584\uFF0C\u652F\u6301\u53EF\u8FED\u4EE3\u7C7B\u578B\uFF0C\u6B22\u8FCE\u4F7F\u7528\uFF01`},Ci=[{id:"\u9879\u76EE\u65B0\u95FB\u548C\u535A\u5BA2",depth:1,title:"\u9879\u76EE\u65B0\u95FB\u548C\u535A\u5BA2"},{id:"fury-041-released",depth:1,title:"
 [...]
 \u5F88\u9AD8\u5174\u5411\u5927\u5BB6\u53D1\u5E03Fury 
0.4.1\u7248\u672C\uFF0C\u672C\u6B21\u53D1\u5E03\u91CD\u70B9\u65B0\u589E\u4E86 
Fury \u884C\u5B58 Rust \u652F\u6301\uFF0C\u540C\u65F6\u5BF9Fury \u884C\u5B58 
C++\u652F\u6301\u8FDB\u884C\u4E86\u5B8C\u5584\uFF0C\u652F\u6301\u53EF\u8FED\u4EE3\u7C7B\u578B\uFF0C\u6B22\u8FCE\u4F7F\u7528\uFF01
 `,paraId:2,tocIndex:1},{value:"Fury 0.4.0 
Released",paraId:3,tocIndex:1},{value:"2023\u5E74 
11\u670829\u53F7",paraId:4,tocIndex:2},{value:`
 \u5F88\u9AD8\u5174\u5411\u5927\u5BB6\u53D1\u5E03Fury 
0.4.0\u7248\u672C\uFF0C\u672C\u6B21\u53D1\u5E03\u91CD\u70B9\u652F\u6301\u4E86 
Graalvm native image\uFF0C\u57FA\u4E8E\u7F16\u8BD1\u65F6\u53CD\u5C04\u7684C++ 
Row Format 
Encoder\uFF0CScala\u5E8F\u5217\u5316\u517C\u5BB9\u6027\u6539\u8FDB\uFF0C\u6B22\u8FCE\u4F7F\u7528\uFF01
@@ -2469,8 +2469,8 @@ print(foo_row.f2[100000], foo_row.f4[100000].f1, 
foo_row.f4[200000].f2[5])
 
\u5927\u5BB6\u597D\uFF0C\u7ECF\u8FC7\u51E0\u4E2A\u6708\u7684\u52AA\u529B\uFF0CFury
 0.1.0 
\u7248\u672C\u6B63\u5F0F\u5BF9\u5916\u53D1\u5E03\u3002\u8FD9\u662F\u6211\u4EEC\u4ECA\u5E74\u56DB\u6708\u5E95\u6B63\u5F0F\u5728
 GitHub \u5F00\u53D1\u30017 \u6708 15 
\u53F7\u5BF9\u5916\u5F00\u6E90\u540E\u53D1\u5E03\u7684\u7B2C\u4E00\u4E2A\u7248\u672C\u3002\u8FD9\u4E00\u7248\u672C\u5305\u542B\u4E86\u5927\u91CF\u7279\u6027\uFF0C\u6B22\u8FCE\u5927\u5BB6\u4F7F\u7528\uFF0C\u5E0C\u671B\u80FD\u63D0\u4F9B\u5B9
 [...]
 `,paraId:18,tocIndex:9},{value:"Fury - 
\u4E00\u4E2A\u57FA\u4E8EJIT\u548C\u96F6\u62F7\u8D1D\u7684\u9AD8\u6027\u80FD\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6",paraId:19,tocIndex:9},{value:"2023\u5E74
 07\u670815\u53F7",paraId:20,tocIndex:10},{value:`
 Fury \u662F\u4E00\u4E2A\u57FA\u4E8E JIT 
\u52A8\u6001\u7F16\u8BD1\u548C\u96F6\u62F7\u8D1D\u7684\u591A\u8BED\u8A00\u5E8F\u5217\u5316\u6846\u67B6\uFF0C\u652F\u6301
 Java/Python/Golang/JavaScript/C++ 
\u7B49\u8BED\u8A00\uFF0C\u63D0\u4F9B\u5168\u81EA\u52A8\u7684\u5BF9\u8C61\u591A\u8BED\u8A00
 / \u8DE8\u8BED\u8A00\u5E8F\u5217\u5316\u80FD\u529B\uFF0C\u548C\u76F8\u6BD4 JDK 
\u6700\u9AD8 170 \u500D\u7684\u6027\u80FD\u3002
-`,paraId:0}],li={},Di={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - A blazing fast multi-language 
serialization framework powered by jit and 
zero-copy</font>',toc:"menu",filename:"docs/blog/list.md",lastUpdated:1703512111e3,order:-1,description:`9
 Dec 2023
-I'm pleased to announce the 0.4.1 release of the Fury: 
https://github.com/alipay/fury/releases/tag/v0.4.1. With this release, Fury 
support rust row format now. C++ row format has been enhanced too, now iterable 
types can be encoded to fury row format. Please try it out and share your 
feedbacks with us.`},si=[{id:"project-news-and-blog",depth:1,title:"Project 
News and Blog"},{id:"fury-041-released",depth:1,title:"Fury 0.4.1 
Released"},{id:"fury-040-released",depth:1,title:"Fury 0.4.0 Rele [...]
+`,paraId:0}],ci={},Hi={title:'<font color="#d74633" 
face="Lato,Roboto,Arial,sans-serif">Fury - A blazing fast multi-language 
serialization framework powered by jit and 
zero-copy</font>',toc:"menu",filename:"docs/blog/list.md",lastUpdated:170351429e4,order:-1,description:`9
 Dec 2023
+I'm pleased to announce the 0.4.1 release of the Fury: 
https://github.com/alipay/fury/releases/tag/v0.4.1. With this release, Fury 
support rust row format now. C++ row format has been enhanced too, now iterable 
types can be encoded to fury row format. Please try it out and share your 
feedbacks with us.`},Ai=[{id:"project-news-and-blog",depth:1,title:"Project 
News and Blog"},{id:"fury-041-released",depth:1,title:"Fury 0.4.1 
Released"},{id:"fury-040-released",depth:1,title:"Fury 0.4.0 Rele [...]
 I'm pleased to announce the 0.4.1 release of the Fury: 
`,paraId:2,tocIndex:1},{value:"https://github.com/alipay/fury/releases/tag/v0.4.1",paraId:2,tocIndex:1},{value:`.
 With this release, Fury support rust row format now. C++ row format has been 
enhanced too, now iterable types can be encoded to fury row format. Please try 
it out and share your feedbacks with us.
 `,paraId:2,tocIndex:1},{value:"Fury 0.4.0 
Released",paraId:3,tocIndex:1},{value:"29 Nov 
2023",paraId:4,tocIndex:2},{value:`
 I'm pleased to announce the 0.4.0 release of the Fury. With this release, 
`,paraId:4,tocIndex:2},{value:"GraalVM native 
image",paraId:4,tocIndex:2},{value:` and C++ row format automatic encoder based 
on compile-time reflection are supported. Please try it out and share your 
feedbacks with us.
@@ -2491,32 +2491,32 @@ I'm pleased to announce the 0.1.1 release of the Fury. 
Fury 0.1.1 is our second
 I'm pleased to announce the 0.1.0 release of the Fury. Fury 0.1.0 is our first 
release since we started the development in github in 2023.04.28, and open 
sourced in 2023.07.15. This release includes many features: production-ready 
Java serialization, cross language serialization for 
Java/Python/JavaScript/Rust, row format support and so on.
 `,paraId:18,tocIndex:9},{value:"Fury - A blazing fast multi-language 
serialization framework powered by jit and 
zero-copy",paraId:19,tocIndex:9},{value:"15 July 
2023",paraId:20,tocIndex:10},{value:`
 Fury is a multi-language serialization framework powered by JIT dynamic 
compilation and zero copy. It supports Java/Python/Golang/JavaScript/Rust/C++, 
provide automatic multi-language objects serialization features, and 170x 
speedup compared to JDK serialization.
-`,paraId:20,tocIndex:10}],Ei=null,Ro={},ki={"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.zh":{frontmatter:s,toc:l,texts:c,demos:u},"docs/blog/fury_blazing_fast_multiple_language_serialization_framework":{frontmatter:h,toc:f,texts:v,demos:y},"docs/guide/xlang_object_graph_guide.zh":{frontmatter:g,toc:x,texts:E,demos:I},"docs/guide/java_object_graph_guide.zh":{frontmatter:w,toc:A,texts:C,demos:k},"docs/guide/xlang_object_graph_guide":{frontmatter:T,toc:O,texts:M,d
 [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}var 
Be=!0,Ge=!1,Ze;return{s:function(){Ne=Ne.call(be)},n:function(){var 
nt=Ne.next();return 
Be=nt.done,nt},e:function(nt){Ge=!0,Ze=nt},f:function(){try{!Be&&Ne.return!=null&&Ne.return()}finally{if(Ge)throw
 Ze}}}}function X(be){if(Array.isArray(be))return be}function ie(be){if(typeof 
Symbol!="undefined"&&be[Symbol.iterator]!=null||be["@@iterator"]!=null)return 
Array.from(be)}function B(){throw new TypeErr [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Z(be){return X(be)||ie(be)||ve(be)||B()}function 
H(be,Ce){if(!(be instanceof Ce))throw new TypeError("Cannot call a class as a 
function")}function S(be,Ce){for(var Ne=0;Ne<Ce.length;Ne++){var 
de=Ce[Ne];de.enumerable=de.enumerable||!1,de.configurable=!0,"value"in 
de&&(de.writable=!0),Object.defineProperty(be,O(de.key),de)}}function 
j(be,Ce,Ne){return Ce&&S(be.prototype,Ce),Ne&&S(be,Ne),Object.def [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function _unsupportedIterableToArray(d,m){if(d){if(typeof 
d=="string")return _arrayLikeToArray(d,m);var 
e=Object.prototype.toString.call(d).slice(8,-1);if(e==="Object"&&d.constructor&&(e=d.constructor.name),e==="Map"||e==="Set")return
 
Array.from(d);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return
 _arrayLikeToArray(d,m)}}function 
_arrayLikeToArray(d,m){(m==null||m>d.length)&&( [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function O(z,D){if(z){if(typeof z=="string")return M(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 M(z,D)}}function M(z,D){(D==null||D>z.length)&&(D=z.length);for(var N=0,fe=new 
Array(D);N<D;N++)fe[N]=z[N];return fe}funct [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function X(z,D){if(z){if(typeof z=="string")return ie(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 ie(z,D)}}function ie(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}fu [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function U(z,D){if(z){if(typeof z=="string")return J(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 J(z,D)}}function J(z,D){(D==null||D>z.length)&&(D=z.length);for(var N=0,fe=new 
Array(D);N<D;N++)fe[N]=z[N];return fe}funct [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function pt(z,D){if(z){if(typeof z=="string")return ft(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 ft(z,D)}}function ft(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
+`,paraId:20,tocIndex:10}],Oi=null,zo={},di={"docs/blog/fury_blazing_fast_multiple_language_serialization_framework.zh":{frontmatter:s,toc:l,texts:c,demos:u},"docs/blog/fury_blazing_fast_multiple_language_serialization_framework":{frontmatter:y,toc:f,texts:v,demos:h},"docs/guide/xlang_object_graph_guide.zh":{frontmatter:g,toc:x,texts:E,demos:I},"docs/guide/java_object_graph_guide.zh":{frontmatter:w,toc:A,texts:C,demos:k},"docs/guide/xlang_object_graph_guide":{frontmatter:T,toc:O,texts:M,d
 [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}var 
Le=!0,He=!1,Ze;return{s:function(){Ne=Ne.call(be)},n:function(){var 
ot=Ne.next();return 
Le=ot.done,ot},e:function(ot){He=!0,Ze=ot},f:function(){try{!Le&&Ne.return!=null&&Ne.return()}finally{if(He)throw
 Ze}}}}function X(be){if(Array.isArray(be))return be}function ne(be){if(typeof 
Symbol!="undefined"&&be[Symbol.iterator]!=null||be["@@iterator"]!=null)return 
Array.from(be)}function B(){throw new TypeErr [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Z(be){return X(be)||ne(be)||ve(be)||B()}function 
$(be,ke){if(!(be instanceof ke))throw new TypeError("Cannot call a class as a 
function")}function S(be,ke){for(var Ne=0;Ne<ke.length;Ne++){var 
de=ke[Ne];de.enumerable=de.enumerable||!1,de.configurable=!0,"value"in 
de&&(de.writable=!0),Object.defineProperty(be,O(de.key),de)}}function 
j(be,ke,Ne){return ke&&S(be.prototype,ke),Ne&&S(be,Ne),Object.def [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function _unsupportedIterableToArray(d,m){if(d){if(typeof 
d=="string")return _arrayLikeToArray(d,m);var 
e=Object.prototype.toString.call(d).slice(8,-1);if(e==="Object"&&d.constructor&&(e=d.constructor.name),e==="Map"||e==="Set")return
 
Array.from(d);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return
 _arrayLikeToArray(d,m)}}function 
_arrayLikeToArray(d,m){(m==null||m>d.length)&&( [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function O(z,L){if(z){if(typeof z=="string")return M(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 M(z,L)}}function M(z,L){(L==null||L>z.length)&&(L=z.length);for(var N=0,fe=new 
Array(L);N<L;N++)fe[N]=z[N];return fe}funct [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function X(z,L){if(z){if(typeof z=="string")return ne(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 ne(z,L)}}function ne(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}fu [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function U(z,L){if(z){if(typeof z=="string")return J(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 J(z,L)}}function J(z,L){(L==null||L>z.length)&&(L=z.length);for(var N=0,fe=new 
Array(L);N<L;N++)fe[N]=z[N];return fe}funct [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function ft(z,L){if(z){if(typeof z=="string")return yt(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 yt(z,L)}}function yt(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
 <html>
 <head><title></title></head>
 <body>
   `.concat(N.outerHTML,`
   <script>document.getElementById('`).concat(N.id,`').submit();<\/script>
 </body>
-</html>`);return fe}function Ka(z,D){var 
N=Qa(z);N.action=xa("/run",D),N.target=Ue(D),document.body.appendChild(N),N.submit(),document.body.removeChild(N)}function
 sn(z){var D;if(!(z!=null&&z.contentWindow))return Promise.reject("Provided 
element is not an iframe.");var N=(D=La(z))!==null&&D!==void 0?D:new 
ba(z);return N.pending}function cn(z,D){Ka(z,D)}function pr(z,D){var 
N=xa("/edit/".concat(z),D),fe=Ue(D);window.open(N,fe)}function rr(z,D){var 
N=xa("/github/".concat(z),D),fe=Ue(D);wi [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Vr(z,D){if(z){if(typeof z=="string")return Jr(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 Jr(z,D)}}function Jr(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}var Ke=!0,Ve=!1,rt;return{s:function(){N=N.call(z)},n:function(){var 
st=N.next();return 
Ke=st.done,st},e:function(st){Ve=!0,rt=st},f:function(){try{!Ke&&N.return!=null&&N.return()}finally{if(Ve)throw
 rt}}}}function tn(z){return Nn(z)||fn(z)||oe(z)||Tr()}function Tr(){throw new 
TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function fn(z){if(typeof 
Symbol!="undefined"&&z[Symbol.iterator]!=null||z["@@iterator"]!=null)return 
Array.from(z)}function Nn(z){if(Array.isArray(z))return _e(z)}function 
Hn(z,D){return le(z)||pe(z,D)||oe(z,D)||Gn()}function Gn(){throw new 
TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function oe(z,D){if(z){if(typeof z=="string")return _e(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 _e(z,D)}}function _e(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Ja(z){if(typeof 
Symbol!="undefined"&&z[Symbol.iterator]!=null||z["@@iterator"]!=null)return 
Array.from(z)}function wa(z){if(Array.isArray(z))return vr(z)}function 
Na(z,D){return io(z)||Ao(z,D)||Mr(z,D)||qa()}function qa(){throw new 
TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Mr(z,D){if(z){if(typeof z=="string")return vr(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 vr(z,D)}}function vr(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Yi(z,D){if(z){if(typeof z=="string")return Mi(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 Mi(z,D)}}function Mi(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Vo(z,D){if(z){if(typeof z=="string")return zo(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 zo(z,D)}}function zo(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Ru(z,D){if(z){if(typeof z=="string")return hu(z,D);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 hu(z,D)}}function hu(z,D){(D==null||D>z.length)&&(D=z.length);for(var 
N=0,fe=new Array(D);N<D;N++)fe[N]=z[N];return fe}f [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function s(f,v){if(f){if(typeof f=="string")return l(f,v);var 
I=Object.prototype.toString.call(f).slice(8,-1);if(I==="Object"&&f.constructor&&(I=f.constructor.name),I==="Map"||I==="Set")return
 
Array.from(f);if(I==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(I))return
 l(f,v)}}function l(f,v){(v==null||v>f.length)&&(v=f.length);for(var I=0,g=new 
Array(v);I<v;I++)g[I]=f[I];return g}function [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function c(C,R){if(C){if(typeof C=="string")return y(C,R);var 
T=Object.prototype.toString.call(C).slice(8,-1);if(T==="Object"&&C.constructor&&(T=C.constructor.name),T==="Map"||T==="Set")return
 
Array.from(C);if(T==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(T))return
 y(C,R)}}function y(C,R){(R==null||R>C.length)&&(R=C.length);for(var T=0,O=new 
Array(R);T<R;T++)O[T]=C[T];return O}function [...]
+</html>`);return fe}function Ha(z,L){var 
N=Na(z);N.action=xa("/run",L),N.target=$e(L),document.body.appendChild(N),N.submit(),document.body.removeChild(N)}function
 un(z){var L;if(!(z!=null&&z.contentWindow))return Promise.reject("Provided 
element is not an iframe.");var N=(L=La(z))!==null&&L!==void 0?L:new 
ba(z);return N.pending}function ln(z,L){Ha(z,L)}function pr(z,L){var 
N=xa("/edit/".concat(z),L),fe=$e(L);window.open(N,fe)}function Wr(z,L){var 
N=xa("/github/".concat(z),L),fe=$e(L);wi [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Kn(z,L){if(z){if(typeof z=="string")return fr(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 fr(z,L)}}function fr(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}var Ke=!0,Ve=!1,at;return{s:function(){N=N.call(z)},n:function(){var 
lt=N.next();return 
Ke=lt.done,lt},e:function(lt){Ve=!0,at=lt},f:function(){try{!Ke&&N.return!=null&&N.return()}finally{if(Ve)throw
 at}}}}function Kr(z){return Fr(z)||cn(z)||re(z)||no()}function no(){throw new 
TypeError(`Invalid attempt to spread non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function cn(z){if(typeof 
Symbol!="undefined"&&z[Symbol.iterator]!=null||z["@@iterator"]!=null)return 
Array.from(z)}function Fr(z){if(Array.isArray(z))return _e(z)}function 
Vn(z,L){return ie(z)||pe(z,L)||re(z,L)||bn()}function bn(){throw new 
TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function re(z,L){if(z){if(typeof z=="string")return _e(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 _e(z,L)}}function _e(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Ya(z){if(typeof 
Symbol!="undefined"&&z[Symbol.iterator]!=null||z["@@iterator"]!=null)return 
Array.from(z)}function ma(z){if(Array.isArray(z))return wr(z)}function 
Aa(z,L){return po(z)||Go(z,L)||Mr(z,L)||Qa()}function Qa(){throw new 
TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Mr(z,L){if(z){if(typeof z=="string")return wr(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 wr(z,L)}}function wr(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function ru(z,L){if(z){if(typeof z=="string")return Ci(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 Ci(z,L)}}function Ci(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Vo(z,L){if(z){if(typeof z=="string")return Mo(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 Mo(z,L)}}function Mo(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Hu(z,L){if(z){if(typeof z=="string")return uu(z,L);var 
N=Object.prototype.toString.call(z).slice(8,-1);if(N==="Object"&&z.constructor&&(N=z.constructor.name),N==="Map"||N==="Set")return
 
Array.from(z);if(N==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(N))return
 uu(z,L)}}function uu(z,L){(L==null||L>z.length)&&(L=z.length);for(var 
N=0,fe=new Array(L);N<L;N++)fe[N]=z[N];return fe}f [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function s(f,v){if(f){if(typeof f=="string")return l(f,v);var 
I=Object.prototype.toString.call(f).slice(8,-1);if(I==="Object"&&f.constructor&&(I=f.constructor.name),I==="Map"||I==="Set")return
 
Array.from(f);if(I==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(I))return
 l(f,v)}}function l(f,v){(v==null||v>f.length)&&(v=f.length);for(var I=0,g=new 
Array(v);I<v;I++)g[I]=f[I];return g}function [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function c(C,R){if(C){if(typeof C=="string")return h(C,R);var 
T=Object.prototype.toString.call(C).slice(8,-1);if(T==="Object"&&C.constructor&&(T=C.constructor.name),T==="Map"||T==="Set")return
 
Array.from(C);if(T==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(T))return
 h(C,R)}}function h(C,R){(R==null||R>C.length)&&(R=C.length);for(var T=0,O=new 
Array(R);T<R;T++)O[T]=C[T];return O}function [...]
  * This is an auto-generated demo by dumi
  * if you think it is not working as expected,
  * please report the issue at
@@ -2539,35 +2539,35 @@ import App from './App';
 ReactDOM.render(
   <App />,
   document.getElementById('root'),
-);`)},E=typeof 
window!="undefined"?r.useLayoutEffect:r.useEffect,k=function(){var 
R=(0,o.b)();return(0,r.useCallback)(function(T,O){return("order"in T&&"order"in 
O?T.order-O.order:0)||("link"in T&&"link"in 
O?T.link.split("/").length-O.link.split("/").length:0)||("path"in T&&"path"in 
O?T.path.split("/").length-O.path.split("/").length:0)||(T.title?T.title.localeCompare(O.title||"",R.id):-1)},[])},w=function(R,T,O){var
 M,G=T==="nav.second"?u(O.nav)==="object"?O.nav.second:{}:O[T];switch(u( [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function S(ue,ye){if(ue){if(typeof ue=="string")return j(ue,ye);var 
se=Object.prototype.toString.call(ue).slice(8,-1);if(se==="Object"&&ue.constructor&&(se=ue.constructor.name),se==="Map"||se==="Set")return
 
Array.from(ue);if(se==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(se))return
 j(ue,ye)}}function j(ue,ye){(ye==null||ye>ue.length)&&(ye=ue.length);for(var 
se=0,me=new Array(ye);se<ye; [...]
+);`)},E=typeof 
window!="undefined"?r.useLayoutEffect:r.useEffect,k=function(){var 
R=(0,o.b)();return(0,r.useCallback)(function(T,O){return("order"in T&&"order"in 
O?T.order-O.order:0)||("link"in T&&"link"in 
O?T.link.split("/").length-O.link.split("/").length:0)||("path"in T&&"path"in 
O?T.path.split("/").length-O.path.split("/").length:0)||(T.title?T.title.localeCompare(O.title||"",R.id):-1)},[])},w=function(R,T,O){var
 M,H=T==="nav.second"?u(O.nav)==="object"?O.nav.second:{}:O[T];switch(u( [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function S(oe,ye){if(oe){if(typeof oe=="string")return j(oe,ye);var 
le=Object.prototype.toString.call(oe).slice(8,-1);if(le==="Object"&&oe.constructor&&(le=oe.constructor.name),le==="Map"||le==="Set")return
 
Array.from(oe);if(le==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(le))return
 j(oe,ye)}}function j(oe,ye){(ye==null||ye>oe.length)&&(ye=oe.length);for(var 
le=0,me=new Array(ye);le<ye; [...]
 html body {
   overflow-y: hidden;
   `.concat(ge?"width: calc(100% - ".concat(Ie,"px);"):"",`
-}`),ae)}else(0,me.jL)(ae);return function(){(0,me.jL)(ae)}},[L,ae])}var 
It=!1;function Ot($){return typeof $=="boolean"&&(It=$),It}var 
be=function(L){return L===!1?!1:!(0,q.Z)()||!L?null:typeof 
L=="string"?document.querySelector(L):typeof 
L=="function"?L():L},Ce=l.forwardRef(function($,L){var 
F=$.open,te=$.autoLock,ae=$.getContainer,Ie=$.debug,ge=$.autoDestroy,ke=ge===void
 
0?!0:ge,Me=$.children,He=l.useState(F),vt=(0,S.Z)(He,2),Qe=vt[0],gt=vt[1],yt=Qe||F;l.useEffect(function(){(ke||F)&&g
 [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Vu($,L){if($){if(typeof $=="string")return Du($,L);var 
F=Object.prototype.toString.call($).slice(8,-1);if(F==="Object"&&$.constructor&&(F=$.constructor.name),F==="Map"||F==="Set")return
 
Array.from($);if(F==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(F))return
 Du($,L)}}function Du($,L){(L==null||L>$.length)&&(L=$.length);for(var 
F=0,te=new Array(L);F<L;F++)te[F]=$[F];return te}f [...]
+}`),ue)}else(0,me.jL)(ue);return function(){(0,me.jL)(ue)}},[F,ue])}var 
bt=!1;function zt(D){return typeof D=="boolean"&&(bt=D),bt}var 
be=function(F){return F===!1?!1:!(0,q.Z)()||!F?null:typeof 
F=="string"?document.querySelector(F):typeof 
F=="function"?F():F},ke=l.forwardRef(function(D,F){var 
G=D.open,ce=D.autoLock,ue=D.getContainer,Ie=D.debug,ge=D.autoDestroy,Oe=ge===void
 
0?!0:ge,Be=D.children,Ge=l.useState(G),gt=(0,S.Z)(Ge,2),tt=gt[0],vt=gt[1],mt=tt||G;l.useEffect(function(){(Oe||G)&&v
 [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Zn(D,F){if(D){if(typeof D=="string")return zi(D,F);var 
G=Object.prototype.toString.call(D).slice(8,-1);if(G==="Object"&&D.constructor&&(G=D.constructor.name),G==="Map"||G==="Set")return
 
Array.from(D);if(G==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(G))return
 zi(D,F)}}function zi(D,F){(F==null||F>D.length)&&(F=D.length);for(var 
G=0,ce=new Array(F);G<F;G++)ce[G]=D[G];return ce}f [...]
 `,empty:!0}):me.length===1&&me[0].content===""&&(me[0].content=`
-`,me[0].empty=!0)},ve=function(me,Oe){var Pe=me.length;return 
Pe>0&&me[Pe-1]===Oe?me:me.concat(Oe)},ee=function(me){for(var 
Oe=[[]],Pe=[me],pt=[0],ft=[me.length],dt=0,It=0,Ot=[],be=[Ot];It>-1;){for(;(dt=pt[It]++)<ft[It];){var
 Ce=void 0,Ne=Oe[It],de=Pe[It],xe=de[dt];if(typeof 
xe=="string"?(Ne=It>0?Ne:["plain"],Ce=xe):(Ne=ve(Ne,xe.type),xe.alias&&(Ne=ve(Ne,xe.alias)),Ce=xe.content),typeof
 
Ce!="string"){It++,Oe.push(Ne),Pe.push(Ce),pt.push(0),ft.push(Ce.length);continue}var
 Be=Ce.split(ne), [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function q(me,Oe){if(me){if(typeof me=="string")return U(me,Oe);var 
Pe=Object.prototype.toString.call(me).slice(8,-1);if(Pe==="Object"&&me.constructor&&(Pe=me.constructor.name),Pe==="Map"||Pe==="Set")return
 
Array.from(me);if(Pe==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Pe))return
 U(me,Oe)}}function U(me,Oe){(Oe==null||Oe>me.length)&&(Oe=me.length);for(var 
Pe=0,pt=new Array(Oe);Pe<Oe; [...]
+`,me[0].empty=!0)},ve=function(me,Ae){var ze=me.length;return 
ze>0&&me[ze-1]===Ae?me:me.concat(Ae)},ee=function(me){for(var 
Ae=[[]],ze=[me],ft=[0],yt=[me.length],dt=0,bt=0,zt=[],be=[zt];bt>-1;){for(;(dt=ft[bt]++)<yt[bt];){var
 ke=void 0,Ne=Ae[bt],de=ze[bt],xe=de[dt];if(typeof 
xe=="string"?(Ne=bt>0?Ne:["plain"],ke=xe):(Ne=ve(Ne,xe.type),xe.alias&&(Ne=ve(Ne,xe.alias)),ke=xe.content),typeof
 
ke!="string"){bt++,Ae.push(Ne),ze.push(ke),ft.push(0),yt.push(ke.length);continue}var
 Le=ke.split(ae), [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function q(me,Ae){if(me){if(typeof me=="string")return U(me,Ae);var 
ze=Object.prototype.toString.call(me).slice(8,-1);if(ze==="Object"&&me.constructor&&(ze=me.constructor.name),ze==="Map"||ze==="Set")return
 
Array.from(me);if(ze==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ze))return
 U(me,Ae)}}function U(me,Ae){(Ae==null||Ae>me.length)&&(Ae=me.length);for(var 
ze=0,ft=new Array(Ae);ze<Ae; [...]
 `+Y+t}var U=!1;function J(t,a){if(!t||U)return"";U=!0;var 
i=Error.prepareStackTrace;Error.prepareStackTrace=void 
0;try{if(a)if(a=function(){throw 
Error()},Object.defineProperty(a.prototype,"props",{set:function(){throw 
Error()}}),typeof 
Reflect=="object"&&Reflect.construct){try{Reflect.construct(a,[])}catch(Fe){var 
p=Fe}Reflect.construct(t,[],a)}else{try{a.call()}catch(Fe){p=Fe}t.call(a.prototype)}else{try{throw
 Error()}catch(Fe){p=Fe}t()}}catch(Fe){if(Fe&&p&&typeof Fe.stack=="string"){f 
[...]
 `),P=p.stack.split(`
-`),V=_.length-1,ce=P.length-1;1<=V&&0<=ce&&_[V]!==P[ce];)ce--;for(;1<=V&&0<=ce;V--,ce--)if(_[V]!==P[ce]){if(V!==1||ce!==1)do
 if(V--,ce--,0>ce||_[V]!==P[ce]){var we=`
-`+_[V].replace(" at new "," at ");return 
t.displayName&&we.includes("<anonymous>")&&(we=we.replace("<anonymous>",t.displayName)),we}while(1<=V&&0<=ce);break}}}finally{U=!1,Error.prepareStackTrace=i}return(t=t?t.displayName||t.name:"")?q(t):""}function
 re(t){switch(t.tag){case 5:return q(t.type);case 16:return q("Lazy");case 
13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 
15:return t=J(t.type,!1),t;case 11:return t=J(t.type.render,!1),t;case 1:return 
t=J(t.type [...]
-`).replace(ua,"")}function Ca(t,a,i){if(a=ja(a),ja(t)!==a&&i)throw 
Error(o(425))}function yr(){}var or=null,Er=null;function Lr(t,a){return 
t==="textarea"||t==="noscript"||typeof a.children=="string"||typeof 
a.children=="number"||typeof 
a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var
 Ir=typeof setTimeout=="function"?setTimeout:void 0,dr=typeof 
clearTimeout=="function"?clearTimeout:void 0,Ga=typeof 
Promise=="function"?Promi [...]
+`),V=_.length-1,se=P.length-1;1<=V&&0<=se&&_[V]!==P[se];)se--;for(;1<=V&&0<=se;V--,se--)if(_[V]!==P[se]){if(V!==1||se!==1)do
 if(V--,se--,0>se||_[V]!==P[se]){var Se=`
+`+_[V].replace(" at new "," at ");return 
t.displayName&&Se.includes("<anonymous>")&&(Se=Se.replace("<anonymous>",t.displayName)),Se}while(1<=V&&0<=se);break}}}finally{U=!1,Error.prepareStackTrace=i}return(t=t?t.displayName||t.name:"")?q(t):""}function
 te(t){switch(t.tag){case 5:return q(t.type);case 16:return q("Lazy");case 
13:return q("Suspense");case 19:return q("SuspenseList");case 0:case 2:case 
15:return t=J(t.type,!1),t;case 11:return t=J(t.type.render,!1),t;case 1:return 
t=J(t.type [...]
+`).replace(Ca,"")}function fa(t,a,i){if(a=ga(a),ga(t)!==a&&i)throw 
Error(o(425))}function Xa(){}var Oa=null,Ir=null;function tr(t,a){return 
t==="textarea"||t==="noscript"||typeof a.children=="string"||typeof 
a.children=="number"||typeof 
a.dangerouslySetInnerHTML=="object"&&a.dangerouslySetInnerHTML!==null&&a.dangerouslySetInnerHTML.__html!=null}var
 Sr=typeof setTimeout=="function"?setTimeout:void 0,Yr=typeof 
clearTimeout=="function"?clearTimeout:void 0,_r=typeof 
Promise=="function"?Promi [...]
 Error generating stack: `+P.message+`
-`+P.stack}return{value:t,source:a,stack:_}}function 
$l(t,a){try{console.error(a.value)}catch(i){setTimeout(function(){throw 
i})}}var Fc=typeof WeakMap=="function"?WeakMap:Map;function 
Ls(t,a,i){i=hr(-1,i),i.tag=3,i.payload={element:null};var p=a.value;return 
i.callback=function(){bl||(bl=!0,as=p),$l(t,a)},i}function 
Ns(t,a,i){i=hr(-1,i),i.tag=3;var p=t.type.getDerivedStateFromError;if(typeof 
p=="function"){var _=a.value;i.payload=function(){return 
p(_)},i.callback=function(){$l(t,a)}}var [...]
-`,"\\r":"\r","\\t":"   
"},f=/^[\da-f]{4}$/i,v=/^[\u0000-\u001F]$/;d.exports=function(I,g){for(var 
x=!0,E="";g<I.length;){var k=l(I,g);if(k=="\\"){var 
w=c(I,g,g+2);if(r(h,w))E+=h[w],g+=2;else if(w=="\\u"){g+=2;var 
A=c(I,g,g+4);if(!y(f,A))throw o("Bad Unicode escape at: 
"+g);E+=s(u(A,16)),g+=4}else throw o('Unknown escape sequence: "'+w+'"')}else 
if(k=='"'){x=!1,g++;break}else{if(y(v,k))throw o("Bad control character in 
string literal at: "+g);E+=k,g++}}if(x)throw o("Unterminated string at:  [...]
+`+P.stack}return{value:t,source:a,stack:_}}function 
$l(t,a){try{console.error(a.value)}catch(i){setTimeout(function(){throw 
i})}}var Fc=typeof WeakMap=="function"?WeakMap:Map;function 
Ls(t,a,i){i=Tr(-1,i),i.tag=3,i.payload={element:null};var p=a.value;return 
i.callback=function(){bl||(bl=!0,as=p),$l(t,a)},i}function 
Ns(t,a,i){i=Tr(-1,i),i.tag=3;var p=t.type.getDerivedStateFromError;if(typeof 
p=="function"){var _=a.value;i.payload=function(){return 
p(_)},i.callback=function(){$l(t,a)}}var [...]
+`,"\\r":"\r","\\t":"   
"},f=/^[\da-f]{4}$/i,v=/^[\u0000-\u001F]$/;d.exports=function(I,g){for(var 
x=!0,E="";g<I.length;){var k=l(I,g);if(k=="\\"){var 
w=c(I,g,g+2);if(r(y,w))E+=y[w],g+=2;else if(w=="\\u"){g+=2;var 
A=c(I,g,g+4);if(!h(f,A))throw o("Bad Unicode escape at: 
"+g);E+=s(u(A,16)),g+=4}else throw o('Unknown escape sequence: "'+w+'"')}else 
if(k=='"'){x=!1,g++;break}else{if(h(v,k))throw o("Bad control character in 
string literal at: "+g);E+=k,g++}}if(x)throw o("Unterminated string at:  [...]
 
`;break;case"v":C+="\v";break;case"f":C+="\f";break;case"r":C+="\r";break;case"\r":T<A.length&&s(A,T)===`
 `&&++T;case`
-`:case"\u2028":case"\u2029":break;case"0":if(E(A,T))return;C+="\0";break;case"x":if(O=k(A,T,T+2),O===-1)return;T+=2,C+=o(O);break;case"u":if(T<A.length&&s(A,T)==="{"){var
 G=c(A,"}",++T);if(G===-1)return;O=k(A,T,G),T=G+1}else 
O=k(A,T,T+4),T+=4;if(O===-1||O>1114111)return;C+=u(O);break;default:if(E(M,0))return;C+=M}R=T}return
 C+y(A,R)}},53111:function(d,m,e){var 
n=e(1702),r=e(84488),o=e(41340),u=e(81361),s=n("".replace),l=RegExp("^["+u+"]+"),c=RegExp("(^|[^"+u+"])["+u+"]+$"),y=function(h){
 [...]
-\v\f\r 
\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},89191:function(d,m,e){"use
 strict";var 
n=e(35005),r=e(92597),o=e(68880),u=e(47976),s=e(27674),l=e(99920),c=e(2626),y=e(79587),h=e(56277),f=e(58340),v=e(5392),I=e(19781),g=e(31913);d.exports=function(x,E,k,w){var
 
A="stackTraceLimit",C=w?2:1,R=x.split("."),T=R[R.length-1],O=n.apply(null,R);if(O){var
 M=O.prototype;if(!g&&r(M,"cause")&&delete M.cause,!k)return O;var G=n(" [...]
+`:case"\u2028":case"\u2029":break;case"0":if(E(A,T))return;C+="\0";break;case"x":if(O=k(A,T,T+2),O===-1)return;T+=2,C+=o(O);break;case"u":if(T<A.length&&s(A,T)==="{"){var
 H=c(A,"}",++T);if(H===-1)return;O=k(A,T,H),T=H+1}else 
O=k(A,T,T+4),T+=4;if(O===-1||O>1114111)return;C+=u(O);break;default:if(E(M,0))return;C+=M}R=T}return
 C+h(A,R)}},53111:function(d,m,e){var 
n=e(1702),r=e(84488),o=e(41340),u=e(81361),s=n("".replace),l=RegExp("^["+u+"]+"),c=RegExp("(^|[^"+u+"])["+u+"]+$"),h=function(y){
 [...]
+\v\f\r 
\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`},89191:function(d,m,e){"use
 strict";var 
n=e(35005),r=e(92597),o=e(68880),u=e(47976),s=e(27674),l=e(99920),c=e(2626),h=e(79587),y=e(56277),f=e(58340),v=e(5392),I=e(19781),g=e(31913);d.exports=function(x,E,k,w){var
 
A="stackTraceLimit",C=w?2:1,R=x.split("."),T=R[R.length-1],O=n.apply(null,R);if(O){var
 M=O.prototype;if(!g&&r(M,"cause")&&delete M.cause,!k)return O;var H=n(" [...]
 Try polyfilling it using "@formatjs/intl-pluralrules"
-`,r.jK.MISSING_INTL_API,g);var 
ne=h.getPluralRules(y,{type:w.pluralType}).select(C-(w.offset||0));K=w.options[ne]||w.options.other}if(!K)throw
 new 
r.C8(w.value,C,Object.keys(w.options),g);x.push.apply(x,l(K.value,y,h,f,v,C-(w.offset||0)));continue}}return
 u(x)}},41143:function(d){"use strict";var 
m=function(e,n,r,o,u,s,l,c){if(!e){var y;if(n===void 0)y=new Error("Minified 
exception occurred; use the non-minified dev environment for the full error 
message and additional helpful warnings." [...]
+`,r.jK.MISSING_INTL_API,g);var 
ae=y.getPluralRules(h,{type:w.pluralType}).select(C-(w.offset||0));K=w.options[ae]||w.options.other}if(!K)throw
 new 
r.C8(w.value,C,Object.keys(w.options),g);x.push.apply(x,l(K.value,h,y,f,v,C-(w.offset||0)));continue}}return
 u(x)}},41143:function(d){"use strict";var 
m=function(e,n,r,o,u,s,l,c){if(!e){var h;if(n===void 0)h=new Error("Minified 
exception occurred; use the non-minified dev environment for the full error 
message and additional helpful warnings." [...]
 ?|
-|(?![\\s\\S])))+`,"m"),alias:l,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(u)[0]}}}}),Object.defineProperty(r.languages.diff,"PREFIXES",{value:o})}(n),n.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$
 git 
.*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit 
\w{40}$/m},n.languages.go=n.languages.extend("clike",{stri [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}d.exports=m,d.exports.__esModule=!0,d.exports.default=d.exports},97857:function(d,m,e){var
 n=e(9783);function r(u,s){var 
l=Object.keys(u);if(Object.getOwnPropertySymbols){var 
c=Object.getOwnPropertySymbols(u);s&&(c=c.filter(function(y){return 
Object.getOwnPropertyDescriptor(u,y).enumerable})),l.push.apply(l,c)}return 
l}function o(u){for(var s=1;s<arguments.length;s++){var 
l=arguments[s]!=null?arguments[s [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}},1413:function(d,m,e){"use strict";e.d(m,{Z:function(){return 
o}});var n=e(4942);function r(u,s){var 
l=Object.keys(u);if(Object.getOwnPropertySymbols){var 
c=Object.getOwnPropertySymbols(u);s&&(c=c.filter(function(y){return 
Object.getOwnPropertyDescriptor(u,y).enumerable})),l.push.apply(l,c)}return 
l}function o(u){for(var s=1;s<arguments.length;s++){var 
l=arguments[s]!=null?arguments[s]:{};s%2?r(Object(l [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function l(c){return 
r(c)||(0,o.Z)(c)||(0,u.Z)(c)||s()}},83997:function(d,m,e){"use 
strict";e.d(m,{Z:function(){return o}});var n=e(71002);function 
r(u,s){if((0,n.Z)(u)!="object"||!u)return u;var 
l=u[Symbol.toPrimitive];if(l!==void 0){var 
c=l.call(u,s||"default");if((0,n.Z)(c)!="object")return c;throw new 
TypeError("@@toPrimitive must return a primitive 
value.")}return(s==="string"?String:Number)(u)}func [...]
-(`+v+")");I.code="CSS_CHUNK_LOAD_FAILED",I.type=f,I.request=v,c.parentNode.removeChild(c),l(I)}};return
 
c.onerror=c.onload=y,c.href=o,u?u.parentNode.insertBefore(c,u.nextSibling):document.head.appendChild(c),c},m=function(r,o){for(var
 u=document.getElementsByTagName("link"),s=0;s<u.length;s++){var 
l=u[s],c=l.getAttribute("data-href")||l.getAttribute("href");if(l.rel==="stylesheet"&&(c===r||c===o))return
 l}for(var y=document.getElementsByTagName("style"),s=0;s<y.length;s++){var 
l=y[s],c=l [...]
-(`+h+": 
"+f+")",l.name="ChunkLoadError",l.type=h,l.request=f,o[1](l)}};__webpack_require__.l(s,c,"chunk-"+n,n)}};var
 m=function(n,r){var o=r[0],u=r[1],s=r[2],l,c,y=0;if(o.some(function(f){return 
d[f]!==0})){for(l in 
u)__webpack_require__.o(u,l)&&(__webpack_require__.m[l]=u[l]);if(s)var 
h=s(__webpack_require__)}for(n&&n(r);y<o.length;y++)c=o[y],__webpack_require__.o(d,c)&&d[c]&&d[c][0](),d[c]=0},e=self.webpackChunkfury_site=self.webpackChunkfury_site||[];e.forEach(m.bind(null,0)),e.push=m
 [...]
-In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Ar(L,F){return ra(L)||Ua(L,F)||er(L,F)||Zr()}var 
xt=__webpack_require__(62435),lo=__webpack_require__(6915),Dr=__webpack_require__(20057),jo=__webpack_require__(34162);function
 Zo(L){var F=L.id,te=L.basename,ae=L.cb,Ie=new 
URLSearchParams({route:F,url:window.location.href}).toString(),ge="".concat(nu(te),"__serverLoader?").concat(Ie);fetch(ge,{credentials:"include"}).then(function(ke){return
 ke. [...]
+|(?![\\s\\S])))+`,"m"),alias:l,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(u)[0]}}}}),Object.defineProperty(r.languages.diff,"PREFIXES",{value:o})}(n),n.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$
 git 
.*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit 
\w{40}$/m},n.languages.go=n.languages.extend("clike",{stri [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}d.exports=m,d.exports.__esModule=!0,d.exports.default=d.exports},97857:function(d,m,e){var
 n=e(9783);function r(u,s){var 
l=Object.keys(u);if(Object.getOwnPropertySymbols){var 
c=Object.getOwnPropertySymbols(u);s&&(c=c.filter(function(h){return 
Object.getOwnPropertyDescriptor(u,h).enumerable})),l.push.apply(l,c)}return 
l}function o(u){for(var s=1;s<arguments.length;s++){var 
l=arguments[s]!=null?arguments[s [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}},1413:function(d,m,e){"use strict";e.d(m,{Z:function(){return 
o}});var n=e(4942);function r(u,s){var 
l=Object.keys(u);if(Object.getOwnPropertySymbols){var 
c=Object.getOwnPropertySymbols(u);s&&(c=c.filter(function(h){return 
Object.getOwnPropertyDescriptor(u,h).enumerable})),l.push.apply(l,c)}return 
l}function o(u){for(var s=1;s<arguments.length;s++){var 
l=arguments[s]!=null?arguments[s]:{};s%2?r(Object(l [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function l(c){return 
r(c)||(0,o.Z)(c)||(0,u.Z)(c)||s()}},83997:function(d,m,e){"use 
strict";e.d(m,{Z:function(){return o}});var n=e(71002);function 
r(u,s){if((0,n.Z)(u)!="object"||!u)return u;var 
l=u[Symbol.toPrimitive];if(l!==void 0){var 
c=l.call(u,s||"default");if((0,n.Z)(c)!="object")return c;throw new 
TypeError("@@toPrimitive must return a primitive 
value.")}return(s==="string"?String:Number)(u)}func [...]
+(`+v+")");I.code="CSS_CHUNK_LOAD_FAILED",I.type=f,I.request=v,c.parentNode.removeChild(c),l(I)}};return
 
c.onerror=c.onload=h,c.href=o,u?u.parentNode.insertBefore(c,u.nextSibling):document.head.appendChild(c),c},m=function(r,o){for(var
 u=document.getElementsByTagName("link"),s=0;s<u.length;s++){var 
l=u[s],c=l.getAttribute("data-href")||l.getAttribute("href");if(l.rel==="stylesheet"&&(c===r||c===o))return
 l}for(var h=document.getElementsByTagName("style"),s=0;s<h.length;s++){var 
l=h[s],c=l [...]
+(`+y+": 
"+f+")",l.name="ChunkLoadError",l.type=y,l.request=f,o[1](l)}};__webpack_require__.l(s,c,"chunk-"+n,n)}};var
 m=function(n,r){var o=r[0],u=r[1],s=r[2],l,c,h=0;if(o.some(function(f){return 
d[f]!==0})){for(l in 
u)__webpack_require__.o(u,l)&&(__webpack_require__.m[l]=u[l]);if(s)var 
y=s(__webpack_require__)}for(n&&n(r);h<o.length;h++)c=o[h],__webpack_require__.o(d,c)&&d[c]&&d[c][0](),d[c]=0},e=self.webpackChunkfury_site=self.webpackChunkfury_site||[];e.forEach(m.bind(null,0)),e.push=m
 [...]
+In order to be iterable, non-array objects must have a [Symbol.iterator]() 
method.`)}function Rr(nt,D){return sa(nt)||Ja(nt,D)||er(nt,D)||Zr()}var 
wt=__webpack_require__(62435),vo=__webpack_require__(6915),Dr=__webpack_require__(20057),Lo=__webpack_require__(34162);function
 Zo(nt){var D=nt.id,F=nt.basename,G=nt.cb,ce=new 
URLSearchParams({route:D,url:window.location.href}).toString(),ue="".concat(lu(F),"__serverLoader?").concat(ce);fetch(ue,{credentials:"include"}).then(function(Ie){retur
 [...]
diff --git a/zh/blog/fury_0_1_0_release/index.html 
b/zh/blog/fury_0_1_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_1_0_release/index.html
+++ b/zh/blog/fury_0_1_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_1_1_release/index.html 
b/zh/blog/fury_0_1_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_1_1_release/index.html
+++ b/zh/blog/fury_0_1_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_1_2_release/index.html 
b/zh/blog/fury_0_1_2_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_1_2_release/index.html
+++ b/zh/blog/fury_0_1_2_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_2_0_release/index.html 
b/zh/blog/fury_0_2_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_2_0_release/index.html
+++ b/zh/blog/fury_0_2_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_2_1_release/index.html 
b/zh/blog/fury_0_2_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_2_1_release/index.html
+++ b/zh/blog/fury_0_2_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_3_0_release/index.html 
b/zh/blog/fury_0_3_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_3_0_release/index.html
+++ b/zh/blog/fury_0_3_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_3_1_release/index.html 
b/zh/blog/fury_0_3_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_3_1_release/index.html
+++ b/zh/blog/fury_0_3_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_4_0_release/index.html 
b/zh/blog/fury_0_4_0_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_4_0_release/index.html
+++ b/zh/blog/fury_0_4_0_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/fury_0_4_1_release/index.html 
b/zh/blog/fury_0_4_1_release/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/fury_0_4_1_release/index.html
+++ b/zh/blog/fury_0_4_1_release/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git 
a/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
 
b/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
index e71e1a9..f6537e9 100644
--- 
a/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
+++ 
b/zh/blog/fury_blazing_fast_multiple_language_serialization_framework/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/blog/list/index.html b/zh/blog/list/index.html
index e71e1a9..f6537e9 100644
--- a/zh/blog/list/index.html
+++ b/zh/blog/list/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/guide/java_object_graph_guide/index.html 
b/zh/guide/java_object_graph_guide/index.html
index e71e1a9..f6537e9 100644
--- a/zh/guide/java_object_graph_guide/index.html
+++ b/zh/guide/java_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/guide/row_format_guide/index.html 
b/zh/guide/row_format_guide/index.html
index e71e1a9..f6537e9 100644
--- a/zh/guide/row_format_guide/index.html
+++ b/zh/guide/row_format_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/guide/xlang_object_graph_guide/index.html 
b/zh/guide/xlang_object_graph_guide/index.html
index e71e1a9..f6537e9 100644
--- a/zh/guide/xlang_object_graph_guide/index.html
+++ b/zh/guide/xlang_object_graph_guide/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/introduction/benchmark/index.html 
b/zh/introduction/benchmark/index.html
index e71e1a9..f6537e9 100644
--- a/zh/introduction/benchmark/index.html
+++ b/zh/introduction/benchmark/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/introduction/features/index.html 
b/zh/introduction/features/index.html
index e71e1a9..f6537e9 100644
--- a/zh/introduction/features/index.html
+++ b/zh/introduction/features/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/introduction/introduction/index.html 
b/zh/introduction/introduction/index.html
index e71e1a9..f6537e9 100644
--- a/zh/introduction/introduction/index.html
+++ b/zh/introduction/introduction/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/start/install/index.html b/zh/start/install/index.html
index e71e1a9..f6537e9 100644
--- a/zh/start/install/index.html
+++ b/zh/start/install/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/zh/start/usage/index.html b/zh/start/usage/index.html
index e71e1a9..f6537e9 100644
--- a/zh/start/usage/index.html
+++ b/zh/start/usage/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file
diff --git a/~demos/:id/index.html b/~demos/:id/index.html
index e71e1a9..f6537e9 100644
--- a/~demos/:id/index.html
+++ b/~demos/:id/index.html
@@ -9,6 +9,6 @@
 </head>
 <body>
 <div id="root"></div>
-<script src="/umi.51f73f40.js"></script>
+<script src="/umi.39c9eede.js"></script>
 
 </body></html>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@fury.apache.org
For additional commands, e-mail: commits-h...@fury.apache.org

Reply via email to