react-toolkits 2.24.17 → 2.24.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # react-toolkits
2
2
 
3
+ ## 2.24.18
4
+
5
+ ### Patch Changes
6
+
7
+ - d000cf3: fix(signIn): adjust margin for improved layout on sign-in page
8
+
3
9
  ## 2.24.17
4
10
 
5
11
  ### Patch Changes
package/lib/index.css CHANGED
@@ -1 +1 @@
1
- @layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-inset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--font-weight-medium:500;--font-weight-bold:700;--leading-tight:1.25;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}table{border-collapse:collapse;border-color:inherit;text-indent:0}menu{list-style:none}img,object,svg{display:block;vertical-align:middle}img{height:auto;max-width:100%}button,select{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-6{top:calc(var(--spacing)*6)}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.right-16{right:calc(var(--spacing)*16)}.left-14{left:calc(var(--spacing)*14)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-12{margin-block:calc(var(--spacing)*12)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-10{height:calc(var(--spacing)*10)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.w-screen{width:100vw}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-grow-0{flex-grow:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-600{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-36{padding-inline:calc(var(--spacing)*36)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{font-weight:var(--font-weight-bold)}.font-medium{font-weight:var(--font-weight-medium)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:from-blue-600:hover{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-blue-500:hover{--tw-gradient-to:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
1
+ @layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-inset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root{--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-800:oklch(27.8% .033 256.848);--color-white:#fff;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-xl:1.25rem;--text-xl--line-height:1.4;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--font-weight-medium:500;--font-weight-bold:700;--leading-tight:1.25;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{border:0 solid;box-sizing:border-box;margin:0;padding:0}::file-selector-button{border:0 solid;box-sizing:border-box;margin:0;padding:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}table{border-collapse:collapse;border-color:inherit;text-indent:0}menu{list-style:none}img,object,svg{display:block;vertical-align:middle}img{height:auto;max-width:100%}button,select{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}::file-selector-button{margin-inline-end:4px}::-moz-placeholder{opacity:1}::placeholder{opacity:1}@supports (not (-webkit-appearance:-apple-pay-button)) or (contain-intrinsic-size:1px){::-moz-placeholder{color:currentColor}::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::-moz-placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.top-0{top:calc(var(--spacing)*0)}.top-6{top:calc(var(--spacing)*6)}.top-16{top:calc(var(--spacing)*16)}.right-0{right:calc(var(--spacing)*0)}.right-16{right:calc(var(--spacing)*16)}.left-14{left:calc(var(--spacing)*14)}.z-10{z-index:10}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-4{margin-inline:calc(var(--spacing)*4)}.my-12{margin-block:calc(var(--spacing)*12)}.mt-2{margin-top:calc(var(--spacing)*2)}.mr-6{margin-right:calc(var(--spacing)*6)}.mb-0{margin-bottom:calc(var(--spacing)*0)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.ml-4{margin-left:calc(var(--spacing)*4)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.h-10{height:calc(var(--spacing)*10)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.w-screen{width:100vw}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-grow-0{flex-grow:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:var(--radius-lg)}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab}.bg-gradient-to-br,.bg-gradient-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab}.from-gray-800{--tw-gradient-from:var(--color-gray-800);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.from-white{--tw-gradient-from:var(--color-white);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.to-gray-600{--tw-gradient-to:var(--color-gray-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.object-contain{-o-object-fit:contain;object-fit:contain}.p-1{padding:calc(var(--spacing)*1)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-36{padding-inline:calc(var(--spacing)*36)}.py-2{padding-block:calc(var(--spacing)*2)}.text-center{text-align:center}.text-end{text-align:end}.text-start{text-align:start}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{font-weight:var(--font-weight-bold)}.font-medium{font-weight:var(--font-weight-medium)}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.text-gray-500{color:var(--color-gray-500)}.text-transparent{color:#0000}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,visibility,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.hover\:bg-white\/50:hover{background-color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/50:hover{background-color:color-mix(in oklab,var(--color-white)50%,transparent)}}.hover\:from-blue-600:hover{--tw-gradient-from:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:to-blue-500:hover{--tw-gradient-to:var(--color-blue-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.hover\:text-blue-600:hover{color:var(--color-blue-600)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-sm:hover{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
package/lib/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import {a as a$3,e}from'./chunk-2OEQYX3O.js';export{a as FilterFormWrapper,b as Highlight,e as QueryList,d as QueryListAction,c as useQueryListStore}from'./chunk-2OEQYX3O.js';export{a as AuthButton,d as useFormModal,c as useModal,b as useModalStore}from'./chunk-Y3RYS76E.js';import {a as a$1}from'./chunk-4XO7JAVX.js';import {a as a$2,c}from'./chunk-ZFIKMQD3.js';export{a as useAuth,c as useGames,b as useMenuList}from'./chunk-ZFIKMQD3.js';import {i,a,j,l,b,d,m}from'./chunk-RPEFI7RP.js';export{e as APP_ID_HEADER,f as FRONTEND_ROUTE_PREFIX,g as PermissionVersion,d as SSO_URL,k as ToolkitsProvider,h as WILDCARD,a as createVisibilityStore,b as generateId,c as mixedStorage,i as useToolkitsStore,j as withContext}from'./chunk-RPEFI7RP.js';import {PlusOutlined,LogoutOutlined,UserOutlined,MenuUnfoldOutlined,MenuFoldOutlined}from'@ant-design/icons';import*as bt from'antd';import {Spin,Menu,Form,Result,Table,Button,Drawer,Card,Input,Select,theme,Space,Tag,Typography,Empty,Dropdown,Layout,Divider,Alert}from'antd';import {forwardRef,memo,useRef,useMemo,useEffect,lazy,useState,useImperativeHandle,cloneElement,useCallback,Fragment as Fragment$1,Suspense}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useInfiniteQuery,useQuery,useQueryClient}from'@tanstack/react-query';import {isEqual}from'lodash-es';import {create}from'zustand';import {persist,createJSONStorage,devtools,subscribeWithSelector}from'zustand/middleware';import {Link,useLocation,Routes,Route,Navigate,useNavigate}from'react-router-dom';import qe from'dayjs';var O2=a=>{let{initialTags:s,addable:t,removable:e,addCallback:r,removeCallback:o}=a,{t:c}=a$1(),{token:i}=theme.useToken(),[n,p]=useState([]),[m,l]=useState(!1),[y,f]=useState(""),[g,h]=useState(-1),[x,_]=useState(""),b=useRef(null),F=useRef(null);useEffect(()=>{p(s??[]);},[s]),useEffect(()=>{m&&b.current?.focus();},[m]),useEffect(()=>{F.current?.focus();},[y]);let C=async d=>{if(await o?.(d)){let D=n.filter(A=>A!==d);p(D);}},k=()=>{l(!0);},E=d=>{f(d.target.value);},R=async()=>{y&&n.indexOf(y)===-1&&await r?.(y)&&p([...n,y]),l(!1),f("");},V=d=>{_(d.target.value);},B=()=>{let d=[...n];d[g]=x,p(d),h(-1),f("");},G={width:78,verticalAlign:"top"},h1={background:i.colorBgContainer,borderStyle:"dashed"};return jsxs(Space,{wrap:!0,size:[0,8],children:[jsx(Space,{wrap:!0,size:[0,8],children:n.map((d,N)=>g===N?jsx(Input,{ref:F,size:"small",style:G,value:x,onChange:V,onBlur:B,onPressEnter:B},d):jsx(Tag,{closable:e,style:{userSelect:"none"},onClose:async D=>{D.preventDefault(),await C(d);},children:jsx("span",{onDoubleClick:D=>{N!==0&&(h(N),_(d),D.preventDefault());},children:d})},d))}),t&&(m?jsx(Input,{ref:b,type:"text",size:"small",style:G,value:y,onChange:E,onBlur:R,onPressEnter:R}):jsxs(Tag,{style:h1,onClick:k,children:[jsx(PlusOutlined,{}),"\xA0",c("global.add")]}))]})},U2=O2;var K2=a=>{let{children:s,...t}=a,[e,r]=useState(!1);return jsx(Typography.Paragraph,{...t,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:e,onExpand:(o,c)=>{r(c.expanded);}},children:s})},n1=K2;var s2=Object.freeze({page:0,filters:Object.freeze({})}),Z2=()=>create()(devtools(subscribeWithSelector((a,s)=>({instances:new Map,registerInstance(t,e,r,o,c){a(i=>{let n=i.instances.get(t);if(n){if(n.refetch!==o||n.fetchNextPage!==c){let l={...n,refetch:o,fetchNextPage:c},y=new Map(i.instances);return y.set(t,l),{instances:y}}return i}let p={id:t,url:e,queryKey:r,payload:s2,refetch:o,fetchNextPage:c},m=new Map(i.instances);return m.set(t,p),{instances:m}});},unregisterInstance(t){a(e=>{let r=new Map(e.instances);return r.delete(t)?{instances:r}:e});},updatePayload(t,e){a(r=>{let o=r.instances.get(t);if(!o)return r;let c={...o.payload,...e};if(!isEqual(o.payload,c)){let i={...o,payload:c},n=new Map(r.instances);return n.set(t,i),{instances:n}}return r});},getPayload(t){return s().instances.get(t)?.payload??s2},async refetch(t,e){let r=s().instances.get(t);if(!r){console.warn(`InfiniteList instance with id "${t}" not found`);return}let o=!1;if(e){let c=r.payload,i={...c,...e};isEqual(c,i)||(s().updatePayload(t,e),o=!0);}if(!o)try{await r.refetch();}catch(c){throw console.error(`Failed to refetch InfiniteList instance "${t}":`,c),c}},async fetchNextPage(t){let e=s().instances.get(t);if(!e){console.warn(`InfiniteList instance with id "${t}" not found`);return}try{await e.fetchNextPage();}catch(r){throw console.error(`Failed to fetch next page for InfiniteList instance "${t}":`,r),r}},getInstance(t){return s().instances.get(t)},getAllInstances(){return Array.from(s().instances.values())}})),{name:"infinite-list-store"})),X2=Z2(),z=X2;var ct=5*60*1e3,nt=30*1e3,it={display:"flex",justifyContent:"center",alignItems:"center",height:300},lt=0,pt=()=>`infiniteList_${Date.now()}_${++lt}`,dt=(a,s)=>{let e={refreshInterval:0,initialPageParam:0,...a,dataAdapter:{...{items:u=>u?u.flatMap(S=>S?.list||S||[]):[],hasMore:u=>{if(!u)return !1;let S=u;return S?.hasMore||S?.has_more||!1},nextPageParam:(u,S,H)=>(q=>{if(!q)return !1;let X=q;return X?.hasMore||X?.has_more||!1})(u)?S.length:void 0},...a.dataAdapter}},{identifier:r,code:o,buttonsAlign:c,showReset:i,refreshInterval:n,request:p,tableExtra:m,renderForm:l$1,afterSuccess:y,afterError:f,dataAdapter:g,initialPageParam:h,footer:x,form:_,...b}=e,{t:F}=a$1(),[C]=Form.useForm(_),[k,E]=useState(!1),R=useRef(!1),V=useRef(3),B=l(),{data:G,isLoading:h1}=a$2(o),d=useMemo(()=>r||pt(),[r]),N=z(u=>u.getPayload(d)),D=useMemo(()=>C,[C]),{url:A,method:G2="GET",body:u1,params:y1,headers:e1,cacheTime:D2=ct,staleTime:z2=nt}=p,g1=useMemo(()=>typeof e1=="function"?e1(D):e1,[e1,D]),x1=useMemo(()=>["infiniteList",A,d,G,k,N,g1],[A,d,G,k,N,g1]),{data:a1,fetchNextPage:_1,hasNextPage:A1,isFetchingNextPage:O1,refetch:U1,isFetching:B1}=useInfiniteQuery({queryKey:x1,queryFn:async({pageParam:u=h})=>{try{let S=N,H=typeof y1=="function"?y1(S,u):y1,Z=typeof u1=="function"?u1(S,u):u1,q={method:G2,searchParams:H,headers:g1};Z&&(Z instanceof FormData?q.body=Z:q.json=Z);let X=await B.request({url:A,...q});return R.current=!0,y?.(V.current,D,[X]),X}catch(S){let H=S instanceof Error?S:new Error(String(S));throw f?.(H,V.current,D),H}},initialPageParam:h,getNextPageParam:(u,S)=>g?.nextPageParam?.(u,S,h),enabled:G&&k,retry:(u,S)=>!(u>=3||S?.message?.includes("401")),retryDelay:u=>Math.min(1e3*2**u,3e4),refetchOnWindowFocus:!1,refetchInterval:R.current?n:0,gcTime:D2,staleTime:z2});useEffect(()=>(z.getState().registerInstance(d,A,x1,U1,_1),()=>{z.getState().unregisterInstance(d);}),[d,A,x1,U1,_1]);let s1=g?.items?.(a1?.pages,D),S1=O1,q1=!A1,k2=!s1||s1.length===0,K1=async()=>{V.current=0;let u=await C.getFieldsValue();try{await C.validateFields(),E(!0),z.getState().refetch(d,{page:0,filters:u});}catch{E(!1);}},L2=()=>{V.current=2,_1();},E2=async()=>{V.current=1;try{C.resetFields();let u=await C.getFieldsValue();z.getState().updatePayload(d,{page:0,filters:u}),await C.validateFields({validateOnly:!0}),z.getState().refetch(d);}catch{}};if(useEffect(()=>{setTimeout(()=>{G&&C.validateFields({validateOnly:!0}).then(u=>{E(!0),z.getState().updatePayload(d,{page:0,filters:u});}).catch(()=>{E(!1);});},300);},[G,C,d]),useImperativeHandle(s,()=>({data:a1?.pages,dataSource:s1,form:C,refetch:()=>z.getState().refetch(d),fetchNextPage:()=>z.getState().fetchNextPage(d),hasNextPage:!!A1,isFetchingNextPage:O1})),h1)return jsx(Spin,{style:it});if(!G)return jsx(Result,{status:403,subTitle:F("global.noEntitlement")});let V2=x&&(()=>x(a1?.pages)),T2=()=>typeof m=="function"?m(D,a1?.pages):m,N2=typeof l$1=="function"?jsx(a$3,{showReset:i,buttonsAlign:c,isConfirming:B1,onReset:E2,onConfirm:K1,children:cloneElement(l$1(C),{onKeyUp:u=>{u.key==="Enter"&&K1();}})}):jsx(Form,{form:C});return jsxs(Fragment,{children:[N2,T2(),jsx("div",{style:{minHeight:"400px"},children:jsx(Table,{...b,dataSource:s1,loading:B1,pagination:!1,footer:V2})}),!k2&&jsx(Button,{block:!0,loading:S1,type:"link",htmlType:"button",disabled:S1||q1,onClick:L2,children:F(S1?"InfiniteList.loadingText":q1?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]})},mt=forwardRef(dt),ft=mt;var n2=create()(persist((a,s)=>({openKeys:[],setOpenKeys:t=>{let e=s();(e.openKeys.length!==t.length||!e.openKeys.every((r,o)=>r===t[o]))&&a({openKeys:t});},selectedKeys:[],setSelectedKeys:t=>{let e=s();(e.selectedKeys.length!==t.length||!e.selectedKeys.every((r,o)=>r===t[o]))&&a({selectedKeys:t});}}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:a=>({openKeys:a.openKeys,selectedKeys:a.selectedKeys}),skipHydration:!1,version:1}));var i2=memo(({to:a,children:s})=>jsx(Link,{to:a,children:s}));i2.displayName="MemoizedLink";function C1(a){let s=[];if(a)for(let t=0;t<a.length;t++)if(a[t]===null||a[t].type==="divider")s[t]=a[t];else if(a[t].children){let{children:e,...r}=a[t];s[t]={...r,children:C1(e)};}else {let{route:e,label:r,...o}=a[t],c=e?jsx(i2,{to:e,children:r}):r;s[t]={...o,label:c};}return s}function v1(a,s=[],t=[]){for(let e of a){let r=e?.children;if(Array.isArray(r)){let o=e.type!=="group"&&e.key?[...t,e.key]:t;v1(r,s,o);}else e&&s.push(Object.assign(e,{keypath:t}));}return s}var Pt=memo(function(s){let{items:t=[],theme:e,loading:r}=s,o=useLocation(),c=useRef(),i=useRef(),n=useRef(),p=useMemo(()=>{let h=v1(t);return c.current=h,h},[t]),m=useMemo(()=>{let h=C1(t);return i.current=h,h},[t]),{openKeys:l,selectedKeys:y,setOpenKeys:f,setSelectedKeys:g}=n2();return useEffect(()=>{if(n.current===o.pathname)return;n.current=o.pathname;let h=p.find(x=>o.pathname===x.route);if(h){let x=h.key,_=h.keypath;y[0]!==x&&g([x]);let b=_.filter(F=>!l.includes(F));b.length>0&&f([...l,...b]);}},[p,o.pathname,y,l,g,f]),r?jsx("div",{className:"flex justify-center items-center",style:{height:"calc(100vh - 64px)"},children:jsx(Spin,{})}):jsx(Menu,{theme:e,style:{borderRight:"none"},items:m,mode:"inline",openKeys:l,selectedKeys:y,onOpenChange:f})}),b1=Pt;var {Spin:Gt}=bt,Dt=({children:a})=>{let{permissionVersion:s,appId:t,isGlobal:e}=i(c=>c),{isLoading:r}=c(),{t:o}=a$1();return r?jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:400},children:jsx(Gt,{})}):s==="v1"||e?a:t?jsx(Fragment$1,{children:a},t):jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:o("RequireGame.description")})},w1=Dt;var Tt=()=>{let{t:a}=a$1(),s=useNavigate(),{user:t,loginPath:e,clear:r}=i(),o=()=>{r(),s(e);},c=p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),o());},i$1=p=>{(p.key==="Enter"||p.key===" ")&&p.preventDefault();},n=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{role:"button",tabIndex:0,onClick:o,onKeyDown:c,children:a("UserWidget.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:!0,items:n},placement:"bottomRight",children:jsx("a",{role:"button",tabIndex:0,onClick:p=>{p.preventDefault();},onKeyDown:i$1,children:jsxs(Space,{align:"center",children:[jsx("span",{children:t?.authorityId}),jsx(UserOutlined,{style:{fontSize:"16px"}})]})})})})},G1=Tt;var{Text:qt}=Typography,Kt=a=>{let{filter:s,options:t}=a,{t:e}=a$1(),{gameApiV2:r,appId:o,setAppId:c$1}=i(),{data:i$1,isLoading:n}=c(),p=useQueryClient(),m=useMemo(()=>i$1?.filter(f=>s?.(f)??!0),[i$1,s]),l=useMemo(()=>typeof t=="function"?t(m):m?.map(f=>({label:f.name,value:r?f.game_id:f.id})),[t,m,r]),y=f=>{p.invalidateQueries({predicate:g=>{let h=g.queryKey;return !h.includes("/api/game/list")&&!h.includes("/api/usystem/game/all")}}),c$1(f);};return useEffect(()=>{n||(l&&l.length>0?o&&l.some(g=>String(g.value)===String(o))||c$1(l[0]?.value??void 0):(l===void 0||l.length===0)&&c$1(void 0));},[l,n]),jsxs(Space,{children:[jsx(qt,{children:e("GameSelect.label")}),jsx(Select,{showSearch:!0,optionFilterProp:"label",value:o,placeholder:e("GameSelect.placeholder"),loading:n,style:{width:"250px"},options:l,onChange:y})]})},h2=Kt;var u2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAydpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LmIwZjhiZTkwLCAyMDIxLzEyLzE1LTIxOjI1OjE1ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjMuMiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMEY2MEZENUIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMEY2MEZENkIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwRjYwRkQzQjEwRTExRUNBREU4RjM1RkZGNDY1RjI0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwRjYwRkQ0QjEwRTExRUNBREU4RjM1RkZGNDY1RjI0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K5OQMAAAImdJREFUeNrs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";var jt=a=>jsx("img",{src:u2,alt:"logo",...a}),J=jt;var W="all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)",g2=memo(({title:a,subtitle:s})=>{let{mainPagePath:t,collapsed:e}=i();return jsxs("div",{className:"px-6 py-2 font-bold relative bg-gradient-to-r from-white to-gray-50/30",style:{height:"auto",display:"flex",flexDirection:"column",justifyContent:"center",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)"},children:[jsxs("div",{className:`flex items-center w-full ${e?"justify-center":""}`,children:[jsx(Link,{to:t,className:"hover:opacity-80 transition-all duration-300 ease-out block rounded-lg p-1 hover:bg-white/50 hover:shadow-sm",style:{transition:W,opacity:e?.8:1},children:jsx(J,{width:36,style:{objectFit:"contain",display:"block",filter:"drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05))",transition:W}})}),a&&jsx("div",{className:"ml-4 overflow-hidden min-w-0",style:{transition:W,opacity:e?0:1,width:e?"0px":"auto",marginLeft:e?"0px":"16px",transform:e?"translateX(-8px)":"translateX(0)"},children:jsx(Link,{to:t,className:"text-xl leading-tight hover:text-blue-600 transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block bg-gradient-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent hover:from-blue-600 hover:to-blue-500",title:a,style:{letterSpacing:"0.02em",textShadow:"0 1px 2px rgba(0, 0, 0, 0.05)"},children:a})})]}),jsx("div",{className:"w-full mt-2 overflow-hidden",style:{height:s&&!e?"20px":"1px",transition:W},children:jsxs("div",{className:"flex items-center justify-center h-full w-full",children:[jsx("div",{className:"w-full border-t border-gray-200 absolute",style:{opacity:!s||e?1:0,transition:W}}),s&&jsxs("div",{className:"flex items-center w-full text-sm",style:{opacity:e?0:1,transform:e?"translateY(-3px)":"translateY(0)",transition:W},children:[jsx("div",{className:"flex-1 border-t border-gray-200"}),jsx("span",{className:"px-3 text-gray-500 font-medium whitespace-nowrap",title:s,children:s}),jsx("div",{className:"flex-1 border-t border-gray-200"})]})]})})]})});g2.displayName="LayoutHeader";var x2=g2;var {Header:ae,Sider:se,Content:re}=Layout,oe=a=>{let{isMenuLoading:s,items:t,headerExtra:e,children:r,gameSelectFilter:o,gameSelectOptions:c,title:i$1,subtitle:n,hideGameSelect:p}=a,{token:{colorBgContainer:m,colorBorder:l}}=theme.useToken(),{navWidth:y,collapsible:f,collapsed:g,toggleCollapsed:h}=i();return jsxs(Layout,{children:[jsxs(se,{collapsible:f,theme:"light",trigger:null,collapsed:g,width:y,style:{height:"100vh",overflowX:"hidden",overflowY:"auto",borderRightWidth:1,borderRightStyle:"solid",borderRightColor:l},children:[jsx(x2,{title:i$1,subtitle:n}),jsx(b1,{items:t,loading:s})]}),jsxs(Layout,{children:[jsx(ae,{style:{padding:"0 24px",background:m},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[f&&jsx(Button,{type:"text",icon:g?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),style:{fontSize:"16px"},onClick:h}),!p&&jsx(h2,{filter:o,options:c}),e?.left?.map(x=>jsx("span",{children:x.children},x.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[e?.right?.map(x=>jsx("span",{children:x.children},x.key)),jsx(G1,{})]})]})}),jsx(re,{style:{overflow:"auto",padding:"24px 16px",maxHeight:"calc(100vh - 64px)"},children:jsx(Suspense,{fallback:jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"200px"}}),children:jsx(w1,{children:r})})})]})]})},ce=oe;var de=a=>{let{code:s,config:t,redirectPath:e="/",children:r}=a,{data:o,isLoading:c}=a$2(s,t),{t:i}=a$1(),n=useNavigate();return c?jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:200}}):o?jsx(Fragment,{children:r}):jsx(Result,{status:"403",subTitle:i("global.noEntitlement"),extra:jsx(Button,{type:"primary",onClick:()=>n(e),children:i("global.back")})})},me=de;var z1=a();function L1(a){let{content:s,onConfirm:t,afterOpen:e,afterClose:r,footer:o,confirmText:c="\u786E\u8BA4",cancelText:i="\u53D6\u6D88",confirmButtonProps:n,cancelButtonProps:p,...m}=a,l=useMemo(()=>b(),[]),{show:y,hide:f,isOpen:g,cleanup:h}=z1();useEffect(()=>()=>{h(l);},[l,h]);let x=g(l),[_,b$1]=useState(!1),F=typeof s=="function",C=useCallback(async()=>{y(l),await e?.();},[l,y,e]),k=useCallback(()=>{f(l);},[l,f]),E=useCallback(async()=>{k(),await r?.();},[k,r]),R=useCallback(async()=>{try{b$1(!0),await t?.();}catch(G){throw console.error("Drawer confirm error:",G),G}finally{b$1(!1);}},[t]),V=o!==void 0?o:jsxs("div",{className:"flex gap-4 mx-4",children:[jsx(Button,{type:"primary",loading:_,...n,onClick:R,children:c}),jsx(Button,{...p,onClick:E,children:i})]}),B=jsx(Drawer,{...m,open:x,footer:V,onClose:E,children:F?s({hide:k}):s});return {id:l,show:C,hide:k,confirmLoading:_,drawer:B}}function Me(a){let{content:s,form:t,formProps:e,onConfirm:r,onSuccess:o,afterClose:c,...i}=a,[n,p]=useState({}),[m]=Form.useForm(t),l=typeof s=="function",{id:y,show:f,hide:g,drawer:h}=L1({...i,content:_=>jsx(Form,{...e,form:m,children:l?s(n,_):s}),onConfirm:async()=>{try{let _=await m.validateFields();await r?.(_,n),o?.(),g();}catch(_){throw console.error("Form validation or submission error:",_),_}},afterClose:()=>{p({}),c?.(m);}}),x=useCallback(_=>{let{initialValues:b,extraValues:F}=_||{};F!==void 0&&p(F),b&&m.setFieldsValue(b),f();},[m,f]);return {id:y,show:x,hide:g,drawer:h}}var ve=lazy(()=>import('./menuItemList-VPYVIEYR.js')),Fe=lazy(()=>import('./createMenuItem-SETFJ7U7.js')),Pe=lazy(()=>import('./updateMenuItem-2ZS3SMYT.js')),be=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(ve,{})}),jsx(Route,{path:"create",element:jsx(Fe,{})}),jsx(Route,{path:"update/:id",element:jsx(Pe,{})})]});var ze=lazy(()=>import('./userList-AFTI4FQV.js')),ke=lazy(()=>import('./userDetail-5NE5PUBC.js')),Le=lazy(()=>import('./roleList-ZW4RLM25.js')),Ee=lazy(()=>import('./roleDetail-EYQ2HREL.js')),Ve=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(Navigate,{to:"user"})}),jsx(Route,{path:"user",element:jsx(ze,{})}),jsx(Route,{path:"user/:id",element:jsx(ke,{})}),jsx(Route,{path:"role",element:jsx(Le,{})}),jsx(Route,{path:"role/:name",element:jsx(Ee,{})})]});var Oe=a=>{let{redirectUrl:s}=a,t=useNavigate(),{t:e}=a$1();return jsx("div",{className:"text-center",children:jsx(Result,{status:"404",title:"404",subTitle:e("NotFound.subTitle"),extra:s&&jsx(Button,{type:"primary",onClick:()=>{t(s);},children:e("NotFound.buttonText")})})})},Ue=Oe;var {Option:C2}=Select,Ke=()=>{let{t:a}=a$1(),s=[{key:"username",title:a("global.username"),dataIndex:"uname",width:100},{key:"label",title:a("global.label"),dataIndex:"label",width:150},{key:"method",title:a("global.method"),dataIndex:"method",width:100},{key:"route",title:a("global.route"),dataIndex:"route",width:200},{key:"request",title:a("global.request"),dataIndex:"request",render(t){return jsx(n1,{children:t})}},{key:"response",title:a("global.response"),dataIndex:"response",render(t){return jsx(n1,{children:t})}},{key:"creation_time",title:a("global.creationTime"),dataIndex:"ctime",width:200,render(t){return qe(t).format("YYYY-MM-DD HH:mm:ss")}}];return jsx(Card,{title:"\u64CD\u4F5C\u65E5\u5FD7",children:jsx(e,{identifier:"operation-log-list",rowKey:"id",code:"300001",columns:s,tableLayout:"fixed",request:{url:"/api/usystem/log/list",method:"GET"},dataAdapter:t=>({total:t?.Total,items:t?.List}),renderForm:t=>jsxs(Form,{form:t,layout:"inline",children:[jsx(Form.Item,{label:a("global.username"),name:"uname",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:a("global.route"),name:"route",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:a("global.method"),name:"method",children:jsxs(Select,{allowClear:!0,style:{width:"100px"},children:[jsx(C2,{value:"get",children:"GET"}),jsx(C2,{value:"post",children:"POST"})]})}),jsx(Form.Item,{label:a("global.label"),name:"label",children:jsx(Input,{allowClear:!0})})]})})})},We=j(Ke,{isGlobal:!0});var P2='data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';function b2(a){let s=new URL(window.location.href);a.forEach(t=>s.searchParams.delete(t)),window.history.replaceState({},"",s.toString());}function w2(){let a=l(),{setToken:s}=i(),t=new URLSearchParams(window.location.search),e=t.get("ticket"),r=t.get("unregistered")==="true",[o,c]=useState(r),{data:i$1,isLoading:n,error:p}=useQuery({queryKey:m.auth.ticketLogin(e),queryFn:()=>a.get("/api/usystem/user/login",{searchParams:{ticket:e}}),enabled:!!e,retry:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1});return useEffect(()=>{i$1?.token&&(s(i$1.token),b2(["ticket","unregistered"]));},[i$1,s]),{isLoading:n,error:p,isUnregistered:o,dismissUnregistered:()=>{c(!1),r&&b2(["unregistered"]);}}}var a3=({extra:a,title:s})=>{let{token:t,mainPagePath:e}=i(),{t:r}=a$1(),{isLoading:o,isUnregistered:c,dismissUnregistered:i$1}=w2();return o?jsx("div",{className:"w-screen h-screen flex justify-center items-center",children:jsx(Spin,{})}):t?jsx(Navigate,{replace:!0,to:e}):jsxs("div",{className:"w-screen h-screen relative overflow-hidden",children:[jsx("div",{className:"absolute top-16 right-16 z-10",children:a}),jsx("div",{className:"absolute left-14 top-6 z-10",children:jsxs(Space,{align:"center",children:[jsx(J,{width:48}),s&&jsx("span",{className:"text-2xl font-bold",children:s})]})}),jsx("div",{className:"w-full h-full flex justify-center items-center bg-gradient-to-br from-blue-50/30 via-indigo-50/30 to-purple-50/30",style:{paddingRight:"500px"},children:jsx("img",{src:P2,alt:"background",className:"max-w-full h-auto object-contain",style:{width:"83.333333%",maxWidth:"100%"}})}),jsx("div",{className:"fixed top-0 right-0 h-screen backdrop-blur-sm shadow-2xl",style:{width:"500px",backgroundColor:"rgba(255, 255, 255, 0.95)",borderLeft:"1px solid rgba(229, 231, 235, 0.5)"},children:jsx("div",{className:"flex justify-center items-center h-full",children:jsx("div",{className:"px-36 -translate-y-1/2",children:jsxs("div",{className:"flex flex-col justify-center",children:[jsx("div",{className:"h-10 mb-4",children:c&&jsx(Alert,{banner:!0,closable:!0,message:r("SignIn.unregistered"),type:"error",onClose:i$1})}),jsx("div",{className:"mb-4 text-center",children:jsx(Typography.Title,{level:2,children:r("SignIn.welcome")})}),jsx("div",{className:"flex justify-center items-center",children:jsx(Button,{block:!0,type:"primary",size:"large",shape:"round",href:`${d}/logout?service=${d}/login?service=${window.location.href}`,target:"_self",children:r("SignIn.signInWithIDass")})})]})})})})]})},s3=a3;
1
+ import {a as a$3,e}from'./chunk-2OEQYX3O.js';export{a as FilterFormWrapper,b as Highlight,e as QueryList,d as QueryListAction,c as useQueryListStore}from'./chunk-2OEQYX3O.js';export{a as AuthButton,d as useFormModal,c as useModal,b as useModalStore}from'./chunk-Y3RYS76E.js';import {a as a$1}from'./chunk-4XO7JAVX.js';import {a as a$2,c}from'./chunk-ZFIKMQD3.js';export{a as useAuth,c as useGames,b as useMenuList}from'./chunk-ZFIKMQD3.js';import {i,a,j,l,b,d,m}from'./chunk-RPEFI7RP.js';export{e as APP_ID_HEADER,f as FRONTEND_ROUTE_PREFIX,g as PermissionVersion,d as SSO_URL,k as ToolkitsProvider,h as WILDCARD,a as createVisibilityStore,b as generateId,c as mixedStorage,i as useToolkitsStore,j as withContext}from'./chunk-RPEFI7RP.js';import {PlusOutlined,LogoutOutlined,UserOutlined,MenuUnfoldOutlined,MenuFoldOutlined}from'@ant-design/icons';import*as bt from'antd';import {Spin,Menu,Form,Result,Table,Button,Drawer,Card,Input,Select,theme,Space,Tag,Typography,Empty,Dropdown,Layout,Divider,Alert}from'antd';import {forwardRef,memo,useRef,useMemo,useEffect,lazy,useState,useImperativeHandle,cloneElement,useCallback,Fragment as Fragment$1,Suspense}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {useInfiniteQuery,useQuery,useQueryClient}from'@tanstack/react-query';import {isEqual}from'lodash-es';import {create}from'zustand';import {persist,createJSONStorage,devtools,subscribeWithSelector}from'zustand/middleware';import {Link,useLocation,Routes,Route,Navigate,useNavigate}from'react-router-dom';import qe from'dayjs';var O2=a=>{let{initialTags:s,addable:t,removable:e,addCallback:r,removeCallback:o}=a,{t:c}=a$1(),{token:i}=theme.useToken(),[n,p]=useState([]),[m,l]=useState(!1),[y,f]=useState(""),[g,h]=useState(-1),[x,_]=useState(""),b=useRef(null),F=useRef(null);useEffect(()=>{p(s??[]);},[s]),useEffect(()=>{m&&b.current?.focus();},[m]),useEffect(()=>{F.current?.focus();},[y]);let C=async d=>{if(await o?.(d)){let D=n.filter(A=>A!==d);p(D);}},k=()=>{l(!0);},E=d=>{f(d.target.value);},R=async()=>{y&&n.indexOf(y)===-1&&await r?.(y)&&p([...n,y]),l(!1),f("");},V=d=>{_(d.target.value);},B=()=>{let d=[...n];d[g]=x,p(d),h(-1),f("");},G={width:78,verticalAlign:"top"},h1={background:i.colorBgContainer,borderStyle:"dashed"};return jsxs(Space,{wrap:!0,size:[0,8],children:[jsx(Space,{wrap:!0,size:[0,8],children:n.map((d,N)=>g===N?jsx(Input,{ref:F,size:"small",style:G,value:x,onChange:V,onBlur:B,onPressEnter:B},d):jsx(Tag,{closable:e,style:{userSelect:"none"},onClose:async D=>{D.preventDefault(),await C(d);},children:jsx("span",{onDoubleClick:D=>{N!==0&&(h(N),_(d),D.preventDefault());},children:d})},d))}),t&&(m?jsx(Input,{ref:b,type:"text",size:"small",style:G,value:y,onChange:E,onBlur:R,onPressEnter:R}):jsxs(Tag,{style:h1,onClick:k,children:[jsx(PlusOutlined,{}),"\xA0",c("global.add")]}))]})},U2=O2;var K2=a=>{let{children:s,...t}=a,[e,r]=useState(!1);return jsx(Typography.Paragraph,{...t,className:"mb-0",ellipsis:{rows:2,expandable:"collapsible",expanded:e,onExpand:(o,c)=>{r(c.expanded);}},children:s})},n1=K2;var s2=Object.freeze({page:0,filters:Object.freeze({})}),Z2=()=>create()(devtools(subscribeWithSelector((a,s)=>({instances:new Map,registerInstance(t,e,r,o,c){a(i=>{let n=i.instances.get(t);if(n){if(n.refetch!==o||n.fetchNextPage!==c){let l={...n,refetch:o,fetchNextPage:c},y=new Map(i.instances);return y.set(t,l),{instances:y}}return i}let p={id:t,url:e,queryKey:r,payload:s2,refetch:o,fetchNextPage:c},m=new Map(i.instances);return m.set(t,p),{instances:m}});},unregisterInstance(t){a(e=>{let r=new Map(e.instances);return r.delete(t)?{instances:r}:e});},updatePayload(t,e){a(r=>{let o=r.instances.get(t);if(!o)return r;let c={...o.payload,...e};if(!isEqual(o.payload,c)){let i={...o,payload:c},n=new Map(r.instances);return n.set(t,i),{instances:n}}return r});},getPayload(t){return s().instances.get(t)?.payload??s2},async refetch(t,e){let r=s().instances.get(t);if(!r){console.warn(`InfiniteList instance with id "${t}" not found`);return}let o=!1;if(e){let c=r.payload,i={...c,...e};isEqual(c,i)||(s().updatePayload(t,e),o=!0);}if(!o)try{await r.refetch();}catch(c){throw console.error(`Failed to refetch InfiniteList instance "${t}":`,c),c}},async fetchNextPage(t){let e=s().instances.get(t);if(!e){console.warn(`InfiniteList instance with id "${t}" not found`);return}try{await e.fetchNextPage();}catch(r){throw console.error(`Failed to fetch next page for InfiniteList instance "${t}":`,r),r}},getInstance(t){return s().instances.get(t)},getAllInstances(){return Array.from(s().instances.values())}})),{name:"infinite-list-store"})),X2=Z2(),z=X2;var ct=5*60*1e3,nt=30*1e3,it={display:"flex",justifyContent:"center",alignItems:"center",height:300},lt=0,pt=()=>`infiniteList_${Date.now()}_${++lt}`,dt=(a,s)=>{let e={refreshInterval:0,initialPageParam:0,...a,dataAdapter:{...{items:u=>u?u.flatMap(S=>S?.list||S||[]):[],hasMore:u=>{if(!u)return !1;let S=u;return S?.hasMore||S?.has_more||!1},nextPageParam:(u,S,H)=>(q=>{if(!q)return !1;let X=q;return X?.hasMore||X?.has_more||!1})(u)?S.length:void 0},...a.dataAdapter}},{identifier:r,code:o,buttonsAlign:c,showReset:i,refreshInterval:n,request:p,tableExtra:m,renderForm:l$1,afterSuccess:y,afterError:f,dataAdapter:g,initialPageParam:h,footer:x,form:_,...b}=e,{t:F}=a$1(),[C]=Form.useForm(_),[k,E]=useState(!1),R=useRef(!1),V=useRef(3),B=l(),{data:G,isLoading:h1}=a$2(o),d=useMemo(()=>r||pt(),[r]),N=z(u=>u.getPayload(d)),D=useMemo(()=>C,[C]),{url:A,method:G2="GET",body:u1,params:y1,headers:e1,cacheTime:D2=ct,staleTime:z2=nt}=p,g1=useMemo(()=>typeof e1=="function"?e1(D):e1,[e1,D]),x1=useMemo(()=>["infiniteList",A,d,G,k,N,g1],[A,d,G,k,N,g1]),{data:a1,fetchNextPage:_1,hasNextPage:A1,isFetchingNextPage:O1,refetch:U1,isFetching:B1}=useInfiniteQuery({queryKey:x1,queryFn:async({pageParam:u=h})=>{try{let S=N,H=typeof y1=="function"?y1(S,u):y1,Z=typeof u1=="function"?u1(S,u):u1,q={method:G2,searchParams:H,headers:g1};Z&&(Z instanceof FormData?q.body=Z:q.json=Z);let X=await B.request({url:A,...q});return R.current=!0,y?.(V.current,D,[X]),X}catch(S){let H=S instanceof Error?S:new Error(String(S));throw f?.(H,V.current,D),H}},initialPageParam:h,getNextPageParam:(u,S)=>g?.nextPageParam?.(u,S,h),enabled:G&&k,retry:(u,S)=>!(u>=3||S?.message?.includes("401")),retryDelay:u=>Math.min(1e3*2**u,3e4),refetchOnWindowFocus:!1,refetchInterval:R.current?n:0,gcTime:D2,staleTime:z2});useEffect(()=>(z.getState().registerInstance(d,A,x1,U1,_1),()=>{z.getState().unregisterInstance(d);}),[d,A,x1,U1,_1]);let s1=g?.items?.(a1?.pages,D),S1=O1,q1=!A1,k2=!s1||s1.length===0,K1=async()=>{V.current=0;let u=await C.getFieldsValue();try{await C.validateFields(),E(!0),z.getState().refetch(d,{page:0,filters:u});}catch{E(!1);}},L2=()=>{V.current=2,_1();},E2=async()=>{V.current=1;try{C.resetFields();let u=await C.getFieldsValue();z.getState().updatePayload(d,{page:0,filters:u}),await C.validateFields({validateOnly:!0}),z.getState().refetch(d);}catch{}};if(useEffect(()=>{setTimeout(()=>{G&&C.validateFields({validateOnly:!0}).then(u=>{E(!0),z.getState().updatePayload(d,{page:0,filters:u});}).catch(()=>{E(!1);});},300);},[G,C,d]),useImperativeHandle(s,()=>({data:a1?.pages,dataSource:s1,form:C,refetch:()=>z.getState().refetch(d),fetchNextPage:()=>z.getState().fetchNextPage(d),hasNextPage:!!A1,isFetchingNextPage:O1})),h1)return jsx(Spin,{style:it});if(!G)return jsx(Result,{status:403,subTitle:F("global.noEntitlement")});let V2=x&&(()=>x(a1?.pages)),T2=()=>typeof m=="function"?m(D,a1?.pages):m,N2=typeof l$1=="function"?jsx(a$3,{showReset:i,buttonsAlign:c,isConfirming:B1,onReset:E2,onConfirm:K1,children:cloneElement(l$1(C),{onKeyUp:u=>{u.key==="Enter"&&K1();}})}):jsx(Form,{form:C});return jsxs(Fragment,{children:[N2,T2(),jsx("div",{style:{minHeight:"400px"},children:jsx(Table,{...b,dataSource:s1,loading:B1,pagination:!1,footer:V2})}),!k2&&jsx(Button,{block:!0,loading:S1,type:"link",htmlType:"button",disabled:S1||q1,onClick:L2,children:F(S1?"InfiniteList.loadingText":q1?"InfiniteList.reachEndText":"InfiniteList.loadMoreText")})]})},mt=forwardRef(dt),ft=mt;var n2=create()(persist((a,s)=>({openKeys:[],setOpenKeys:t=>{let e=s();(e.openKeys.length!==t.length||!e.openKeys.every((r,o)=>r===t[o]))&&a({openKeys:t});},selectedKeys:[],setSelectedKeys:t=>{let e=s();(e.selectedKeys.length!==t.length||!e.selectedKeys.every((r,o)=>r===t[o]))&&a({selectedKeys:t});}}),{name:"nav",storage:createJSONStorage(()=>localStorage),partialize:a=>({openKeys:a.openKeys,selectedKeys:a.selectedKeys}),skipHydration:!1,version:1}));var i2=memo(({to:a,children:s})=>jsx(Link,{to:a,children:s}));i2.displayName="MemoizedLink";function C1(a){let s=[];if(a)for(let t=0;t<a.length;t++)if(a[t]===null||a[t].type==="divider")s[t]=a[t];else if(a[t].children){let{children:e,...r}=a[t];s[t]={...r,children:C1(e)};}else {let{route:e,label:r,...o}=a[t],c=e?jsx(i2,{to:e,children:r}):r;s[t]={...o,label:c};}return s}function v1(a,s=[],t=[]){for(let e of a){let r=e?.children;if(Array.isArray(r)){let o=e.type!=="group"&&e.key?[...t,e.key]:t;v1(r,s,o);}else e&&s.push(Object.assign(e,{keypath:t}));}return s}var Pt=memo(function(s){let{items:t=[],theme:e,loading:r}=s,o=useLocation(),c=useRef(),i=useRef(),n=useRef(),p=useMemo(()=>{let h=v1(t);return c.current=h,h},[t]),m=useMemo(()=>{let h=C1(t);return i.current=h,h},[t]),{openKeys:l,selectedKeys:y,setOpenKeys:f,setSelectedKeys:g}=n2();return useEffect(()=>{if(n.current===o.pathname)return;n.current=o.pathname;let h=p.find(x=>o.pathname===x.route);if(h){let x=h.key,_=h.keypath;y[0]!==x&&g([x]);let b=_.filter(F=>!l.includes(F));b.length>0&&f([...l,...b]);}},[p,o.pathname,y,l,g,f]),r?jsx("div",{className:"flex justify-center items-center",style:{height:"calc(100vh - 64px)"},children:jsx(Spin,{})}):jsx(Menu,{theme:e,style:{borderRight:"none"},items:m,mode:"inline",openKeys:l,selectedKeys:y,onOpenChange:f})}),b1=Pt;var {Spin:Gt}=bt,Dt=({children:a})=>{let{permissionVersion:s,appId:t,isGlobal:e}=i(c=>c),{isLoading:r}=c(),{t:o}=a$1();return r?jsx("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:400},children:jsx(Gt,{})}):s==="v1"||e?a:t?jsx(Fragment$1,{children:a},t):jsx(Empty,{image:Empty.PRESENTED_IMAGE_SIMPLE,description:o("RequireGame.description")})},w1=Dt;var Tt=()=>{let{t:a}=a$1(),s=useNavigate(),{user:t,loginPath:e,clear:r}=i(),o=()=>{r(),s(e);},c=p=>{(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),o());},i$1=p=>{(p.key==="Enter"||p.key===" ")&&p.preventDefault();},n=[{key:"1",icon:jsx(LogoutOutlined,{}),label:jsx("a",{role:"button",tabIndex:0,onClick:o,onKeyDown:c,children:a("UserWidget.signOutText")})}];return jsx("div",{children:jsx(Dropdown,{menu:{selectable:!0,items:n},placement:"bottomRight",children:jsx("a",{role:"button",tabIndex:0,onClick:p=>{p.preventDefault();},onKeyDown:i$1,children:jsxs(Space,{align:"center",children:[jsx("span",{children:t?.authorityId}),jsx(UserOutlined,{style:{fontSize:"16px"}})]})})})})},G1=Tt;var{Text:qt}=Typography,Kt=a=>{let{filter:s,options:t}=a,{t:e}=a$1(),{gameApiV2:r,appId:o,setAppId:c$1}=i(),{data:i$1,isLoading:n}=c(),p=useQueryClient(),m=useMemo(()=>i$1?.filter(f=>s?.(f)??!0),[i$1,s]),l=useMemo(()=>typeof t=="function"?t(m):m?.map(f=>({label:f.name,value:r?f.game_id:f.id})),[t,m,r]),y=f=>{p.invalidateQueries({predicate:g=>{let h=g.queryKey;return !h.includes("/api/game/list")&&!h.includes("/api/usystem/game/all")}}),c$1(f);};return useEffect(()=>{n||(l&&l.length>0?o&&l.some(g=>String(g.value)===String(o))||c$1(l[0]?.value??void 0):(l===void 0||l.length===0)&&c$1(void 0));},[l,n]),jsxs(Space,{children:[jsx(qt,{children:e("GameSelect.label")}),jsx(Select,{showSearch:!0,optionFilterProp:"label",value:o,placeholder:e("GameSelect.placeholder"),loading:n,style:{width:"250px"},options:l,onChange:y})]})},h2=Kt;var u2="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAydpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDcuMS1jMDAwIDc5LmIwZjhiZTkwLCAyMDIxLzEyLzE1LTIxOjI1OjE1ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjMuMiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCMEY2MEZENUIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCMEY2MEZENkIxMEUxMUVDQURFOEYzNUZGRjQ2NUYyNCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIwRjYwRkQzQjEwRTExRUNBREU4RjM1RkZGNDY1RjI0IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIwRjYwRkQ0QjEwRTExRUNBREU4RjM1RkZGNDY1RjI0Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+K5OQMAAAImdJREFUeNrs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";var jt=a=>jsx("img",{src:u2,alt:"logo",...a}),J=jt;var W="all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)",g2=memo(({title:a,subtitle:s})=>{let{mainPagePath:t,collapsed:e}=i();return jsxs("div",{className:"px-6 py-2 font-bold relative bg-gradient-to-r from-white to-gray-50/30",style:{height:"auto",display:"flex",flexDirection:"column",justifyContent:"center",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)"},children:[jsxs("div",{className:`flex items-center w-full ${e?"justify-center":""}`,children:[jsx(Link,{to:t,className:"hover:opacity-80 transition-all duration-300 ease-out block rounded-lg p-1 hover:bg-white/50 hover:shadow-sm",style:{transition:W,opacity:e?.8:1},children:jsx(J,{width:36,style:{objectFit:"contain",display:"block",filter:"drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05))",transition:W}})}),a&&jsx("div",{className:"ml-4 overflow-hidden min-w-0",style:{transition:W,opacity:e?0:1,width:e?"0px":"auto",marginLeft:e?"0px":"16px",transform:e?"translateX(-8px)":"translateX(0)"},children:jsx(Link,{to:t,className:"text-xl leading-tight hover:text-blue-600 transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block bg-gradient-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent hover:from-blue-600 hover:to-blue-500",title:a,style:{letterSpacing:"0.02em",textShadow:"0 1px 2px rgba(0, 0, 0, 0.05)"},children:a})})]}),jsx("div",{className:"w-full mt-2 overflow-hidden",style:{height:s&&!e?"20px":"1px",transition:W},children:jsxs("div",{className:"flex items-center justify-center h-full w-full",children:[jsx("div",{className:"w-full border-t border-gray-200 absolute",style:{opacity:!s||e?1:0,transition:W}}),s&&jsxs("div",{className:"flex items-center w-full text-sm",style:{opacity:e?0:1,transform:e?"translateY(-3px)":"translateY(0)",transition:W},children:[jsx("div",{className:"flex-1 border-t border-gray-200"}),jsx("span",{className:"px-3 text-gray-500 font-medium whitespace-nowrap",title:s,children:s}),jsx("div",{className:"flex-1 border-t border-gray-200"})]})]})})]})});g2.displayName="LayoutHeader";var x2=g2;var {Header:ae,Sider:se,Content:re}=Layout,oe=a=>{let{isMenuLoading:s,items:t,headerExtra:e,children:r,gameSelectFilter:o,gameSelectOptions:c,title:i$1,subtitle:n,hideGameSelect:p}=a,{token:{colorBgContainer:m,colorBorder:l}}=theme.useToken(),{navWidth:y,collapsible:f,collapsed:g,toggleCollapsed:h}=i();return jsxs(Layout,{children:[jsxs(se,{collapsible:f,theme:"light",trigger:null,collapsed:g,width:y,style:{height:"100vh",overflowX:"hidden",overflowY:"auto",borderRightWidth:1,borderRightStyle:"solid",borderRightColor:l},children:[jsx(x2,{title:i$1,subtitle:n}),jsx(b1,{items:t,loading:s})]}),jsxs(Layout,{children:[jsx(ae,{style:{padding:"0 24px",background:m},children:jsxs("div",{className:"flex justify-between items-center h-full",children:[jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),className:"mr-6",children:[f&&jsx(Button,{type:"text",icon:g?jsx(MenuUnfoldOutlined,{}):jsx(MenuFoldOutlined,{}),style:{fontSize:"16px"},onClick:h}),!p&&jsx(h2,{filter:o,options:c}),e?.left?.map(x=>jsx("span",{children:x.children},x.key))]}),jsxs(Space,{size:"small",split:jsx(Divider,{type:"vertical"}),children:[e?.right?.map(x=>jsx("span",{children:x.children},x.key)),jsx(G1,{})]})]})}),jsx(re,{style:{overflow:"auto",padding:"24px 16px",maxHeight:"calc(100vh - 64px)"},children:jsx(Suspense,{fallback:jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"200px"}}),children:jsx(w1,{children:r})})})]})]})},ce=oe;var de=a=>{let{code:s,config:t,redirectPath:e="/",children:r}=a,{data:o,isLoading:c}=a$2(s,t),{t:i}=a$1(),n=useNavigate();return c?jsx(Spin,{style:{display:"flex",justifyContent:"center",alignItems:"center",height:200}}):o?jsx(Fragment,{children:r}):jsx(Result,{status:"403",subTitle:i("global.noEntitlement"),extra:jsx(Button,{type:"primary",onClick:()=>n(e),children:i("global.back")})})},me=de;var z1=a();function L1(a){let{content:s,onConfirm:t,afterOpen:e,afterClose:r,footer:o,confirmText:c="\u786E\u8BA4",cancelText:i="\u53D6\u6D88",confirmButtonProps:n,cancelButtonProps:p,...m}=a,l=useMemo(()=>b(),[]),{show:y,hide:f,isOpen:g,cleanup:h}=z1();useEffect(()=>()=>{h(l);},[l,h]);let x=g(l),[_,b$1]=useState(!1),F=typeof s=="function",C=useCallback(async()=>{y(l),await e?.();},[l,y,e]),k=useCallback(()=>{f(l);},[l,f]),E=useCallback(async()=>{k(),await r?.();},[k,r]),R=useCallback(async()=>{try{b$1(!0),await t?.();}catch(G){throw console.error("Drawer confirm error:",G),G}finally{b$1(!1);}},[t]),V=o!==void 0?o:jsxs("div",{className:"flex gap-4 mx-4",children:[jsx(Button,{type:"primary",loading:_,...n,onClick:R,children:c}),jsx(Button,{...p,onClick:E,children:i})]}),B=jsx(Drawer,{...m,open:x,footer:V,onClose:E,children:F?s({hide:k}):s});return {id:l,show:C,hide:k,confirmLoading:_,drawer:B}}function Me(a){let{content:s,form:t,formProps:e,onConfirm:r,onSuccess:o,afterClose:c,...i}=a,[n,p]=useState({}),[m]=Form.useForm(t),l=typeof s=="function",{id:y,show:f,hide:g,drawer:h}=L1({...i,content:_=>jsx(Form,{...e,form:m,children:l?s(n,_):s}),onConfirm:async()=>{try{let _=await m.validateFields();await r?.(_,n),o?.(),g();}catch(_){throw console.error("Form validation or submission error:",_),_}},afterClose:()=>{p({}),c?.(m);}}),x=useCallback(_=>{let{initialValues:b,extraValues:F}=_||{};F!==void 0&&p(F),b&&m.setFieldsValue(b),f();},[m,f]);return {id:y,show:x,hide:g,drawer:h}}var ve=lazy(()=>import('./menuItemList-VPYVIEYR.js')),Fe=lazy(()=>import('./createMenuItem-SETFJ7U7.js')),Pe=lazy(()=>import('./updateMenuItem-2ZS3SMYT.js')),be=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(ve,{})}),jsx(Route,{path:"create",element:jsx(Fe,{})}),jsx(Route,{path:"update/:id",element:jsx(Pe,{})})]});var ze=lazy(()=>import('./userList-AFTI4FQV.js')),ke=lazy(()=>import('./userDetail-5NE5PUBC.js')),Le=lazy(()=>import('./roleList-ZW4RLM25.js')),Ee=lazy(()=>import('./roleDetail-EYQ2HREL.js')),Ve=jsxs(Routes,{children:[jsx(Route,{index:!0,element:jsx(Navigate,{to:"user"})}),jsx(Route,{path:"user",element:jsx(ze,{})}),jsx(Route,{path:"user/:id",element:jsx(ke,{})}),jsx(Route,{path:"role",element:jsx(Le,{})}),jsx(Route,{path:"role/:name",element:jsx(Ee,{})})]});var Oe=a=>{let{redirectUrl:s}=a,t=useNavigate(),{t:e}=a$1();return jsx("div",{className:"text-center",children:jsx(Result,{status:"404",title:"404",subTitle:e("NotFound.subTitle"),extra:s&&jsx(Button,{type:"primary",onClick:()=>{t(s);},children:e("NotFound.buttonText")})})})},Ue=Oe;var {Option:C2}=Select,Ke=()=>{let{t:a}=a$1(),s=[{key:"username",title:a("global.username"),dataIndex:"uname",width:100},{key:"label",title:a("global.label"),dataIndex:"label",width:150},{key:"method",title:a("global.method"),dataIndex:"method",width:100},{key:"route",title:a("global.route"),dataIndex:"route",width:200},{key:"request",title:a("global.request"),dataIndex:"request",render(t){return jsx(n1,{children:t})}},{key:"response",title:a("global.response"),dataIndex:"response",render(t){return jsx(n1,{children:t})}},{key:"creation_time",title:a("global.creationTime"),dataIndex:"ctime",width:200,render(t){return qe(t).format("YYYY-MM-DD HH:mm:ss")}}];return jsx(Card,{title:"\u64CD\u4F5C\u65E5\u5FD7",children:jsx(e,{identifier:"operation-log-list",rowKey:"id",code:"300001",columns:s,tableLayout:"fixed",request:{url:"/api/usystem/log/list",method:"GET"},dataAdapter:t=>({total:t?.Total,items:t?.List}),renderForm:t=>jsxs(Form,{form:t,layout:"inline",children:[jsx(Form.Item,{label:a("global.username"),name:"uname",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:a("global.route"),name:"route",children:jsx(Input,{allowClear:!0})}),jsx(Form.Item,{label:a("global.method"),name:"method",children:jsxs(Select,{allowClear:!0,style:{width:"100px"},children:[jsx(C2,{value:"get",children:"GET"}),jsx(C2,{value:"post",children:"POST"})]})}),jsx(Form.Item,{label:a("global.label"),name:"label",children:jsx(Input,{allowClear:!0})})]})})})},We=j(Ke,{isGlobal:!0});var P2='data:image/svg+xml,<svg xml:space="preserve" style="enable-background:new 0 0 6000 4000;" viewBox="0 0 6000 4000" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" id="Layer_1" version="1.1">%0A<style type="text/css">%0A%09.Graphic_x0020_Style_x0020_100{fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_101{fill:url(%23SVGID_1_);}%0A%09.Graphic_x0020_Style_x0020_102{fill:url(%23SVGID_2_);}%0A%09.Graphic_x0020_Style_x0020_104{fill:%23DB6767;}%0A%09.Graphic_x0020_Style_x0020_105{fill:%23FFDE70;}%0A%09.Graphic_x0020_Style_x0020_106{fill:%23FFB114;}%0A%09.Graphic_x0020_Style_x0020_107{fill:%236584C6;}%0A%09.Graphic_x0020_Style_x0020_108{fill:%23102140;}%0A%09.Graphic_x0020_Style_x0020_109{fill:%233B546B;}%0A%09.Graphic_x0020_Style_x0020_110{fill:%23152A52;}%0A%09.Graphic_x0020_Style_x0020_111{fill:%23E8766F;}%0A%09.Graphic_x0020_Style_x0020_112{fill:%23EF5668;}%0A%09.Graphic_x0020_Style_x0020_113{fill:%23FC9590;}%0A%09.Graphic_x0020_Style_x0020_114{fill:%23912433;}%0A%09.Graphic_x0020_Style_x0020_115{opacity:0.5;fill:%23FFFFFF;}%0A%09.Graphic_x0020_Style_x0020_116{fill:%231A1A1A;}%0A%09.Graphic_x0020_Style_x0020_117{fill:%23535353;}%0A%09.Graphic_x0020_Style_x0020_118{fill:%23DBD2DB;}%0A%09.Graphic_x0020_Style_x0020_119{fill:%234D73C6;}%0A%09.Graphic_x0020_Style_x0020_120{fill:%23D1334A;}%0A%09.Graphic_x0020_Style_x0020_123{fill:url(%23SVGID_3_);}%0A%09.st0{fill:url(%23SVGID_4_);}%0A%09.st1{fill:url(%23SVGID_5_);}%0A%09.st2{fill:url(%23SVGID_6_);}%0A%09.st3{fill:%239D8A9D;}%0A%09.st4{fill:url(%23SVGID_7_);}%0A%09.st5{fill:url(%23SVGID_8_);}%0A%09.st6{fill:%233B546B;}%0A%09.st7{fill:%23A8A1A8;}%0A%09.st8{fill:%23DBD2DB;}%0A%09.st9{fill:%23FFFFFF;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st10{fill:%23339E7E;}%0A%09.st11{fill:none;stroke:%2310663F;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st12{fill:%2300593B;}%0A%09.st13{fill:none;stroke:%233DBE88;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st14{fill:none;stroke:%23134411;stroke-width:8.0149;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st15{fill:%23EF5668;}%0A%09.st16{fill:%23FC9590;}%0A%09.st17{fill:%23102140;}%0A%09.st18{fill:%23DB6767;}%0A%09.st19{fill:%231A1A1A;stroke:%231A1A1A;stroke-width:5.3432;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}%0A%09.st20{fill:%23FFFFFF;}%0A%09.st21{fill:%23535353;}%0A%09.st22{fill:%23F9EBF9;}%0A%09.st23{fill:%23D896D8;}%0A%09.st24{fill:%238E3D8E;}%0A%09.st25{fill:%23CA74CA;}%0A%09.st26{fill:%23D590D5;}%0A%09.st27{fill:%23160A16;}%0A%09.st28{fill:%23384A6E;}%0A%09.st29{fill:%23B7C0D4;}%0A%09.st30{fill:%23E8766F;}%0A%09.st31{fill:%23FFB114;}%0A%09.st32{fill:%23FFDE70;}%0A%09.st33{fill:%23434343;}%0A%09.st34{fill:%23664708;}%0A%09.st35{fill:%23D9D9D9;}%0A%09.st36{fill:url(%23SVGID_9_);}%0A%09.st37{fill:url(%23SVGID_10_);}%0A%09.st38{fill:url(%23SVGID_11_);}%0A%09.st39{fill:url(%23SVGID_12_);}%0A</style>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_1_">%0A%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_2_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A</linearGradient>%0A<linearGradient y2="0" x2="1" y1="0" x1="0" gradientUnits="userSpaceOnUse" id="SVGID_3_">%0A%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A</linearGradient>%0A<g>%0A%09<linearGradient y2="3014.9536" x2="4941.2124" y1="3014.9536" x1="1288.5804" gradientUnits="userSpaceOnUse" id="SVGID_4_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1288.6,2793.9c55.3,134.1,186.5,387.6,453.7,503.3c220.8,95.6,442.9,57.4,694.7,14.2%0A%09%09c343.1-59,344.3-140.4,552.9-134.7c282.5,7.8,357.3,159.3,673.4,219.7c66.5,12.7,309.6,47.5,574.2-28.4%0A%09%09c360.6-103.4,734.8-407.2,701.8-560C4895.4,2605.9,4103.5,2505.3,1288.6,2793.9z" class="st0"></path>%0A%09<linearGradient y2="1994.5433" x2="5456.5684" y1="1994.5433" x1="686.3356" gradientUnits="userSpaceOnUse" id="SVGID_5_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5428.3,1649.1c-131.4-612.4-697.6-977.3-1155.4-1020.7c-232.1-22-245.1,56.7-616.7,117%0A%09%09c-821.7,133.2-1081-199.5-1850.1-85.1c-341.2,50.8-687.6,102.3-914.4,382.8C519.9,1502.7,718.2,2270,973.9,2621.3%0A%09%09c165.2,227,392.7,363.9,392.7,363.9c68.9,41.5,168.6,100.4,304.8,131.1c237.9,53.7,359.9-29.9,560-42.5%0A%09%09c342.7-21.6,401.6,197.2,772.6,276.4c190.7,40.7,257.4,0.5,1084.5-212.6c811.7-209.1,858.2-198.9,974.7-297.7%0A%09%09C5379.4,2571.8,5521.7,2084.7,5428.3,1649.1z M2709.5,2042.7v-2.7V2042.7z" class="st1"></path>%0A%09<linearGradient y2="1859.5726" x2="5227.9292" y1="1859.5726" x1="1116.5316" gradientUnits="userSpaceOnUse" id="SVGID_6_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M5148.1,1664.4c-146.3-421.8-552.5-838.3-943.2-819c-297.4,14.6-412.5,273.3-678.4,215.1%0A%09%09c-227.7-49.8-217.9-255.8-471.6-405.4c-401.7-236.8-1083-107.4-1265.9,223.4c-99.3,179.7-11.7,346.7-173.7,521.2%0A%09%09c-113.5,122.3-192.5,78.9-314.4,198.6c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1%0A%09%09c827.4,146.2,1654.7,292.3,2482.1,438.5c80.8,13.1,529.4,77.9,879.7-216.7C5295.8,2609,5272.6,2023.2,5148.1,1664.4z%0A%09%09 M2709.5,2042.7v-2.7V2042.7z" class="st2"></path>%0A%09<path d="M5224.3,2042.5c-143.7-88.6-413.9-68.2-740.1-95.9c-488.7-41.5-1188.7,312.8-1437,221.4%0A%09%09c-95.1-35-167.4-141.7-220.4-260v1053.6c291.4,51.5,582.8,103,874.2,154.4l1292.2-269.1C5190,2615.6,5243.4,2314,5224.3,2042.5z" class="st3"></path>%0A%09<linearGradient y2="1741.7239" x2="2757.678" y1="1741.7239" x1="1116.5317" gradientUnits="userSpaceOnUse" id="SVGID_7_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.3,179.7-11.7,346.7-173.7,521.2c-113.5,122.3-192.5,78.9-314.4,198.6%0A%09%09c-154.9,152-219.8,410.7-165.5,645.3c73.8,318.7,366.8,477.2,388.9,488.1c411.1,72.6,822.2,145.3,1233.4,217.9V550.2%0A%09%09C2377.7,484.9,1931.7,620.4,1789.1,878.4z M2709.5,2042.7v-2.7V2042.7z" class="st4"></path>%0A%09<linearGradient y2="1215.4698" x2="2649.5779" y1="1215.4698" x1="1137.9542" gradientUnits="userSpaceOnUse" id="SVGID_8_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23EBF0F7" offset="1"></stop>%0A%09</linearGradient>%0A%09<path d="M1789.1,878.4c-99.4,179.7-11.7,346.7-173.7,521.2c-113.6,122.3-192.5,78.9-314.4,198.6%0A%09%09c-79.1,77.6-134.7,183-163,298.8c82.9-108.4,187.6-189.5,319.3-210.4c445.6-70.8,892.8,45.1,1192.3-113.7V537.1%0A%09%09C2296.9,511.3,1918.4,644.5,1789.1,878.4z" class="st5"></path>%0A%09<polygon points="1937.1,644.5 1937.1,2265.3 1979.7,2269.9 1983,640.9" class="st6"></polygon>%0A%09<path d="M2757.7,550.2c-35.6-6.1-71.7-10.5-108.1-13.1v1035.7c38.6-20.4,74.7-45.4,108.1-76V550.2z" class="st7"></path>%0A%09<path d="M1117.4,850.5c-15.5,9-30.8,18.5-45.8,28.5v1689.5l42.6,5.1L1117.4,850.5z" class="st6"></path>%0A%09<path d="M2826.8,564.5c-22.7-5.5-45.8-10.3-69.1-14.3v2399.3c23,4.1,46.1,8.1,69.1,12.2V564.5z" class="st8"></path>%0A%09<g>%0A%09%09<path d="M1121,2361c0,0-98.3-110.7,84.2-222.1c-25.3,43.4-118,92.3-52.4,202.9%0A%09%09%09c27.1,62.9-12.8,89.7-12.8,89.7S1080.6,2436.5,1121,2361z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<g>%0A%09%09%09<path d="M1282.2,2470.4c-15.5,28.9-215.1,26.5-315.7,23.4c-1.1-4.4-2.1-8.7-3.1-13c-1.8-7.8-3.5-15.5-5-23.2%0A%09%09%09%09C1035.2,2452.4,1299.9,2437.2,1282.2,2470.4z" class="st9"></path>%0A%09%09%09<path d="M1282.2,2470.4l-16.7,216.9c-25.9,39.1-25.5,89.5-36,137.5c-4.3,22.7-20.4,30.2-38.6,29.2%0A%09%09%09%09c-39.4-34.1-82.1-74.2-124.2-119.9c-50-80.3-81.3-162.6-100.3-240.3C1067.1,2496.9,1266.7,2499.4,1282.2,2470.4z" class="st9"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1331.3,2151c12.7,12.2,30.7,16,43,17c5.5-2.7,11.1-5.7,16.6-8.9c24.3-13.9,39.8-38.8,49.7-66.7%0A%09%09%09%09c-16.1,5.8-51.8,17.4-67.4,11.2c-20.4-8.1-12.5-17.1-3-14.1c11.7,6,55.7-6.5,75.3-12.5c4.1-14.9,6.8-30.2,8.6-44.8%0A%09%09%09%09c-13.9,8.3-34.9,15.8-44.4,12.6c-12.3-4.2-7.4-14.4,2.7-13.2c7.4,0.8,31.4-12,43.6-18.8c2.2-29.7,0.8-53.4,0.4-59.6%0A%09%09%09%09c-0.1-1-0.1-1.6-0.1-1.6s-29-8.6-66.9-14.1c-8,8.1-19.9,20.8-24.9,29.3c-8,13.3-11.7,24.3-18.1,22.2%0A%09%09%09%09c-12.7-6.6,13.3-37.6,27.8-53.4c-16.5-1.8-34.1-2.9-51.4-2.3c-51.5,40.6-24.5,76.1-44.7,71.8c-17.5-3.7,13.5-51.5,26.6-70.5%0A%09%09%09%09c-16.3,1.8-31.9,5.4-45.3,11.6c-12.1,6.2-22.8,12.2-32.4,18.1c-14.5,34.4,20,53.7,1.7,57.9c-14.3,3.3-16.2-30.4-16.2-48.5%0A%09%09%09%09c-124.9,86.7,2.8,144.8,2.8,144.8c0.1,0.5,0.2,1,0.3,1.6c11.4,70.5,70.1,82,134.6,58.3c-10-8-28.1-22.8-31-26.1%0A%09%09%09%09C1315,2147.7,1321.1,2139.9,1331.3,2151z" class="st10"></path>%0A%09%09%09<path d="M1433.5,1969.4c0,0-146,112.4-218.2,149.3" class="st11"></path>%0A%09%09%09<path d="M1396.4,2051c0,0-33.9,4.5-68.8-3.9" class="st11"></path>%0A%09%09%09<path d="M1316.2,1996.6c0,0-20.5,49.4-10.8,65.9" class="st11"></path>%0A%09%09%09<path d="M1352,2122.6c0,0-59.6-20.8-79-38.4" class="st11"></path>%0A%09%09%09<path d="M1216.4,2052.4c0,0-4.7,37.9,18.4,55.6" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M882.7,2066.4c10.6,1.3,21,2.9,31.1,4.8c13.6,13.1,30.4,35.2,30.3,62.7c-1.8,23.8,15.4,19.7,16.3,10%0A%09%09%09%09c0.7-7-2.6-43-4.5-62.6c108.1,32.2,164.1,103.7,86.8,204.4c0,0,80.5,195.4-178.5,184.8c22.7-22.7,62.8-66.9,41.4-76.4%0A%09%09%09%09c-27.3-12.2-10,45.1-70.7,74.5c-19-1.7-39.5-4.4-61.7-8.2c-24-5.1-47.2-15.4-69.1-28.8c39.7-11.4,137-41.9,120.6-63.3%0A%09%09%09%09c-18.9-24.6-31,45.8-143.9,47.6c-21.5-15.8-41.4-33.9-58.9-52.1c37.3-6,107.4-20.1,100.5-40.6c-5.2-8.8-23.3,1.5-49.6,10.6%0A%09%09%09%09c-16.7,5.7-46.9,10.3-66.7,12.9c-38.7-43.2-62.7-81.8-62.7-81.8s30.7-35.6,77.3-76.8c23.3,3.1,68.1,9.9,76,18.1%0A%09%09%09%09c10.7,11.2,29.3,3.1,19.9-14.1c-7.3-13.2-42.1-23.8-69.1-26.7c20.4-16.6,42.9-33.2,66.6-48c31,11.1,99.6,37.5,106.2,56.3%0A%09%09%09%09c7.6,12.8,28.5,9,14.2-20.6c-10.9-22.7-68.4-42.4-95-50.5C786.1,2077.1,836.1,2060.7,882.7,2066.4z" class="st12"></path>%0A%09%09%09<path d="M593.2,2264.5c0,0,316.6-1.6,449.7,21.1" class="st13"></path>%0A%09%09%09<path d="M740.2,2197.3c0,0,46.4,26.9,77.7,70.8" class="st13"></path>%0A%09%09%09<path d="M768.3,2342.5c0,0,86.7-42.5,95.7-72.6" class="st13"></path>%0A%09%09%09<path d="M883.4,2149.7c0,0,45.4,83.2,46.7,123.9" class="st13"></path>%0A%09%09%09<path d="M958.3,2368c0,0,53.3-43.2,47.7-87.5" class="st13"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M924,1810c7.6,5.4,14.9,11,21.8,16.7c4.5,17.1,7.4,43.4-5.2,67.8c-12.3,20.5,2.9,23.7,8,15.4%0A%09%09%09%09c3.7-5.9,17.7-39.3,25.2-57.5c68.8,71.8,79.4,157.7-26.4,216.5c0,0-27.1,205.9-222.4,93.1c27.9-11.1,79.1-34.4,67-51.4%0A%09%09%09%09c-15.5-21.8-28.3,36.1-88.6,38c-13.9-9.1-28.5-19.7-43.9-32c-16.2-14.1-29.4-32.6-40.2-53.2c35.9,5.7,125,17.5,122.1-8.1%0A%09%09%09%09c-3.3-29.5-44.9,28.3-132.9-15.1c-9.4-22.6-16.5-46.7-21.7-69.8c31.6,9.6,92.2,25,96.2,4c0-9.9-18.7-8-43.2-10.4%0A%09%09%09%09c-15.5-1.6-41-9.5-57.5-15.1c-10.2-53.9-11.1-97.8-11.1-97.8s40-19.4,94.8-37.4c16.6,12,48.1,36,50.4,46.4%0A%09%09%09%09c3.2,14.2,21.3,14.5,21.8-4.6c0.4-14.7-21.6-38-41.2-51.3c23.4-6.6,48.4-12.4,73.4-16.1c18.9,22.3,59.8,73.1,56.3,92.5%0A%09%09%09%09c0,14.5,17.9,19.4,20.4-12.7c1.9-24.5-33.5-65-50.3-82.8C844.5,1781,890.6,1786.3,924,1810z" class="st10"></path>%0A%09%09%09<path d="M609.7,1870.6c0,0,245.3,125,337.8,198.4" class="st11"></path>%0A%09%09%09<path d="M754.1,1869.5c0,0,23.6,42.4,27.7,94" class="st11"></path>%0A%09%09%09<path d="M709.4,2009.9c0,0,86.4-3.2,107.1-26.3" class="st11"></path>%0A%09%09%09<path d="M886.5,1884.4c0,0-2.9,92.1-20.5,128.9" class="st11"></path>%0A%09%09%09<path d="M844.5,2108.4c0,0,60.9-17.2,76.8-58.8" class="st11"></path>%0A%09%09</g>%0A%09%09<g>%0A%09%09%09<path d="M1245.1,1794.2c20.8-5.3,34.8-21,42.5-32.8c-0.2-7.2-0.7-14.6-1.4-22.1c-3.2-32.9-23.8-63.7-50.7-90.6%0A%09%09%09%09c-1.8,19.7-7.4,62.7-22.8,74.5c-20.1,15.5-26.4,2-17.9-5.6c13.2-8.1,22.1-59.9,25.4-83.2c-15-13.2-31.3-25.3-47.2-36%0A%09%09%09%09c2.2,19-0.2,44.7-9,52.2c-11.4,9.8-20.6-1.3-13.9-10.8c4.9-7,2.8-38.8,1.4-55.2c-33.1-20.3-61.3-33.5-68.7-36.8%0A%09%09%09%09c-1.2-0.6-1.9-0.9-1.9-0.9s-25.3,23.8-51.7,58.6c5.2,13,13.5,32.7,20.6,42.9c11.1,16.1,21.9,26.5,16,31.7%0A%09%09%09%09c-14.4,8.7-36.4-36.3-47-60.5c-10.9,15.5-21.4,32.5-29.9,50.2c19.7,76.5,74.9,71.1,59.3,88.7c-13.5,15.3-52.4-45-67.4-69.8%0A%09%09%09%09c-6.6,17.5-10.6,35.3-10.6,52.6c0.7,15.9,2,30.4,3.8,43.6c32.1,35.6,72.7,12.7,67.8,33.6c-3.8,16.4-43.7-2.3-64.6-13.4%0A%09%09%09%09c33.9,178.4,168.8,85.6,168.8,85.6c0.7,0.2,1.3,0.5,2,0.7c87.5,31.6,132-20.3,138.8-99.5c-14.6,5.1-41.3,14.3-46.7,15.2%0A%09%09%09%09C1232.6,1808.5,1226.7,1797.5,1245.1,1794.2z" class="st10"></path>%0A%09%09%09<path d="M1089.2,1580.6c0,0,52.5,215.2,56.8,310.2" class="st11"></path>%0A%09%09%09<path d="M1164,1667.7c0,0-12.8,36.8-41,66.6" class="st11"></path>%0A%09%09%09<path d="M1058.6,1715c0,0,46.2,50.8,70.4,51.1" class="st11"></path>%0A%09%09%09<path d="M1223.1,1755.9c0,0-55.6,47.1-86.3,55.9" class="st11"></path>%0A%09%09%09<path d="M1070,1849.3c0,0,41.4,27.9,74,15.4" class="st11"></path>%0A%09%09</g>%0A%09%09<path d="M1146.1,1890.8c0,0,14.8,158.8-25,350.6" class="st14"></path>%0A%09%09<path d="M937.7,2061.4c0,0,170.2,50.3,183.3,183.5" class="st14"></path>%0A%09%09<path d="M1029.4,2285.6c13.6-4.9,80.6-4.6,99.5,8.8" class="st14"></path>%0A%09%09<path d="M1223.3,2114.4c0,0-98.3,30.9-77.3,232.1" class="st14"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M2812.2,2216.6c0,0,60.8,180.6,68.3,350.2c-193.8,44.1-832.8-6.2-832.8-6.2%0A%09%09%09s14-297.1,80.4-332.6C2416.5,2250.4,2812.2,2216.6,2812.2,2216.6z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M2880.5,2566.9c-7.5-169.6-68.3-350.2-68.3-350.2s-395.8,33.8-684.1,11.4%0A%09%09%09c-17.2,9.2-30.9,36-41.7,70.6c61.5,25.5,298.6,104,672.8-9.3c-4.1,90.6,73.5,94.8,73.5,94.8c12.1,42.2,11.5,131.9,9.7,189.5%0A%09%09%09C2856.4,2571.7,2869.2,2569.4,2880.5,2566.9z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09<path d="M2025.5,1497.7c-85.5,55.5-169,100.9-241.9,164.1c7.6,4.2,13.3,9.3,16.2,15.7%0A%09%09%09c0,0,180.9-97,314-235c-1,0.6-1.9,1.2-2.9,1.8C2081.6,1463,2054.9,1479,2025.5,1497.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2229.4,1095.4c-25.7-0.9-176.5,78.1-272.1,168.2c-95.6,90.1-340.3,323.9-337.5,369.2%0A%09%09%09c19.6,10.4,121.7,5.7,163.9,29c72.9-63.1,156.4-108.6,241.9-164.1c29.4-18.7,56.1-34.7,85.5-53.4c0.9-0.7,1.9-1.2,2.9-1.8%0A%09%09%09c13.7-14.2,26.8-28.8,39.2-43.8C2153.1,1398.7,2255.2,1096.3,2229.4,1095.4z" class="st15"></path>%0A%09%09<path d="M2771.6,1674.1c-70.5,28.9-142.4,50.7-222.4,50.7c-37.4,0-80.1,18.7-104.2,53.4%0A%09%09%09c-61.4,98.9-133.6,184.3-232.4,229.8c-32.1,14.6-74.5,15.6-110.7,1.8c-16.7,87.9-31.4,153-31.4,153s68.3,148.9,349.6,142.7%0A%09%09%09c281.3-6.2,397.1-37.2,407.5-93.1C2841.2,2157.3,2787.4,1837.7,2771.6,1674.1z M2709.5,2042.7v-2.7V2042.7z" class="Graphic_x0020_Style_x0020_120"></path>%0A%09%09<path d="M2767.4,1598.2c4.1-101.3,24.8-260.6-97.2-366.1c-122-105.5-384.9-173.4-473.5-126.7l-76.5,292.8%0A%09%09%09c11.8,55.4,25.9,140.8,27.6,239.6c1.7,97.6-23.8,254.9-46,372c36.3,13.8,78.6,12.7,110.7-1.8c98.9-45.4,171-130.9,232.4-229.8%0A%09%09%09c24-34.7,66.8-53.4,104.2-53.4c80,0,151.9-21.8,222.4-50.7C2768.4,1641.5,2766.7,1615.1,2767.4,1598.2z" class="st15"></path>%0A%09%09<path d="M2357.9,1064.1c0,0-9-52.4-22.1-33.8c-13.1,18.6-10.3,92.4,9,98.6" class="st16"></path>%0A%09%09<path d="M2626.6,1195.8c5.3-16-5.3-34.7-24-34.7c-74.8,5.3-155,13.4-224.4-18.7c-23.9-11-31.4-34.7-32.8-58.9%0A%09%09%09c-12.4,46.4-71.3,284.2,13.2,332.7c71.4,40.9,184.3-8.4,256.1-105.5C2581,1285.5,2613.8,1234.5,2626.6,1195.8z" class="st16"></path>%0A%09%09<path d="M2517.2,949.8c-125.5-23.1-169.6,125.8-169.6,125.8s-0.8,2.8-2.2,7.9%0A%09%09%09c1.4,24.2,8.9,47.9,32.8,58.9c69.5,32.1,149.6,24,224.4,18.7c18.7,0,29.4,18.7,24,34.7c-12.9,38.6-45.6,89.7-12,114.9%0A%09%09%09c22.5-30.4,41-65.6,52.8-104.1C2717.1,1045.3,2621.6,969,2517.2,949.8z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2650.9,1208c2.1-1.4,41.5-29.8,53.8,4.1c10.6,31.7-40.8,91.7-77.6,80.7l-7.2-3.4" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2641.7,1253.5c0,0,22.4-60.7,39.3-38c16.9,22.7-50.4,66.6-53,66.6C2625.5,1282,2641.7,1253.5,2641.7,1253.5%0A%09%09%09z" class="st16"></path>%0A%09%09<path d="M2695.3,1256.7L2573,1608.5c0,0-4.1,73.6,8.3,89.5c-74.5,98.7-223.4,363.4-223.4,363.4%0A%09%09%09c93.1,24.8,111.9,120,92.1,155.1c108.5-97.2,400.1-407.5,406.4-575C2879.1,1534.1,2854.6,1361.8,2695.3,1256.7z" class="st15"></path>%0A%09%09<path d="M2837.6,1430.3c30.9,169.9,7.7,183.1-75,353.6%0A%09%09%09c-61.7,127.1-230.6,287.4-312.6,360.9c9.9,28.2,8.9,56.1,0,71.9c108.5-97.2,400.1-407.5,406.4-575%0A%09%09%09C2868.7,1583.2,2867.1,1505.7,2837.6,1430.3z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M2680.8,1197.5c-6.7,0-12.5,1.5-17.3,3.9c-21.5,10.5-26.4,38.8-26.4,38.8s-8.9,23.1-16.3,12.6%0A%09%09%09c-0.8-1.2-1.6-2.7-2.3-4.8c18.6-24.8,18.6-85.5,11.7-103.4c-6.9-17.9-99.3,26.2-212.3-13.8c-68.9-29.9-68.1-84.2-59.4-118%0A%09%09%09c4.5-17.6,11.1-29.6,11.1-29.6c8.7-20.6,14.7-76,34.2-70.3c40.6,11.7,106.8-29.1,164.9-24.4c49.8,4.1,97.3,36.1,128.3,67.6%0A%09%09%09c18.2,18.5,30.7,36.8,34.4,49.1C2741.5,1038.4,2700.5,1163.4,2680.8,1197.5z" class="st17"></path>%0A%09%09<path d="M2759.2,2289.4c0,0-18.6,62.6,23.2,86c41.8,23.4,50.2,8.7,50.2,8.7S2751.6,2373.8,2759.2,2289.4z" class="st9"></path>%0A%09%09<path d="M1712.9,1890.5c-52.6-85.2-72.3-184.5-63.6-284.7c-5.7,3.2-11.6,6.9-17.5,11%0A%09%09%09c0,0-40.7,64.1,46.2,255.8c-60.7,57.2-63.2,76.8-57.8,148.5c3.8,6,7.7,11.4,11.8,16.3C1628.4,1981.4,1663.8,1922.1,1712.9,1890.5z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M1827.7,1946.4c-2.8-88.2-44.1-69.6-38.6-133.1c5.5-63.4,12.4-109.6,15.9-150.3%0A%09%09%09c3.3-38.4-60.9-110.4-155.6-57.2c-8.8,100.2,10.9,199.5,63.6,284.7c-49.2,31.6-84.5,91-80.9,146.9c42.1,50.6,95,40.7,95,40.7%0A%09%09%09s40.7-51,44.8-68.3c11.7,0.7-32.4,71-32.4,71s7.6,14.2,24.1,13C1780.1,2092.5,1830.4,2034.6,1827.7,1946.4z" class="st16"></path>%0A%09%09<path d="M1679.1,1995l-15.9,55.8c0,0,23.8-50.3,29.3-72C1698.1,1957.1,1679.1,1995,1679.1,1995z" class="st18"></path>%0A%09%09<path d="M1719.7,2081.7c0.5-1.4,56.1-102.4,65.3-88.7c9.2,13.7-42,92.4-42,92.4s-5.3,3.1-3.5-4.7%0A%09%09%09c1.8-7.8,42.7-68.9,35.4-68.5c-7.4,0.5-44.1,60.7-47.8,65.7S1719.7,2081.7,1719.7,2081.7z" class="st18"></path>%0A%09%09<path d="M1686.9,2067.8c0,0,33.5-83.7,43.3-79.9c9.8,3.9-39.4,83.3-39.4,83.3L1686.9,2067.8z" class="st18"></path>%0A%09%09<path d="M1653.4,1961.3c0,0-15.7,62.3-15.2,75C1645.6,2045.3,1657.7,1960.6,1653.4,1961.3z" class="st18"></path>%0A%09%09<path d="M1761.8,2227.6c-54.2-19.3-110.3-23.2-166.4-38.7c-0.1,0-0.2-0.1-0.3-0.1c8.4,8.6,16.7,17.2,25.1,25.7%0A%09%09%09c53.2,60.7,288.8,91.2,288.8,91.2s-10.9-9.9-72.5-89.2c-8.1,3.7-16.2,7.5-24.4,11.1C1796.6,2235.3,1777.3,2233.4,1761.8,2227.6z" class="st19"></path>%0A%09%09<path d="M1267.8,1860.2c0,0,164.6,162.1,327.3,328.6c0.1,0,0.2,0.1,0.3,0.1c56.1,15.5,112.2,19.3,166.4,38.7%0A%09%09%09c15.5,5.8,34.8,7.7,50.3,0c8.2-3.6,16.4-7.4,24.4-11.1c-33.8-43.5-82.8-108-153.6-203.3%0A%09%09%09C1514.7,2038.1,1267.8,1860.2,1267.8,1860.2z" class="st20"></path>%0A%09%09<path d="M1894.6,2339.3c-53.4,8-106.9,10.7-163-2.7c-19-4.7-34.6-13.9-48.5-25.2%0A%09%09%09c15.8,36.7,102.7,87.4,133.9,82.8c31.7-4.6,303.8-96.5,339.7-99.3c35.9-2.8,272.6-59.4,293.2-78.4c6.2-5.7,10.6-21.4,10.5-40.6%0A%09%09%09c-161,58-322,87.3-483.1,141.9C1950.7,2325.9,1921.3,2334,1894.6,2339.3z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M2357.9,2061.5c-149.6,34-453,200.5-549.1,192.3c0,0-60.2,7.5-96.1-8.3c-35.9-15.8-83.7-37.4-96.5-28.9%0A%09%09%09c-10.2,6.8,29.5,56.4,52.7,80.6c6,6.2,10.8,10.8,13.5,12.5c0.2,0.6,0.5,1.1,0.7,1.7c13.9,11.3,29.5,20.5,48.5,25.2%0A%09%09%09c56.1,13.4,109.5,10.7,163,2.7c26.7-5.3,56.1-13.4,82.8-21.4c161-54.5,322-83.8,483.1-141.9%0A%09%09%09C2460.3,2131.9,2436.5,2068.5,2357.9,2061.5z" class="st16"></path>%0A%09</g>%0A%09<path d="M5147.8,2758.7c3.3,42.6-104.8,129-220.1,160.2c-111.1,40.4-316.5,84.1-839.1,218.8%0A%09%09c-356.5,91.9-571.8,151.6-716.6,186.6c-191.1,46.2-259.5,49.2-368,26c-51.4-11-96.9-24.7-137.9-40%0A%09%09c-255-95.3-339.6-255.1-634.7-236.4c-200.1,12.7-322,96.2-560,42.5c-136.3-30.7-235.9-89.6-304.8-131.1%0A%09%09c0,0-186.3-112.1-344.2-301.7c-39.9-42.2-73.3-85.6-94.5-130.9l1061.8-81.6L5147.8,2758.7z" class="Graphic_x0020_Style_x0020_118"></path>%0A%09<polygon points="1909,2627.9 2329.7,2696.9 2880.5,2648.9 2839.9,2636 1902.2,2607.7 1873.4,2616.7" class="st21"></polygon>%0A%09<path d="M2902.4,2554.2c0,0,128.1,29.9,198.1,36.5c16.9,26,103.7,26.1,139.2,31.4c35.5,5.3,64.9,60.1,137.9,65%0A%09%09c73,4.9,88.9,32.2,118.2,30.1c29.2-2.1,39.1-54.7,49.7-59.9c10.6-5.2-32-38.9-10.7-45.5C3396.5,2597.2,2902.4,2554.2,2902.4,2554.2%0A%09%09z" class="st21"></path>%0A%09<path d="M3668.6,2761.4c39.6,3,90.3-36.8,169.2-23.5c88.5,14.9,307.2,32.5,354.3-1.4%0A%09%09c61.3,3.3,696.2,65.4,749.1,44.1c52.9-21.3,68-34.5,68-34.5l-1182-107.2c0,0-299.4,44.5-286.7,84.2%0A%09%09C3547.2,2749,3629,2758.4,3668.6,2761.4z" class="Graphic_x0020_Style_x0020_117"></path>%0A%09<path d="M3779.6,3218.3c-115.9-48.9-340.1-136.6-484.1-148c-201.1-15.9-340.3-109.9-337.2-157.7%0A%09%09c3.1-47.8-605.8-113-946.8-126.3c-204.7-8-676.2-112.3-330.9-291.5l-79,6.1c-81.3,57.9-200.4,165.5-77.3,230.8%0A%09%09c174.8,92.7,1373.9,95.9,1387.8,212c13.2,110.3,575.5,195.9,765.9,301.5C3710,3236.7,3743.7,3227.7,3779.6,3218.3z" class="st22"></path>%0A%09<g>%0A%09%09<path d="M4484.2,1461.7v1181h488.7v-1181H4484.2z M4939.2,2561.4h-421.4v-539.8h421.4%0A%09%09%09V2561.4z M4939.2,1982.4h-421.4v-485.5h421.4V1982.4z" class="Graphic_x0020_Style_x0020_107"></path>%0A%09%09<rect height="485.5" width="355.8" class="Graphic_x0020_Style_x0020_118" y="1496.9" x="4583.5"></rect>%0A%09%09<rect height="485.5" width="65.6" class="Graphic_x0020_Style_x0020_119" y="1496.9" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="80.1" class="Graphic_x0020_Style_x0020_119" y="2021.5" x="4517.8"></rect>%0A%09%09<rect height="539.8" width="341.3" class="Graphic_x0020_Style_x0020_118" y="2021.5" x="4597.9"></rect>%0A%09%09<polygon points="5067.7,1559.5 4972.9,1461.7 4975.8,2765.4 5070.3,2765.4" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<polyline points="2442.7,2752.3 2386.8,2825.9 2352.6,2827.7 2416.8,2743.1 2832.6,2738.3 %0A%09%09%092839.9,2747.7" class="Graphic_x0020_Style_x0020_117"></polyline>%0A%09%09<polygon points="2832.6,2738.3 2416.8,2743.1 2352.6,2827.7 2134.5,2839.2 2105.5,2724.6 %0A%09%09%092798.5,2694.4" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="3202.8,2854.8 2364.9,2854.8 2386.8,2825.9 2442.7,2752.3 2839.9,2747.7 %0A%09%09%093134.1,2744.3" class="Graphic_x0020_Style_x0020_117"></polygon>%0A%09%09<polygon points="2839.5,2730.9 2805.3,2687.1 2112.4,2717.2 2141.4,2831.8 2359.4,2820.3 %0A%09%09%092393.7,2818.5 2449.6,2745 2846.8,2740.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09%09<polygon points="3202.8,2848.8 2364.9,2848.8 2386.8,2819.9 2442.7,2746.3 2839.9,2741.7 %0A%09%09%093134.1,2738.3" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3326.7,2053.5c67.2,11.8,127,45.4,188.5,75.5c-25.6-21.6-54.4-38-66.9-44.7c-69.9-65-238.4-55.8-331.3-54.5%0A%09%09%09c-56.7,0.8-107.4,28.8-147.4,65.5C3076.9,2034.1,3204.5,2033.1,3326.7,2053.5z" class="st23"></path>%0A%09%09<path d="M3390.7,2125.6c29.4,10.7,40.1,48.1,64.1,69.5c33.5,30.3,76.4,36.8,117.6,27.5c-4-13-8.3-25.7-12.8-37.7%0A%09%09%09c-7.5-20.2-25.1-39.4-44.4-55.7c-61.4-30.2-121.3-63.8-188.5-75.5c-6.7-1.1-13.5-2.2-20.2-3.1c2.5,4.5,4.8,9.1,6.8,13.8%0A%09%09%09c6.9,18.8,10.9,38,12.4,57.2C3347.5,2119.7,3369.7,2120.3,3390.7,2125.6z" class="st23"></path>%0A%09%09<path d="M3454.8,2195c-24-21.4-34.7-58.8-64.1-69.5c-21.1-5.3-43.3-5.9-65.1-4.2c6.4,84.5-36.4,169.9-95.2,228.6%0A%09%09%09c-29.4,32.1-61.4,58.8-101.5,82.8c-32.1,21.4-66.8,37.4-101.5,53.4c-41.6,14.5-81.5,4.8-119.8-10.2c3.7,32.6,11.1,70.7,27.1,85.4%0A%09%09%09c2.2,2,149.9,56.5,246.1,29.3c130.3-36.9,227.4-163.5,314.2-210.2c10.9-5.9,21.4-12.4,31.4-19.5l-0.4-14l53.6-33.2%0A%09%09%09c3.8-4.2,7.6-8.5,11.2-12.9c-4.1-26.8-10.7-53.3-18.4-78.3C3531.3,2231.8,3488.3,2225.3,3454.8,2195z" class="st24"></path>%0A%09%09<path d="M2963.9,2113.7l-74.4,244.3c3.2,19.6,7.7,41,13.7,64.4c0.8-0.5,1.1,24.3,4.3,53.6%0A%09%09%09c38.3,15.1,78.3,24.8,119.8,10.2c34.7-16,69.5-32.1,101.5-53.4c40.1-24,72.1-50.8,101.5-82.8c65-65,110.5-162.6,91.4-255.6%0A%09%09%09C3210,2135.2,3083,2108.6,2963.9,2113.7z" class="st25"></path>%0A%09%09<path d="M3321.8,2094.4c-2.1-10.2-4.9-20.2-8.6-30.2c-2-4.6-4.2-9.2-6.8-13.8c-116-16.9-235.4-12.9-336.9,44.9%0A%09%09%09l-5.6,18.4C3083,2108.6,3210,2135.2,3321.8,2094.4z" class="st26"></path>%0A%09%09<path d="M3590.8,2300.8c-3.6,4.4-7.4,8.7-11.2,12.9l12-7.5C3591.4,2304.4,3591.1,2302.6,3590.8,2300.8z" class="st9"></path>%0A%09%09<g>%0A%09%09%09<path d="M3452.4,2090.3c-50.3-112.2-85.1-243.7-193.4-309.5c-17.4-9.7-50.3-13.5-71.6,3.9%0A%09%09%09%09c-34.5,27-36.4,68-35.6,109.5c51.1,42.2,96.7,74.2,118.4,75.2c65,3,117,150.1,192.8,215.4c35.5,30.6,78.2,23.7,113.6,7.7%0A%09%09%09%09c-19.8-3.7-39.3-11.4-54.6-19C3487.2,2158,3467.9,2123.1,3452.4,2090.3z" class="Graphic_x0020_Style_x0020_116"></path>%0A%09%09%09<path d="M3489,1994.5c-13.8-96.5-49-197.2-111.1-242.1c-62.1-44.9-38.1-160-114.8-199.7%0A%09%09%09%09c-190.3-102-287.5,4.8-333,55.2c-45.5,50.3-4.1,77.2-4.1,77.2s123.9,124.8,225.9,209c-0.9-41.4,1-82.4,35.6-109.5%0A%09%09%09%09c21.3-17.4,54.2-13.5,71.6-3.9c108.3,65.8,143.1,197.3,193.4,309.5c15.5,32.9,34.8,67.7,69.6,83.2c15.3,7.7,34.8,15.3,54.6,19%0A%09%09%09%09c40.3-18.2,71.2-48.2,71.2-48.2S3502.8,2091.1,3489,1994.5z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09%09<path d="M3182.3,2144.3c-13.4-74.8,34.7-189.7-58.8-221.7c-16-61.4,5.3-128.2-37.4-184.3%0A%09%09%09%09c-33.7-46.4-75.8-81.1-127.5-97.6c-15.4,4-42.2,14-46.3,24.6c-13.8,35.6-24.4,108.3-3.6,195.1c19.9,94,53.6,191.2,151.7,162.7%0A%09%09%09%09c51,68.9,51,103.4,48.3,128.2c25.3,30.5,60,37.2,94.1,32.1C3192.8,2173.6,3185.5,2160.8,3182.3,2144.3z" class="st16"></path>%0A%09%09%09<path d="M3314.2,2124.9c-5.5-129.6-75.8-207-93.8-211.7c30.3-46.1,33.1-82-6.9-106.8%0A%09%09%09%09c-40-24.8-57.9,67.6-57.9,67.6s-19.3,18-16-3.3c17.7-114.7-62.5-214-170.5-231.9c-1.2-0.2-5.1,0.5-10.4,1.9%0A%09%09%09%09c51.7,16.5,93.8,51.2,127.5,97.6c42.7,56.1,21.4,122.9,37.4,184.3c93.5,32.1,45.4,146.9,58.8,221.7c3.1,16.5,10.5,29.3,20.4,38.9%0A%09%09%09%09C3250.3,2176,3296.5,2145.8,3314.2,2124.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M2969,1635.8c0,0,75.2,27.2,72.4,70.7c-2.8,43.5-9.8,77.5,56.3,98.1c-31.6-35.6-34.2-44-26.9-86.3%0A%09%09%09%09S3035.8,1587.8,2969,1635.8z" class="st17"></path>%0A%09%09%09<path d="M2789.6,2288.5c-77.5,101.5-203,106.9-323.3,128.2c-27.7,5.9-43.7,28.1-64.3,43.4%0A%09%09%09%09c7.2,13.8,19.1,27.9,28,39.8c0.5-0.1,1.1-0.3,1.6-0.4c159.5-16.7,359.4-29.1,470.9-150.7l-0.1-16l61-218.3%0A%09%09%09%09c-27.4,9-56.1,12.8-77.6,32.4C2837.7,2184.3,2824.3,2243.1,2789.6,2288.5z" class="st25"></path>%0A%09%09%09<path d="M3017.4,2050.7c-17.9,4.3-35.5,9.7-52.8,16.1c-58.6,21.8-113.1,55-149.7,106.6%0A%09%09%09%09c-16.4,23.2-29.7,48.3-42.2,73.7c-5.8,11.7-11.7,21.5-19.5,31.9c-8.1,10.8-17.8,20.2-27.8,29.2c-21.9,19.5-47.7,34.4-75.4,44.1%0A%09%09%09%09c-33.1,11.6-67.9,16.1-101.5,25.4c-82.7,23-147.1,41.1-152.6,60.5c-0.2,7,2.3,14.5,6.2,22c20.6-15.4,36.6-37.5,64.3-43.4%0A%09%09%09%09c120.2-21.4,245.8-26.7,323.3-128.2c34.7-45.4,48.1-104.2,96.2-141.6c21.5-19.6,50.2-23.4,77.6-32.4l5.1-18.3%0A%09%09%09%09c11-10.8,16.7-15,29.5-24.1c14.7-10.5,30.5-19.7,47.1-26.7c0.1-0.2,0.2-0.4,0.3-0.6C3036,2046.5,3026.6,2048.4,3017.4,2050.7z" class="st23"></path>%0A%09%09%09<path d="M3045.4,2044.9c-0.1,0.2-0.2,0.4-0.3,0.6c0.7-0.3,1.4-0.6,2.1-0.9%0A%09%09%09%09C3046.6,2044.7,3046,2044.8,3045.4,2044.9z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09%09<path d="M2431.6,2499.6c-0.5,0.1-1.1,0.3-1.6,0.4c0.9,1.2,1.8,2.4,2.6,3.6c10.8,15.3,7.8,45,49.1,42.6%0A%09%09%09%09c30.8-6,230-18.7,273.3-29.7c32-8.2,82.2-26.3,148.2-94.1l-0.7-73.5C2791,2470.5,2591.1,2482.9,2431.6,2499.6z" class="st24"></path>%0A%09%09%09<path d="M2398.2,2439.8c0,0,40.7-31.7,69.6,4.1c29,35.9,49.3,96,29,100.7c-20.4,4.6-65.8,2.1-87-35.2%0A%09%09%09%09C2388.5,2472.2,2387.5,2454.3,2398.2,2439.8z" class="st27"></path>%0A%09%09%09<path d="M3350.7,1877.1c18.7-58.6,71.9-104,69.5-165.2c-4.1,1.2-8.2,5.1-10.8,12.5c-7.6,21.4-71.4,103.8-71.4,103.8%0A%09%09%09%09s0,0,3.8-22.1s1.4-35.5-9.7-36.9c-11-1.4-18.3,10.3-18.3,10.3c1-31-13.4-29.3-23.4-27.6c-10,1.7-9.3,51.4-10,64.8%0A%09%09%09%09c-0.7,13.4-15.2,26.9-20-4.1c-2.8-35.9-40.7-71.7-51.7-66.9c-11,4.8,14.8,62,13.1,94.5c-1.7,32.4-20,100.7-5.5,148.2%0A%09%09%09%09c14.5,47.6-3.4,102-3.4,102l85.3,21.2c4.2-67.5,4.5-134.6,44.5-197.1C3350.7,1903.8,3348,1890.5,3350.7,1877.1z" class="st16"></path>%0A%09%09%09<path d="M3420.1,1711.9c2.4,61.2-50.8,106.6-69.5,165.2c-2.7,13.4,0,26.7-8,37.4%0A%09%09%09%09c-40,62.5-40.2,129.7-44.5,197.1l22.9,5.7c0,0-3.5-115.8,17.2-141.3c20.7-25.5,15.2-80,25.3-108.9c10.1-29,71.3-117.9,72-137.2%0A%09%09%09%09C3436,1717.3,3427.9,1709.7,3420.1,1711.9z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09<path d="M3305.2,1839.7c-0.4,0.9,11-56.8,9-67.2c4.3,1.6,4.3,1.6,4.3,1.6S3312.8,1824.1,3305.2,1839.7z" class="st9"></path>%0A%09%09%09<g>%0A%09%09%09%09<polygon points="2369.1,2558.8 2880.5,2623.2 2325,2668.2 1891.1,2604.1" class="Graphic_x0020_Style_x0020_115"></polygon>%0A%09%09%09%09<polygon points="2264.3,2566.5 2626.8,2624.8 2334.4,2648.9 2170.4,2611.3" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M2421.8,2452.1c-5.6-0.2-22.6,8.6-22.6,8.6s-13.8-44.1-80.7-43.4s-64.8,65.5-64.8,65.5s5.5,77.2,26.9,93.1%0A%09%09%09%09%09c21.4,15.9,99.3,4.1,102.4,0c3.1-4.1,45.3-6.9,66.9-30.3c21.6-23.4,33.5-24.4,33.5-24.4S2463.5,2453.5,2421.8,2452.1z" class="st16"></path>%0A%09%09%09%09<path d="M2319.3,2460c0,0-45.5,32.4-15.2,90.3c-6.8,0.6-6.8,0.6-6.8,0.6%0A%09%09%09%09%09S2262.7,2493.1,2319.3,2460z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09%09%09<path d="M2376.8,2552.2c0,0-56.9-11.2-43.1-33.6c13.8-22.4,45.5-15.9,46.9-24.5%0A%09%09%09%09%09c1.4-8.6-15.9-23.8-21.7-14.5c-5.9,9.3-15.5,25.2-15.5,25.2s-24.1,6.2-17.9,23.1c6.2,16.9,33.8,15.5,6.2,16.9%0A%09%09%09%09%09c-27.6,1.4-39.6,0-39.6,0s-7.4,36.2,7.3,37.5c14.7,1.4,61.6,6.9,105-10.3c43.4-17.2,43.8-24.7,43.8-24.7%0A%09%09%09%09%09S2401.3,2559.2,2376.8,2552.2z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09%09%09<polygon points="2331,2682 2848.1,2642 2880.5,2623.2 2322,2668.2 1885.6,2604.1 %0A%09%09%09%09%091893.9,2613.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09%09%09%09<path d="M1784.9,2001.5l427.1,0.5l15.9,3c18.3,3.5,31.9,18.7,33.5,37.3c9.9,120.2,38.5,538.8,42.7,616.9%0A%09%09%09%09%09c0.3,6.5-11.2,15-17.7,14.2l-444.6-65.8L1784.9,2001.5z" class="st28"></path>%0A%09%09%09%09<path d="M1794.6,1993.3l411.5,8.2c15.8,0.3,28.8,12.5,30.1,28.3c10.4,126.7,52.8,644.5,49.2,643.3%0A%09%09%09%09%09c-3.6-1.2-348.6-51.6-443.5-65.4c-14.1-2.1-24.9-13.4-26.2-27.6l-52.4-553C1761.5,2008.7,1776.2,1992.9,1794.6,1993.3z" class="st29"></path>%0A%09%09%09</g>%0A%09%09%09<path d="M3465.5,2285.9c-5.8-29.1-28.6-54-57-68.5c9.3,57-21.2,85.5-21.2,85.5c-6.8,3.4-40.2,78.1-48.3,71.7%0A%09%09%09%09c-4.1-3.3-5.8-14.7-6.3-29.4c-17.3-67.3-4-136.5-11.5-203.5c-2.3-18.1-0.7-36.2-6.7-52.6c-6.5-5.5-15.7-10.3-27.9-14.4%0A%09%09%09%09c0.8,120.3-17.7,240.4,10.5,355.6c8,37.4,77.5,16,112.2-8C3452.2,2392.7,3478.9,2339.3,3465.5,2285.9z" class="st24"></path>%0A%09%09%09<path d="M3332.7,2345.1c-0.9-27.1,2.3-65.1,1.7-83.5c-0.9-28.4,4.6-84.2-6.4-147.7c-0.5-9.3-4.6-17.6-13.4-24.9%0A%09%09%09%09c5.9,16.5,4.4,34.5,6.7,52.6C3328.7,2208.5,3315.4,2277.8,3332.7,2345.1z" class="st27"></path>%0A%09%09%09<path d="M3591.6,2306.2l-189.3-113.8c2.9,8.8,4.9,17.1,6.2,24.9c28.4,14.5,51.2,39.4,57,68.5%0A%09%09%09%09c4.9,19.6,4.4,39.1-0.3,57.5c36.8,33.3,76.9,62.3,118.5,89.3C3596.9,2393.5,3597.6,2349.6,3591.6,2306.2z" class="st24"></path>%0A%09%09%09<path d="M3226.7,2062.8c-4.2-0.5-8.6-0.9-13.2-1.3c-89.6,102-96.5,485.4-63.4,524c10.1,11.8,36.5,17.9,71.6,18.6%0A%09%09%09%09c-2.7-1.6-5.1-3.5-7.3-5.6C3080,2450.9,3137.9,2222.8,3226.7,2062.8z" class="st23"></path>%0A%09%09%09<path d="M3465.3,2343.4c-8.1,31.8-28.7,60.1-55.8,78.8c-34.7,24-104.2,45.4-112.2,8%0A%09%09%09%09c-28.2-115.2-9.7-235.3-10.5-355.6c-15.1-5.1-34.8-9.1-60-11.8c-88.8,160-146.7,388.1-12.3,535.7c2.1,2.1,4.6,4,7.3,5.6%0A%09%09%09%09c79.8,1.5,205-25.2,288.3-77.9c38.4-24.3,61.5-56.9,73.7-93.5C3542.2,2405.6,3502.1,2376.6,3465.3,2343.4z" class="st25"></path>%0A%09%09</g>%0A%09%09<path d="M3123.6,1922.5c3.2,5.9-36.5,92.1-63.1,100.4c35,56.6,28,41.3,37.6,63.1c63.2-44,78.1-61.9,78.3-92.2%0A%09%09%09C3177.1,1914.4,3123.6,1922.5,3123.6,1922.5z" class="st30"></path>%0A%09</g>%0A%09<g>%0A%09%09<path d="M3972.8,2436.5c-19.3-100.6-1.9-197.3,30.9-292.1c1.9-7.7,9.7-13.5,11.6-23.2%0A%09%09%09c13.5-58,34.8-108.3,58-160.5c1.9-7.7,1.9-15.5,3.9-23.2c1.5-4.4,6.3-7.7,9.3-11.5c-108.6,18.8-247.9,49.9-313.3,64.9%0A%09%09%09c22.2,33.7,40.9,69.3,52.5,109.1c3.9,7.7,13.5,13.5,17.4,21.3c3.9,5.8,0,11.6,3.9,17.4c11.6,15.5,21.3,29,25.1,48.4%0A%09%09%09c1.9,3.9,7.7,5.8,7.7,9.7c0,94.8,7.7,189.6,0,284.3c-6.7,72.9-22.6,143.8-37.3,214.7c84.9-0.2,183-1.6,281.4-2.7%0A%09%09%09c-52.2-58.4-91.1-128-129.9-198.4C3984.4,2475.2,3976.6,2455.8,3972.8,2436.5z" class="Graphic_x0020_Style_x0020_114"></path>%0A%09%09<path d="M4194.9,2483.6c82.8-18.7,163-5.3,237.8,48.1c8,8,26.7,5.3,37.4,0%0A%09%09%09c58.6-34.6,128.4-61.3,198-68.7c-150.8-225.4-393-546.7-446.5-551.9c-23.2-2.2-74.3,4.4-135,14.8c-3.1,3.9-7.9,7.1-9.3,11.5%0A%09%09%09c-1.9,7.7-1.9,15.5-3.9,23.2c-23.2,52.2-44.5,102.5-58,160.5c-1.9,9.7-9.7,15.5-11.6,23.2c-32.9,94.8-50.3,191.5-30.9,292.1%0A%09%09%09c3.3,16.6,9.5,33.3,17.3,49.9C4050.6,2508.5,4130.6,2499.3,4194.9,2483.6z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4470.1,2531.7c-10.7,5.3-29.4,8-37.4,0c-74.8-53.4-155-66.8-237.8-48.1%0A%09%09%09c-64.3,15.7-144.3,24.9-204.8,2.8c1.3,2.7,2.6,5.4,3.9,8.1c38.9,70.4,77.7,140.1,129.9,198.4c233-2.6,467.2-3.9,529.1,13.9%0A%09%09%09c110.3,31.7,131,20.7,137.9-30.3c2.3-16.7-49.5-103.7-123-213.5C4598.5,2470.4,4528.6,2497,4470.1,2531.7z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3879.9,2196.6c0-3.9-5.8-5.8-7.7-9.7c-3.9-19.3-13.5-32.9-25.1-48.4c-3.9-5.8,0-11.6-3.9-17.4%0A%09%09%09c-3.9-7.7-13.5-13.5-17.4-21.3c-11.6-39.8-30.4-75.4-52.5-109.1c-23.2,5.3-37.1,8.6-37.1,8.6s-76.6,50.8-73.5,108.1%0A%09%09%09c3.1,57.3,7.7,545.5-0.1,585.4c44.9,2.2,107.7,2.8,180,2.6c14.8-70.9,30.6-141.8,37.3-214.7%0A%09%09%09C3887.6,2386.2,3879.9,2291.4,3879.9,2196.6z" class="st31"></path>%0A%09%09<path d="M3622.6,2308.8c7.7-30.9,11.6-63.8,40.6-85.1c3.9-3.9,1.9-9.7,5.8-13.5c21.7-17.1,39.8-41.6,63-53.7%0A%09%09%09c-6.4-58.7-17.6-101.8-29.1-95c-30.3,17.9-474.3,322.7-497.1,369.5s-42.1,123.7,13.1,152.8c0,0-20.7-133.5,59.3-157%0A%09%09%09c80-23.4,155.8,45.5,157.2,51c0.7,2.8,16.3,25.9,31.7,46.8c24.5-12.2,48.8-24.7,72.3-41.8%0A%09%09%09C3593.6,2440.4,3609.1,2376.5,3622.6,2308.8z" class="st32"></path>%0A%09%09<path d="M3669.1,2210.2c-3.9,3.9-1.9,9.7-5.8,13.5c-29,21.3-32.9,54.2-40.6,85.1c-13.5,67.7-29,131.5-83.2,174.1%0A%09%09%09c-23.4,17.1-47.7,29.6-72.3,41.8c14.9,20.3,29.7,38.6,30.4,34.1c1.4-9.2,146.2-90.6,205.5-136.8c36.9-28.8,39.6-168.5,29.1-265.5%0A%09%09%09C3708.8,2168.5,3690.8,2193.1,3669.1,2210.2z" class="st31"></path>%0A%09%09<path d="M3252.8,2424.8c-14.7,6.4-25.2,15.5-32.7,25.8c33.5,31.1,84.8,42,119.8,22.2c22.9-10.4,45.8-17.6,64.9-32.9%0A%09%09%09c-0.9-0.6-1.9-1.3-3.1-2.1C3385.9,2421.4,3321.1,2395.2,3252.8,2424.8z" class="st16"></path>%0A%09%09<path d="M3220.1,2450.6c-5.4,7.5-9.3,15.6-11.9,23.8c11.3,29.8,34.2,55.9,59.6,75.9%0A%09%09%09c39.9,36.8,89.5,48.9,140.2,47.1l4-152.6c0,0,0,0-7.2-4.8c-19.1,15.3-42,22.5-64.9,32.9%0A%09%09%09C3304.9,2492.6,3253.6,2481.7,3220.1,2450.6z" class="Graphic_x0020_Style_x0020_113"></path>%0A%09%09<path d="M3267.8,2550.4c-25.4-20-48.3-46.1-59.6-75.9c-0.6,1.9-1.2,3.9-1.7,5.8%0A%09%09%09c-3.2,12.6-4,25-3.7,35.5c0.4,15.7,3.1,26.9,3.1,26.9s73.1,121.3,186.1,122.7c14.5-13.8,14.5-13.8,14.5-13.8l0.5-17.8l0.7-24.6%0A%09%09%09l0.3-11.9C3357.3,2599.3,3307.7,2587.2,3267.8,2550.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3235.6,2602c0,0,20.6,1.7,15.5-3.8c-16.6-18-47.6-98.2-21.8-124.8c29.7-30.7,122.5-41.5,160.6-26.4%0A%09%09%09c-3.3-14.6-3.3-14.6-3.3-14.6s-76.5-31-120-13.1c-43.4,17.9-62.2,9.2-63.8,77c-1.7,67.8,9.5,101.6,23.2,107.8%0A%09%09%09C3239.7,2610.3,3235.6,2602,3235.6,2602z" class="st33"></path>%0A%09%09<path d="M3226,2604.1c0,0-34.8-98.6-3.2-143.2s183.6-37.2,209.7,22.5c15.9-4.6,15.9-4.6,15.9-4.6%0A%09%09%09s51.4-54.7-36.3-81.6c-87.8-26.9-216.5,9.7-228.4,92.5S3199.4,2597,3226,2604.1z" class="st20"></path>%0A%09%09<path d="M3340,2529c32.1-10.7,40.1-29.4,53.4-58.8c2.7-5.3,21.4,2.7,32.1-5.3%0A%09%09%09c34.7-32.1,80.1-48.1,120.2-32.1c9,3,17.6,7.1,26,11.5c-6.3-16.9-12.8-29.1-12.8-29.1s-3-1.5-7.6-3.6%0A%09%09%09c-11.7-5.4-33.9-14.8-44.8-14.3c-15.2,0.7-29.9,22.1-29.9,22.1s-32.8-9-49.4,0c-16.5,9-18.5,35.5-18.5,35.5s-15.9-1.7-33.9,7.3%0A%09%09%09s-6.2,37.2-6.2,37.2s-15.2-12.4-42.1,6.2c-20.5,12.6-13.4,51.1-1.3,85.4C3326.1,2565.1,3319.5,2533.5,3340,2529z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M3545.7,2432.8c-40.1-16-85.5,0-120.2,32.1c-10.7,8-29.4,0-32.1,5.3c-13.4,29.4-21.4,48.1-53.4,58.8%0A%09%09%09c-20.4,4.5-13.9,36.1-14.7,61.9c4.6,13,9.9,25.4,14.7,35.5c6.7,14.3,12.4,24,13.6,24.5c32.4,14.5,39.8-12.1,39.8-12.1%0A%09%09%09s7.4,27.2,34.4,26.6c27-0.6,13.8-43.4,13.8-43.4s36.8,33.1,54,29c17.2-4.1,4.1-42.1,4.1-42.1s23.4,27.6,48.3,21.4%0A%09%09%09c24.8-6.2-10.3-94-10.3-94s24.1,13.3,41.4-12.2c10.5-21.9,1.8-55.6-7.2-79.8C3563.2,2439.9,3554.7,2435.8,3545.7,2432.8z" class="st16"></path>%0A%09%09<path d="M3855.6,1746.2c-34.7-66.8-53.4-157.6-120.2-181.7c-70.3-26.7-149.3,8.2-227.2-3%0A%09%09%09c-21.3,43.8-31,95-34.5,140.3c-7.9,103.1,20.2,204.3,82.4,287.5c9.2,12.3,20.1,15.4,35.2,15.3c13.5-0.1,92.2-26.6,94.3-24.1%0A%09%09%09c0,0,89.2,104.8,138.8,155.4c3.9,4,7.6,7.6,11.1,10.9c41,38.7,55.1,33.2,55.1,33.2s66.2-16.5,80-60.7c13.8-44.1,68-261.3,68-261.3%0A%09%09%09s-2.5-6.5-5.6-15.8C3959.1,1845.2,3889.3,1813.7,3855.6,1746.2z" class="st16"></path>%0A%09%09<path d="M4022,1797.7c-2.8-24.8,81.8-357.6-168.2-366.8c-89.9-3.3-189,3.2-269.9,46.9%0A%09%09%09c-34.4,18.6-58.8,48.8-75.7,83.7c77.9,11.2,156.9-23.7,227.2,3c66.8,24,85.5,114.9,120.2,181.7c33.8,67.5,103.5,99,177.4,96.1%0A%09%09%09c-1.2-3.7-2.5-7.7-3.8-12.1C4026.1,1819.7,4023.1,1807.8,4022,1797.7z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4069.8,1569.7c-23-40.4-27.6-96.5-46-109.4c-0.8-25.3-12.8-44.3-33.2-58.9%0A%09%09%09c-26.3-18.9-66.6-30.6-114.7-39.4c-85.5-15.6-326.4,68.3-388.9,41.2c-46.2-20-44.1,85.7-44.1,85.7s-0.6,8.6,2.7,18.9%0A%09%09%09c0.8,2.6,1.9,5.3,3.4,8c6.8,13.1,21.3,26,51.9,25.5c61.6-0.9,148-35.8,156.3-17.5c8.3,18.4,0.9,143.8,12.9,163.8%0A%09%09%09c4.5,0.7,8.3,1.3,11.5,1.8c16,2.6,16,2.6,16,2.6s1.8-85.5,55.2-84.1c18.2,0.5,37.2,5.3,55.1,14.9c34.5,18.6,64.6,55.2,75.4,113.4%0A%09%09%09c16.6,88.2,147.1,77.2,147.1,77.2s2.3-7.5,5.9-19.9c5.1-17.8,12.8-45.6,20-75.9C4070,1659,4082.1,1591.2,4069.8,1569.7z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<polygon points="3720.5,1573.4 3453,1652.4 3452.3,1641 3736.1,1563.3" class="Graphic_x0020_Style_x0020_110"></polygon>%0A%09%09<path d="M3661.3,2544.8c-2.7-1-5.3-2.4-7.9-4.1c4.4,48.9,8.2,80.7,8.2,80.7l146.2-7.8%0A%09%09%09c0,0,5.8-43,13.8-101.1c-7.6,1.5-15.3,3.9-23,7.2C3756.1,2539,3707.8,2556.4,3661.3,2544.8z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3847.5,2157.6c-42.9-65.3-126-117.2-122.4-138.8c-110.1-35.4-87.2,349.7-71.6,521.9%0A%09%09%09c2.6,1.7,5.2,3.1,7.9,4.1c46.4,11.6,94.8-5.8,137.3-25.1c7.7-3.3,15.3-5.7,23-7.2c11.1-80.9,26.4-191.1,35.8-255.6%0A%09%09%09C3859.9,2240.5,3857.5,2172.8,3847.5,2157.6z" class="st32"></path>%0A%09%09<path d="M4242.6,2242.6c0,0,36.8,108.5,119.5,116.7c-13.8,52.4,206.2,183.4,206.2,183.4l9.8-23.8l-239.8-248.8%0A%09%09%09L4242.6,2242.6z" class="st34"></path>%0A%09%09<path d="M3298.6,2799c-8.5,5.6-14.3,9.3-14.8,9.1c-2.1-0.7-22.1,19.3-22.1,19.3%0A%09%09%09s33.8,2.8,36.5,0c0.5-0.5,4.9-3.2,11.4-7C3308.5,2811.6,3304.6,2802.8,3298.6,2799z" class="Graphic_x0020_Style_x0020_108"></path>%0A%09%09<path d="M3379,2744c0,0-53.6,37.3-80.3,55c3.9,2.5,6.9,7,8.8,12.3l95.8-56.5%0A%09%09%09C3402.9,2747.5,3396.9,2742.8,3379,2744z" class="Graphic_x0020_Style_x0020_112"></path>%0A%09%09<path d="M3307.5,2811.4c1.1,2.9,1.8,6,2.3,9.1c26.5-15.5,89.9-50.9,89.9-50.9%0A%09%09%09c2.2-5.4,3.8-10.5,3.6-14.7L3307.5,2811.4z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09<path d="M4750.6,2686.6c-104.2,18.7-203,5.3-304.6,0c-109.5-2.7-227.1-26.7-334,16%0A%09%09%09c-80.1,29.4-171-21.4-261.8-2.7c-64.6,14.9-126.9,34.4-189.1,52.1c1.8,0.1,3.8,0.2,6,0.2c37.2,0,155.8-45.5,257.9-29%0A%09%09%09s212.4,30.3,251-6.9c96.5,5.5,601.2,41.4,650.9,26.2c10.9-23.2,13.8-50.2,10.6-77.7C4808.9,2673.1,4780.3,2680.7,4750.6,2686.6z" class="Graphic_x0020_Style_x0020_111"></path>%0A%09%09<path d="M4112.1,2702.6c106.9-42.7,224.4-18.7,334-16c101.5,5.3,200.4,18.7,304.6,0c29.7-5.9,58.4-13.5,86.9-21.6%0A%09%09%09c-9.7-83.3-75.3-171.2-141.6-173.3c-45.6,12.2-90.4,22.8-134.1,31.9c-331.1,69.3-596.5,55.3-657.4,37%0A%09%09%09c-68.9-20.7-170.7,19.4-243.8,51.1c-73.1,31.7-122,56.6-95.8,74.6c-0.8,1.2-5,6.1-5.1,9.5c-0.1,3.5-5.8,5.5-8.7,8.7%0A%09%09%09c-8.6,9.5-7.7,26.2,7.4,27.1c1.8,0.1,3.6,0.3,5.3,0.6c20,3.4,31.7,17.6,60.9,4.9c30.3-4.1,30.3-4.1,30.3-4.1s-21.9,17.1,6.4,19.1%0A%09%09%09c62.2-17.7,124.5-37.2,189.1-52.1C3941.1,2681.3,4031.9,2732,4112.1,2702.6z" class="st16"></path>%0A%09%09<path d="M5017.7,2587.8c-2.7-5.3,2.7-13.4,0-18.7c-37.4-72.1-72.1-141.6-130.9-195%0A%09%09%09c-45.4-42.7-96.2-77.5-141.6-120.2c-64.1-53.4-101.5-125.6-173.7-165.6c-80.1-45.4-157.6-88.2-243.1-120.2%0A%09%09%09c-56.1-18.7-114.9-8-173.7-10.7c-8,0-13.4-8-18.7-8c-26.9-3.6-52.7-12-77.2-22.8l-4.1,6.3l-47.1,153.2l241.3,154.8%0A%09%09%09c0.7,4.9,2.5,10,5.3,15.1c70.7-21.4,153.8-12.5,210.4,35.3c58.8,50.8,77.5,133.6,138.9,176.3c50.8,37.4,117.6,48.1,155,101.5%0A%09%09%09c26.3,32.9,23.8,78.3-4.4,111.2c16.3,20,31.9,41.7,46.4,65.4c43.6,17.7,172.5,20.1,226.6-52.4%0A%09%09%09C5038.9,2660.1,5036.7,2621.8,5017.7,2587.8z" class="Graphic_x0020_Style_x0020_105"></path>%0A%09%09<path d="M4666.9,2134.6c-215.1-230.3-311.2-220.2-404.5-226.6%0A%09%09%09c-58.4-29.4-93.8-48.3-120.4-4.6c-12.4-21.6-57-17.5-57-17.5l-26.1,40.5c24.5,10.8,50.2,19.2,77.2,22.8c5.3,0,10.7,8,18.7,8%0A%09%09%09c58.8,2.7,117.6-8,173.7,10.7c85.5,32.1,163,74.8,243.1,120.2c72.1,40.1,109.5,112.2,173.7,165.6c45.4,42.7,96.2,77.5,141.6,120.2%0A%09%09%09c58.8,53.4,93.5,122.9,130.9,195c2.7,5.3-2.7,13.4,0,18.7c18.9,34.1,21.2,72.4,9.5,105.5c14.4-19.2,23.5-43.8,24.4-74.7%0A%09%09%09C5055.7,2471,4882,2364.8,4666.9,2134.6z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M4758.6,2569.1c-37.4-53.4-104.2-64.1-155-101.5%0A%09%09%09c-61.4-42.7-80.1-125.6-138.9-176.3c-56.5-47.8-139.6-56.7-210.4-35.3c25.1,47.2,127.1,102.1,127.1,102.1s20.7,44.1,55.2,84.1%0A%09%09%09c30.5,35.4,193.5,85.8,317.6,238.2C4782.4,2647.3,4784.9,2601.9,4758.6,2569.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09%09<path d="M3715.8,2015.7l-33.4,5.8c0,0,86.9,194.9,81.4,227c99.3-46.4,98.4-56.1,98.4-56.1%0A%09%09%09l-7.4-38.1C3852.2,2113.2,3774.4,2063.6,3715.8,2015.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M4035.3,1825.7c0,0-127.3,345.2-108.9,400.3c60.7-14.7,108.9,4.6,108.9,4.6%0A%09%09%09s-11.5-222.5,55.6-345.6C4061.5,1845.5,4035.3,1825.7,4035.3,1825.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09%09<path d="M3654.8,2733l130-51c-71.4,10.3-156.4,53.6-160.3,55.2C3633.4,2740.2,3654.8,2733,3654.8,2733z" class="st18"></path>%0A%09%09<path d="M3576.1,2735.8c0,0,55.9-47.6,182.8-76.5c-16.5-5.5-133.9,28.9-190.4,74.1%0A%09%09%09C3573.4,2738.5,3576.1,2735.8,3576.1,2735.8z" class="st18"></path>%0A%09%09<path d="M3558,2699.3c0,0,110.1-70.4,179-82.8c-35.9-12.4-176.2,71.6-176.2,71.6L3558,2699.3z" class="st18"></path>%0A%09%09<path d="M3834.5,1885.6c0,0-102,90.4-148.9,95c48.7,53.3,78.2,78.6,99.3,89.2%0A%09%09%09c0-99.3,91.9-168.2,83.7-237.2c-8.3-68.9-6.4-64.3-6.4-64.3S3863,1851.2,3834.5,1885.6z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M4897.2,2712.3c-24.8-45.5-111.6-233-210.3-220.6c0,0-65.2,9.2-99.4,20.8c-1.1,12.9,9.7,22,21.7,26.5%0A%09%09%09c104.1,32,201.6,111.9,214.5,216.4c41.8,6.1,86.6,20.3,88.3-2.4C4912.3,2747.3,4901.4,2720.1,4897.2,2712.3z" class="st20"></path>%0A%09%09<path d="M4609.1,2539c-12-4.5-22.8-13.6-21.7-26.5c-9.2,3.1-16.2,6.4-19,9.7c149.6,89.2,160.1,153.2,228.5,227.8%0A%09%09%09c9,2.3,18,4.1,26.7,5.4C4810.8,2650.9,4713.3,2571,4609.1,2539z" class="st35"></path>%0A%09%09<path d="M3389.9,2642.1c0,0-40.9-81.4-37.1-99.3c3.8-17.9-3.1-35.9,15.9-43.4c-6.2,13.8-11,29-10,45.5%0A%09%09%09c1,16.5,34.6,94,34.6,94L3389.9,2642.1z" class="st18"></path>%0A%09%09<path d="M3407,2460.9c0,0-9.2,34.9-1.9,66.6c7.4,31.7,30.8,93.9,37,97.1c6.2,3.2,6.2,3.2,6.2,3.2%0A%09%09%09S3398.3,2507.3,3407,2460.9z" class="st18"></path>%0A%09%09<path d="M3472.9,2418.4c0,0-17,55.4-15.2,76c1.8,20.7,41.7,120.8,41.7,120.8l2.9-3.5%0A%09%09%09c0,0-42.5-108.1-31.7-146c10.9-37.9,9.3-50.7,9.3-50.7L3472.9,2418.4z" class="Graphic_x0020_Style_x0020_104"></path>%0A%09%09<path d="M3537.6,2454.9c0,0-9.2,72.2,0,81.4s20.4,7.3,20.4,7.3S3539.9,2483.9,3537.6,2454.9z" class="st18"></path>%0A%09%09<path d="M3543.3,2484.1c0,0-7.6,38.4-5.8,52.2c0.7,5.4,2.5,11.2,5.6,16.5c7.7,6.5,16.6,9.4,25.4,1.7%0A%09%09%09c15.6-12.5,17.4-32.6,17.5-52.1c-0.7-2.3-1.4-4.6-2.2-7" class="st16"></path>%0A%09%09<g>%0A%09%09%09<polygon points="3466.8,1624.2 3466.8,1624.2 3466.8,1624.2" class="st9"></polygon>%0A%09%09%09<path d="M3516.4,1675.9c-7.1-21.6-14.1-34.6-21-42.6c-3.4-4-6.9-6.7-10.3-8.4%0A%09%09%09%09c-3.4-1.7-6.8-2.3-9.8-2.3c-3.4,0-6.3,0.8-8.6,1.5c-4.1,1.3-8,4.5-10.7,9.6c-2.7,5.1-4.4,12.1-4.4,21.5%0A%09%09%09%09c0,12.2,2.8,28.6,10.1,50.4c6.4,19,13.3,30.6,20.3,37.6c3.5,3.5,7.1,5.8,10.5,7.3c3.4,1.4,6.8,2,9.7,2c2.7,0,5.1-0.4,7.1-0.9%0A%09%09%09%09c2-0.5,3.5-1.1,4.4-1.4l0,0c2.9-0.9,6.2-3.2,8.5-7.4c2.3-4.2,3.8-10.1,3.8-18.4C3526.2,1713.3,3523.6,1697.9,3516.4,1675.9z%0A%09%09%09%09 M3515.7,1738.9c-1.5,2.6-3.1,3.5-4.1,3.8c-1.2,0.4-2.5,0.9-4,1.3c-1.5,0.4-3.3,0.7-5.1,0.7c-2,0-4.3-0.3-6.7-1.4%0A%09%09%09%09c-3.7-1.5-7.9-4.6-12.5-10.9c-4.6-6.2-9.4-15.6-14-29.3c-7.1-21.2-9.7-36.9-9.7-47.9c0-8.5,1.5-14.2,3.5-17.9%0A%09%09%09%09c2-3.6,4.2-5.2,6.2-5.8l0,0c2-0.6,4.1-1.1,6.3-1.1c2,0,4,0.4,6.3,1.5c3.5,1.7,7.7,5.3,12.4,12.6c4.7,7.2,9.7,18.1,14.9,33.8%0A%09%09%09%09c7.1,21.4,9.4,36.2,9.4,46C3518.5,1731.7,3517.1,1736.3,3515.7,1738.9z" class="Graphic_x0020_Style_x0020_110"></path>%0A%09%09</g>%0A%09</g>%0A%09<polygon points="4535.9,1753.6 4677.9,1982.4 4774.4,1982.4 4597.9,1697.5" class="Graphic_x0020_Style_x0020_109"></polygon>%0A%09<polygon points="4616.6,1659.7 4815.1,1982.4 4916.5,1982.4 4705.5,1586.9" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<polygon points="4597.9,1697.5 4644.4,1704.9 4815.1,1982.4 4774.4,1982.4" class="Graphic_x0020_Style_x0020_108"></polygon>%0A%09<polygon points="4791.1,1650.6 4705.5,1586.9 4916.5,1982.4 4939.2,1982.4 4939.2,1925.9" class="Graphic_x0020_Style_x0020_107"></polygon>%0A%09<path d="M4590.7,1773.7c0,0,19.3-16,39,11c19.6,27-20.3,47.3-33.4,30.1%0A%09%09C4583.1,1797.4,4579.5,1778.2,4590.7,1773.7z" class="Graphic_x0020_Style_x0020_100"></path>%0A%09<path d="M4596.3,1780.1c0,0,13.5-11.2,27.3,7.7s-14.2,33.1-23.4,21.1%0A%09%09C4591,1796.7,4588.5,1783.2,4596.3,1780.1z" class="Graphic_x0020_Style_x0020_106"></path>%0A%09<polygon points="4609.5,1841.2 4648,1821.1 4757.4,1982.4 4699.5,1982.4" class="Graphic_x0020_Style_x0020_105"></polygon>%0A%09<ellipse ry="38.6" rx="31.7" cy="1701" cx="4703.2" class="Graphic_x0020_Style_x0020_104"></ellipse>%0A%09<polygon points="4705.5,1762.7 4757.4,1724.1 4766.2,1734.7 4712.4,1768.9" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4718.4,1793 4770.3,1754.3 4779,1764.9 4725.3,1799.2" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<polygon points="4731.2,1823.2 4783.2,1784.6 4791.9,1795.1 4738.1,1829.4" class="Graphic_x0020_Style_x0020_100"></polygon>%0A%09<g>%0A%09%09<path d="M973.4,2494.7c-1.1-7.7-1.9-15.4-2.3-22.9c9.5-13.4,26.8-31.8,52.9-40.2c23.1-6.1,15.4-16.7,6-14.3%0A%09%09%09c-6.8,1.7-40.3,15-58.6,22.4c6.9-84.5,62.6-145.2,175.4-122.9c0,0,168.2-115.8,215,66.2c-26.6-8.7-77.4-22.7-81.8-5%0A%09%09%09c-5.6,22.6,45.1-7,86.4,25.8c2.5,13.6,4.5,28.6,5.7,45.1c0.4,18.1-4.3,37.3-12.2,56.6c-19.6-23.9-69.9-81.6-86.6-63.7%0A%09%09%09c-19.3,20.6,50.3,7.3,76.9,84.6c-10.3,19.7-23.2,39-36.6,56.7c-13.9-23.9-42.7-67.9-60.7-56.8c-7.2,6.3,6.6,15.6,21,31%0A%09%09%09c9.1,9.8,20.1,29.2,27,42.1c-32.6,40-64,68.5-64,68.5s-40.6-10.2-90-29.6c-2.2-17-5.6-50,0.5-58c8.3-10.9-3.5-21.2-17.7-9.4%0A%09%09%09c-11,9.1-13.4,36.4-10.2,55.9c-20.3-9-41-19.4-60.3-31.1c3.7-24.8,13.8-80.3,30.3-90.6c10.5-9.2,2.3-22.4-22.7-3.4%0A%09%09%09c-19.2,14.5-25.3,60.3-27.2,81.1C1004.8,2558,978.2,2528.6,973.4,2494.7z" class="st10"></path>%0A%09%09<path d="M1225.4,2633.4c0,0-71-217.9-78.6-316.8" class="st11"></path>%0A%09%09<path d="M1129.2,2552.6c0,0,15.4-40.3,50.3-75.4" class="st11"></path>%0A%09%09<path d="M1261.1,2488.4c0,0-59.5-46.7-90-43.7" class="st11"></path>%0A%09%09<path d="M1052.5,2468.5c0,0,69.2-57,107.6-70.5" class="st11"></path>%0A%09%09<path d="M1243.7,2349.5c0,0-52.8-23.4-93.7-5.9" class="st11"></path>%0A%09</g>%0A%09<path d="M3360.2,3327.1c-71.4-58-182.9-129.1-345.1-184.1c-329.3-111.6-176.9-187.3-303.6-225.2%0A%09%09s-430.3-22.5-784.9-68.8s-643.1-33.1-556-162c60.4-89.4,145-152.7,191.1-183.1l-109.7,8.4c-108.3,81.3-312.5,270.2,66.8,308.2%0A%09%09c486.5,48.7,1181.1,101.9,1192.6,208.2c9.2,84.8,440.1,200.1,610.2,307.3C3334,3333.3,3346.8,3330.3,3360.2,3327.1z" class="st22"></path>%0A%09<linearGradient y2="608.8419" x2="3633.9429" y1="608.8419" x1="3431.6741" gradientUnits="userSpaceOnUse" id="SVGID_9_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="101.1" rx="101.1" cy="608.8" cx="3532.8" class="st36"></ellipse>%0A%09<linearGradient y2="3174.8586" x2="1457.2415" y1="3174.8586" x1="1136.8959" gradientUnits="userSpaceOnUse" id="SVGID_10_">%0A%09%09<stop style="stop-color:%2368B2FC" offset="0"></stop>%0A%09%09<stop style="stop-color:%23529BF7" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="106.3" rx="160.2" cy="3174.9" cx="1297.1" class="st37"></ellipse>%0A%09<linearGradient y2="2968.6479" x2="1266.5088" y1="2968.6479" x1="1085.6805" gradientUnits="userSpaceOnUse" id="SVGID_11_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="60" rx="90.4" cy="2968.6" cx="1176.1" class="st38"></ellipse>%0A%09<linearGradient y2="3078.0559" x2="5051.6841" y1="3078.0559" x1="4866.0625" gradientUnits="userSpaceOnUse" id="SVGID_12_">%0A%09%09<stop style="stop-color:%234085F0" offset="0"></stop>%0A%09%09<stop style="stop-color:%23275DC9" offset="1"></stop>%0A%09</linearGradient>%0A%09<ellipse ry="92.8" rx="92.8" cy="3078.1" cx="4958.9" class="st39"></ellipse>%0A%09<path d="M2285.6,3438c0,0,206.8,24.5,420.7-87.7c42.5-28.4,62.6,33.1,35.4,53.2%0A%09%09c-27.2,20.1-168.9,100.4-399.3,87.4C2216,3486.1,2239.4,3435.8,2285.6,3438z" class="Graphic_x0020_Style_x0020_100"></path>%0A</g>%0A</svg>%0A';function b2(a){let s=new URL(window.location.href);a.forEach(t=>s.searchParams.delete(t)),window.history.replaceState({},"",s.toString());}function w2(){let a=l(),{setToken:s}=i(),t=new URLSearchParams(window.location.search),e=t.get("ticket"),r=t.get("unregistered")==="true",[o,c]=useState(r),{data:i$1,isLoading:n,error:p}=useQuery({queryKey:m.auth.ticketLogin(e),queryFn:()=>a.get("/api/usystem/user/login",{searchParams:{ticket:e}}),enabled:!!e,retry:!1,refetchOnWindowFocus:!1,refetchOnReconnect:!1});return useEffect(()=>{i$1?.token&&(s(i$1.token),b2(["ticket","unregistered"]));},[i$1,s]),{isLoading:n,error:p,isUnregistered:o,dismissUnregistered:()=>{c(!1),r&&b2(["unregistered"]);}}}var a3=({extra:a,title:s})=>{let{token:t,mainPagePath:e}=i(),{t:r}=a$1(),{isLoading:o,isUnregistered:c,dismissUnregistered:i$1}=w2();return o?jsx("div",{className:"w-screen h-screen flex justify-center items-center",children:jsx(Spin,{})}):t?jsx(Navigate,{replace:!0,to:e}):jsxs("div",{className:"w-screen h-screen relative overflow-hidden",children:[jsx("div",{className:"absolute top-16 right-16 z-10",children:a}),jsx("div",{className:"absolute left-14 top-6 z-10",children:jsxs(Space,{align:"center",children:[jsx(J,{width:48}),s&&jsx("span",{className:"text-2xl font-bold",children:s})]})}),jsx("div",{className:"w-full h-full flex justify-center items-center bg-gradient-to-br from-blue-50/30 via-indigo-50/30 to-purple-50/30",style:{paddingRight:"500px"},children:jsx("img",{src:P2,alt:"background",className:"max-w-full h-auto object-contain",style:{width:"83.333333%",maxWidth:"100%"}})}),jsx("div",{className:"fixed top-0 right-0 h-screen backdrop-blur-sm shadow-2xl",style:{width:"500px",backgroundColor:"rgba(255, 255, 255, 0.95)",borderLeft:"1px solid rgba(229, 231, 235, 0.5)"},children:jsx("div",{className:"flex justify-center items-center h-full",children:jsx("div",{className:"px-36",style:{marginTop:"-10rem"},children:jsxs("div",{className:"flex flex-col justify-center",children:[jsx("div",{className:"h-10 mb-4",children:c&&jsx(Alert,{banner:!0,closable:!0,message:r("SignIn.unregistered"),type:"error",onClose:i$1})}),jsx("div",{className:"mb-4 text-center",children:jsx(Typography.Title,{level:2,children:r("SignIn.welcome")})}),jsx("div",{className:"flex justify-center items-center",children:jsx(Button,{block:!0,type:"primary",size:"large",shape:"round",href:`${d}/logout?service=${d}/login?service=${window.location.href}`,target:"_self",children:r("SignIn.signInWithIDass")})})]})})})})]})},s3=a3;
2
2
  export{U2 as DynamicTags,n1 as ExpandableParagraph,ft as InfiniteList,ce as Layout,J as Logo,b1 as Nav,Ue as NotFound,We as OperationLogList,me as RequireAuth,w1 as RequireGame,s3 as SignIn,G1 as UserWidget,be as menu,Ve as permission,L1 as useDrawer,z1 as useDrawerStore,Me as useFormDrawer,z as useInfiniteListStore};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/dynamicTags/DynamicTags.tsx","../src/components/expandableParagraph/ExpandableParagraph.tsx","../src/components/infiniteList/stores.ts","../src/components/infiniteList/InfiniteList.tsx","../src/components/nav/stores.ts","../src/components/nav/utils.tsx","../src/components/nav/Nav.tsx","../src/components/requireGame/RequireGame.tsx","../src/components/userWidget/UserWidget.tsx","../src/components/layout/GameSelect.tsx","../src/components/layout/LayoutHeader.tsx","../src/components/logo/Logo.tsx","../src/components/layout/Layout.tsx","../src/components/requireAuth/RequireAuth.tsx","../src/hooks/drawer/stores.ts","../src/hooks/drawer/drawer.tsx","../src/hooks/drawer/formDrawer.tsx","../src/modules/menu/index.tsx","../src/modules/permission/index.tsx","../src/pages/notFound/index.tsx","../src/pages/operationLogList/index.tsx","../src/pages/signIn/hooks.ts","../src/pages/signIn/index.tsx"],"names":["DynamicTags","props","initialTags","addable","removable","addCallback","removeCallback","t","useTranslation","token","theme","tags","setTags","useState","inputVisible","setInputVisible","inputValue","setInputValue","editInputIndex","setEditInputIndex","editInputValue","setEditInputValue","inputRef","useRef","editInputRef","useEffect","handleClose","removedTag","newTags","tag","showInput","handleInputChange","e","handleInputConfirm","handleEditInputChange","handleEditInputConfirm","tagInputStyle","tagPlusStyle","jsxs","Space","jsx","index","Input","Tag","PlusOutlined","DynamicTags_default","ExpandableParagraph","children","restProps","expanded","setExpanded","Typography","_","info","ExpandableParagraph_default","DEFAULT_PAYLOAD","createStore","create","devtools","subscribeWithSelector","set","get","id","url","queryKey","refetch","fetchNextPage","state","existingInstance","updatedInstance","newInstances","instance","payload","newPayload","isEqual","payloadChanged","currentPayload","error","store","useInfiniteListStore","DEFAULT_CACHE_TIME","DEFAULT_STALE_TIME","SPIN_STYLE","identifierCounter","generateUniqueIdentifier","InternalInfiniteList","ref","internalProps","data","page","lastPage","allPages","_pageParam","pageData","identifier","code","buttonsAlign","showReset","refreshInterval","request","tableExtra","renderForm","afterSuccess","afterError","dataAdapter","initialPageParam","footer","form","tableProps","_form","Form","isValid","setIsValid","shouldPoll","action","ky","useKy","accessible","isChecking","useAuth","finalIdentifier","useMemo","subscribedPayload","s","formInstance","method","body","params","headers","cacheTime","staleTime","requestHeaders","hasNextPage","isFetchingNextPage","isFetching","useInfiniteQuery","pageParam","requestParams","requestBody","kyOptions","response","err","errorObj","failureCount","retryError","attemptIndex","dataSource","isLoadingMore","isReachingEnd","isEmpty","onConfirm","values","loadMore","onReset","useImperativeHandle","Spin","Result","renderFooter","renderTableExtra","formRenderer","FilterFormWrapper_default","cloneElement","Fragment","Table","Button","InfiniteList","forwardRef","InfiniteList_default","useNavStore","persist","keys","current","key","createJSONStorage","MemoizedLink","memo","to","Link","transformItems","items","result","i","rest","route","label","labelNode","flatItems","keypath","item","Nav","loading","location","useLocation","cachedFlattenItemsRef","cachedInternalItemsRef","previousLocationRef","flattenItems","internalItems","openKeys","selectedKeys","setOpenKeys","setSelectedKeys","match","missingKeys","k","Menu","Nav_default","Antd","RequireGame","permissionVersion","appId","isGlobal","useToolkitsStore","isLoading","useGames","Empty","RequireGame_default","UserWidget","navigate","useNavigate","user","loginPath","clear","handleSignOut","handleKeyDown","handleDropdownKeyDown","LogoutOutlined","Dropdown","UserOutlined","UserWidget_default","Text","GameSelect","filter","options","gameApiV2","setAppId","queryClient","useQueryClient","filteredData","selectOptions","handleChange","value","query","Select","GameSelect_default","Logo","logo_default","Logo_default","TRANSITION_EASING","LayoutHeader","title","subtitle","mainPagePath","collapsed","LayoutHeader_default","Header","Sider","Content","AntdLayout","Layout","isMenuLoading","headerExtra","gameSelectFilter","gameSelectOptions","hideGameSelect","colorBgContainer","colorBorder","navWidth","collapsible","toggleCollapsed","Divider","MenuUnfoldOutlined","MenuFoldOutlined","extra","Suspense","Layout_default","RequireAuth","config","redirectPath","RequireAuth_default","useDrawerStore","createVisibilityStore","useDrawer","content","afterOpen","afterClose","confirmText","cancelText","confirmButtonProps","cancelButtonProps","drawerProps","_id","generateId","show","hide","isOpen","cleanup","open","confirmLoading","setConfirmLoading","isRenderFunction","_show","useCallback","_hide","onClose","handleConfirm","drawerFooter","internalDrawer","Drawer","useFormDrawer","formProps","onSuccess","internalExtraValues","setInternalExtraValues","internalForm","drawer","operation","showForm","initialValues","extraValues","MenuItemList","lazy","CreateMenuItem","UpdateMenuItem","menu_default","Routes","Route","UserList","UserDetail","RoleList","RoleDetail","permission_default","Navigate","NotFound","redirectUrl","notFound_default","Option","OperationLogList","columns","dayjs","Card","QueryList_default","operationLogList_default","withContext","clearUrlParams","param","useTicketLogin","setToken","queryParams","ticket","unregisteredFromUrl","isUnregistered","setIsUnregistered","useQuery","queryKeys","SignIn","dismissUnregistered","background_default","Alert","SSO_URL","signIn_default"],"mappings":"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","file":"index.js","sourcesContent":["import { PlusOutlined } from '@ant-design/icons'\nimport type { InputRef } from 'antd'\nimport { Input, Space, Tag, theme } from 'antd'\nimport type { ChangeEvent, CSSProperties, FC } from 'react'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface DynamicTagsProps {\n initialTags?: string[]\n addable?: boolean\n removable?: boolean\n // 返回 Promise。如果返回 Promise.resolve(true),则添加; 如果返回 Promise.resolve(false) 或 Promise.reject,则不添加\n addCallback?: (addedTag: string) => Promise<boolean>\n // 返回 Promise。如果返回 Promise.resolve(true),则删除; 如果返回 Promise.resolve(false) 或 Promise.reject,则不删除\n removeCallback?: (removedTag: string) => Promise<boolean>\n}\n\nconst DynamicTags: FC<DynamicTagsProps> = props => {\n const { initialTags, addable, removable, addCallback, removeCallback } = props\n const { t } = useTranslation()\n const { token } = theme.useToken()\n const [tags, setTags] = useState<string[]>([])\n const [inputVisible, setInputVisible] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [editInputIndex, setEditInputIndex] = useState(-1)\n const [editInputValue, setEditInputValue] = useState<string>('')\n const inputRef = useRef<InputRef>(null)\n const editInputRef = useRef<InputRef>(null)\n\n useEffect(() => {\n setTags(initialTags ?? [])\n }, [initialTags])\n\n useEffect(() => {\n if (inputVisible) {\n inputRef.current?.focus()\n }\n }, [inputVisible])\n\n useEffect(() => {\n editInputRef.current?.focus()\n }, [inputValue])\n\n const handleClose = async (removedTag: string) => {\n const success = await removeCallback?.(removedTag)\n\n if (success) {\n const newTags = tags.filter(tag => tag !== removedTag)\n setTags(newTags)\n }\n }\n\n const showInput = () => {\n setInputVisible(true)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n }\n\n const handleInputConfirm = async () => {\n if (inputValue && tags.indexOf(inputValue) === -1) {\n const success = await addCallback?.(inputValue)\n\n if (success) {\n setTags([...tags, inputValue])\n }\n }\n\n setInputVisible(false)\n setInputValue('')\n }\n\n const handleEditInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setEditInputValue(e.target.value)\n }\n\n const handleEditInputConfirm = () => {\n const newTags = [...tags]\n newTags[editInputIndex] = editInputValue\n setTags(newTags)\n setEditInputIndex(-1)\n setInputValue('')\n }\n\n const tagInputStyle: CSSProperties = {\n width: 78,\n verticalAlign: 'top',\n }\n\n const tagPlusStyle: CSSProperties = {\n background: token.colorBgContainer,\n borderStyle: 'dashed',\n }\n\n return (\n <Space wrap size={[0, 8]}>\n <Space wrap size={[0, 8]}>\n {tags.map((tag, index) => {\n if (editInputIndex === index) {\n return (\n <Input\n ref={editInputRef}\n key={tag}\n size=\"small\"\n style={tagInputStyle}\n value={editInputValue}\n onChange={handleEditInputChange}\n onBlur={handleEditInputConfirm}\n onPressEnter={handleEditInputConfirm}\n />\n )\n }\n\n return (\n <Tag\n key={tag}\n closable={removable}\n style={{ userSelect: 'none' }}\n onClose={async e => {\n e.preventDefault()\n await handleClose(tag)\n }}\n >\n <span\n onDoubleClick={e => {\n if (index !== 0) {\n setEditInputIndex(index)\n setEditInputValue(tag)\n e.preventDefault()\n }\n }}\n >\n {tag}\n </span>\n </Tag>\n )\n })}\n </Space>\n {addable &&\n (inputVisible ? (\n <Input\n ref={inputRef}\n type=\"text\"\n size=\"small\"\n style={tagInputStyle}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputConfirm}\n onPressEnter={handleInputConfirm}\n />\n ) : (\n <Tag style={tagPlusStyle} onClick={showInput}>\n <PlusOutlined />\n &nbsp;{t('global.add')}\n </Tag>\n ))}\n </Space>\n )\n}\n\nexport default DynamicTags\n","import { Typography } from 'antd'\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph'\nimport type { FC } from 'react'\nimport { useState } from 'react'\n\nexport type ExpandableParagraphProps = Omit<ParagraphProps, 'ellipsis' | 'className'>\n\nconst ExpandableParagraph: FC<ExpandableParagraphProps> = props => {\n const { children, ...restProps } = props\n const [expanded, setExpanded] = useState(false)\n\n return (\n <Typography.Paragraph\n {...restProps}\n className=\"mb-0\"\n ellipsis={{\n rows: 2,\n expandable: 'collapsible',\n expanded,\n onExpand: (_, info) => {\n setExpanded(info.expanded)\n },\n }}\n >\n {children}\n </Typography.Paragraph>\n )\n}\n\nexport default ExpandableParagraph\n","import { isEqual } from 'lodash-es'\nimport { create } from 'zustand'\nimport { devtools, subscribeWithSelector } from 'zustand/middleware'\n\nimport type { InfiniteListPayload } from './InfiniteList'\n\n// Infinite Query 更新函数类型\ntype InfiniteQueryRefetchFunction = () => void | Promise<unknown>\ntype InfiniteQueryFetchNextPageFunction = () => void | Promise<unknown>\n\n// InfiniteList 实例信息\ninterface InfiniteListInstance {\n id: string\n url: string\n queryKey: readonly unknown[]\n payload: InfiniteListPayload\n refetch: InfiniteQueryRefetchFunction\n fetchNextPage: InfiniteQueryFetchNextPageFunction\n}\n\n// 简化的状态接口\ninterface InfiniteListState {\n // 实例管理\n instances: Map<string, InfiniteListInstance>\n\n // 核心方法\n registerInstance(\n id: string,\n url: string,\n queryKey: readonly unknown[],\n refetch: InfiniteQueryRefetchFunction,\n fetchNextPage: InfiniteQueryFetchNextPageFunction,\n ): void\n unregisterInstance(id: string): void\n updatePayload(id: string, payload: InfiniteListPayload): void\n getPayload(id: string): InfiniteListPayload\n refetch(id: string, payload?: InfiniteListPayload): Promise<void>\n fetchNextPage(id: string): Promise<void>\n\n // 工具方法\n getInstance(id: string): InfiniteListInstance | undefined\n getAllInstances(): InfiniteListInstance[]\n}\n\n// 稳定的默认 payload 引用,避免未注册时每次返回新对象导致 getSnapshot 无限循环\nconst DEFAULT_PAYLOAD: InfiniteListPayload = Object.freeze({\n page: 0,\n // 这里使用冻结的空对象,确保引用稳定\n filters: Object.freeze({}) as Record<string, never>,\n})\n\n// 创建简化的 store\nconst createStore = () =>\n create<InfiniteListState>()(\n devtools(\n subscribeWithSelector((set, get) => ({\n instances: new Map(),\n\n registerInstance(id, url, queryKey, refetch, fetchNextPage) {\n set(state => {\n const existingInstance = state.instances.get(id)\n\n // 如果实例已存在,只更新函数\n if (existingInstance) {\n // 仅当引用发生变化时才更新,避免无意义 setState\n if (existingInstance.refetch !== refetch || existingInstance.fetchNextPage !== fetchNextPage) {\n const updatedInstance = {\n ...existingInstance,\n refetch,\n fetchNextPage,\n }\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n return { instances: newInstances }\n }\n return state\n }\n\n // 创建新实例\n const instance: InfiniteListInstance = {\n id,\n url,\n queryKey,\n payload: DEFAULT_PAYLOAD,\n refetch,\n fetchNextPage,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, instance)\n\n return { instances: newInstances }\n })\n },\n\n unregisterInstance(id) {\n set(state => {\n const newInstances = new Map(state.instances)\n const existed = newInstances.delete(id)\n\n if (existed) {\n return { instances: newInstances }\n }\n return state\n })\n },\n\n updatePayload(id, payload) {\n set(state => {\n const instance = state.instances.get(id)\n if (!instance) return state\n\n const newPayload = { ...instance.payload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(instance.payload, newPayload)) {\n const updatedInstance = {\n ...instance,\n payload: newPayload,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n\n return { instances: newInstances }\n }\n\n return state\n })\n },\n\n getPayload(id) {\n const instance = get().instances.get(id)\n return instance?.payload ?? DEFAULT_PAYLOAD\n },\n\n async refetch(id, payload) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`InfiniteList instance with id \"${id}\" not found`)\n return\n }\n\n let payloadChanged = false\n\n // 更新 payload 如果提供且确实有变化\n if (payload) {\n const currentPayload = instance.payload\n const newPayload = { ...currentPayload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(currentPayload, newPayload)) {\n get().updatePayload(id, payload)\n payloadChanged = true\n }\n }\n\n // 若 payload 发生变化,queryKey 会变化,React Query 会自动触发请求,此处不再手动 refetch,避免重复请求\n if (payloadChanged) {\n return\n }\n\n // 否则手动触发一次请求\n try {\n await instance.refetch()\n } catch (error) {\n console.error(`Failed to refetch InfiniteList instance \"${id}\":`, error)\n throw error\n }\n },\n\n async fetchNextPage(id) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`InfiniteList instance with id \"${id}\" not found`)\n return\n }\n\n // 调用 fetchNextPage 函数\n try {\n await instance.fetchNextPage()\n } catch (error) {\n console.error(`Failed to fetch next page for InfiniteList instance \"${id}\":`, error)\n throw error\n }\n },\n\n getInstance(id) {\n return get().instances.get(id)\n },\n\n getAllInstances() {\n return Array.from(get().instances.values())\n },\n })),\n {\n name: 'infinite-list-store',\n },\n ),\n )\n\n// 创建 store 实例\nconst store = createStore()\n\nexport const useInfiniteListStore = store\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useInfiniteQuery } from '@tanstack/react-query'\nimport type { FormInstance } from 'antd'\nimport { Button, Form, Result, Spin, Table } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { TableProps } from 'antd/es/table'\nimport type { Options as KyOptions } from 'ky'\nimport type { ReactElement, ReactNode, Ref } from 'react'\nimport { cloneElement, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport type { FilterFormWrapperProps } from '@/components/filterFormWrapper'\nimport { FilterFormWrapper } from '@/components/filterFormWrapper'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useInfiniteListStore } from './stores'\n\nexport interface InfiniteListPayload<Values = any> {\n page?: number\n filters?: Values\n}\n\nexport interface InfiniteListRequestConfig<Values = any> {\n url: string\n method?: 'GET' | 'POST'\n body?:\n | FormData\n | Record<string | number, any>\n | ((payload: InfiniteListPayload<Values>, pageParam: any) => FormData | Record<string | number, any>)\n params?:\n | Record<string | number, any>\n | ((payload: InfiniteListPayload<Values>, pageParam: any) => Record<string | number, any>)\n headers?: Record<string, string> | ((form: FormInstance<Values>) => Record<string, string>)\n // 缓存配置\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\nexport enum InfiniteListAction {\n Confirm,\n Reset,\n LoadMore,\n Init,\n}\n\nexport interface InfiniteListDataAdapter<Item = any, Values = any, Data = any> {\n items?: (data: Data[] | undefined, form: FormInstance<Values>) => Item[] | undefined\n hasMore?: (lastPage: Data | undefined, allPages: Data[]) => boolean\n nextPageParam?: (lastPage: Data | undefined, allPages: Data[], pageParam: any) => any\n}\n\nexport interface InfiniteListRef<Item = any, Values = any, Data = any> {\n data: Data[] | undefined\n dataSource: Item[] | undefined\n form: FormInstance<Values>\n refetch: () => void\n fetchNextPage: () => void\n hasNextPage: boolean\n isFetchingNextPage: boolean\n}\n\nexport interface InfiniteListProps<Item, Values, Data>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n identifier?: string // 可选标识符,未提供时自动生成\n code?: string\n form?: FormInstance<Values>\n refreshInterval?: number\n request: InfiniteListRequestConfig<Values> // 必需的请求配置\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data[]) => ReactNode)\n renderForm?: (form: FormInstance<Values>) => ReactElement\n afterSuccess?: (action: InfiniteListAction, form: FormInstance<Values>, data?: Data[]) => void\n afterError?: (error: Error, action: InfiniteListAction, form: FormInstance<Values>) => void\n dataAdapter?: InfiniteListDataAdapter<Item, Values, Data>\n initialPageParam?: any\n footer?: (data: Data[] | undefined) => ReactNode\n}\n\n// 常量定义(对齐 QueryList 行为)\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000\nconst DEFAULT_STALE_TIME = 30 * 1000\n\nconst SPIN_STYLE: React.CSSProperties = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 300,\n}\n\n// 生成唯一 identifier 的计数器\nlet identifierCounter = 0\nconst generateUniqueIdentifier = (): string => `infiniteList_${Date.now()}_${++identifierCounter}`\n\nconst InternalInfiniteList = <Item extends AnyObject, Values extends object | undefined = undefined, Data = any>(\n props: InfiniteListProps<Item, Values, Data>,\n ref: Ref<InfiniteListRef<Item, Values, Data>>,\n) => {\n const defaultDataAdapter: InfiniteListDataAdapter<Item, Values, Data> = {\n items: (data: Data[] | undefined) => {\n if (!data) return []\n return data.flatMap((page: any) => page?.list || page || [])\n },\n hasMore: (lastPage: Data | undefined): boolean => {\n if (!lastPage) return false\n const page = lastPage as any\n return page?.hasMore || page?.has_more || false\n },\n nextPageParam: (lastPage: Data | undefined, allPages: Data[], _pageParam: any): any => {\n const hasMore = (page: Data | undefined): boolean => {\n if (!page) return false\n const pageData = page as any\n return pageData?.hasMore || pageData?.has_more || false\n }\n return hasMore(lastPage) ? allPages.length : undefined\n },\n }\n\n const internalProps: InfiniteListProps<Item, Values, Data> & {\n refreshInterval: number\n initialPageParam: any\n } = {\n refreshInterval: 0,\n initialPageParam: 0,\n ...props,\n dataAdapter: {\n ...defaultDataAdapter,\n ...props.dataAdapter,\n },\n }\n\n const {\n identifier,\n code,\n buttonsAlign,\n showReset,\n refreshInterval,\n request,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n dataAdapter,\n initialPageParam,\n footer,\n form,\n ...tableProps\n } = internalProps\n const { t } = useTranslation()\n const [_form] = Form.useForm<Values>(form)\n const [isValid, setIsValid] = useState(false)\n const shouldPoll = useRef(false)\n const action = useRef(InfiniteListAction.Init)\n const ky = useKy()\n\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n\n // 生成或使用提供的 identifier\n const finalIdentifier = useMemo(() => identifier || generateUniqueIdentifier(), [identifier])\n\n // 订阅当前 identifier 的 payload,驱动 queryKey 与渲染\n const subscribedPayload = useInfiniteListStore(s => s.getPayload(finalIdentifier))\n\n // 获取当前表单值\n const formInstance = useMemo(() => _form, [_form])\n\n // 构建请求参数\n const {\n url,\n method = 'GET',\n body,\n params,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = request\n const requestHeaders = useMemo(\n () => (typeof headers === 'function' ? headers(formInstance) : headers),\n [headers, formInstance],\n )\n // 请求参数和 body 将在 queryFn 中动态构建,因为它们依赖于 pageParam\n\n // 构建查询键\n const queryKey = useMemo(() => {\n return ['infiniteList', url, finalIdentifier, accessible, isValid, subscribedPayload, requestHeaders]\n }, [url, finalIdentifier, accessible, isValid, subscribedPayload, requestHeaders])\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, refetch, isFetching } = useInfiniteQuery({\n queryKey,\n queryFn: async ({ pageParam = initialPageParam }) => {\n try {\n const payload = subscribedPayload\n\n // 动态构建请求参数,包含 pageParam\n const requestParams = typeof params === 'function' ? params(payload, pageParam) : params\n const requestBody = typeof body === 'function' ? body(payload, pageParam) : body\n\n const kyOptions: KyOptions = {\n method: method as any,\n searchParams: requestParams,\n headers: requestHeaders,\n }\n\n if (requestBody) {\n if (requestBody instanceof FormData) {\n kyOptions.body = requestBody\n } else {\n kyOptions.json = requestBody\n }\n }\n\n const response = await ky.request<Data>({ url, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(action.current, formInstance, [response])\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, action.current, formInstance)\n throw errorObj\n }\n },\n initialPageParam,\n getNextPageParam: (lastPage: Data, allPages: Data[]) => {\n return dataAdapter?.nextPageParam?.(lastPage, allPages, initialPageParam)\n },\n enabled: accessible && isValid,\n retry: (failureCount, retryError) => {\n if (failureCount >= 3) return false\n if (retryError?.message?.includes('401')) return false\n return true\n },\n retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n refetchOnWindowFocus: false,\n refetchInterval: shouldPoll.current ? refreshInterval : 0,\n gcTime: cacheTime,\n staleTime,\n })\n\n // 在组件挂载时注册实例\n useEffect(() => {\n useInfiniteListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch, fetchNextPage)\n return () => {\n useInfiniteListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url, queryKey, refetch, fetchNextPage])\n\n const dataSource = dataAdapter?.items?.(data?.pages, formInstance)\n const isLoadingMore = isFetchingNextPage\n const isReachingEnd = !hasNextPage\n const isEmpty = !dataSource || dataSource.length === 0\n\n const onConfirm = async () => {\n action.current = InfiniteListAction.Confirm\n const values = await _form.getFieldsValue()\n\n try {\n await _form.validateFields()\n setIsValid(true)\n\n // 更新 store 中的 payload\n useInfiniteListStore.getState().refetch(finalIdentifier, { page: 0, filters: values })\n } catch {\n setIsValid(false)\n }\n }\n\n const loadMore = () => {\n action.current = InfiniteListAction.LoadMore\n fetchNextPage()\n }\n\n const onReset = async () => {\n action.current = InfiniteListAction.Reset\n try {\n _form.resetFields()\n const values = await _form.getFieldsValue()\n\n // 重置 store 中的 payload\n useInfiniteListStore.getState().updatePayload(finalIdentifier, { page: 0, filters: values })\n\n await _form.validateFields({ validateOnly: true })\n useInfiniteListStore.getState().refetch(finalIdentifier)\n } catch {\n // Handle validation error\n }\n }\n\n useEffect(() => {\n setTimeout(() => {\n if (accessible) {\n _form\n .validateFields({ validateOnly: true })\n .then(values => {\n setIsValid(true)\n\n // 初始化 store 中的 payload\n useInfiniteListStore.getState().updatePayload(finalIdentifier, { page: 0, filters: values })\n })\n .catch(() => {\n setIsValid(false)\n })\n }\n }, 300)\n }, [accessible, _form, finalIdentifier])\n\n useImperativeHandle(ref, () => ({\n data: data?.pages,\n dataSource,\n form: _form,\n refetch: () => useInfiniteListStore.getState().refetch(finalIdentifier),\n fetchNextPage: () => useInfiniteListStore.getState().fetchNextPage(finalIdentifier),\n hasNextPage: !!hasNextPage,\n isFetchingNextPage,\n }))\n\n if (isChecking) {\n return <Spin style={SPIN_STYLE} />\n }\n\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n const renderFooter = footer && (() => footer(data?.pages))\n\n const renderTableExtra = () => {\n if (typeof tableExtra === 'function') {\n return tableExtra(formInstance, data?.pages)\n }\n return tableExtra\n }\n\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isFetching}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {cloneElement(renderForm(_form), {\n onKeyUp: (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n onConfirm()\n }\n },\n })}\n </FilterFormWrapper>\n ) : (\n // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)\n <Form form={_form} />\n )\n\n return (\n <>\n {formRenderer}\n {renderTableExtra()}\n <div style={{ minHeight: '400px' }}>\n <Table {...tableProps} dataSource={dataSource} loading={isFetching} pagination={false} footer={renderFooter} />\n </div>\n {!isEmpty && (\n <Button\n block\n loading={isLoadingMore}\n type=\"link\"\n htmlType=\"button\"\n disabled={isLoadingMore || isReachingEnd}\n onClick={loadMore}\n >\n {isLoadingMore\n ? t('InfiniteList.loadingText')\n : isReachingEnd\n ? t('InfiniteList.reachEndText')\n : t('InfiniteList.loadMoreText')}\n </Button>\n )}\n </>\n )\n}\n\nconst InfiniteList = forwardRef(InternalInfiniteList) as <\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n>(\n props: InfiniteListProps<Item, Values, Data> & { ref?: Ref<InfiniteListRef<Item, Values, Data>> },\n) => ReactElement\n\nexport default InfiniteList\n","import { create } from 'zustand'\nimport { createJSONStorage, persist } from 'zustand/middleware'\n\nexport interface NavState {\n openKeys: string[]\n selectedKeys: string[]\n setOpenKeys: (keys: string[]) => void\n setSelectedKeys: (keys: string[]) => void\n}\n\nexport const useNavStore = create<NavState>()(\n persist(\n (set, get) => ({\n openKeys: [],\n setOpenKeys: keys => {\n const current = get()\n // 避免不必要的状态更新 - 使用更高效的比较方式\n if (current.openKeys.length !== keys.length || !current.openKeys.every((key, index) => key === keys[index])) {\n set({ openKeys: keys })\n }\n },\n selectedKeys: [],\n setSelectedKeys: keys => {\n const current = get()\n // 避免不必要的状态更新 - 使用更高效的比较方式\n if (\n current.selectedKeys.length !== keys.length ||\n !current.selectedKeys.every((key, index) => key === keys[index])\n ) {\n set({ selectedKeys: keys })\n }\n },\n }),\n {\n name: 'nav',\n storage: createJSONStorage(() => localStorage),\n partialize: state => ({\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n }),\n // 减少持久化频率,提升性能\n skipHydration: false,\n version: 1,\n },\n ),\n)\n","import type { ItemType, MenuDividerType } from 'antd/es/menu/interface'\nimport { memo } from 'react'\nimport { Link } from 'react-router-dom'\nimport type { Merge } from 'ts-essentials'\n\nimport type { NavItem, NavMenuItemGroupType, NavMenuItemType, NavSubMenuType } from './types'\n\n// 优化 Link 组件,避免重复创建\nconst MemoizedLink = memo(({ to, children }: { to: string; children: React.ReactNode }) => (\n <Link to={to}>{children}</Link>\n))\n\nMemoizedLink.displayName = 'MemoizedLink'\n\n// 将自定义的菜单配置转换为 antd 的菜单配置,添加 react-router-dom Link 等。\nexport function transformItems(items?: NavItem[]) {\n const result: ItemType[] = []\n\n if (items) {\n for (let i = 0; i < items.length; i++) {\n if (items[i] === null || (items[i] as MenuDividerType).type === 'divider') {\n result[i] = items[i] as null | MenuDividerType\n } else if ((items[i] as NavSubMenuType | NavMenuItemGroupType).children) {\n const { children, ...rest } = items[i] as NavSubMenuType | NavMenuItemGroupType\n result[i] = {\n ...rest,\n children: transformItems(children),\n }\n } else {\n const { route, label, ...rest } = items[i] as NavMenuItemType\n const labelNode = route ? <MemoizedLink to={route}>{label}</MemoizedLink> : label\n\n result[i] = {\n ...rest,\n label: labelNode,\n }\n }\n }\n }\n\n return result\n}\n\n// 拍平导航配置,并且注入 keypath 字段\nexport function flatItems(\n items: NavItem[],\n result: Merge<NavMenuItemType, { keypath?: string[] }>[] = [],\n keypath: string[] = [],\n) {\n for (const item of items) {\n const children = (item as NavSubMenuType | NavMenuItemGroupType)?.children as NavItem[]\n\n if (Array.isArray(children)) {\n const keys =\n (item as NavMenuItemGroupType).type !== 'group' && item!.key ? [...keypath, item!.key as string] : keypath\n flatItems(children, result, keys)\n } else if (item) {\n result.push(Object.assign(item as NavMenuItemType, { keypath }))\n }\n }\n\n return result\n}\n","import type { MenuProps } from 'antd'\nimport { Menu, Spin } from 'antd'\nimport { memo, useEffect, useMemo, useRef } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useNavStore } from './stores'\nimport type { NavItem } from './types'\nimport { flatItems, transformItems } from './utils'\n\nexport interface NavProps {\n items?: NavItem[]\n theme?: MenuProps['theme']\n loading?: boolean\n}\n\nconst Nav = memo(function Nav(props: NavProps) {\n const { items = [], theme, loading } = props\n const location = useLocation()\n const cachedFlattenItemsRef = useRef<ReturnType<typeof flatItems>>()\n const cachedInternalItemsRef = useRef<ReturnType<typeof transformItems>>()\n const previousLocationRef = useRef<string>()\n\n const flattenItems = useMemo(() => {\n const current = flatItems(items)\n cachedFlattenItemsRef.current = current\n return current\n }, [items])\n\n const internalItems = useMemo(() => {\n const current = transformItems(items)\n cachedInternalItemsRef.current = current\n return current\n }, [items])\n\n const { openKeys, selectedKeys, setOpenKeys, setSelectedKeys } = useNavStore()\n\n useEffect(() => {\n // 避免不必要的重新计算\n if (previousLocationRef.current === location.pathname) {\n return\n }\n previousLocationRef.current = location.pathname\n\n const match = flattenItems.find(item => location.pathname === item.route)\n\n if (match) {\n const key = match.key as string\n const keypath = match.keypath as string[]\n\n // 批量更新状态以减少重新渲染\n if (selectedKeys[0] !== key) {\n setSelectedKeys([key])\n }\n\n // 只在 keypath 不在 openKeys 中时才添加,保留其他已展开的菜单\n const missingKeys = keypath.filter(k => !openKeys.includes(k))\n if (missingKeys.length > 0) {\n setOpenKeys([...openKeys, ...missingKeys])\n }\n }\n }, [flattenItems, location.pathname, selectedKeys, openKeys, setSelectedKeys, setOpenKeys])\n\n if (loading) {\n return (\n <div className=\"flex justify-center items-center\" style={{ height: 'calc(100vh - 64px)' }}>\n <Spin />\n </div>\n )\n }\n\n return (\n <Menu\n theme={theme}\n style={{ borderRight: 'none' }}\n items={internalItems}\n mode=\"inline\"\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n onOpenChange={setOpenKeys}\n />\n )\n})\n\nif (process.env.NODE_ENV === 'development') {\n Nav.displayName = 'Nav'\n}\n\nexport default Nav\n","import * as Antd from 'antd'\nimport { Empty } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\nimport { Fragment } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nconst { Spin } = Antd\n\nconst RequireGame: FC<PropsWithChildren> = ({ children }) => {\n const { permissionVersion, appId, isGlobal } = useToolkitsStore(s => s)\n const { isLoading } = useGames()\n const { t } = useTranslation()\n\n if (isLoading) {\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 400,\n }}\n >\n <Spin />\n </div>\n )\n }\n\n if (permissionVersion === PermissionVersion.V1 || isGlobal) {\n return children\n }\n\n if (!appId) {\n return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description={t('RequireGame.description')} />\n }\n\n return <Fragment key={appId}>{children}</Fragment>\n}\n\nexport default RequireGame\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport { LogoutOutlined, UserOutlined } from '@ant-design/icons'\nimport type { MenuProps } from 'antd'\nimport { Dropdown, Space } from 'antd'\nimport type { FC, KeyboardEvent } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\n\nconst UserWidget: FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const { user, loginPath, clear } = useToolkitsStore()\n\n const handleSignOut = () => {\n clear()\n navigate(loginPath)\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleSignOut()\n }\n }\n\n const handleDropdownKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }\n\n const items: MenuProps['items'] = [\n {\n key: '1',\n icon: <LogoutOutlined />,\n label: (\n <a role=\"button\" tabIndex={0} onClick={handleSignOut} onKeyDown={handleKeyDown}>\n {t('UserWidget.signOutText')}\n </a>\n ),\n },\n ]\n\n return (\n <div>\n <Dropdown\n menu={{\n selectable: true,\n items,\n }}\n placement=\"bottomRight\"\n >\n <a\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.preventDefault()\n }}\n onKeyDown={handleDropdownKeyDown}\n >\n <Space align=\"center\">\n <span>{user?.authorityId}</span>\n <UserOutlined style={{ fontSize: '16px' }} />\n </Space>\n </a>\n </Dropdown>\n </div>\n )\n}\n\nexport default UserWidget\n","import { useQueryClient } from '@tanstack/react-query'\nimport type { SelectProps } from 'antd'\nimport { Select, Space, Typography } from 'antd'\nimport { useEffect, useMemo } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport type { Game } from './types'\n\nconst { Text } = Typography\n\nexport interface GameSelectProps<T extends Game = Game> {\n filter?: (game: T) => boolean\n options?: (data?: T[]) => SelectProps['options']\n}\n\nconst GameSelect = <T extends Game = Game>(props: GameSelectProps<T>) => {\n const { filter, options } = props\n const { t } = useTranslation()\n const { gameApiV2, appId, setAppId } = useToolkitsStore()\n const { data, isLoading } = useGames()\n const queryClient = useQueryClient()\n\n const filteredData = useMemo(\n () => data?.filter((item: Game) => filter?.(item as T) ?? true) as T[] | undefined,\n [data, filter],\n )\n\n const selectOptions = useMemo(\n () =>\n typeof options === 'function'\n ? options(filteredData)\n : filteredData?.map((item: T) => ({\n label: item.name,\n value: gameApiV2 ? item.game_id : item.id,\n })),\n [options, filteredData, gameApiV2],\n )\n\n // 切换游戏时清空 TanStack Query 缓存触发重新请求以更新视图。\n const handleChange = (value: string | number) => {\n // 标记除游戏列表外的所有缓存为过期,保留现有数据直到新数据加载完成\n queryClient.invalidateQueries({\n predicate: query => {\n const queryKey = query.queryKey\n return !queryKey.includes('/api/game/list') && !queryKey.includes('/api/usystem/game/all')\n },\n })\n setAppId(value)\n }\n\n useEffect(() => {\n // 数据还在加载中时,不要修改 appId\n if (isLoading) return\n\n if (selectOptions && selectOptions.length > 0) {\n const hasValidAppId = appId && selectOptions.some(item => String(item.value) === String(appId))\n\n // 只有当 appId 无效时才设置为第一个选项\n if (!hasValidAppId) {\n setAppId(selectOptions[0]?.value ?? undefined)\n }\n } else if (selectOptions === undefined || selectOptions.length === 0) {\n // 如果没有选项,则清空当前游戏 ID\n setAppId(undefined)\n }\n }, [selectOptions, isLoading])\n\n return (\n <Space>\n <Text>{t('GameSelect.label')}</Text>\n <Select\n showSearch\n optionFilterProp=\"label\"\n value={appId as string | number | undefined}\n placeholder={t('GameSelect.placeholder')}\n loading={isLoading}\n style={{ width: '250px' }}\n options={selectOptions}\n onChange={handleChange}\n />\n </Space>\n )\n}\n\nexport default GameSelect\n","import { memo } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { Logo } from '@/components/logo'\n\nimport { useToolkitsStore } from '../toolkitsProvider'\n\ninterface LayoutHeaderProps {\n title?: string\n subtitle?: string\n}\n\nconst TRANSITION_EASING = 'all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)'\n\nconst LayoutHeader = memo<LayoutHeaderProps>(({ title, subtitle }) => {\n const { mainPagePath, collapsed } = useToolkitsStore()\n\n return (\n <div\n className=\"px-6 py-2 font-bold relative bg-gradient-to-r from-white to-gray-50/30\"\n style={{\n height: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n }}\n >\n <div className={`flex items-center w-full ${collapsed ? 'justify-center' : ''}`}>\n <Link\n to={mainPagePath}\n className=\"hover:opacity-80 transition-all duration-300 ease-out block rounded-lg p-1 hover:bg-white/50 hover:shadow-sm\"\n style={{\n transition: TRANSITION_EASING,\n opacity: collapsed ? 0.8 : 1,\n }}\n >\n <Logo\n width={36}\n style={{\n objectFit: 'contain',\n display: 'block',\n filter: 'drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05))',\n transition: TRANSITION_EASING,\n }}\n />\n </Link>\n {title && (\n <div\n className=\"ml-4 overflow-hidden min-w-0\"\n style={{\n transition: TRANSITION_EASING,\n opacity: collapsed ? 0 : 1,\n width: collapsed ? '0px' : 'auto',\n marginLeft: collapsed ? '0px' : '16px',\n transform: collapsed ? 'translateX(-8px)' : 'translateX(0)',\n }}\n >\n <Link\n to={mainPagePath}\n className=\"text-xl leading-tight hover:text-blue-600 transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block bg-gradient-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent hover:from-blue-600 hover:to-blue-500\"\n title={title}\n style={{\n letterSpacing: '0.02em',\n textShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n }}\n >\n {title}\n </Link>\n </div>\n )}\n </div>\n <div\n className=\"w-full mt-2 overflow-hidden\"\n style={{\n height: subtitle && !collapsed ? '20px' : '1px',\n transition: TRANSITION_EASING,\n }}\n >\n <div className=\"flex items-center justify-center h-full w-full\">\n <div\n className=\"w-full border-t border-gray-200 absolute\"\n style={{\n opacity: !subtitle || collapsed ? 1 : 0,\n transition: TRANSITION_EASING,\n }}\n />\n {subtitle && (\n <div\n className=\"flex items-center w-full text-sm\"\n style={{\n opacity: collapsed ? 0 : 1,\n transform: collapsed ? 'translateY(-3px)' : 'translateY(0)',\n transition: TRANSITION_EASING,\n }}\n >\n <div className=\"flex-1 border-t border-gray-200\"></div>\n <span className=\"px-3 text-gray-500 font-medium whitespace-nowrap\" title={subtitle}>\n {subtitle}\n </span>\n <div className=\"flex-1 border-t border-gray-200\"></div>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n})\n\nLayoutHeader.displayName = 'LayoutHeader'\n\nexport default LayoutHeader\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react'\n\nimport logoUrl from './logo.png'\n\nexport type LogoProps = Omit<DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src' | 'alt'>\n\nconst Logo: FC<LogoProps> = props => {\n return <img src={logoUrl} alt=\"logo\" {...props} />\n}\n\nexport default Logo\n","import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'\nimport { Button, Divider, Layout as AntdLayout, Space, Spin, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Suspense } from 'react'\n\nimport type { NavItem } from '@/components/nav'\nimport { Nav } from '@/components/nav'\nimport { RequireGame } from '@/components/requireGame'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { UserWidget } from '@/components/userWidget'\n\nimport type { GameSelectProps } from './GameSelect'\nimport GameSelect from './GameSelect'\nimport LayoutHeader from './LayoutHeader'\nimport type { Game } from './types'\n\nconst { Header, Sider, Content } = AntdLayout\n\ntype HeaderExtra = { key: Key; children: ReactNode }\n\nexport interface LayoutProps<T extends Game = Game> {\n title?: string\n subtitle?: string\n isMenuLoading?: boolean\n items?: NavItem[]\n gameSelectFilter?: GameSelectProps<T>['filter']\n gameSelectOptions?: GameSelectProps<T>['options']\n hideGameSelect?: boolean\n headerExtra?: {\n left?: HeaderExtra[]\n right?: HeaderExtra[]\n }\n}\n\nconst Layout = <T extends Game = Game>(props: PropsWithChildren<LayoutProps<T>>) => {\n const {\n isMenuLoading,\n items,\n headerExtra,\n children,\n gameSelectFilter,\n gameSelectOptions,\n title,\n subtitle,\n hideGameSelect,\n } = props\n const {\n token: { colorBgContainer, colorBorder },\n } = theme.useToken()\n const { navWidth, collapsible, collapsed, toggleCollapsed } = useToolkitsStore()\n\n return (\n <AntdLayout>\n <Sider\n collapsible={collapsible}\n theme=\"light\"\n trigger={null}\n collapsed={collapsed}\n width={navWidth}\n style={{\n height: '100vh',\n overflowX: 'hidden',\n overflowY: 'auto',\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colorBorder,\n }}\n >\n <LayoutHeader title={title} subtitle={subtitle} />\n <Nav items={items} loading={isMenuLoading} />\n </Sider>\n <AntdLayout>\n <Header\n style={{\n padding: '0 24px',\n background: colorBgContainer,\n }}\n >\n <div className=\"flex justify-between items-center h-full\">\n <Space size=\"small\" split={<Divider type=\"vertical\" />} className=\"mr-6\">\n {collapsible && (\n <Button\n type=\"text\"\n icon={collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />}\n style={{ fontSize: '16px' }}\n onClick={toggleCollapsed}\n />\n )}\n {!hideGameSelect && <GameSelect<T> filter={gameSelectFilter} options={gameSelectOptions} />}\n {headerExtra?.left?.map(extra => <span key={extra.key}>{extra.children}</span>)}\n </Space>\n <Space size=\"small\" split={<Divider type=\"vertical\" />}>\n {headerExtra?.right?.map(extra => <span key={extra.key}>{extra.children}</span>)}\n <UserWidget />\n </Space>\n </div>\n </Header>\n <Content\n style={{\n overflow: 'auto',\n padding: '24px 16px',\n maxHeight: 'calc(100vh - 64px)',\n }}\n >\n <Suspense\n fallback={\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '200px',\n }}\n />\n }\n >\n <RequireGame>{children}</RequireGame>\n </Suspense>\n </Content>\n </AntdLayout>\n </AntdLayout>\n )\n}\n\nexport default Layout\n","import { Button, Result, Spin } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nexport interface RequireAuthProps {\n /** 权限码 */\n code: string\n /** 请求配置 */\n config?: KyOptions\n /** 无权限时点击返回按钮跳转的路径,默认为首页 '/' */\n redirectPath?: string\n}\n\n/**\n * 授权保护组件\n * 根据权限码控制子组件的访问权限\n * - 有权限:渲染子组件\n * - 无权限:显示 403 无权限页面,可点击按钮返回指定路径\n * - 加载中:显示加载动画\n */\nconst RequireAuth: FC<PropsWithChildren<RequireAuthProps>> = props => {\n const { code, config, redirectPath = '/', children } = props\n const { data: accessible, isLoading } = useAuth(code, config)\n const { t } = useTranslation()\n const navigate = useNavigate()\n\n if (isLoading) {\n return (\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 200,\n }}\n />\n )\n }\n\n if (!accessible) {\n return (\n <Result\n status=\"403\"\n subTitle={t('global.noEntitlement')}\n extra={\n <Button type=\"primary\" onClick={() => navigate(redirectPath)}>\n {t('global.back')}\n </Button>\n }\n />\n )\n }\n\n return <>{children}</>\n}\n\nexport default RequireAuth\n","import { createVisibilityStore } from '@/utils'\n\nexport const useDrawerStore = createVisibilityStore()\n","import type { DrawerProps } from 'antd'\nimport { Button, Drawer } from 'antd'\nimport type { ComponentProps, ReactNode } from 'react'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useDrawerStore } from './stores'\n\nexport interface UseDrawerOperation {\n hide: () => void\n}\n\nexport interface UseDrawerProps extends Omit<DrawerProps, 'open' | 'confirmLoading' | 'onClose' | 'footer'> {\n content?: ReactNode | ((operation: UseDrawerOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n footer?: ReactNode | null\n confirmText?: string\n cancelText?: string\n confirmButtonProps?: ComponentProps<typeof Button>\n cancelButtonProps?: ComponentProps<typeof Button>\n}\n\nexport function useDrawer(props: UseDrawerProps) {\n const {\n content,\n onConfirm,\n afterOpen,\n afterClose,\n footer,\n confirmText = '确认',\n cancelText = '取消',\n confirmButtonProps,\n cancelButtonProps,\n ...drawerProps\n } = props\n\n const _id = useMemo(() => generateId(), [])\n const { show, hide, isOpen, cleanup } = useDrawerStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onClose: DrawerProps['onClose'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const handleConfirm = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n } catch (error) {\n console.error('Drawer confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm])\n\n const drawerFooter =\n footer !== undefined ? (\n footer\n ) : (\n <div className=\"flex gap-4 mx-4\">\n <Button type=\"primary\" loading={confirmLoading} {...confirmButtonProps} onClick={handleConfirm}>\n {confirmText}\n </Button>\n <Button {...cancelButtonProps} onClick={onClose}>\n {cancelText}\n </Button>\n </div>\n )\n\n const internalDrawer = (\n <Drawer {...drawerProps} open={open} footer={drawerFooter} onClose={onClose}>\n {isRenderFunction ? content({ hide: _hide }) : content}\n </Drawer>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n confirmLoading,\n drawer: internalDrawer,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useDrawer, type UseDrawerOperation, type UseDrawerProps } from './drawer'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormDrawerProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseDrawerProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseDrawerOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormDrawerReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n drawer: ReactNode\n}\n\nexport function useFormDrawer<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormDrawerProps<Values, ExtraValues>,\n): UseFormDrawerReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...drawerProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, drawer } = useDrawer({\n ...drawerProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? content(internalExtraValues, operation) : content}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n drawer,\n }\n}\n","import { lazy } from 'react'\nimport { Route, Routes } from 'react-router-dom'\n\nconst MenuItemList = lazy(() => import('./pages/menuItemList'))\nconst CreateMenuItem = lazy(() => import('./pages/createMenuItem'))\nconst UpdateMenuItem = lazy(() => import('./pages/updateMenuItem'))\n\nexport default (\n <Routes>\n <Route index element={<MenuItemList />} />\n <Route path=\"create\" element={<CreateMenuItem />} />\n <Route path=\"update/:id\" element={<UpdateMenuItem />} />\n </Routes>\n)\n","import { lazy } from 'react'\nimport { Navigate, Route, Routes } from 'react-router-dom'\n\nconst UserList = lazy(() => import('./pages/userList'))\nconst UserDetail = lazy(() => import('./pages/userDetail'))\nconst RoleList = lazy(() => import('./pages/roleList'))\nconst RoleDetail = lazy(() => import('./pages/roleDetail'))\n\nexport default (\n <Routes>\n <Route index element={<Navigate to=\"user\" />} />\n <Route path=\"user\" element={<UserList />} />\n <Route path=\"user/:id\" element={<UserDetail />} />\n <Route path=\"role\" element={<RoleList />} />\n <Route path=\"role/:name\" element={<RoleDetail />} />\n </Routes>\n)\n","import { Button, Result } from 'antd'\nimport type { FC } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useTranslation } from '@/locale'\n\ninterface NotFoundProps {\n redirectUrl?: string\n}\n\nconst NotFound: FC<NotFoundProps> = props => {\n const { redirectUrl } = props\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n return (\n <div className=\"text-center\">\n <Result\n status=\"404\"\n title=\"404\"\n subTitle={t('NotFound.subTitle')}\n extra={\n redirectUrl && (\n <Button\n type=\"primary\"\n onClick={() => {\n navigate(redirectUrl)\n }}\n >\n {t('NotFound.buttonText')}\n </Button>\n )\n }\n />\n </div>\n )\n}\n\nexport default NotFound\n","import { Card, Form, Input, Select } from 'antd'\nimport type { ColumnsType } from 'antd/es/table'\nimport dayjs from 'dayjs'\nimport type { FC } from 'react'\n\nimport { ExpandableParagraph } from '@/components/expandableParagraph'\nimport { QueryList } from '@/components/queryList'\nimport { withContext } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\n\nimport type { OperationLogListItem } from './types'\n\nconst { Option } = Select\n\nconst OperationLogList: FC = () => {\n const { t } = useTranslation()\n\n const columns: ColumnsType<OperationLogListItem> = [\n {\n key: 'username',\n title: t('global.username'),\n dataIndex: 'uname',\n width: 100,\n },\n {\n key: 'label',\n title: t('global.label'),\n dataIndex: 'label',\n width: 150,\n },\n {\n key: 'method',\n title: t('global.method'),\n dataIndex: 'method',\n width: 100,\n },\n {\n key: 'route',\n title: t('global.route'),\n dataIndex: 'route',\n width: 200,\n },\n {\n key: 'request',\n title: t('global.request'),\n dataIndex: 'request',\n render(value: string) {\n return <ExpandableParagraph>{value}</ExpandableParagraph>\n },\n },\n {\n key: 'response',\n title: t('global.response'),\n dataIndex: 'response',\n render(value: string) {\n return <ExpandableParagraph>{value}</ExpandableParagraph>\n },\n },\n {\n key: 'creation_time',\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n width: 200,\n render(value: string) {\n return dayjs(value).format('YYYY-MM-DD HH:mm:ss')\n },\n },\n ]\n\n return (\n <Card title=\"操作日志\">\n <QueryList<\n OperationLogListItem,\n {\n uname?: string\n route?: string\n method?: 'get' | 'post'\n label?: string\n },\n { List: OperationLogListItem[]; Total: number }\n >\n identifier=\"operation-log-list\"\n rowKey=\"id\"\n code=\"300001\"\n columns={columns}\n tableLayout=\"fixed\"\n request={{\n url: '/api/usystem/log/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n renderForm={form => (\n <Form form={form} layout=\"inline\">\n <Form.Item label={t('global.username')} name=\"uname\">\n <Input allowClear />\n </Form.Item>\n <Form.Item label={t('global.route')} name=\"route\">\n <Input allowClear />\n </Form.Item>\n <Form.Item label={t('global.method')} name=\"method\">\n <Select allowClear style={{ width: '100px' }}>\n <Option value=\"get\">GET</Option>\n <Option value=\"post\">POST</Option>\n </Select>\n </Form.Item>\n <Form.Item label={t('global.label')} name=\"label\">\n <Input allowClear />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n )\n}\n\nexport default withContext(OperationLogList, { isGlobal: true })\n","import { useQuery } from '@tanstack/react-query'\nimport { useEffect, useState } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\n\n/**\n * 清除 URL 中的查询参数\n */\nfunction clearUrlParams(params: string[]) {\n const url = new URL(window.location.href)\n params.forEach(param => url.searchParams.delete(param))\n window.history.replaceState({}, '', url.toString())\n}\n\n/**\n * 处理登录页面的票据逻辑和未注册用户提示\n */\nexport function useTicketLogin() {\n const ky = useKy()\n const { setToken } = useToolkitsStore()\n\n const queryParams = new URLSearchParams(window.location.search)\n const ticket = queryParams.get('ticket')\n const unregisteredFromUrl = queryParams.get('unregistered') === 'true'\n\n // 初始化未注册状态\n const [isUnregistered, setIsUnregistered] = useState(unregisteredFromUrl)\n\n const { data, isLoading, error } = useQuery({\n queryKey: queryKeys.auth.ticketLogin(ticket),\n queryFn: () => ky.get<{ token: string }>('/api/usystem/user/login', { searchParams: { ticket: ticket! } }),\n enabled: !!ticket,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n })\n\n useEffect(() => {\n if (data?.token) {\n setToken(data.token)\n // 登录成功后清除 ticket 和 unregistered 参数\n clearUrlParams(['ticket', 'unregistered'])\n }\n }, [data, setToken])\n\n const dismissUnregistered = () => {\n setIsUnregistered(false)\n if (unregisteredFromUrl) {\n clearUrlParams(['unregistered'])\n }\n }\n\n return {\n isLoading,\n error,\n isUnregistered,\n dismissUnregistered,\n }\n}\n","import { Alert, Button, Space, Spin, Typography } from 'antd'\nimport type { FC, ReactNode } from 'react'\nimport { Navigate } from 'react-router-dom'\n\nimport { Logo } from '@/components/logo'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { SSO_URL } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport backgroundUrl from './background.svg'\nimport { useTicketLogin } from './hooks'\n\ninterface SignInProps {\n extra?: ReactNode\n title?: string\n}\n\nconst SignIn: FC<SignInProps> = ({ extra, title }) => {\n const { token, mainPagePath } = useToolkitsStore()\n const { t } = useTranslation()\n const { isLoading, isUnregistered, dismissUnregistered } = useTicketLogin()\n\n if (isLoading) {\n return (\n <div className=\"w-screen h-screen flex justify-center items-center\">\n <Spin />\n </div>\n )\n }\n\n // 如果已经有 token 但没有 ticket(直接访问登录页),直接跳转\n if (token) {\n return <Navigate replace to={mainPagePath} />\n }\n\n return (\n <div className=\"w-screen h-screen relative overflow-hidden\">\n <div className=\"absolute top-16 right-16 z-10\">{extra}</div>\n <div className=\"absolute left-14 top-6 z-10\">\n <Space align=\"center\">\n <Logo width={48} />\n {title && <span className=\"text-2xl font-bold\">{title}</span>}\n </Space>\n </div>\n <div\n className=\"w-full h-full flex justify-center items-center bg-gradient-to-br from-blue-50/30 via-indigo-50/30 to-purple-50/30\"\n style={{ paddingRight: '500px' }}\n >\n <img\n src={backgroundUrl}\n alt=\"background\"\n className=\"max-w-full h-auto object-contain\"\n style={{ width: '83.333333%', maxWidth: '100%' }}\n />\n </div>\n <div\n className=\"fixed top-0 right-0 h-screen backdrop-blur-sm shadow-2xl\"\n style={{\n width: '500px',\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\n borderLeft: '1px solid rgba(229, 231, 235, 0.5)',\n }}\n >\n <div className=\"flex justify-center items-center h-full\">\n <div className=\"px-36 -translate-y-1/2\">\n <div className=\"flex flex-col justify-center\">\n <div className=\"h-10 mb-4\">\n {isUnregistered && (\n <Alert\n banner\n closable\n message={t('SignIn.unregistered')}\n type=\"error\"\n onClose={dismissUnregistered}\n />\n )}\n </div>\n <div className=\"mb-4 text-center\">\n <Typography.Title level={2}>{t('SignIn.welcome')}</Typography.Title>\n </div>\n <div className=\"flex justify-center items-center\">\n <Button\n block\n type=\"primary\"\n size=\"large\"\n shape=\"round\"\n href={`${SSO_URL}/logout?service=${SSO_URL}/login?service=${window.location.href}`}\n target=\"_self\"\n >\n {t('SignIn.signInWithIDass')}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default SignIn\n"]}
1
+ {"version":3,"sources":["../src/components/dynamicTags/DynamicTags.tsx","../src/components/expandableParagraph/ExpandableParagraph.tsx","../src/components/infiniteList/stores.ts","../src/components/infiniteList/InfiniteList.tsx","../src/components/nav/stores.ts","../src/components/nav/utils.tsx","../src/components/nav/Nav.tsx","../src/components/requireGame/RequireGame.tsx","../src/components/userWidget/UserWidget.tsx","../src/components/layout/GameSelect.tsx","../src/components/logo/Logo.tsx","../src/components/layout/LayoutHeader.tsx","../src/components/layout/Layout.tsx","../src/components/requireAuth/RequireAuth.tsx","../src/hooks/drawer/stores.ts","../src/hooks/drawer/drawer.tsx","../src/hooks/drawer/formDrawer.tsx","../src/modules/menu/index.tsx","../src/modules/permission/index.tsx","../src/pages/notFound/index.tsx","../src/pages/operationLogList/index.tsx","../src/pages/signIn/index.tsx","../src/pages/signIn/hooks.ts"],"names":["DynamicTags","props","initialTags","addable","removable","addCallback","removeCallback","t","useTranslation","token","theme","tags","setTags","useState","inputVisible","setInputVisible","inputValue","setInputValue","editInputIndex","setEditInputIndex","editInputValue","setEditInputValue","inputRef","useRef","editInputRef","useEffect","handleClose","removedTag","newTags","tag","showInput","handleInputChange","e","handleInputConfirm","handleEditInputChange","handleEditInputConfirm","tagInputStyle","tagPlusStyle","jsxs","Space","jsx","index","Input","Tag","PlusOutlined","DynamicTags_default","ExpandableParagraph","children","restProps","expanded","setExpanded","Typography","_","info","ExpandableParagraph_default","DEFAULT_PAYLOAD","createStore","create","devtools","subscribeWithSelector","set","get","id","url","queryKey","refetch","fetchNextPage","state","existingInstance","updatedInstance","newInstances","instance","payload","newPayload","isEqual","payloadChanged","currentPayload","error","store","useInfiniteListStore","DEFAULT_CACHE_TIME","DEFAULT_STALE_TIME","SPIN_STYLE","identifierCounter","generateUniqueIdentifier","InternalInfiniteList","ref","internalProps","data","page","lastPage","allPages","_pageParam","pageData","identifier","code","buttonsAlign","showReset","refreshInterval","request","tableExtra","renderForm","afterSuccess","afterError","dataAdapter","initialPageParam","footer","form","tableProps","_form","Form","isValid","setIsValid","shouldPoll","action","ky","useKy","accessible","isChecking","useAuth","finalIdentifier","useMemo","subscribedPayload","s","formInstance","method","body","params","headers","cacheTime","staleTime","requestHeaders","hasNextPage","isFetchingNextPage","isFetching","useInfiniteQuery","pageParam","requestParams","requestBody","kyOptions","response","err","errorObj","failureCount","retryError","attemptIndex","dataSource","isLoadingMore","isReachingEnd","isEmpty","onConfirm","values","loadMore","onReset","useImperativeHandle","Spin","Result","renderFooter","renderTableExtra","formRenderer","FilterFormWrapper_default","cloneElement","Fragment","Table","Button","InfiniteList","forwardRef","InfiniteList_default","useNavStore","persist","keys","current","key","createJSONStorage","MemoizedLink","memo","to","Link","transformItems","items","result","i","rest","route","label","labelNode","flatItems","keypath","item","Nav","loading","location","useLocation","cachedFlattenItemsRef","cachedInternalItemsRef","previousLocationRef","flattenItems","internalItems","openKeys","selectedKeys","setOpenKeys","setSelectedKeys","match","missingKeys","k","Menu","Nav_default","Antd","RequireGame","permissionVersion","appId","isGlobal","useToolkitsStore","isLoading","useGames","Empty","RequireGame_default","UserWidget","navigate","useNavigate","user","loginPath","clear","handleSignOut","handleKeyDown","handleDropdownKeyDown","LogoutOutlined","Dropdown","UserOutlined","UserWidget_default","Text","GameSelect","filter","options","gameApiV2","setAppId","queryClient","useQueryClient","filteredData","selectOptions","handleChange","value","query","Select","GameSelect_default","Logo","logo_default","Logo_default","TRANSITION_EASING","LayoutHeader","title","subtitle","mainPagePath","collapsed","LayoutHeader_default","Header","Sider","Content","AntdLayout","Layout","isMenuLoading","headerExtra","gameSelectFilter","gameSelectOptions","hideGameSelect","colorBgContainer","colorBorder","navWidth","collapsible","toggleCollapsed","Divider","MenuUnfoldOutlined","MenuFoldOutlined","extra","Suspense","Layout_default","RequireAuth","config","redirectPath","RequireAuth_default","useDrawerStore","createVisibilityStore","useDrawer","content","afterOpen","afterClose","confirmText","cancelText","confirmButtonProps","cancelButtonProps","drawerProps","_id","generateId","show","hide","isOpen","cleanup","open","confirmLoading","setConfirmLoading","isRenderFunction","_show","useCallback","_hide","onClose","handleConfirm","drawerFooter","internalDrawer","Drawer","useFormDrawer","formProps","onSuccess","internalExtraValues","setInternalExtraValues","internalForm","drawer","operation","showForm","initialValues","extraValues","MenuItemList","lazy","CreateMenuItem","UpdateMenuItem","menu_default","Routes","Route","UserList","UserDetail","RoleList","RoleDetail","permission_default","Navigate","NotFound","redirectUrl","notFound_default","Option","OperationLogList","columns","dayjs","Card","QueryList_default","operationLogList_default","withContext","clearUrlParams","param","useTicketLogin","setToken","queryParams","ticket","unregisteredFromUrl","isUnregistered","setIsUnregistered","useQuery","queryKeys","SignIn","dismissUnregistered","background_default","Alert","SSO_URL","signIn_default"],"mappings":"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","file":"index.js","sourcesContent":["import { PlusOutlined } from '@ant-design/icons'\nimport type { InputRef } from 'antd'\nimport { Input, Space, Tag, theme } from 'antd'\nimport type { ChangeEvent, CSSProperties, FC } from 'react'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useTranslation } from '@/locale'\n\nexport interface DynamicTagsProps {\n initialTags?: string[]\n addable?: boolean\n removable?: boolean\n // 返回 Promise。如果返回 Promise.resolve(true),则添加; 如果返回 Promise.resolve(false) 或 Promise.reject,则不添加\n addCallback?: (addedTag: string) => Promise<boolean>\n // 返回 Promise。如果返回 Promise.resolve(true),则删除; 如果返回 Promise.resolve(false) 或 Promise.reject,则不删除\n removeCallback?: (removedTag: string) => Promise<boolean>\n}\n\nconst DynamicTags: FC<DynamicTagsProps> = props => {\n const { initialTags, addable, removable, addCallback, removeCallback } = props\n const { t } = useTranslation()\n const { token } = theme.useToken()\n const [tags, setTags] = useState<string[]>([])\n const [inputVisible, setInputVisible] = useState(false)\n const [inputValue, setInputValue] = useState('')\n const [editInputIndex, setEditInputIndex] = useState(-1)\n const [editInputValue, setEditInputValue] = useState<string>('')\n const inputRef = useRef<InputRef>(null)\n const editInputRef = useRef<InputRef>(null)\n\n useEffect(() => {\n setTags(initialTags ?? [])\n }, [initialTags])\n\n useEffect(() => {\n if (inputVisible) {\n inputRef.current?.focus()\n }\n }, [inputVisible])\n\n useEffect(() => {\n editInputRef.current?.focus()\n }, [inputValue])\n\n const handleClose = async (removedTag: string) => {\n const success = await removeCallback?.(removedTag)\n\n if (success) {\n const newTags = tags.filter(tag => tag !== removedTag)\n setTags(newTags)\n }\n }\n\n const showInput = () => {\n setInputVisible(true)\n }\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setInputValue(e.target.value)\n }\n\n const handleInputConfirm = async () => {\n if (inputValue && tags.indexOf(inputValue) === -1) {\n const success = await addCallback?.(inputValue)\n\n if (success) {\n setTags([...tags, inputValue])\n }\n }\n\n setInputVisible(false)\n setInputValue('')\n }\n\n const handleEditInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n setEditInputValue(e.target.value)\n }\n\n const handleEditInputConfirm = () => {\n const newTags = [...tags]\n newTags[editInputIndex] = editInputValue\n setTags(newTags)\n setEditInputIndex(-1)\n setInputValue('')\n }\n\n const tagInputStyle: CSSProperties = {\n width: 78,\n verticalAlign: 'top',\n }\n\n const tagPlusStyle: CSSProperties = {\n background: token.colorBgContainer,\n borderStyle: 'dashed',\n }\n\n return (\n <Space wrap size={[0, 8]}>\n <Space wrap size={[0, 8]}>\n {tags.map((tag, index) => {\n if (editInputIndex === index) {\n return (\n <Input\n ref={editInputRef}\n key={tag}\n size=\"small\"\n style={tagInputStyle}\n value={editInputValue}\n onChange={handleEditInputChange}\n onBlur={handleEditInputConfirm}\n onPressEnter={handleEditInputConfirm}\n />\n )\n }\n\n return (\n <Tag\n key={tag}\n closable={removable}\n style={{ userSelect: 'none' }}\n onClose={async e => {\n e.preventDefault()\n await handleClose(tag)\n }}\n >\n <span\n onDoubleClick={e => {\n if (index !== 0) {\n setEditInputIndex(index)\n setEditInputValue(tag)\n e.preventDefault()\n }\n }}\n >\n {tag}\n </span>\n </Tag>\n )\n })}\n </Space>\n {addable &&\n (inputVisible ? (\n <Input\n ref={inputRef}\n type=\"text\"\n size=\"small\"\n style={tagInputStyle}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputConfirm}\n onPressEnter={handleInputConfirm}\n />\n ) : (\n <Tag style={tagPlusStyle} onClick={showInput}>\n <PlusOutlined />\n &nbsp;{t('global.add')}\n </Tag>\n ))}\n </Space>\n )\n}\n\nexport default DynamicTags\n","import { Typography } from 'antd'\nimport type { ParagraphProps } from 'antd/es/typography/Paragraph'\nimport type { FC } from 'react'\nimport { useState } from 'react'\n\nexport type ExpandableParagraphProps = Omit<ParagraphProps, 'ellipsis' | 'className'>\n\nconst ExpandableParagraph: FC<ExpandableParagraphProps> = props => {\n const { children, ...restProps } = props\n const [expanded, setExpanded] = useState(false)\n\n return (\n <Typography.Paragraph\n {...restProps}\n className=\"mb-0\"\n ellipsis={{\n rows: 2,\n expandable: 'collapsible',\n expanded,\n onExpand: (_, info) => {\n setExpanded(info.expanded)\n },\n }}\n >\n {children}\n </Typography.Paragraph>\n )\n}\n\nexport default ExpandableParagraph\n","import { isEqual } from 'lodash-es'\nimport { create } from 'zustand'\nimport { devtools, subscribeWithSelector } from 'zustand/middleware'\n\nimport type { InfiniteListPayload } from './InfiniteList'\n\n// Infinite Query 更新函数类型\ntype InfiniteQueryRefetchFunction = () => void | Promise<unknown>\ntype InfiniteQueryFetchNextPageFunction = () => void | Promise<unknown>\n\n// InfiniteList 实例信息\ninterface InfiniteListInstance {\n id: string\n url: string\n queryKey: readonly unknown[]\n payload: InfiniteListPayload\n refetch: InfiniteQueryRefetchFunction\n fetchNextPage: InfiniteQueryFetchNextPageFunction\n}\n\n// 简化的状态接口\ninterface InfiniteListState {\n // 实例管理\n instances: Map<string, InfiniteListInstance>\n\n // 核心方法\n registerInstance(\n id: string,\n url: string,\n queryKey: readonly unknown[],\n refetch: InfiniteQueryRefetchFunction,\n fetchNextPage: InfiniteQueryFetchNextPageFunction,\n ): void\n unregisterInstance(id: string): void\n updatePayload(id: string, payload: InfiniteListPayload): void\n getPayload(id: string): InfiniteListPayload\n refetch(id: string, payload?: InfiniteListPayload): Promise<void>\n fetchNextPage(id: string): Promise<void>\n\n // 工具方法\n getInstance(id: string): InfiniteListInstance | undefined\n getAllInstances(): InfiniteListInstance[]\n}\n\n// 稳定的默认 payload 引用,避免未注册时每次返回新对象导致 getSnapshot 无限循环\nconst DEFAULT_PAYLOAD: InfiniteListPayload = Object.freeze({\n page: 0,\n // 这里使用冻结的空对象,确保引用稳定\n filters: Object.freeze({}) as Record<string, never>,\n})\n\n// 创建简化的 store\nconst createStore = () =>\n create<InfiniteListState>()(\n devtools(\n subscribeWithSelector((set, get) => ({\n instances: new Map(),\n\n registerInstance(id, url, queryKey, refetch, fetchNextPage) {\n set(state => {\n const existingInstance = state.instances.get(id)\n\n // 如果实例已存在,只更新函数\n if (existingInstance) {\n // 仅当引用发生变化时才更新,避免无意义 setState\n if (existingInstance.refetch !== refetch || existingInstance.fetchNextPage !== fetchNextPage) {\n const updatedInstance = {\n ...existingInstance,\n refetch,\n fetchNextPage,\n }\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n return { instances: newInstances }\n }\n return state\n }\n\n // 创建新实例\n const instance: InfiniteListInstance = {\n id,\n url,\n queryKey,\n payload: DEFAULT_PAYLOAD,\n refetch,\n fetchNextPage,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, instance)\n\n return { instances: newInstances }\n })\n },\n\n unregisterInstance(id) {\n set(state => {\n const newInstances = new Map(state.instances)\n const existed = newInstances.delete(id)\n\n if (existed) {\n return { instances: newInstances }\n }\n return state\n })\n },\n\n updatePayload(id, payload) {\n set(state => {\n const instance = state.instances.get(id)\n if (!instance) return state\n\n const newPayload = { ...instance.payload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(instance.payload, newPayload)) {\n const updatedInstance = {\n ...instance,\n payload: newPayload,\n }\n\n const newInstances = new Map(state.instances)\n newInstances.set(id, updatedInstance)\n\n return { instances: newInstances }\n }\n\n return state\n })\n },\n\n getPayload(id) {\n const instance = get().instances.get(id)\n return instance?.payload ?? DEFAULT_PAYLOAD\n },\n\n async refetch(id, payload) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`InfiniteList instance with id \"${id}\" not found`)\n return\n }\n\n let payloadChanged = false\n\n // 更新 payload 如果提供且确实有变化\n if (payload) {\n const currentPayload = instance.payload\n const newPayload = { ...currentPayload, ...payload }\n\n // 只有当 payload 真正改变时才更新\n if (!isEqual(currentPayload, newPayload)) {\n get().updatePayload(id, payload)\n payloadChanged = true\n }\n }\n\n // 若 payload 发生变化,queryKey 会变化,React Query 会自动触发请求,此处不再手动 refetch,避免重复请求\n if (payloadChanged) {\n return\n }\n\n // 否则手动触发一次请求\n try {\n await instance.refetch()\n } catch (error) {\n console.error(`Failed to refetch InfiniteList instance \"${id}\":`, error)\n throw error\n }\n },\n\n async fetchNextPage(id) {\n const instance = get().instances.get(id)\n if (!instance) {\n console.warn(`InfiniteList instance with id \"${id}\" not found`)\n return\n }\n\n // 调用 fetchNextPage 函数\n try {\n await instance.fetchNextPage()\n } catch (error) {\n console.error(`Failed to fetch next page for InfiniteList instance \"${id}\":`, error)\n throw error\n }\n },\n\n getInstance(id) {\n return get().instances.get(id)\n },\n\n getAllInstances() {\n return Array.from(get().instances.values())\n },\n })),\n {\n name: 'infinite-list-store',\n },\n ),\n )\n\n// 创建 store 实例\nconst store = createStore()\n\nexport const useInfiniteListStore = store\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useInfiniteQuery } from '@tanstack/react-query'\nimport type { FormInstance } from 'antd'\nimport { Button, Form, Result, Spin, Table } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { TableProps } from 'antd/es/table'\nimport type { Options as KyOptions } from 'ky'\nimport type { ReactElement, ReactNode, Ref } from 'react'\nimport { cloneElement, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react'\n\nimport type { FilterFormWrapperProps } from '@/components/filterFormWrapper'\nimport { FilterFormWrapper } from '@/components/filterFormWrapper'\nimport { useKy } from '@/libs'\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nimport { useInfiniteListStore } from './stores'\n\nexport interface InfiniteListPayload<Values = any> {\n page?: number\n filters?: Values\n}\n\nexport interface InfiniteListRequestConfig<Values = any> {\n url: string\n method?: 'GET' | 'POST'\n body?:\n | FormData\n | Record<string | number, any>\n | ((payload: InfiniteListPayload<Values>, pageParam: any) => FormData | Record<string | number, any>)\n params?:\n | Record<string | number, any>\n | ((payload: InfiniteListPayload<Values>, pageParam: any) => Record<string | number, any>)\n headers?: Record<string, string> | ((form: FormInstance<Values>) => Record<string, string>)\n // 缓存配置\n cacheTime?: number // 缓存时间(毫秒)\n staleTime?: number // 数据新鲜时间(毫秒)\n}\n\nexport enum InfiniteListAction {\n Confirm,\n Reset,\n LoadMore,\n Init,\n}\n\nexport interface InfiniteListDataAdapter<Item = any, Values = any, Data = any> {\n items?: (data: Data[] | undefined, form: FormInstance<Values>) => Item[] | undefined\n hasMore?: (lastPage: Data | undefined, allPages: Data[]) => boolean\n nextPageParam?: (lastPage: Data | undefined, allPages: Data[], pageParam: any) => any\n}\n\nexport interface InfiniteListRef<Item = any, Values = any, Data = any> {\n data: Data[] | undefined\n dataSource: Item[] | undefined\n form: FormInstance<Values>\n refetch: () => void\n fetchNextPage: () => void\n hasNextPage: boolean\n isFetchingNextPage: boolean\n}\n\nexport interface InfiniteListProps<Item, Values, Data>\n extends Omit<TableProps<Item>, 'pagination' | 'dataSource' | 'loading' | 'footer'>,\n Pick<FilterFormWrapperProps, 'buttonsAlign' | 'showReset'> {\n identifier?: string // 可选标识符,未提供时自动生成\n code?: string\n form?: FormInstance<Values>\n refreshInterval?: number\n request: InfiniteListRequestConfig<Values> // 必需的请求配置\n tableExtra?: ReactNode | ((form: FormInstance<Values>, data?: Data[]) => ReactNode)\n renderForm?: (form: FormInstance<Values>) => ReactElement\n afterSuccess?: (action: InfiniteListAction, form: FormInstance<Values>, data?: Data[]) => void\n afterError?: (error: Error, action: InfiniteListAction, form: FormInstance<Values>) => void\n dataAdapter?: InfiniteListDataAdapter<Item, Values, Data>\n initialPageParam?: any\n footer?: (data: Data[] | undefined) => ReactNode\n}\n\n// 常量定义(对齐 QueryList 行为)\nconst DEFAULT_CACHE_TIME = 5 * 60 * 1000\nconst DEFAULT_STALE_TIME = 30 * 1000\n\nconst SPIN_STYLE: React.CSSProperties = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 300,\n}\n\n// 生成唯一 identifier 的计数器\nlet identifierCounter = 0\nconst generateUniqueIdentifier = (): string => `infiniteList_${Date.now()}_${++identifierCounter}`\n\nconst InternalInfiniteList = <Item extends AnyObject, Values extends object | undefined = undefined, Data = any>(\n props: InfiniteListProps<Item, Values, Data>,\n ref: Ref<InfiniteListRef<Item, Values, Data>>,\n) => {\n const defaultDataAdapter: InfiniteListDataAdapter<Item, Values, Data> = {\n items: (data: Data[] | undefined) => {\n if (!data) return []\n return data.flatMap((page: any) => page?.list || page || [])\n },\n hasMore: (lastPage: Data | undefined): boolean => {\n if (!lastPage) return false\n const page = lastPage as any\n return page?.hasMore || page?.has_more || false\n },\n nextPageParam: (lastPage: Data | undefined, allPages: Data[], _pageParam: any): any => {\n const hasMore = (page: Data | undefined): boolean => {\n if (!page) return false\n const pageData = page as any\n return pageData?.hasMore || pageData?.has_more || false\n }\n return hasMore(lastPage) ? allPages.length : undefined\n },\n }\n\n const internalProps: InfiniteListProps<Item, Values, Data> & {\n refreshInterval: number\n initialPageParam: any\n } = {\n refreshInterval: 0,\n initialPageParam: 0,\n ...props,\n dataAdapter: {\n ...defaultDataAdapter,\n ...props.dataAdapter,\n },\n }\n\n const {\n identifier,\n code,\n buttonsAlign,\n showReset,\n refreshInterval,\n request,\n tableExtra,\n renderForm,\n afterSuccess,\n afterError,\n dataAdapter,\n initialPageParam,\n footer,\n form,\n ...tableProps\n } = internalProps\n const { t } = useTranslation()\n const [_form] = Form.useForm<Values>(form)\n const [isValid, setIsValid] = useState(false)\n const shouldPoll = useRef(false)\n const action = useRef(InfiniteListAction.Init)\n const ky = useKy()\n\n const { data: accessible, isLoading: isChecking } = useAuth(code)\n\n // 生成或使用提供的 identifier\n const finalIdentifier = useMemo(() => identifier || generateUniqueIdentifier(), [identifier])\n\n // 订阅当前 identifier 的 payload,驱动 queryKey 与渲染\n const subscribedPayload = useInfiniteListStore(s => s.getPayload(finalIdentifier))\n\n // 获取当前表单值\n const formInstance = useMemo(() => _form, [_form])\n\n // 构建请求参数\n const {\n url,\n method = 'GET',\n body,\n params,\n headers,\n cacheTime = DEFAULT_CACHE_TIME,\n staleTime = DEFAULT_STALE_TIME,\n } = request\n const requestHeaders = useMemo(\n () => (typeof headers === 'function' ? headers(formInstance) : headers),\n [headers, formInstance],\n )\n // 请求参数和 body 将在 queryFn 中动态构建,因为它们依赖于 pageParam\n\n // 构建查询键\n const queryKey = useMemo(() => {\n return ['infiniteList', url, finalIdentifier, accessible, isValid, subscribedPayload, requestHeaders]\n }, [url, finalIdentifier, accessible, isValid, subscribedPayload, requestHeaders])\n\n const { data, fetchNextPage, hasNextPage, isFetchingNextPage, refetch, isFetching } = useInfiniteQuery({\n queryKey,\n queryFn: async ({ pageParam = initialPageParam }) => {\n try {\n const payload = subscribedPayload\n\n // 动态构建请求参数,包含 pageParam\n const requestParams = typeof params === 'function' ? params(payload, pageParam) : params\n const requestBody = typeof body === 'function' ? body(payload, pageParam) : body\n\n const kyOptions: KyOptions = {\n method: method as any,\n searchParams: requestParams,\n headers: requestHeaders,\n }\n\n if (requestBody) {\n if (requestBody instanceof FormData) {\n kyOptions.body = requestBody\n } else {\n kyOptions.json = requestBody\n }\n }\n\n const response = await ky.request<Data>({ url, ...kyOptions })\n shouldPoll.current = true\n afterSuccess?.(action.current, formInstance, [response])\n return response\n } catch (err) {\n const errorObj = err instanceof Error ? err : new Error(String(err))\n afterError?.(errorObj, action.current, formInstance)\n throw errorObj\n }\n },\n initialPageParam,\n getNextPageParam: (lastPage: Data, allPages: Data[]) => {\n return dataAdapter?.nextPageParam?.(lastPage, allPages, initialPageParam)\n },\n enabled: accessible && isValid,\n retry: (failureCount, retryError) => {\n if (failureCount >= 3) return false\n if (retryError?.message?.includes('401')) return false\n return true\n },\n retryDelay: attemptIndex => Math.min(1000 * 2 ** attemptIndex, 30000),\n refetchOnWindowFocus: false,\n refetchInterval: shouldPoll.current ? refreshInterval : 0,\n gcTime: cacheTime,\n staleTime,\n })\n\n // 在组件挂载时注册实例\n useEffect(() => {\n useInfiniteListStore.getState().registerInstance(finalIdentifier, url, queryKey, refetch, fetchNextPage)\n return () => {\n useInfiniteListStore.getState().unregisterInstance(finalIdentifier)\n }\n }, [finalIdentifier, url, queryKey, refetch, fetchNextPage])\n\n const dataSource = dataAdapter?.items?.(data?.pages, formInstance)\n const isLoadingMore = isFetchingNextPage\n const isReachingEnd = !hasNextPage\n const isEmpty = !dataSource || dataSource.length === 0\n\n const onConfirm = async () => {\n action.current = InfiniteListAction.Confirm\n const values = await _form.getFieldsValue()\n\n try {\n await _form.validateFields()\n setIsValid(true)\n\n // 更新 store 中的 payload\n useInfiniteListStore.getState().refetch(finalIdentifier, { page: 0, filters: values })\n } catch {\n setIsValid(false)\n }\n }\n\n const loadMore = () => {\n action.current = InfiniteListAction.LoadMore\n fetchNextPage()\n }\n\n const onReset = async () => {\n action.current = InfiniteListAction.Reset\n try {\n _form.resetFields()\n const values = await _form.getFieldsValue()\n\n // 重置 store 中的 payload\n useInfiniteListStore.getState().updatePayload(finalIdentifier, { page: 0, filters: values })\n\n await _form.validateFields({ validateOnly: true })\n useInfiniteListStore.getState().refetch(finalIdentifier)\n } catch {\n // Handle validation error\n }\n }\n\n useEffect(() => {\n setTimeout(() => {\n if (accessible) {\n _form\n .validateFields({ validateOnly: true })\n .then(values => {\n setIsValid(true)\n\n // 初始化 store 中的 payload\n useInfiniteListStore.getState().updatePayload(finalIdentifier, { page: 0, filters: values })\n })\n .catch(() => {\n setIsValid(false)\n })\n }\n }, 300)\n }, [accessible, _form, finalIdentifier])\n\n useImperativeHandle(ref, () => ({\n data: data?.pages,\n dataSource,\n form: _form,\n refetch: () => useInfiniteListStore.getState().refetch(finalIdentifier),\n fetchNextPage: () => useInfiniteListStore.getState().fetchNextPage(finalIdentifier),\n hasNextPage: !!hasNextPage,\n isFetchingNextPage,\n }))\n\n if (isChecking) {\n return <Spin style={SPIN_STYLE} />\n }\n\n if (!accessible) {\n return <Result status={403} subTitle={t('global.noEntitlement')} />\n }\n\n const renderFooter = footer && (() => footer(data?.pages))\n\n const renderTableExtra = () => {\n if (typeof tableExtra === 'function') {\n return tableExtra(formInstance, data?.pages)\n }\n return tableExtra\n }\n\n const formRenderer =\n typeof renderForm === 'function' ? (\n <FilterFormWrapper\n showReset={showReset}\n buttonsAlign={buttonsAlign}\n isConfirming={isFetching}\n onReset={onReset}\n onConfirm={onConfirm}\n >\n {cloneElement(renderForm(_form), {\n onKeyUp: (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n onConfirm()\n }\n },\n })}\n </FilterFormWrapper>\n ) : (\n // 屏蔽 Form 组件的警告(Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?)\n <Form form={_form} />\n )\n\n return (\n <>\n {formRenderer}\n {renderTableExtra()}\n <div style={{ minHeight: '400px' }}>\n <Table {...tableProps} dataSource={dataSource} loading={isFetching} pagination={false} footer={renderFooter} />\n </div>\n {!isEmpty && (\n <Button\n block\n loading={isLoadingMore}\n type=\"link\"\n htmlType=\"button\"\n disabled={isLoadingMore || isReachingEnd}\n onClick={loadMore}\n >\n {isLoadingMore\n ? t('InfiniteList.loadingText')\n : isReachingEnd\n ? t('InfiniteList.reachEndText')\n : t('InfiniteList.loadMoreText')}\n </Button>\n )}\n </>\n )\n}\n\nconst InfiniteList = forwardRef(InternalInfiniteList) as <\n Item extends AnyObject = AnyObject,\n Values extends object | undefined = undefined,\n Data = any,\n>(\n props: InfiniteListProps<Item, Values, Data> & { ref?: Ref<InfiniteListRef<Item, Values, Data>> },\n) => ReactElement\n\nexport default InfiniteList\n","import { create } from 'zustand'\nimport { createJSONStorage, persist } from 'zustand/middleware'\n\nexport interface NavState {\n openKeys: string[]\n selectedKeys: string[]\n setOpenKeys: (keys: string[]) => void\n setSelectedKeys: (keys: string[]) => void\n}\n\nexport const useNavStore = create<NavState>()(\n persist(\n (set, get) => ({\n openKeys: [],\n setOpenKeys: keys => {\n const current = get()\n // 避免不必要的状态更新 - 使用更高效的比较方式\n if (current.openKeys.length !== keys.length || !current.openKeys.every((key, index) => key === keys[index])) {\n set({ openKeys: keys })\n }\n },\n selectedKeys: [],\n setSelectedKeys: keys => {\n const current = get()\n // 避免不必要的状态更新 - 使用更高效的比较方式\n if (\n current.selectedKeys.length !== keys.length ||\n !current.selectedKeys.every((key, index) => key === keys[index])\n ) {\n set({ selectedKeys: keys })\n }\n },\n }),\n {\n name: 'nav',\n storage: createJSONStorage(() => localStorage),\n partialize: state => ({\n openKeys: state.openKeys,\n selectedKeys: state.selectedKeys,\n }),\n // 减少持久化频率,提升性能\n skipHydration: false,\n version: 1,\n },\n ),\n)\n","import type { ItemType, MenuDividerType } from 'antd/es/menu/interface'\nimport { memo } from 'react'\nimport { Link } from 'react-router-dom'\nimport type { Merge } from 'ts-essentials'\n\nimport type { NavItem, NavMenuItemGroupType, NavMenuItemType, NavSubMenuType } from './types'\n\n// 优化 Link 组件,避免重复创建\nconst MemoizedLink = memo(({ to, children }: { to: string; children: React.ReactNode }) => (\n <Link to={to}>{children}</Link>\n))\n\nMemoizedLink.displayName = 'MemoizedLink'\n\n// 将自定义的菜单配置转换为 antd 的菜单配置,添加 react-router-dom Link 等。\nexport function transformItems(items?: NavItem[]) {\n const result: ItemType[] = []\n\n if (items) {\n for (let i = 0; i < items.length; i++) {\n if (items[i] === null || (items[i] as MenuDividerType).type === 'divider') {\n result[i] = items[i] as null | MenuDividerType\n } else if ((items[i] as NavSubMenuType | NavMenuItemGroupType).children) {\n const { children, ...rest } = items[i] as NavSubMenuType | NavMenuItemGroupType\n result[i] = {\n ...rest,\n children: transformItems(children),\n }\n } else {\n const { route, label, ...rest } = items[i] as NavMenuItemType\n const labelNode = route ? <MemoizedLink to={route}>{label}</MemoizedLink> : label\n\n result[i] = {\n ...rest,\n label: labelNode,\n }\n }\n }\n }\n\n return result\n}\n\n// 拍平导航配置,并且注入 keypath 字段\nexport function flatItems(\n items: NavItem[],\n result: Merge<NavMenuItemType, { keypath?: string[] }>[] = [],\n keypath: string[] = [],\n) {\n for (const item of items) {\n const children = (item as NavSubMenuType | NavMenuItemGroupType)?.children as NavItem[]\n\n if (Array.isArray(children)) {\n const keys =\n (item as NavMenuItemGroupType).type !== 'group' && item!.key ? [...keypath, item!.key as string] : keypath\n flatItems(children, result, keys)\n } else if (item) {\n result.push(Object.assign(item as NavMenuItemType, { keypath }))\n }\n }\n\n return result\n}\n","import type { MenuProps } from 'antd'\nimport { Menu, Spin } from 'antd'\nimport { memo, useEffect, useMemo, useRef } from 'react'\nimport { useLocation } from 'react-router-dom'\n\nimport { useNavStore } from './stores'\nimport type { NavItem } from './types'\nimport { flatItems, transformItems } from './utils'\n\nexport interface NavProps {\n items?: NavItem[]\n theme?: MenuProps['theme']\n loading?: boolean\n}\n\nconst Nav = memo(function Nav(props: NavProps) {\n const { items = [], theme, loading } = props\n const location = useLocation()\n const cachedFlattenItemsRef = useRef<ReturnType<typeof flatItems>>()\n const cachedInternalItemsRef = useRef<ReturnType<typeof transformItems>>()\n const previousLocationRef = useRef<string>()\n\n const flattenItems = useMemo(() => {\n const current = flatItems(items)\n cachedFlattenItemsRef.current = current\n return current\n }, [items])\n\n const internalItems = useMemo(() => {\n const current = transformItems(items)\n cachedInternalItemsRef.current = current\n return current\n }, [items])\n\n const { openKeys, selectedKeys, setOpenKeys, setSelectedKeys } = useNavStore()\n\n useEffect(() => {\n // 避免不必要的重新计算\n if (previousLocationRef.current === location.pathname) {\n return\n }\n previousLocationRef.current = location.pathname\n\n const match = flattenItems.find(item => location.pathname === item.route)\n\n if (match) {\n const key = match.key as string\n const keypath = match.keypath as string[]\n\n // 批量更新状态以减少重新渲染\n if (selectedKeys[0] !== key) {\n setSelectedKeys([key])\n }\n\n // 只在 keypath 不在 openKeys 中时才添加,保留其他已展开的菜单\n const missingKeys = keypath.filter(k => !openKeys.includes(k))\n if (missingKeys.length > 0) {\n setOpenKeys([...openKeys, ...missingKeys])\n }\n }\n }, [flattenItems, location.pathname, selectedKeys, openKeys, setSelectedKeys, setOpenKeys])\n\n if (loading) {\n return (\n <div className=\"flex justify-center items-center\" style={{ height: 'calc(100vh - 64px)' }}>\n <Spin />\n </div>\n )\n }\n\n return (\n <Menu\n theme={theme}\n style={{ borderRight: 'none' }}\n items={internalItems}\n mode=\"inline\"\n openKeys={openKeys}\n selectedKeys={selectedKeys}\n onOpenChange={setOpenKeys}\n />\n )\n})\n\nif (process.env.NODE_ENV === 'development') {\n Nav.displayName = 'Nav'\n}\n\nexport default Nav\n","import * as Antd from 'antd'\nimport { Empty } from 'antd'\nimport type { FC, PropsWithChildren } from 'react'\nimport { Fragment } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { PermissionVersion } from '@/constants'\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nconst { Spin } = Antd\n\nconst RequireGame: FC<PropsWithChildren> = ({ children }) => {\n const { permissionVersion, appId, isGlobal } = useToolkitsStore(s => s)\n const { isLoading } = useGames()\n const { t } = useTranslation()\n\n if (isLoading) {\n return (\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 400,\n }}\n >\n <Spin />\n </div>\n )\n }\n\n if (permissionVersion === PermissionVersion.V1 || isGlobal) {\n return children\n }\n\n if (!appId) {\n return <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description={t('RequireGame.description')} />\n }\n\n return <Fragment key={appId}>{children}</Fragment>\n}\n\nexport default RequireGame\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport { LogoutOutlined, UserOutlined } from '@ant-design/icons'\nimport type { MenuProps } from 'antd'\nimport { Dropdown, Space } from 'antd'\nimport type { FC, KeyboardEvent } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\n\nconst UserWidget: FC = () => {\n const { t } = useTranslation()\n const navigate = useNavigate()\n const { user, loginPath, clear } = useToolkitsStore()\n\n const handleSignOut = () => {\n clear()\n navigate(loginPath)\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n handleSignOut()\n }\n }\n\n const handleDropdownKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n }\n }\n\n const items: MenuProps['items'] = [\n {\n key: '1',\n icon: <LogoutOutlined />,\n label: (\n <a role=\"button\" tabIndex={0} onClick={handleSignOut} onKeyDown={handleKeyDown}>\n {t('UserWidget.signOutText')}\n </a>\n ),\n },\n ]\n\n return (\n <div>\n <Dropdown\n menu={{\n selectable: true,\n items,\n }}\n placement=\"bottomRight\"\n >\n <a\n role=\"button\"\n tabIndex={0}\n onClick={e => {\n e.preventDefault()\n }}\n onKeyDown={handleDropdownKeyDown}\n >\n <Space align=\"center\">\n <span>{user?.authorityId}</span>\n <UserOutlined style={{ fontSize: '16px' }} />\n </Space>\n </a>\n </Dropdown>\n </div>\n )\n}\n\nexport default UserWidget\n","import { useQueryClient } from '@tanstack/react-query'\nimport type { SelectProps } from 'antd'\nimport { Select, Space, Typography } from 'antd'\nimport { useEffect, useMemo } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\nimport { useGames } from '@/services'\n\nimport type { Game } from './types'\n\nconst { Text } = Typography\n\nexport interface GameSelectProps<T extends Game = Game> {\n filter?: (game: T) => boolean\n options?: (data?: T[]) => SelectProps['options']\n}\n\nconst GameSelect = <T extends Game = Game>(props: GameSelectProps<T>) => {\n const { filter, options } = props\n const { t } = useTranslation()\n const { gameApiV2, appId, setAppId } = useToolkitsStore()\n const { data, isLoading } = useGames()\n const queryClient = useQueryClient()\n\n const filteredData = useMemo(\n () => data?.filter((item: Game) => filter?.(item as T) ?? true) as T[] | undefined,\n [data, filter],\n )\n\n const selectOptions = useMemo(\n () =>\n typeof options === 'function'\n ? options(filteredData)\n : filteredData?.map((item: T) => ({\n label: item.name,\n value: gameApiV2 ? item.game_id : item.id,\n })),\n [options, filteredData, gameApiV2],\n )\n\n // 切换游戏时清空 TanStack Query 缓存触发重新请求以更新视图。\n const handleChange = (value: string | number) => {\n // 标记除游戏列表外的所有缓存为过期,保留现有数据直到新数据加载完成\n queryClient.invalidateQueries({\n predicate: query => {\n const queryKey = query.queryKey\n return !queryKey.includes('/api/game/list') && !queryKey.includes('/api/usystem/game/all')\n },\n })\n setAppId(value)\n }\n\n useEffect(() => {\n // 数据还在加载中时,不要修改 appId\n if (isLoading) return\n\n if (selectOptions && selectOptions.length > 0) {\n const hasValidAppId = appId && selectOptions.some(item => String(item.value) === String(appId))\n\n // 只有当 appId 无效时才设置为第一个选项\n if (!hasValidAppId) {\n setAppId(selectOptions[0]?.value ?? undefined)\n }\n } else if (selectOptions === undefined || selectOptions.length === 0) {\n // 如果没有选项,则清空当前游戏 ID\n setAppId(undefined)\n }\n }, [selectOptions, isLoading])\n\n return (\n <Space>\n <Text>{t('GameSelect.label')}</Text>\n <Select\n showSearch\n optionFilterProp=\"label\"\n value={appId as string | number | undefined}\n placeholder={t('GameSelect.placeholder')}\n loading={isLoading}\n style={{ width: '250px' }}\n options={selectOptions}\n onChange={handleChange}\n />\n </Space>\n )\n}\n\nexport default GameSelect\n","import type { DetailedHTMLProps, FC, ImgHTMLAttributes } from 'react'\n\nimport logoUrl from './logo.png'\n\nexport type LogoProps = Omit<DetailedHTMLProps<ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement>, 'src' | 'alt'>\n\nconst Logo: FC<LogoProps> = props => {\n return <img src={logoUrl} alt=\"logo\" {...props} />\n}\n\nexport default Logo\n","import { memo } from 'react'\nimport { Link } from 'react-router-dom'\n\nimport { Logo } from '@/components/logo'\n\nimport { useToolkitsStore } from '../toolkitsProvider'\n\ninterface LayoutHeaderProps {\n title?: string\n subtitle?: string\n}\n\nconst TRANSITION_EASING = 'all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94)'\n\nconst LayoutHeader = memo<LayoutHeaderProps>(({ title, subtitle }) => {\n const { mainPagePath, collapsed } = useToolkitsStore()\n\n return (\n <div\n className=\"px-6 py-2 font-bold relative bg-gradient-to-r from-white to-gray-50/30\"\n style={{\n height: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n backdropFilter: 'blur(4px)',\n WebkitBackdropFilter: 'blur(4px)',\n }}\n >\n <div className={`flex items-center w-full ${collapsed ? 'justify-center' : ''}`}>\n <Link\n to={mainPagePath}\n className=\"hover:opacity-80 transition-all duration-300 ease-out block rounded-lg p-1 hover:bg-white/50 hover:shadow-sm\"\n style={{\n transition: TRANSITION_EASING,\n opacity: collapsed ? 0.8 : 1,\n }}\n >\n <Logo\n width={36}\n style={{\n objectFit: 'contain',\n display: 'block',\n filter: 'drop-shadow(0 1px 1px rgba(0, 0, 0, 0.05))',\n transition: TRANSITION_EASING,\n }}\n />\n </Link>\n {title && (\n <div\n className=\"ml-4 overflow-hidden min-w-0\"\n style={{\n transition: TRANSITION_EASING,\n opacity: collapsed ? 0 : 1,\n width: collapsed ? '0px' : 'auto',\n marginLeft: collapsed ? '0px' : '16px',\n transform: collapsed ? 'translateX(-8px)' : 'translateX(0)',\n }}\n >\n <Link\n to={mainPagePath}\n className=\"text-xl leading-tight hover:text-blue-600 transition-all duration-300 font-bold text-ellipsis overflow-hidden whitespace-nowrap block bg-gradient-to-r from-gray-800 to-gray-600 bg-clip-text text-transparent hover:from-blue-600 hover:to-blue-500\"\n title={title}\n style={{\n letterSpacing: '0.02em',\n textShadow: '0 1px 2px rgba(0, 0, 0, 0.05)',\n }}\n >\n {title}\n </Link>\n </div>\n )}\n </div>\n <div\n className=\"w-full mt-2 overflow-hidden\"\n style={{\n height: subtitle && !collapsed ? '20px' : '1px',\n transition: TRANSITION_EASING,\n }}\n >\n <div className=\"flex items-center justify-center h-full w-full\">\n <div\n className=\"w-full border-t border-gray-200 absolute\"\n style={{\n opacity: !subtitle || collapsed ? 1 : 0,\n transition: TRANSITION_EASING,\n }}\n />\n {subtitle && (\n <div\n className=\"flex items-center w-full text-sm\"\n style={{\n opacity: collapsed ? 0 : 1,\n transform: collapsed ? 'translateY(-3px)' : 'translateY(0)',\n transition: TRANSITION_EASING,\n }}\n >\n <div className=\"flex-1 border-t border-gray-200\"></div>\n <span className=\"px-3 text-gray-500 font-medium whitespace-nowrap\" title={subtitle}>\n {subtitle}\n </span>\n <div className=\"flex-1 border-t border-gray-200\"></div>\n </div>\n )}\n </div>\n </div>\n </div>\n )\n})\n\nLayoutHeader.displayName = 'LayoutHeader'\n\nexport default LayoutHeader\n","import { MenuFoldOutlined, MenuUnfoldOutlined } from '@ant-design/icons'\nimport { Button, Divider, Layout as AntdLayout, Space, Spin, theme } from 'antd'\nimport type { Key, PropsWithChildren, ReactNode } from 'react'\nimport { Suspense } from 'react'\n\nimport type { NavItem } from '@/components/nav'\nimport { Nav } from '@/components/nav'\nimport { RequireGame } from '@/components/requireGame'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { UserWidget } from '@/components/userWidget'\n\nimport type { GameSelectProps } from './GameSelect'\nimport GameSelect from './GameSelect'\nimport LayoutHeader from './LayoutHeader'\nimport type { Game } from './types'\n\nconst { Header, Sider, Content } = AntdLayout\n\ntype HeaderExtra = { key: Key; children: ReactNode }\n\nexport interface LayoutProps<T extends Game = Game> {\n title?: string\n subtitle?: string\n isMenuLoading?: boolean\n items?: NavItem[]\n gameSelectFilter?: GameSelectProps<T>['filter']\n gameSelectOptions?: GameSelectProps<T>['options']\n hideGameSelect?: boolean\n headerExtra?: {\n left?: HeaderExtra[]\n right?: HeaderExtra[]\n }\n}\n\nconst Layout = <T extends Game = Game>(props: PropsWithChildren<LayoutProps<T>>) => {\n const {\n isMenuLoading,\n items,\n headerExtra,\n children,\n gameSelectFilter,\n gameSelectOptions,\n title,\n subtitle,\n hideGameSelect,\n } = props\n const {\n token: { colorBgContainer, colorBorder },\n } = theme.useToken()\n const { navWidth, collapsible, collapsed, toggleCollapsed } = useToolkitsStore()\n\n return (\n <AntdLayout>\n <Sider\n collapsible={collapsible}\n theme=\"light\"\n trigger={null}\n collapsed={collapsed}\n width={navWidth}\n style={{\n height: '100vh',\n overflowX: 'hidden',\n overflowY: 'auto',\n borderRightWidth: 1,\n borderRightStyle: 'solid',\n borderRightColor: colorBorder,\n }}\n >\n <LayoutHeader title={title} subtitle={subtitle} />\n <Nav items={items} loading={isMenuLoading} />\n </Sider>\n <AntdLayout>\n <Header\n style={{\n padding: '0 24px',\n background: colorBgContainer,\n }}\n >\n <div className=\"flex justify-between items-center h-full\">\n <Space size=\"small\" split={<Divider type=\"vertical\" />} className=\"mr-6\">\n {collapsible && (\n <Button\n type=\"text\"\n icon={collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />}\n style={{ fontSize: '16px' }}\n onClick={toggleCollapsed}\n />\n )}\n {!hideGameSelect && <GameSelect<T> filter={gameSelectFilter} options={gameSelectOptions} />}\n {headerExtra?.left?.map(extra => <span key={extra.key}>{extra.children}</span>)}\n </Space>\n <Space size=\"small\" split={<Divider type=\"vertical\" />}>\n {headerExtra?.right?.map(extra => <span key={extra.key}>{extra.children}</span>)}\n <UserWidget />\n </Space>\n </div>\n </Header>\n <Content\n style={{\n overflow: 'auto',\n padding: '24px 16px',\n maxHeight: 'calc(100vh - 64px)',\n }}\n >\n <Suspense\n fallback={\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: '200px',\n }}\n />\n }\n >\n <RequireGame>{children}</RequireGame>\n </Suspense>\n </Content>\n </AntdLayout>\n </AntdLayout>\n )\n}\n\nexport default Layout\n","import { Button, Result, Spin } from 'antd'\nimport type { Options as KyOptions } from 'ky'\nimport type { FC, PropsWithChildren } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useTranslation } from '@/locale'\nimport { useAuth } from '@/services'\n\nexport interface RequireAuthProps {\n /** 权限码 */\n code: string\n /** 请求配置 */\n config?: KyOptions\n /** 无权限时点击返回按钮跳转的路径,默认为首页 '/' */\n redirectPath?: string\n}\n\n/**\n * 授权保护组件\n * 根据权限码控制子组件的访问权限\n * - 有权限:渲染子组件\n * - 无权限:显示 403 无权限页面,可点击按钮返回指定路径\n * - 加载中:显示加载动画\n */\nconst RequireAuth: FC<PropsWithChildren<RequireAuthProps>> = props => {\n const { code, config, redirectPath = '/', children } = props\n const { data: accessible, isLoading } = useAuth(code, config)\n const { t } = useTranslation()\n const navigate = useNavigate()\n\n if (isLoading) {\n return (\n <Spin\n style={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n height: 200,\n }}\n />\n )\n }\n\n if (!accessible) {\n return (\n <Result\n status=\"403\"\n subTitle={t('global.noEntitlement')}\n extra={\n <Button type=\"primary\" onClick={() => navigate(redirectPath)}>\n {t('global.back')}\n </Button>\n }\n />\n )\n }\n\n return <>{children}</>\n}\n\nexport default RequireAuth\n","import { createVisibilityStore } from '@/utils'\n\nexport const useDrawerStore = createVisibilityStore()\n","import type { DrawerProps } from 'antd'\nimport { Button, Drawer } from 'antd'\nimport type { ComponentProps, ReactNode } from 'react'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { generateId } from '@/utils'\n\nimport { useDrawerStore } from './stores'\n\nexport interface UseDrawerOperation {\n hide: () => void\n}\n\nexport interface UseDrawerProps extends Omit<DrawerProps, 'open' | 'confirmLoading' | 'onClose' | 'footer'> {\n content?: ReactNode | ((operation: UseDrawerOperation) => ReactNode)\n onConfirm?: () => void | Promise<void>\n afterOpen?: () => void | Promise<void>\n afterClose?: () => void | Promise<void>\n footer?: ReactNode | null\n confirmText?: string\n cancelText?: string\n confirmButtonProps?: ComponentProps<typeof Button>\n cancelButtonProps?: ComponentProps<typeof Button>\n}\n\nexport function useDrawer(props: UseDrawerProps) {\n const {\n content,\n onConfirm,\n afterOpen,\n afterClose,\n footer,\n confirmText = '确认',\n cancelText = '取消',\n confirmButtonProps,\n cancelButtonProps,\n ...drawerProps\n } = props\n\n const _id = useMemo(() => generateId(), [])\n const { show, hide, isOpen, cleanup } = useDrawerStore()\n\n // 组件销毁时清理 ID\n useEffect(() => {\n return () => {\n cleanup(_id)\n }\n }, [_id, cleanup])\n\n const open = isOpen(_id)\n const [confirmLoading, setConfirmLoading] = useState(false)\n const isRenderFunction = typeof content === 'function'\n\n const _show = useCallback(async () => {\n show(_id)\n await afterOpen?.()\n }, [_id, show, afterOpen])\n\n const _hide = useCallback(() => {\n hide(_id)\n }, [_id, hide])\n\n const onClose: DrawerProps['onClose'] = useCallback(async () => {\n _hide()\n await afterClose?.()\n }, [_hide, afterClose])\n\n const handleConfirm = useCallback(async () => {\n try {\n setConfirmLoading(true)\n await onConfirm?.()\n } catch (error) {\n console.error('Drawer confirm error:', error)\n throw error\n } finally {\n setConfirmLoading(false)\n }\n }, [onConfirm])\n\n const drawerFooter =\n footer !== undefined ? (\n footer\n ) : (\n <div className=\"flex gap-4 mx-4\">\n <Button type=\"primary\" loading={confirmLoading} {...confirmButtonProps} onClick={handleConfirm}>\n {confirmText}\n </Button>\n <Button {...cancelButtonProps} onClick={onClose}>\n {cancelText}\n </Button>\n </div>\n )\n\n const internalDrawer = (\n <Drawer {...drawerProps} open={open} footer={drawerFooter} onClose={onClose}>\n {isRenderFunction ? content({ hide: _hide }) : content}\n </Drawer>\n )\n\n return {\n id: _id,\n show: _show,\n hide: _hide,\n confirmLoading,\n drawer: internalDrawer,\n }\n}\n","import type { FormInstance, FormProps } from 'antd'\nimport { Form } from 'antd'\nimport type { AnyObject } from 'antd/es/_util/type'\nimport type { ReactNode } from 'react'\nimport { useCallback, useState } from 'react'\n\nimport type { RecursivePartial } from '@/types'\n\nimport { useDrawer, type UseDrawerOperation, type UseDrawerProps } from './drawer'\n\nexport interface ShowFormOptions<Values extends AnyObject, ExtraValues> {\n initialValues?: RecursivePartial<Values>\n extraValues?: ExtraValues\n}\n\nexport interface UseFormDrawerProps<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>\n extends Omit<UseDrawerProps, 'onConfirm' | 'content' | 'onShow' | 'afterClose'> {\n formProps?: Omit<FormProps, 'form'>\n form?: FormInstance<Values>\n content?: ReactNode | ((extraValues: ExtraValues, operation: UseDrawerOperation) => ReactNode)\n onConfirm?: (values: Values, extraValues: ExtraValues) => void | Promise<void>\n onSuccess?: () => void\n afterClose?: (form: FormInstance<Values>) => void\n}\n\nexport interface UseFormDrawerReturn<Values extends AnyObject, ExtraValues> {\n id: number\n show: (options?: ShowFormOptions<Values, ExtraValues>) => void\n hide: () => void\n drawer: ReactNode\n}\n\nexport function useFormDrawer<Values extends AnyObject = AnyObject, ExtraValues = Record<string, unknown>>(\n props: UseFormDrawerProps<Values, ExtraValues>,\n): UseFormDrawerReturn<Values, ExtraValues> {\n const { content, form, formProps, onConfirm, onSuccess, afterClose, ...drawerProps } = props\n const [internalExtraValues, setInternalExtraValues] = useState<ExtraValues>({} as ExtraValues)\n const [internalForm] = Form.useForm<Values>(form)\n\n const isRenderFunction = typeof content === 'function'\n\n const { id, show, hide, drawer } = useDrawer({\n ...drawerProps,\n content: operation => (\n <Form {...formProps} form={internalForm}>\n {isRenderFunction ? content(internalExtraValues, operation) : content}\n </Form>\n ),\n onConfirm: async () => {\n try {\n const values = await internalForm.validateFields()\n await onConfirm?.(values, internalExtraValues)\n onSuccess?.()\n hide()\n } catch (error) {\n console.error('Form validation or submission error:', error)\n throw error\n }\n },\n afterClose: () => {\n setInternalExtraValues({} as ExtraValues)\n afterClose?.(internalForm)\n },\n })\n\n const showForm = useCallback(\n (options?: ShowFormOptions<Values, ExtraValues>) => {\n const { initialValues, extraValues } = options || {}\n\n if (extraValues !== undefined) {\n setInternalExtraValues(extraValues)\n }\n\n if (initialValues) {\n internalForm.setFieldsValue(initialValues)\n }\n\n show()\n },\n [internalForm, show],\n )\n\n return {\n id,\n show: showForm,\n hide,\n drawer,\n }\n}\n","import { lazy } from 'react'\nimport { Route, Routes } from 'react-router-dom'\n\nconst MenuItemList = lazy(() => import('./pages/menuItemList'))\nconst CreateMenuItem = lazy(() => import('./pages/createMenuItem'))\nconst UpdateMenuItem = lazy(() => import('./pages/updateMenuItem'))\n\nexport default (\n <Routes>\n <Route index element={<MenuItemList />} />\n <Route path=\"create\" element={<CreateMenuItem />} />\n <Route path=\"update/:id\" element={<UpdateMenuItem />} />\n </Routes>\n)\n","import { lazy } from 'react'\nimport { Navigate, Route, Routes } from 'react-router-dom'\n\nconst UserList = lazy(() => import('./pages/userList'))\nconst UserDetail = lazy(() => import('./pages/userDetail'))\nconst RoleList = lazy(() => import('./pages/roleList'))\nconst RoleDetail = lazy(() => import('./pages/roleDetail'))\n\nexport default (\n <Routes>\n <Route index element={<Navigate to=\"user\" />} />\n <Route path=\"user\" element={<UserList />} />\n <Route path=\"user/:id\" element={<UserDetail />} />\n <Route path=\"role\" element={<RoleList />} />\n <Route path=\"role/:name\" element={<RoleDetail />} />\n </Routes>\n)\n","import { Button, Result } from 'antd'\nimport type { FC } from 'react'\nimport { useNavigate } from 'react-router-dom'\n\nimport { useTranslation } from '@/locale'\n\ninterface NotFoundProps {\n redirectUrl?: string\n}\n\nconst NotFound: FC<NotFoundProps> = props => {\n const { redirectUrl } = props\n const navigate = useNavigate()\n const { t } = useTranslation()\n\n return (\n <div className=\"text-center\">\n <Result\n status=\"404\"\n title=\"404\"\n subTitle={t('NotFound.subTitle')}\n extra={\n redirectUrl && (\n <Button\n type=\"primary\"\n onClick={() => {\n navigate(redirectUrl)\n }}\n >\n {t('NotFound.buttonText')}\n </Button>\n )\n }\n />\n </div>\n )\n}\n\nexport default NotFound\n","import { Card, Form, Input, Select } from 'antd'\nimport type { ColumnsType } from 'antd/es/table'\nimport dayjs from 'dayjs'\nimport type { FC } from 'react'\n\nimport { ExpandableParagraph } from '@/components/expandableParagraph'\nimport { QueryList } from '@/components/queryList'\nimport { withContext } from '@/components/toolkitsProvider'\nimport { useTranslation } from '@/locale'\n\nimport type { OperationLogListItem } from './types'\n\nconst { Option } = Select\n\nconst OperationLogList: FC = () => {\n const { t } = useTranslation()\n\n const columns: ColumnsType<OperationLogListItem> = [\n {\n key: 'username',\n title: t('global.username'),\n dataIndex: 'uname',\n width: 100,\n },\n {\n key: 'label',\n title: t('global.label'),\n dataIndex: 'label',\n width: 150,\n },\n {\n key: 'method',\n title: t('global.method'),\n dataIndex: 'method',\n width: 100,\n },\n {\n key: 'route',\n title: t('global.route'),\n dataIndex: 'route',\n width: 200,\n },\n {\n key: 'request',\n title: t('global.request'),\n dataIndex: 'request',\n render(value: string) {\n return <ExpandableParagraph>{value}</ExpandableParagraph>\n },\n },\n {\n key: 'response',\n title: t('global.response'),\n dataIndex: 'response',\n render(value: string) {\n return <ExpandableParagraph>{value}</ExpandableParagraph>\n },\n },\n {\n key: 'creation_time',\n title: t('global.creationTime'),\n dataIndex: 'ctime',\n width: 200,\n render(value: string) {\n return dayjs(value).format('YYYY-MM-DD HH:mm:ss')\n },\n },\n ]\n\n return (\n <Card title=\"操作日志\">\n <QueryList<\n OperationLogListItem,\n {\n uname?: string\n route?: string\n method?: 'get' | 'post'\n label?: string\n },\n { List: OperationLogListItem[]; Total: number }\n >\n identifier=\"operation-log-list\"\n rowKey=\"id\"\n code=\"300001\"\n columns={columns}\n tableLayout=\"fixed\"\n request={{\n url: '/api/usystem/log/list',\n method: 'GET',\n }}\n dataAdapter={data => ({\n total: data?.Total,\n items: data?.List,\n })}\n renderForm={form => (\n <Form form={form} layout=\"inline\">\n <Form.Item label={t('global.username')} name=\"uname\">\n <Input allowClear />\n </Form.Item>\n <Form.Item label={t('global.route')} name=\"route\">\n <Input allowClear />\n </Form.Item>\n <Form.Item label={t('global.method')} name=\"method\">\n <Select allowClear style={{ width: '100px' }}>\n <Option value=\"get\">GET</Option>\n <Option value=\"post\">POST</Option>\n </Select>\n </Form.Item>\n <Form.Item label={t('global.label')} name=\"label\">\n <Input allowClear />\n </Form.Item>\n </Form>\n )}\n />\n </Card>\n )\n}\n\nexport default withContext(OperationLogList, { isGlobal: true })\n","import { Alert, Button, Space, Spin, Typography } from 'antd'\nimport type { FC, ReactNode } from 'react'\nimport { Navigate } from 'react-router-dom'\n\nimport { Logo } from '@/components/logo'\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { SSO_URL } from '@/constants'\nimport { useTranslation } from '@/locale'\n\nimport backgroundUrl from './background.svg'\nimport { useTicketLogin } from './hooks'\n\ninterface SignInProps {\n extra?: ReactNode\n title?: string\n}\n\nconst SignIn: FC<SignInProps> = ({ extra, title }) => {\n const { token, mainPagePath } = useToolkitsStore()\n const { t } = useTranslation()\n const { isLoading, isUnregistered, dismissUnregistered } = useTicketLogin()\n\n if (isLoading) {\n return (\n <div className=\"w-screen h-screen flex justify-center items-center\">\n <Spin />\n </div>\n )\n }\n\n // 如果已经有 token 但没有 ticket(直接访问登录页),直接跳转\n if (token) {\n return <Navigate replace to={mainPagePath} />\n }\n\n return (\n <div className=\"w-screen h-screen relative overflow-hidden\">\n <div className=\"absolute top-16 right-16 z-10\">{extra}</div>\n <div className=\"absolute left-14 top-6 z-10\">\n <Space align=\"center\">\n <Logo width={48} />\n {title && <span className=\"text-2xl font-bold\">{title}</span>}\n </Space>\n </div>\n <div\n className=\"w-full h-full flex justify-center items-center bg-gradient-to-br from-blue-50/30 via-indigo-50/30 to-purple-50/30\"\n style={{ paddingRight: '500px' }}\n >\n <img\n src={backgroundUrl}\n alt=\"background\"\n className=\"max-w-full h-auto object-contain\"\n style={{ width: '83.333333%', maxWidth: '100%' }}\n />\n </div>\n <div\n className=\"fixed top-0 right-0 h-screen backdrop-blur-sm shadow-2xl\"\n style={{\n width: '500px',\n backgroundColor: 'rgba(255, 255, 255, 0.95)',\n borderLeft: '1px solid rgba(229, 231, 235, 0.5)',\n }}\n >\n <div className=\"flex justify-center items-center h-full\">\n <div className=\"px-36\" style={{ marginTop: '-10rem' }}>\n <div className=\"flex flex-col justify-center\">\n <div className=\"h-10 mb-4\">\n {isUnregistered && (\n <Alert\n banner\n closable\n message={t('SignIn.unregistered')}\n type=\"error\"\n onClose={dismissUnregistered}\n />\n )}\n </div>\n <div className=\"mb-4 text-center\">\n <Typography.Title level={2}>{t('SignIn.welcome')}</Typography.Title>\n </div>\n <div className=\"flex justify-center items-center\">\n <Button\n block\n type=\"primary\"\n size=\"large\"\n shape=\"round\"\n href={`${SSO_URL}/logout?service=${SSO_URL}/login?service=${window.location.href}`}\n target=\"_self\"\n >\n {t('SignIn.signInWithIDass')}\n </Button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default SignIn\n","import { useQuery } from '@tanstack/react-query'\nimport { useEffect, useState } from 'react'\n\nimport { useToolkitsStore } from '@/components/toolkitsProvider'\nimport { useKy } from '@/libs'\nimport { queryKeys } from '@/queryKeys'\n\n/**\n * 清除 URL 中的查询参数\n */\nfunction clearUrlParams(params: string[]) {\n const url = new URL(window.location.href)\n params.forEach(param => url.searchParams.delete(param))\n window.history.replaceState({}, '', url.toString())\n}\n\n/**\n * 处理登录页面的票据逻辑和未注册用户提示\n */\nexport function useTicketLogin() {\n const ky = useKy()\n const { setToken } = useToolkitsStore()\n\n const queryParams = new URLSearchParams(window.location.search)\n const ticket = queryParams.get('ticket')\n const unregisteredFromUrl = queryParams.get('unregistered') === 'true'\n\n // 初始化未注册状态\n const [isUnregistered, setIsUnregistered] = useState(unregisteredFromUrl)\n\n const { data, isLoading, error } = useQuery({\n queryKey: queryKeys.auth.ticketLogin(ticket),\n queryFn: () => ky.get<{ token: string }>('/api/usystem/user/login', { searchParams: { ticket: ticket! } }),\n enabled: !!ticket,\n retry: false,\n refetchOnWindowFocus: false,\n refetchOnReconnect: false,\n })\n\n useEffect(() => {\n if (data?.token) {\n setToken(data.token)\n // 登录成功后清除 ticket 和 unregistered 参数\n clearUrlParams(['ticket', 'unregistered'])\n }\n }, [data, setToken])\n\n const dismissUnregistered = () => {\n setIsUnregistered(false)\n if (unregisteredFromUrl) {\n clearUrlParams(['unregistered'])\n }\n }\n\n return {\n isLoading,\n error,\n isUnregistered,\n dismissUnregistered,\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "react-toolkits",
3
3
  "type": "module",
4
- "version": "2.24.17",
4
+ "version": "2.24.18",
5
5
  "sideEffects": [
6
6
  "*.css"
7
7
  ],