From 1e74b36e01725f5ddc3c3c2bea32f7ecc8d14a05 Mon Sep 17 00:00:00 2001 From: CrazyJasonwell Date: Wed, 16 Jul 2025 14:02:51 +0800 Subject: [PATCH] vault backup: 2025-07-16 14:02:51 --- .obsidian/community-plugins.json | 3 +- .obsidian/plugins/._ob-smm | Bin 0 -> 4096 bytes .obsidian/plugins/ob-smm/._main.js | Bin 0 -> 4096 bytes .obsidian/plugins/ob-smm/._manifest.json | Bin 0 -> 4096 bytes .obsidian/plugins/ob-smm/._styles.css | Bin 0 -> 4096 bytes .obsidian/plugins/ob-smm/data.json | 7 + .obsidian/plugins/ob-smm/main.js | 3367 ++++++++++++++++++++++ .obsidian/plugins/ob-smm/manifest.json | 13 + .obsidian/plugins/ob-smm/styles.css | 2513 ++++++++++++++++ .obsidian/plugins/rss-reader/data.json | 2558 ++++++---------- .obsidian/workspace.json | 28 +- 08-Inbox/SMM-2025-07-16-14-02-35.smm | 1 + 08-Inbox/mindmapex.md | 11 + 13 files changed, 6744 insertions(+), 1757 deletions(-) create mode 100644 .obsidian/plugins/._ob-smm create mode 100644 .obsidian/plugins/ob-smm/._main.js create mode 100644 .obsidian/plugins/ob-smm/._manifest.json create mode 100644 .obsidian/plugins/ob-smm/._styles.css create mode 100644 .obsidian/plugins/ob-smm/data.json create mode 100644 .obsidian/plugins/ob-smm/main.js create mode 100644 .obsidian/plugins/ob-smm/manifest.json create mode 100644 .obsidian/plugins/ob-smm/styles.css create mode 100644 08-Inbox/SMM-2025-07-16-14-02-35.smm create mode 100644 08-Inbox/mindmapex.md diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json index 2b98cf15..95fa5841 100644 --- a/.obsidian/community-plugins.json +++ b/.obsidian/community-plugins.json @@ -30,5 +30,6 @@ "obsidian-icon-folder", "better-export-pdf", "obsidian-calibre-plugin", - "obsidian-enhancing-mindmap" + "obsidian-enhancing-mindmap", + "ob-smm" ] \ No newline at end of file diff --git a/.obsidian/plugins/._ob-smm b/.obsidian/plugins/._ob-smm new file mode 100644 index 0000000000000000000000000000000000000000..787cab10cc8050ca3543a737dfd4b4ca45026e60 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vf+zv$ zV3+~K;%HhJ5#plB`MG+D1qC^&dWEHlMTvPOnR%%U1_l;J)&@{u?Ub08l3A5mV2x(X zD0egjMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz1VK0P1XlFc`>%WMmdA6r~pD zmlh?bDx~EXWh-Rnm81f@o%wl*IXRUIIjLzS3Q0MMdD+0eFjUu&rcnJ4_lgXI-2eXo DHFheK literal 0 HcmV?d00001 diff --git a/.obsidian/plugins/ob-smm/._main.js b/.obsidian/plugins/ob-smm/._main.js new file mode 100644 index 0000000000000000000000000000000000000000..552450150ea97930cb0f53f57bd494d81fa8ab8e GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vf+zv$ zV3+~K;%HhJ5#plB`MG+D1qC^&dWEHlMTvPOnR%%U1_l;J)@Byw=EiB}mex**c`2Dy znFZEp#*A`DLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%#u5dxsjCJ2LpTu4S{ zu|iR5aeir0a;idFeo?kUW?o4uu-loRmza}NsgRSJR-%xUlbDwc>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vf+zv$ zV3+~K;%HhJ5#plB`MG+D1qC^&dWEHlMTvPOnR%%U1_l;J)@Byw=EiB}iPlbuc`2Dy znFZEp#*A`DLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%#u5dxsjCJ2LpTu4S{ zu|iR5aeir0a;idFeo?kUW?o4uu-loRmza}NsgRSJR-%xUlbDwc> literal 0 HcmV?d00001 diff --git a/.obsidian/plugins/ob-smm/._styles.css b/.obsidian/plugins/ob-smm/._styles.css new file mode 100644 index 0000000000000000000000000000000000000000..9bc0ff2f8467bc0b71b056532eea40676061e796 GIT binary patch literal 4096 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDJkFz{^v(m+1nBL)UWIUt(=a103vf+zv$ zV3+~K;%HhJ5#plB`MG+D1qC^&dWEHlMTvPOnR%%U1_l;J)@Byw=EiB}iPlbuc`2Dy znFZEp#*A`DLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%#u5dxsjCJ2LpTu4S{ zu|iR5aeir0a;idFeo?kUW?o4uu-loRmza}NsgRSJR-%xUlbDwc> literal 0 HcmV?d00001 diff --git a/.obsidian/plugins/ob-smm/data.json b/.obsidian/plugins/ob-smm/data.json new file mode 100644 index 00000000..157afddd --- /dev/null +++ b/.obsidian/plugins/ob-smm/data.json @@ -0,0 +1,7 @@ +{ + "myInputFolderPath": "08-Inbox", + "myInputWater": "", + "cartoon": false, + "changeWidth": false, + "cacheSize": 65000 +} \ No newline at end of file diff --git a/.obsidian/plugins/ob-smm/main.js b/.obsidian/plugins/ob-smm/main.js new file mode 100644 index 00000000..012d3505 --- /dev/null +++ b/.obsidian/plugins/ob-smm/main.js @@ -0,0 +1,3367 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source, please visit the github repository of this plugin +*/ + +var BO=Object.create;var Xc=Object.defineProperty;var RO=Object.getOwnPropertyDescriptor;var PO=Object.getOwnPropertyNames;var _O=Object.getPrototypeOf,qO=Object.prototype.hasOwnProperty;var UO=(r,e,t)=>e in r?Xc(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var Dt=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),Sp=(r,e)=>{for(var t in e)Xc(r,t,{get:e[t],enumerable:!0})},wv=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of PO(e))!qO.call(r,n)&&n!==t&&Xc(r,n,{get:()=>e[n],enumerable:!(i=RO(e,n))||i.enumerable});return r};var mr=(r,e,t)=>(t=r!=null?BO(_O(r)):{},wv(e||!r||!r.__esModule?Xc(t,"default",{value:r,enumerable:!0}):t,r)),HO=r=>wv(Xc({},"__esModule",{value:!0}),r);var Se=(r,e,t)=>(UO(r,typeof e!="symbol"?e+"":e,t),t);var Tv=Dt(($se,Dp)=>{"use strict";var jO=Object.prototype.hasOwnProperty,Ri="~";function Zc(){}Object.create&&(Zc.prototype=Object.create(null),new Zc().__proto__||(Ri=!1));function GO(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function Sv(r,e,t,i,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new GO(t,i||r,n),a=Ri?Ri+e:e;return r._events[a]?r._events[a].fn?r._events[a]=[r._events[a],s]:r._events[a].push(s):(r._events[a]=s,r._eventsCount++),r}function mf(r,e){--r._eventsCount===0?r._events=new Zc:delete r._events[e]}function xi(){this._events=new Zc,this._eventsCount=0}xi.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)jO.call(t,i)&&e.push(Ri?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};xi.prototype.listeners=function(e){var t=Ri?Ri+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,s=i.length,a=new Array(s);n{"use strict";var pf=function(e){return WO(e)&&!YO(e)};function WO(r){return!!r&&typeof r=="object"}function YO(r){var e=Object.prototype.toString.call(r);return e==="[object RegExp]"||e==="[object Date]"||QO(r)}var VO=typeof Symbol=="function"&&Symbol.for,KO=VO?Symbol.for("react.element"):60103;function QO(r){return r.$$typeof===KO}function XO(r){return Array.isArray(r)?[]:{}}function Jc(r,e){var t=e&&e.clone===!0;return t&&pf(r)?W0(XO(r),r,e):r}function Dv(r,e,t){var i=r.slice();return e.forEach(function(n,s){typeof i[s]=="undefined"?i[s]=Jc(n,t):pf(n)?i[s]=W0(r[s],n,t):r.indexOf(n)===-1&&i.push(Jc(n,t))}),i}function ZO(r,e,t){var i={};return pf(r)&&Object.keys(r).forEach(function(n){i[n]=Jc(r[n],t)}),Object.keys(e).forEach(function(n){!pf(e[n])||!r[n]?i[n]=Jc(e[n],t):i[n]=W0(r[n],e[n],t)}),i}function W0(r,e,t){var i=Array.isArray(e),n=Array.isArray(r),s=t||{arrayMerge:Dv},a=i===n;if(a)if(i){var o=s.arrayMerge||Dv;return o(r,e,t)}else return ZO(r,e,t);else return Jc(e,t)}W0.all=function(e,t){if(!Array.isArray(e)||e.length<2)throw new Error("first argument should be an array with at least two elements");return e.reduce(function(i,n){return W0(i,n,t)})};var JO=W0;Nv.exports=JO});var TE=Dt((Qpe,SE)=>{var In=-1,Ki=1,ri=0;function $u(r,e,t,i,n){if(r===e)return r?[[ri,r]]:[];if(t!=null){var s=cK(r,e,t);if(s)return s}var a=ng(r,e),o=r.substring(0,a);r=r.substring(a),e=e.substring(a),a=Km(r,e);var l=r.substring(r.length-a);r=r.substring(0,r.length-a),e=e.substring(0,e.length-a);var h=rK(r,e);return o&&h.unshift([ri,o]),l&&h.push([ri,l]),sg(h,n),i&&sK(h),h}function rK(r,e){var t;if(!r)return[[Ki,e]];if(!e)return[[In,r]];var i=r.length>e.length?r:e,n=r.length>e.length?e:r,s=i.indexOf(n);if(s!==-1)return t=[[Ki,i.substring(0,s)],[ri,n],[Ki,i.substring(s+n.length)]],r.length>e.length&&(t[0][0]=t[2][0]=In),t;if(n.length===1)return[[In,r],[Ki,e]];var a=nK(r,e);if(a){var o=a[0],l=a[1],h=a[2],c=a[3],u=a[4],d=$u(o,h),f=$u(l,c);return d.concat([[ri,u]],f)}return iK(r,e)}function iK(r,e){for(var t=r.length,i=e.length,n=Math.ceil((t+i)/2),s=n,a=2*n,o=new Array(a),l=new Array(a),h=0;ht)f+=2;else if(C>i)d+=2;else if(u){var M=s+c-y;if(M>=0&&M=D)return gE(r,e,b,C)}}}for(var L=-v+m;L<=v-g;L+=2){var M=s+L,D;L===-v||L!==v&&l[M-1]t)g+=2;else if(k>i)m+=2;else if(!u){var A=s+c-L;if(A>=0&&A=D)return gE(r,e,b,C)}}}}return[[In,r],[Ki,e]]}function gE(r,e,t,i){var n=r.substring(0,t),s=e.substring(0,i),a=r.substring(t),o=e.substring(i),l=$u(n,s),h=$u(a,o);return l.concat(h)}function ng(r,e){if(!r||!e||r.charAt(0)!==e.charAt(0))return 0;for(var t=0,i=Math.min(r.length,e.length),n=i,s=0;ti?r=r.substring(t-i):te.length?r:e,i=r.length>e.length?e:r;if(t.length<4||i.length*2=f.length?[b,C,M,D,A]:null}var s=n(t,i,Math.ceil(t.length/4)),a=n(t,i,Math.ceil(t.length/2)),o;if(!s&&!a)return null;a?s?o=s[4].length>a[4].length?s:a:o=a:o=s;var l,h,c,u;r.length>e.length?(l=o[0],h=o[1],c=o[2],u=o[3]):(c=o[0],u=o[1],l=o[2],h=o[3]);var d=o[4];return[l,h,c,u,d]}function sK(r){for(var e=!1,t=[],i=0,n=null,s=0,a=0,o=0,l=0,h=0;s0?t[i-1]:-1,a=0,o=0,l=0,h=0,n=null,e=!0)),s++;for(e&&sg(r),lK(r),s=1;s=f?(d>=c.length/2||d>=u.length/2)&&(r.splice(s,0,[ri,u.substring(0,d)]),r[s-1][1]=c.substring(0,c.length-d),r[s+1][1]=u.substring(d),s++):(f>=c.length/2||f>=u.length/2)&&(r.splice(s,0,[ri,c.substring(0,f)]),r[s-1][0]=Ki,r[s-1][1]=u.substring(0,u.length-f),r[s+1][0]=In,r[s+1][1]=c.substring(f),s++),s++}s++}}var yE=/[^a-zA-Z0-9]/,xE=/\s/,bE=/[\r\n]/,aK=/\n\r?\n$/,oK=/^\r?\n\r?\n/;function lK(r){function e(f,m){if(!f||!m)return 6;var g=f.charAt(f.length-1),v=m.charAt(0),y=g.match(yE),A=v.match(yE),b=y&&g.match(xE),C=A&&v.match(xE),M=b&&g.match(bE),D=C&&v.match(bE),L=M&&f.match(aK),k=D&&m.match(oK);return L||k?5:M||D?4:y&&!b&&C?3:b||C?2:y||A?1:0}for(var t=1;t=u&&(u=d,l=i,h=n,c=s)}r[t-1][1]!=l&&(l?r[t-1][1]=l:(r.splice(t-1,1),t--),r[t][1]=h,c?r[t+1][1]=c:(r.splice(t+1,1),t--))}t++}}function sg(r,e){r.push([ri,""]);for(var t=0,i=0,n=0,s="",a="",o;t=0&&CE(r[l][1])){var h=r[l][1].slice(-1);if(r[l][1]=r[l][1].slice(0,-1),s=h+s,a=h+a,!r[l][1]){r.splice(l,1),t--;var c=l-1;r[c]&&r[c][0]===Ki&&(n++,a=r[c][1]+a,c--),r[c]&&r[c][0]===In&&(i++,s=r[c][1]+s,c--),l=c}}if(EE(r[t][1])){var h=r[t][1].charAt(0);r[t][1]=r[t][1].slice(1),s+=h,a+=h}}if(t0||a.length>0){s.length>0&&a.length>0&&(o=ng(a,s),o!==0&&(l>=0?r[l][1]+=a.substring(0,o):(r.splice(0,0,[ri,a.substring(0,o)]),t++),a=a.substring(o),s=s.substring(o)),o=Km(a,s),o!==0&&(r[t][1]=a.substring(a.length-o)+r[t][1],a=a.substring(0,a.length-o),s=s.substring(0,s.length-o)));var u=n+i;s.length===0&&a.length===0?(r.splice(t-u,u),t=t-u):s.length===0?(r.splice(t-u,u,[Ki,a]),t=t-u+1):a.length===0?(r.splice(t-u,u,[In,s]),t=t-u+1):(r.splice(t-u,u,[In,s],[Ki,a]),t=t-u+2)}t!==0&&r[t-1][0]===ri?(r[t-1][1]+=r[t][1],r.splice(t,1)):t++,n=0,i=0,s="",a="";break}}r[r.length-1][1]===""&&r.pop();var d=!1;for(t=1;t=55296&&r<=56319}function AE(r){return r>=56320&&r<=57343}function EE(r){return AE(r.charCodeAt(0))}function CE(r){return wE(r.charCodeAt(r.length-1))}function hK(r){for(var e=[],t=0;t0&&e.push(r[t]);return e}function ig(r,e,t,i){return CE(r)||EE(i)?null:hK([[ri,r],[In,e],[Ki,t],[ri,i]])}function cK(r,e,t){var i=typeof t=="number"?{index:t,length:0}:t.oldRange,n=typeof t=="number"?null:t.newRange,s=r.length,a=e.length;if(i.length===0&&(n===null||n.length===0)){var o=i.index,l=r.slice(0,o),h=r.slice(o),c=n?n.index:null;e:{var u=o+a-s;if(c!==null&&c!==u||u<0||u>a)break e;var d=e.slice(0,u),f=e.slice(u);if(f!==h)break e;var m=Math.min(o,u),g=l.slice(0,m),v=d.slice(0,m);if(g!==v)break e;var y=l.slice(m),A=d.slice(m);return ig(g,y,A,h)}e:{if(c!==null&&c!==o)break e;var b=o,d=e.slice(0,b),f=e.slice(b);if(d!==l)break e;var C=Math.min(s-b,a-b),M=h.slice(h.length-C),D=f.slice(f.length-C);if(M!==D)break e;var y=h.slice(0,h.length-C),A=f.slice(0,f.length-C);return ig(l,y,A,M)}}if(i.length>0&&n&&n.length===0){e:{var g=r.slice(0,i.index),M=r.slice(i.index+i.length),m=g.length,C=M.length;if(a{var uK=200,PE="__lodash_hash_undefined__",_E=9007199254740991,fg="[object Arguments]",dK="[object Array]",qE="[object Boolean]",UE="[object Date]",fK="[object Error]",mg="[object Function]",HE="[object GeneratorFunction]",Xm="[object Map]",jE="[object Number]",pg="[object Object]",ME="[object Promise]",GE="[object RegExp]",Zm="[object Set]",WE="[object String]",YE="[object Symbol]",og="[object WeakMap]",VE="[object ArrayBuffer]",Jm="[object DataView]",KE="[object Float32Array]",QE="[object Float64Array]",XE="[object Int8Array]",ZE="[object Int16Array]",JE="[object Int32Array]",$E="[object Uint8Array]",eC="[object Uint8ClampedArray]",tC="[object Uint16Array]",rC="[object Uint32Array]",mK=/[\\^$.*+?()[\]{}|]/g,pK=/\w*$/,gK=/^\[object .+?Constructor\]$/,vK=/^(?:0|[1-9]\d*)$/,dr={};dr[fg]=dr[dK]=dr[VE]=dr[Jm]=dr[qE]=dr[UE]=dr[KE]=dr[QE]=dr[XE]=dr[ZE]=dr[JE]=dr[Xm]=dr[jE]=dr[pg]=dr[GE]=dr[Zm]=dr[WE]=dr[YE]=dr[$E]=dr[eC]=dr[tC]=dr[rC]=!0;dr[fK]=dr[mg]=dr[og]=!1;var yK=typeof global=="object"&&global&&global.Object===Object&&global,xK=typeof self=="object"&&self&&self.Object===Object&&self,Pa=yK||xK||Function("return this")(),iC=typeof ed=="object"&&ed&&!ed.nodeType&&ed,kE=iC&&typeof Oh=="object"&&Oh&&!Oh.nodeType&&Oh,bK=kE&&kE.exports===iC;function wK(r,e){return r.set(e[0],e[1]),r}function AK(r,e){return r.add(e),r}function EK(r,e){for(var t=-1,i=r?r.length:0;++t-1}function XK(r,e){var t=this.__data__,i=t3(t,r);return i<0?t.push([r,e]):t[i][1]=e,this}_a.prototype.clear=YK;_a.prototype.delete=VK;_a.prototype.get=KK;_a.prototype.has=QK;_a.prototype.set=XK;function Bh(r){var e=-1,t=r?r.length:0;for(this.clear();++e-1&&r%1==0&&r-1&&r%1==0&&r<=_E}function i3(r){var e=typeof r;return!!r&&(e=="object"||e=="function")}function OQ(r){return!!r&&typeof r=="object"}function xg(r){return dC(r)?oQ(r):fQ(r)}function BQ(){return[]}function RQ(){return!1}Oh.exports=NQ});var Ig=Dt((id,qh)=>{var PQ=200,Fg="__lodash_hash_undefined__",u3=1,SC=2,TC=9007199254740991,n3="[object Arguments]",Cg="[object Array]",_Q="[object AsyncFunction]",MC="[object Boolean]",kC="[object Date]",DC="[object Error]",NC="[object Function]",qQ="[object GeneratorFunction]",s3="[object Map]",FC="[object Number]",UQ="[object Null]",_h="[object Object]",mC="[object Promise]",HQ="[object Proxy]",IC="[object RegExp]",a3="[object Set]",zC="[object String]",jQ="[object Symbol]",GQ="[object Undefined]",Sg="[object WeakMap]",LC="[object ArrayBuffer]",o3="[object DataView]",WQ="[object Float32Array]",YQ="[object Float64Array]",VQ="[object Int8Array]",KQ="[object Int16Array]",QQ="[object Int32Array]",XQ="[object Uint8Array]",ZQ="[object Uint8ClampedArray]",JQ="[object Uint16Array]",$Q="[object Uint32Array]",eX=/[\\^$.*+?()[\]{}|]/g,tX=/^\[object .+?Constructor\]$/,rX=/^(?:0|[1-9]\d*)$/,yr={};yr[WQ]=yr[YQ]=yr[VQ]=yr[KQ]=yr[QQ]=yr[XQ]=yr[ZQ]=yr[JQ]=yr[$Q]=!0;yr[n3]=yr[Cg]=yr[LC]=yr[MC]=yr[o3]=yr[kC]=yr[DC]=yr[NC]=yr[s3]=yr[FC]=yr[_h]=yr[IC]=yr[a3]=yr[zC]=yr[Sg]=!1;var OC=typeof global=="object"&&global&&global.Object===Object&&global,iX=typeof self=="object"&&self&&self.Object===Object&&self,qa=OC||iX||Function("return this")(),BC=typeof id=="object"&&id&&!id.nodeType&&id,pC=BC&&typeof qh=="object"&&qh&&!qh.nodeType&&qh,RC=pC&&pC.exports===BC,wg=RC&&OC.process,gC=function(){try{return wg&&wg.binding&&wg.binding("util")}catch(r){}}(),vC=gC&&gC.isTypedArray;function nX(r,e){for(var t=-1,i=r==null?0:r.length,n=0,s=[];++t-1}function LX(r,e){var t=this.__data__,i=f3(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}Ua.prototype.clear=NX;Ua.prototype.delete=FX;Ua.prototype.get=IX;Ua.prototype.has=zX;Ua.prototype.set=LX;function Xl(r){var e=-1,t=r==null?0:r.length;for(this.clear();++eo))return!1;var h=s.get(r);if(h&&s.get(e))return h==e;var c=-1,u=!0,d=t&SC?new h3:void 0;for(s.set(r,e),s.set(e,r);++c-1&&r%1==0&&r-1&&r%1==0&&r<=TC}function YC(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}function ad(r){return r!=null&&typeof r=="object"}var VC=vC?lX(vC):ZX;function uZ(r){return hZ(r)?VX(r):JX(r)}function dZ(){return[]}function fZ(){return!1}qh.exports=cZ});var KC=Dt(Lg=>{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});var mZ=bg(),pZ=Ig(),zg;(function(r){function e(s={},a={},o=!1){typeof s!="object"&&(s={}),typeof a!="object"&&(a={});let l=mZ(a);o||(l=Object.keys(l).reduce((h,c)=>(l[c]!=null&&(h[c]=l[c]),h),{}));for(let h in s)s[h]!==void 0&&a[h]===void 0&&(l[h]=s[h]);return Object.keys(l).length>0?l:void 0}r.compose=e;function t(s={},a={}){typeof s!="object"&&(s={}),typeof a!="object"&&(a={});let o=Object.keys(s).concat(Object.keys(a)).reduce((l,h)=>(pZ(s[h],a[h])||(l[h]=a[h]===void 0?null:a[h]),l),{});return Object.keys(o).length>0?o:void 0}r.diff=t;function i(s={},a={}){s=s||{};let o=Object.keys(a).reduce((l,h)=>(a[h]!==s[h]&&s[h]!==void 0&&(l[h]=a[h]),l),{});return Object.keys(s).reduce((l,h)=>(s[h]!==a[h]&&a[h]===void 0&&(l[h]=null),l),o)}r.invert=i;function n(s,a,o=!1){if(typeof s!="object")return a;if(typeof a!="object")return;if(!o)return a;let l=Object.keys(a).reduce((h,c)=>(s[c]===void 0&&(h[c]=a[c]),h),{});return Object.keys(l).length>0?l:void 0}r.transform=n})(zg||(zg={}));Lg.default=zg});var Rg=Dt(Bg=>{"use strict";Object.defineProperty(Bg,"__esModule",{value:!0});var Og;(function(r){function e(t){return typeof t.delete=="number"?t.delete:typeof t.retain=="number"?t.retain:typeof t.retain=="object"&&t.retain!==null?1:typeof t.insert=="string"?t.insert.length:1}r.length=e})(Og||(Og={}));Bg.default=Og});var XC=Dt(_g=>{"use strict";Object.defineProperty(_g,"__esModule",{value:!0});var QC=Rg(),Pg=class{constructor(e){this.ops=e,this.index=0,this.offset=0}hasNext(){return this.peekLength()<1/0}next(e){e||(e=1/0);let t=this.ops[this.index];if(t){let i=this.offset,n=QC.default.length(t);if(e>=n-i?(e=n-i,this.index+=1,this.offset=0):this.offset+=e,typeof t.delete=="number")return{delete:e};{let s={};return t.attributes&&(s.attributes=t.attributes),typeof t.retain=="number"?s.retain=e:typeof t.retain=="object"&&t.retain!==null?s.retain=t.retain:typeof t.insert=="string"?s.insert=t.insert.substr(i,e):s.insert=t.insert,s}}else return{retain:1/0}}peek(){return this.ops[this.index]}peekLength(){return this.ops[this.index]?QC.default.length(this.ops[this.index])-this.offset:1/0}peekType(){let e=this.ops[this.index];return e?typeof e.delete=="number"?"delete":typeof e.retain=="number"||typeof e.retain=="object"&&e.retain!==null?"retain":"insert":"retain"}rest(){if(this.hasNext()){if(this.offset===0)return this.ops.slice(this.index);{let e=this.offset,t=this.index,i=this.next(),n=this.ops.slice(this.index);return this.offset=e,this.index=t,[i].concat(n)}}else return[]}};_g.default=Pg});var bn=Dt((ja,g3)=>{"use strict";Object.defineProperty(ja,"__esModule",{value:!0});ja.AttributeMap=ja.OpIterator=ja.Op=void 0;var p3=TE(),gZ=bg(),qg=Ig(),Jl=KC();ja.AttributeMap=Jl.default;var Ha=Rg();ja.Op=Ha.default;var es=XC();ja.OpIterator=es.default;var vZ=String.fromCharCode(0),ZC=(r,e)=>{if(typeof r!="object"||r===null)throw new Error(`cannot retain a ${typeof r}`);if(typeof e!="object"||e===null)throw new Error(`cannot retain a ${typeof e}`);let t=Object.keys(r)[0];if(!t||t!==Object.keys(e)[0])throw new Error(`embed types not matched: ${t} != ${Object.keys(e)[0]}`);return[t,r[t],e[t]]},Fr=class{constructor(e){Array.isArray(e)?this.ops=e:e!=null&&Array.isArray(e.ops)?this.ops=e.ops:this.ops=[]}static registerEmbed(e,t){this.handlers[e]=t}static unregisterEmbed(e){delete this.handlers[e]}static getHandler(e){let t=this.handlers[e];if(!t)throw new Error(`no handlers for embed type "${e}"`);return t}insert(e,t){let i={};return typeof e=="string"&&e.length===0?this:(i.insert=e,t!=null&&typeof t=="object"&&Object.keys(t).length>0&&(i.attributes=t),this.push(i))}delete(e){return e<=0?this:this.push({delete:e})}retain(e,t){if(typeof e=="number"&&e<=0)return this;let i={retain:e};return t!=null&&typeof t=="object"&&Object.keys(t).length>0&&(i.attributes=t),this.push(i)}push(e){let t=this.ops.length,i=this.ops[t-1];if(e=gZ(e),typeof i=="object"){if(typeof e.delete=="number"&&typeof i.delete=="number")return this.ops[t-1]={delete:i.delete+e.delete},this;if(typeof i.delete=="number"&&e.insert!=null&&(t-=1,i=this.ops[t-1],typeof i!="object"))return this.ops.unshift(e),this;if(qg(e.attributes,i.attributes)){if(typeof e.insert=="string"&&typeof i.insert=="string")return this.ops[t-1]={insert:i.insert+e.insert},typeof e.attributes=="object"&&(this.ops[t-1].attributes=e.attributes),this;if(typeof e.retain=="number"&&typeof i.retain=="number")return this.ops[t-1]={retain:i.retain+e.retain},typeof e.attributes=="object"&&(this.ops[t-1].attributes=e.attributes),this}}return t===this.ops.length?this.ops.push(e):this.ops.splice(t,0,e),this}chop(){let e=this.ops[this.ops.length-1];return e&&typeof e.retain=="number"&&!e.attributes&&this.ops.pop(),this}filter(e){return this.ops.filter(e)}forEach(e){this.ops.forEach(e)}map(e){return this.ops.map(e)}partition(e){let t=[],i=[];return this.forEach(n=>{(e(n)?t:i).push(n)}),[t,i]}reduce(e,t){return this.ops.reduce(e,t)}changeLength(){return this.reduce((e,t)=>t.insert?e+Ha.default.length(t):t.delete?e-t.delete:e,0)}length(){return this.reduce((e,t)=>e+Ha.default.length(t),0)}slice(e=0,t=1/0){let i=[],n=new es.default(this.ops),s=0;for(;s0&&i.next(s.retain-o)}let a=new Fr(n);for(;t.hasNext()||i.hasNext();)if(i.peekType()==="insert")a.push(i.next());else if(t.peekType()==="delete")a.push(t.next());else{let o=Math.min(t.peekLength(),i.peekLength()),l=t.next(o),h=i.next(o);if(h.retain){let c={};if(typeof l.retain=="number")c.retain=typeof h.retain=="number"?o:h.retain;else if(typeof h.retain=="number")l.retain==null?c.insert=l.insert:c.retain=l.retain;else{let d=l.retain==null?"insert":"retain",[f,m,g]=ZC(l[d],h.retain),v=Fr.getHandler(f);c[d]={[f]:v.compose(m,g,d==="retain")}}let u=Jl.default.compose(l.attributes,h.attributes,typeof l.retain=="number");if(u&&(c.attributes=u),a.push(c),!i.hasNext()&&qg(a.ops[a.ops.length-1],c)){let d=new Fr(t.rest());return a.concat(d).chop()}}else typeof h.delete=="number"&&(typeof l.retain=="number"||typeof l.retain=="object"&&l.retain!==null)&&a.push(h)}return a.chop()}concat(e){let t=new Fr(this.ops.slice());return e.ops.length>0&&(t.push(e.ops[0]),t.ops=t.ops.concat(e.ops.slice(1))),t}diff(e,t){if(this.ops===e.ops)return new Fr;let i=[this,e].map(l=>l.map(h=>{if(h.insert!=null)return typeof h.insert=="string"?h.insert:vZ;let c=l===e?"on":"with";throw new Error("diff() called "+c+" non-document")}).join("")),n=new Fr,s=p3(i[0],i[1],t,!0),a=new es.default(this.ops),o=new es.default(e.ops);return s.forEach(l=>{let h=l[1].length;for(;h>0;){let c=0;switch(l[0]){case p3.INSERT:c=Math.min(o.peekLength(),h),n.push(o.next(c));break;case p3.DELETE:c=Math.min(h,a.peekLength()),a.next(c),n.delete(c);break;case p3.EQUAL:c=Math.min(a.peekLength(),o.peekLength(),h);let u=a.next(c),d=o.next(c);qg(u.insert,d.insert)?n.retain(c,Jl.default.diff(u.attributes,d.attributes)):n.push(d).delete(c);break}h-=c}}),n.chop()}eachLine(e,t=` +`){let i=new es.default(this.ops),n=new Fr,s=0;for(;i.hasNext();){if(i.peekType()!=="insert")return;let a=i.peek(),o=Ha.default.length(a)-i.peekLength(),l=typeof a.insert=="string"?a.insert.indexOf(t,o)-o:-1;if(l<0)n.push(i.next());else if(l>0)n.push(i.next(l));else{if(e(n,i.next(1).attributes||{},s)===!1)return;s+=1,n=new Fr}}n.length()>0&&e(n,{},s)}invert(e){let t=new Fr;return this.reduce((i,n)=>{if(n.insert)t.delete(Ha.default.length(n));else{if(typeof n.retain=="number"&&n.attributes==null)return t.retain(n.retain),i+n.retain;if(n.delete||typeof n.retain=="number"){let s=n.delete||n.retain;return e.slice(i,i+s).forEach(o=>{n.delete?t.push(o):n.retain&&n.attributes&&t.retain(Ha.default.length(o),Jl.default.invert(n.attributes,o.attributes))}),i+s}else if(typeof n.retain=="object"&&n.retain!==null){let s=e.slice(i,i+1),a=new es.default(s.ops).next(),[o,l,h]=ZC(n.retain,a.insert),c=Fr.getHandler(o);return t.retain({[o]:c.invert(l,h)},Jl.default.invert(n.attributes,a.attributes)),i+1}}return i},0),t.chop()}transform(e,t=!1){if(t=!!t,typeof e=="number")return this.transformPosition(e,t);let i=e,n=new es.default(this.ops),s=new es.default(i.ops),a=new Fr;for(;n.hasNext()||s.hasNext();)if(n.peekType()==="insert"&&(t||s.peekType()!=="insert"))a.retain(Ha.default.length(n.next()));else if(s.peekType()==="insert")a.push(s.next());else{let o=Math.min(n.peekLength(),s.peekLength()),l=n.next(o),h=s.next(o);if(l.delete)continue;if(h.delete)a.push(h);else{let c=l.retain,u=h.retain,d=typeof u=="object"&&u!==null?u:o;if(typeof c=="object"&&c!==null&&typeof u=="object"&&u!==null){let f=Object.keys(c)[0];if(f===Object.keys(u)[0]){let m=Fr.getHandler(f);m&&(d={[f]:m.transform(c[f],u[f],t)})}}a.retain(d,Jl.default.transform(l.attributes,h.attributes,t))}}return a.chop()}transformPosition(e,t=!1){t=!!t;let i=new es.default(this.ops),n=0;for(;i.hasNext()&&n<=e;){let s=i.peekLength(),a=i.peekType();if(i.next(),a==="delete"){e-=Math.min(s,e-n);continue}else a==="insert"&&(n{"use strict";var xZ=Object.prototype.hasOwnProperty,Qi="~";function cd(){}Object.create&&(cd.prototype=Object.create(null),new cd().__proto__||(Qi=!1));function bZ(r,e,t){this.fn=r,this.context=e,this.once=t||!1}function $C(r,e,t,i,n){if(typeof t!="function")throw new TypeError("The listener must be a function");var s=new bZ(t,i||r,n),a=Qi?Qi+e:e;return r._events[a]?r._events[a].fn?r._events[a]=[r._events[a],s]:r._events[a].push(s):(r._events[a]=s,r._eventsCount++),r}function v3(r,e){--r._eventsCount===0?r._events=new cd:delete r._events[e]}function Ti(){this._events=new cd,this._eventsCount=0}Ti.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)xZ.call(t,i)&&e.push(Qi?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ti.prototype.listeners=function(e){var t=Qi?Qi+e:e,i=this._events[t];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,s=i.length,a=new Array(s);n{(function(r){typeof QT=="object"&&typeof K5!="undefined"?K5.exports=r():typeof define=="function"&&define.amd?define([],r):(typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:this).JSZip=r()})(function(){return function r(e,t,i){function n(o,l){if(!t[o]){if(!e[o]){var h=typeof require=="function"&&require;if(!l&&h)return h(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var u=t[o]={exports:{}};e[o][0].call(u.exports,function(d){var f=e[o][1][d];return n(f||d)},u,u.exports,r,e,t,i)}return t[o].exports}for(var s=typeof require=="function"&&require,a=0;a>2,u=(3&o)<<4|l>>4,d=1>6:64,f=2>4,l=(15&c)<<4|(u=s.indexOf(a.charAt(f++)))>>2,h=(3&u)<<6|(d=s.indexOf(a.charAt(f++))),v[m++]=o,u!==64&&(v[m++]=l),d!==64&&(v[m++]=h);return v}},{"./support":30,"./utils":32}],2:[function(r,e,t){"use strict";var i=r("./external"),n=r("./stream/DataWorker"),s=r("./stream/Crc32Probe"),a=r("./stream/DataLengthProbe");function o(l,h,c,u,d){this.compressedSize=l,this.uncompressedSize=h,this.crc32=c,this.compression=u,this.compressedContent=d}o.prototype={getContentWorker:function(){var l=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),h=this;return l.on("end",function(){if(this.streamInfo.data_length!==h.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),l},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(l,h,c){return l.pipe(new s).pipe(new a("uncompressedSize")).pipe(h.compressWorker(c)).pipe(new a("compressedSize")).withStreamInfo("compression",h)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(r,e,t){"use strict";var i=r("./stream/GenericWorker");t.STORE={magic:"\0\0",compressWorker:function(){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},t.DEFLATE=r("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(r,e,t){"use strict";var i=r("./utils"),n=function(){for(var s,a=[],o=0;o<256;o++){s=o;for(var l=0;l<8;l++)s=1&s?3988292384^s>>>1:s>>>1;a[o]=s}return a}();e.exports=function(s,a){return s!==void 0&&s.length?i.getTypeOf(s)!=="string"?function(o,l,h,c){var u=n,d=c+h;o^=-1;for(var f=c;f>>8^u[255&(o^l[f])];return-1^o}(0|a,s,s.length,0):function(o,l,h,c){var u=n,d=c+h;o^=-1;for(var f=c;f>>8^u[255&(o^l.charCodeAt(f))];return-1^o}(0|a,s,s.length,0):0}},{"./utils":32}],5:[function(r,e,t){"use strict";t.base64=!1,t.binary=!1,t.dir=!1,t.createFolders=!0,t.date=null,t.compression=null,t.compressionOptions=null,t.comment=null,t.unixPermissions=null,t.dosPermissions=null},{}],6:[function(r,e,t){"use strict";var i=null;i=typeof Promise!="undefined"?Promise:r("lie"),e.exports={Promise:i}},{lie:37}],7:[function(r,e,t){"use strict";var i=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",n=r("pako"),s=r("./utils"),a=r("./stream/GenericWorker"),o=i?"uint8array":"array";function l(h,c){a.call(this,"FlateWorker/"+h),this._pako=null,this._pakoAction=h,this._pakoOptions=c,this.meta={}}t.magic="\b\0",s.inherits(l,a),l.prototype.processChunk=function(h){this.meta=h.meta,this._pako===null&&this._createPako(),this._pako.push(s.transformTo(o,h.data),!1)},l.prototype.flush=function(){a.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var h=this;this._pako.onData=function(c){h.push({data:c,meta:h.meta})}},t.compressWorker=function(h){return new l("Deflate",h)},t.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(r,e,t){"use strict";function i(u,d){var f,m="";for(f=0;f>>=8;return m}function n(u,d,f,m,g,v){var y,A,b=u.file,C=u.compression,M=v!==o.utf8encode,D=s.transformTo("string",v(b.name)),L=s.transformTo("string",o.utf8encode(b.name)),k=b.comment,V=s.transformTo("string",v(k)),B=s.transformTo("string",o.utf8encode(k)),_=L.length!==b.name.length,S=B.length!==k.length,G="",Q="",Y="",ne=b.dir,ee=b.date,be={crc32:0,compressedSize:0,uncompressedSize:0};d&&!f||(be.crc32=u.crc32,be.compressedSize=u.compressedSize,be.uncompressedSize=u.uncompressedSize);var ae=0;d&&(ae|=8),M||!_&&!S||(ae|=2048);var O=0,Fe=0;ne&&(O|=16),g==="UNIX"?(Fe=798,O|=function(R,gt){var Ct=R;return R||(Ct=gt?16893:33204),(65535&Ct)<<16}(b.unixPermissions,ne)):(Fe=20,O|=function(R){return 63&(R||0)}(b.dosPermissions)),y=ee.getUTCHours(),y<<=6,y|=ee.getUTCMinutes(),y<<=5,y|=ee.getUTCSeconds()/2,A=ee.getUTCFullYear()-1980,A<<=4,A|=ee.getUTCMonth()+1,A<<=5,A|=ee.getUTCDate(),_&&(Q=i(1,1)+i(l(D),4)+L,G+="up"+i(Q.length,2)+Q),S&&(Y=i(1,1)+i(l(V),4)+B,G+="uc"+i(Y.length,2)+Y);var we="";return we+=` +\0`,we+=i(ae,2),we+=C.magic,we+=i(y,2),we+=i(A,2),we+=i(be.crc32,4),we+=i(be.compressedSize,4),we+=i(be.uncompressedSize,4),we+=i(D.length,2),we+=i(G.length,2),{fileRecord:h.LOCAL_FILE_HEADER+we+D+G,dirRecord:h.CENTRAL_FILE_HEADER+i(Fe,2)+we+i(V.length,2)+"\0\0\0\0"+i(O,4)+i(m,4)+D+G+V}}var s=r("../utils"),a=r("../stream/GenericWorker"),o=r("../utf8"),l=r("../crc32"),h=r("../signature");function c(u,d,f,m){a.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=d,this.zipPlatform=f,this.encodeFileName=m,this.streamFiles=u,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(c,a),c.prototype.push=function(u){var d=u.meta.percent||0,f=this.entriesCount,m=this._sources.length;this.accumulate?this.contentBuffer.push(u):(this.bytesWritten+=u.data.length,a.prototype.push.call(this,{data:u.data,meta:{currentFile:this.currentFile,percent:f?(d+100*(f-m-1))/f:100}}))},c.prototype.openedSource=function(u){this.currentSourceOffset=this.bytesWritten,this.currentFile=u.file.name;var d=this.streamFiles&&!u.file.dir;if(d){var f=n(u,d,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:f.fileRecord,meta:{percent:0}})}else this.accumulate=!0},c.prototype.closedSource=function(u){this.accumulate=!1;var d=this.streamFiles&&!u.file.dir,f=n(u,d,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(f.dirRecord),d)this.push({data:function(m){return h.DATA_DESCRIPTOR+i(m.crc32,4)+i(m.compressedSize,4)+i(m.uncompressedSize,4)}(u),meta:{percent:100}});else for(this.push({data:f.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},c.prototype.flush=function(){for(var u=this.bytesWritten,d=0;d=this.index;a--)o=(o<<8)+this.byteAt(a);return this.index+=s,o},readString:function(s){return i.transformTo("string",this.readData(s))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var s=this.readInt(4);return new Date(Date.UTC(1980+(s>>25&127),(s>>21&15)-1,s>>16&31,s>>11&31,s>>5&63,(31&s)<<1))}},e.exports=n},{"../utils":32}],19:[function(r,e,t){"use strict";var i=r("./Uint8ArrayReader");function n(s){i.call(this,s)}r("../utils").inherits(n,i),n.prototype.readData=function(s){this.checkOffset(s);var a=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,a},e.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(r,e,t){"use strict";var i=r("./DataReader");function n(s){i.call(this,s)}r("../utils").inherits(n,i),n.prototype.byteAt=function(s){return this.data.charCodeAt(this.zero+s)},n.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)-this.zero},n.prototype.readAndCheckSignature=function(s){return s===this.readData(4)},n.prototype.readData=function(s){this.checkOffset(s);var a=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,a},e.exports=n},{"../utils":32,"./DataReader":18}],21:[function(r,e,t){"use strict";var i=r("./ArrayReader");function n(s){i.call(this,s)}r("../utils").inherits(n,i),n.prototype.readData=function(s){if(this.checkOffset(s),s===0)return new Uint8Array(0);var a=this.data.subarray(this.zero+this.index,this.zero+this.index+s);return this.index+=s,a},e.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(r,e,t){"use strict";var i=r("../utils"),n=r("../support"),s=r("./ArrayReader"),a=r("./StringReader"),o=r("./NodeBufferReader"),l=r("./Uint8ArrayReader");e.exports=function(h){var c=i.getTypeOf(h);return i.checkSupport(c),c!=="string"||n.uint8array?c==="nodebuffer"?new o(h):n.uint8array?new l(i.transformTo("uint8array",h)):new s(i.transformTo("array",h)):new a(h)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(r,e,t){"use strict";t.LOCAL_FILE_HEADER="PK",t.CENTRAL_FILE_HEADER="PK",t.CENTRAL_DIRECTORY_END="PK",t.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",t.ZIP64_CENTRAL_DIRECTORY_END="PK",t.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(r,e,t){"use strict";var i=r("./GenericWorker"),n=r("../utils");function s(a){i.call(this,"ConvertWorker to "+a),this.destType=a}n.inherits(s,i),s.prototype.processChunk=function(a){this.push({data:n.transformTo(this.destType,a.data),meta:a.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(r,e,t){"use strict";var i=r("./GenericWorker"),n=r("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}r("../utils").inherits(s,i),s.prototype.processChunk=function(a){this.streamInfo.crc32=n(a.data,this.streamInfo.crc32||0),this.push(a)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(r,e,t){"use strict";var i=r("../utils"),n=r("./GenericWorker");function s(a){n.call(this,"DataLengthProbe for "+a),this.propName=a,this.withStreamInfo(a,0)}i.inherits(s,n),s.prototype.processChunk=function(a){if(a){var o=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=o+a.data.length}n.prototype.processChunk.call(this,a)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(r,e,t){"use strict";var i=r("../utils"),n=r("./GenericWorker");function s(a){n.call(this,"DataWorker");var o=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,a.then(function(l){o.dataIsReady=!0,o.data=l,o.max=l&&l.length||0,o.type=i.getTypeOf(l),o.isPaused||o._tickAndRepeat()},function(l){o.error(l)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var a=null,o=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":a=this.data.substring(this.index,o);break;case"uint8array":a=this.data.subarray(this.index,o);break;case"array":case"nodebuffer":a=this.data.slice(this.index,o)}return this.index=o,this.push({data:a,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(r,e,t){"use strict";function i(n){this.name=n||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(n){this.emit("data",n)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(n){this.emit("error",n)}return!0},error:function(n){return!this.isFinished&&(this.isPaused?this.generatedError=n:(this.isFinished=!0,this.emit("error",n),this.previous&&this.previous.error(n),this.cleanUp()),!0)},on:function(n,s){return this._listeners[n].push(s),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(n,s){if(this._listeners[n])for(var a=0;a "+n:n}},e.exports=i},{}],29:[function(r,e,t){"use strict";var i=r("../utils"),n=r("./ConvertWorker"),s=r("./GenericWorker"),a=r("../base64"),o=r("../support"),l=r("../external"),h=null;if(o.nodestream)try{h=r("../nodejs/NodejsStreamOutputAdapter")}catch(d){}function c(d,f){return new l.Promise(function(m,g){var v=[],y=d._internalType,A=d._outputType,b=d._mimeType;d.on("data",function(C,M){v.push(C),f&&f(M)}).on("error",function(C){v=[],g(C)}).on("end",function(){try{var C=function(M,D,L){switch(M){case"blob":return i.newBlob(i.transformTo("arraybuffer",D),L);case"base64":return a.encode(D);default:return i.transformTo(M,D)}}(A,function(M,D){var L,k=0,V=null,B=0;for(L=0;L>>6:(m<65536?f[y++]=224|m>>>12:(f[y++]=240|m>>>18,f[y++]=128|m>>>12&63),f[y++]=128|m>>>6&63),f[y++]=128|63&m);return f}(u)},t.utf8decode=function(u){return n.nodebuffer?i.transformTo("nodebuffer",u).toString("utf-8"):function(d){var f,m,g,v,y=d.length,A=new Array(2*y);for(f=m=0;f>10&1023,A[m++]=56320|1023&g)}return A.length!==m&&(A.subarray?A=A.subarray(0,m):A.length=m),i.applyFromCharCode(A)}(u=i.transformTo(n.uint8array?"uint8array":"array",u))},i.inherits(h,a),h.prototype.processChunk=function(u){var d=i.transformTo(n.uint8array?"uint8array":"array",u.data);if(this.leftOver&&this.leftOver.length){if(n.uint8array){var f=d;(d=new Uint8Array(f.length+this.leftOver.length)).set(this.leftOver,0),d.set(f,this.leftOver.length)}else d=this.leftOver.concat(d);this.leftOver=null}var m=function(v,y){var A;for((y=y||v.length)>v.length&&(y=v.length),A=y-1;0<=A&&(192&v[A])==128;)A--;return A<0||A===0?y:A+o[v[A]]>y?A:y}(d),g=d;m!==d.length&&(n.uint8array?(g=d.subarray(0,m),this.leftOver=d.subarray(m,d.length)):(g=d.slice(0,m),this.leftOver=d.slice(m,d.length))),this.push({data:t.utf8decode(g),meta:u.meta})},h.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:t.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},t.Utf8DecodeWorker=h,i.inherits(c,a),c.prototype.processChunk=function(u){this.push({data:t.utf8encode(u.data),meta:u.meta})},t.Utf8EncodeWorker=c},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(r,e,t){"use strict";var i=r("./support"),n=r("./base64"),s=r("./nodejsUtils"),a=r("./external");function o(f){return f}function l(f,m){for(var g=0;g>8;this.dir=!!(16&this.externalFileAttributes),u==0&&(this.dosPermissions=63&this.externalFileAttributes),u==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var u=i(this.extraFields[1].value);this.uncompressedSize===n.MAX_VALUE_32BITS&&(this.uncompressedSize=u.readInt(8)),this.compressedSize===n.MAX_VALUE_32BITS&&(this.compressedSize=u.readInt(8)),this.localHeaderOffset===n.MAX_VALUE_32BITS&&(this.localHeaderOffset=u.readInt(8)),this.diskNumberStart===n.MAX_VALUE_32BITS&&(this.diskNumberStart=u.readInt(4))}},readExtraFields:function(u){var d,f,m,g=u.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});u.index+4>>6:(u<65536?c[m++]=224|u>>>12:(c[m++]=240|u>>>18,c[m++]=128|u>>>12&63),c[m++]=128|u>>>6&63),c[m++]=128|63&u);return c},t.buf2binstring=function(h){return l(h,h.length)},t.binstring2buf=function(h){for(var c=new i.Buf8(h.length),u=0,d=c.length;u>10&1023,v[d++]=56320|1023&f)}return l(v,d)},t.utf8border=function(h,c){var u;for((c=c||h.length)>h.length&&(c=h.length),u=c-1;0<=u&&(192&h[u])==128;)u--;return u<0||u===0?c:u+a[h[u]]>c?u:c}},{"./common":41}],43:[function(r,e,t){"use strict";e.exports=function(i,n,s,a){for(var o=65535&i|0,l=i>>>16&65535|0,h=0;s!==0;){for(s-=h=2e3>>1:n>>>1;s[a]=n}return s}();e.exports=function(n,s,a,o){var l=i,h=o+a;n^=-1;for(var c=o;c>>8^l[255&(n^s[c])];return-1^n}},{}],46:[function(r,e,t){"use strict";var i,n=r("../utils/common"),s=r("./trees"),a=r("./adler32"),o=r("./crc32"),l=r("./messages"),h=0,c=4,u=0,d=-2,f=-1,m=4,g=2,v=8,y=9,A=286,b=30,C=19,M=2*A+1,D=15,L=3,k=258,V=k+L+1,B=42,_=113,S=1,G=2,Q=3,Y=4;function ne(F,de){return F.msg=l[de],de}function ee(F){return(F<<1)-(4F.avail_out&&(ce=F.avail_out),ce!==0&&(n.arraySet(F.output,de.pending_buf,de.pending_out,ce,F.next_out),F.next_out+=ce,de.pending_out+=ce,F.total_out+=ce,F.avail_out-=ce,de.pending-=ce,de.pending===0&&(de.pending_out=0))}function O(F,de){s._tr_flush_block(F,0<=F.block_start?F.block_start:-1,F.strstart-F.block_start,de),F.block_start=F.strstart,ae(F.strm)}function Fe(F,de){F.pending_buf[F.pending++]=de}function we(F,de){F.pending_buf[F.pending++]=de>>>8&255,F.pending_buf[F.pending++]=255&de}function R(F,de){var ce,K,W=F.max_chain_length,ie=F.strstart,ye=F.prev_length,ve=F.nice_match,oe=F.strstart>F.w_size-V?F.strstart-(F.w_size-V):0,ke=F.window,Be=F.w_mask,Ne=F.prev,qe=F.strstart+k,Vt=ke[ie+ye-1],St=ke[ie+ye];F.prev_length>=F.good_match&&(W>>=2),ve>F.lookahead&&(ve=F.lookahead);do if(ke[(ce=de)+ye]===St&&ke[ce+ye-1]===Vt&&ke[ce]===ke[ie]&&ke[++ce]===ke[ie+1]){ie+=2,ce++;do;while(ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ke[++ie]===ke[++ce]&&ieoe&&--W!=0);return ye<=F.lookahead?ye:F.lookahead}function gt(F){var de,ce,K,W,ie,ye,ve,oe,ke,Be,Ne=F.w_size;do{if(W=F.window_size-F.lookahead-F.strstart,F.strstart>=Ne+(Ne-V)){for(n.arraySet(F.window,F.window,Ne,Ne,0),F.match_start-=Ne,F.strstart-=Ne,F.block_start-=Ne,de=ce=F.hash_size;K=F.head[--de],F.head[de]=Ne<=K?K-Ne:0,--ce;);for(de=ce=Ne;K=F.prev[--de],F.prev[de]=Ne<=K?K-Ne:0,--ce;);W+=Ne}if(F.strm.avail_in===0)break;if(ye=F.strm,ve=F.window,oe=F.strstart+F.lookahead,ke=W,Be=void 0,Be=ye.avail_in,ke=L)for(ie=F.strstart-F.insert,F.ins_h=F.window[ie],F.ins_h=(F.ins_h<=L&&(F.ins_h=(F.ins_h<=L)if(K=s._tr_tally(F,F.strstart-F.match_start,F.match_length-L),F.lookahead-=F.match_length,F.match_length<=F.max_lazy_match&&F.lookahead>=L){for(F.match_length--;F.strstart++,F.ins_h=(F.ins_h<=L&&(F.ins_h=(F.ins_h<=L&&F.match_length<=F.prev_length){for(W=F.strstart+F.lookahead-L,K=s._tr_tally(F,F.strstart-1-F.prev_match,F.prev_length-L),F.lookahead-=F.prev_length-1,F.prev_length-=2;++F.strstart<=W&&(F.ins_h=(F.ins_h<F.pending_buf_size-5&&(ce=F.pending_buf_size-5);;){if(F.lookahead<=1){if(gt(F),F.lookahead===0&&de===h)return S;if(F.lookahead===0)break}F.strstart+=F.lookahead,F.lookahead=0;var K=F.block_start+ce;if((F.strstart===0||F.strstart>=K)&&(F.lookahead=F.strstart-K,F.strstart=K,O(F,!1),F.strm.avail_out===0)||F.strstart-F.block_start>=F.w_size-V&&(O(F,!1),F.strm.avail_out===0))return S}return F.insert=0,de===c?(O(F,!0),F.strm.avail_out===0?Q:Y):(F.strstart>F.block_start&&(O(F,!1),F.strm.avail_out),S)}),new I(4,4,8,4,Ct),new I(4,5,16,8,Ct),new I(4,6,32,32,Ct),new I(4,4,16,16,U),new I(8,16,32,32,U),new I(8,16,128,128,U),new I(8,32,128,256,U),new I(32,128,258,1024,U),new I(32,258,258,4096,U)],t.deflateInit=function(F,de){return We(F,de,v,15,8,0)},t.deflateInit2=We,t.deflateReset=Ye,t.deflateResetKeep=te,t.deflateSetHeader=function(F,de){return F&&F.state?F.state.wrap!==2?d:(F.state.gzhead=de,u):d},t.deflate=function(F,de){var ce,K,W,ie;if(!F||!F.state||5>8&255),Fe(K,K.gzhead.time>>16&255),Fe(K,K.gzhead.time>>24&255),Fe(K,K.level===9?2:2<=K.strategy||K.level<2?4:0),Fe(K,255&K.gzhead.os),K.gzhead.extra&&K.gzhead.extra.length&&(Fe(K,255&K.gzhead.extra.length),Fe(K,K.gzhead.extra.length>>8&255)),K.gzhead.hcrc&&(F.adler=o(F.adler,K.pending_buf,K.pending,0)),K.gzindex=0,K.status=69):(Fe(K,0),Fe(K,0),Fe(K,0),Fe(K,0),Fe(K,0),Fe(K,K.level===9?2:2<=K.strategy||K.level<2?4:0),Fe(K,3),K.status=_);else{var ye=v+(K.w_bits-8<<4)<<8;ye|=(2<=K.strategy||K.level<2?0:K.level<6?1:K.level===6?2:3)<<6,K.strstart!==0&&(ye|=32),ye+=31-ye%31,K.status=_,we(K,ye),K.strstart!==0&&(we(K,F.adler>>>16),we(K,65535&F.adler)),F.adler=1}if(K.status===69)if(K.gzhead.extra){for(W=K.pending;K.gzindex<(65535&K.gzhead.extra.length)&&(K.pending!==K.pending_buf_size||(K.gzhead.hcrc&&K.pending>W&&(F.adler=o(F.adler,K.pending_buf,K.pending-W,W)),ae(F),W=K.pending,K.pending!==K.pending_buf_size));)Fe(K,255&K.gzhead.extra[K.gzindex]),K.gzindex++;K.gzhead.hcrc&&K.pending>W&&(F.adler=o(F.adler,K.pending_buf,K.pending-W,W)),K.gzindex===K.gzhead.extra.length&&(K.gzindex=0,K.status=73)}else K.status=73;if(K.status===73)if(K.gzhead.name){W=K.pending;do{if(K.pending===K.pending_buf_size&&(K.gzhead.hcrc&&K.pending>W&&(F.adler=o(F.adler,K.pending_buf,K.pending-W,W)),ae(F),W=K.pending,K.pending===K.pending_buf_size)){ie=1;break}ie=K.gzindexW&&(F.adler=o(F.adler,K.pending_buf,K.pending-W,W)),ie===0&&(K.gzindex=0,K.status=91)}else K.status=91;if(K.status===91)if(K.gzhead.comment){W=K.pending;do{if(K.pending===K.pending_buf_size&&(K.gzhead.hcrc&&K.pending>W&&(F.adler=o(F.adler,K.pending_buf,K.pending-W,W)),ae(F),W=K.pending,K.pending===K.pending_buf_size)){ie=1;break}ie=K.gzindexW&&(F.adler=o(F.adler,K.pending_buf,K.pending-W,W)),ie===0&&(K.status=103)}else K.status=103;if(K.status===103&&(K.gzhead.hcrc?(K.pending+2>K.pending_buf_size&&ae(F),K.pending+2<=K.pending_buf_size&&(Fe(K,255&F.adler),Fe(K,F.adler>>8&255),F.adler=0,K.status=_)):K.status=_),K.pending!==0){if(ae(F),F.avail_out===0)return K.last_flush=-1,u}else if(F.avail_in===0&&ee(de)<=ee(ce)&&de!==c)return ne(F,-5);if(K.status===666&&F.avail_in!==0)return ne(F,-5);if(F.avail_in!==0||K.lookahead!==0||de!==h&&K.status!==666){var ve=K.strategy===2?function(oe,ke){for(var Be;;){if(oe.lookahead===0&&(gt(oe),oe.lookahead===0)){if(ke===h)return S;break}if(oe.match_length=0,Be=s._tr_tally(oe,0,oe.window[oe.strstart]),oe.lookahead--,oe.strstart++,Be&&(O(oe,!1),oe.strm.avail_out===0))return S}return oe.insert=0,ke===c?(O(oe,!0),oe.strm.avail_out===0?Q:Y):oe.last_lit&&(O(oe,!1),oe.strm.avail_out===0)?S:G}(K,de):K.strategy===3?function(oe,ke){for(var Be,Ne,qe,Vt,St=oe.window;;){if(oe.lookahead<=k){if(gt(oe),oe.lookahead<=k&&ke===h)return S;if(oe.lookahead===0)break}if(oe.match_length=0,oe.lookahead>=L&&0oe.lookahead&&(oe.match_length=oe.lookahead)}if(oe.match_length>=L?(Be=s._tr_tally(oe,1,oe.match_length-L),oe.lookahead-=oe.match_length,oe.strstart+=oe.match_length,oe.match_length=0):(Be=s._tr_tally(oe,0,oe.window[oe.strstart]),oe.lookahead--,oe.strstart++),Be&&(O(oe,!1),oe.strm.avail_out===0))return S}return oe.insert=0,ke===c?(O(oe,!0),oe.strm.avail_out===0?Q:Y):oe.last_lit&&(O(oe,!1),oe.strm.avail_out===0)?S:G}(K,de):i[K.level].func(K,de);if(ve!==Q&&ve!==Y||(K.status=666),ve===S||ve===Q)return F.avail_out===0&&(K.last_flush=-1),u;if(ve===G&&(de===1?s._tr_align(K):de!==5&&(s._tr_stored_block(K,0,0,!1),de===3&&(be(K.head),K.lookahead===0&&(K.strstart=0,K.block_start=0,K.insert=0))),ae(F),F.avail_out===0))return K.last_flush=-1,u}return de!==c?u:K.wrap<=0?1:(K.wrap===2?(Fe(K,255&F.adler),Fe(K,F.adler>>8&255),Fe(K,F.adler>>16&255),Fe(K,F.adler>>24&255),Fe(K,255&F.total_in),Fe(K,F.total_in>>8&255),Fe(K,F.total_in>>16&255),Fe(K,F.total_in>>24&255)):(we(K,F.adler>>>16),we(K,65535&F.adler)),ae(F),0=ce.w_size&&(ie===0&&(be(ce.head),ce.strstart=0,ce.block_start=0,ce.insert=0),ke=new n.Buf8(ce.w_size),n.arraySet(ke,de,Be-ce.w_size,ce.w_size,0),de=ke,Be=ce.w_size),ye=F.avail_in,ve=F.next_in,oe=F.input,F.avail_in=Be,F.next_in=0,F.input=de,gt(ce);ce.lookahead>=L;){for(K=ce.strstart,W=ce.lookahead-(L-1);ce.ins_h=(ce.ins_h<>>=L=D>>>24,y-=L,(L=D>>>16&255)===0)G[l++]=65535&D;else{if(!(16&L)){if(!(64&L)){D=A[(65535&D)+(v&(1<>>=L,y-=L),y<15&&(v+=S[a++]<>>=L=D>>>24,y-=L,!(16&(L=D>>>16&255))){if(!(64&L)){D=b[(65535&D)+(v&(1<>>=L,y-=L,(L=l-h)>3,v&=(1<<(y-=k<<3))-1,i.next_in=a,i.next_out=l,i.avail_in=a>>24&255)+(B>>>8&65280)+((65280&B)<<8)+((255&B)<<24)}function v(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new i.Buf16(320),this.work=new i.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function y(B){var _;return B&&B.state?(_=B.state,B.total_in=B.total_out=_.total=0,B.msg="",_.wrap&&(B.adler=1&_.wrap),_.mode=d,_.last=0,_.havedict=0,_.dmax=32768,_.head=null,_.hold=0,_.bits=0,_.lencode=_.lendyn=new i.Buf32(f),_.distcode=_.distdyn=new i.Buf32(m),_.sane=1,_.back=-1,c):u}function A(B){var _;return B&&B.state?((_=B.state).wsize=0,_.whave=0,_.wnext=0,y(B)):u}function b(B,_){var S,G;return B&&B.state?(G=B.state,_<0?(S=0,_=-_):(S=1+(_>>4),_<48&&(_&=15)),_&&(_<8||15<_)?u:(G.window!==null&&G.wbits!==_&&(G.window=null),G.wrap=S,G.wbits=_,A(B))):u}function C(B,_){var S,G;return B?(G=new v,(B.state=G).window=null,(S=b(B,_))!==c&&(B.state=null),S):u}var M,D,L=!0;function k(B){if(L){var _;for(M=new i.Buf32(512),D=new i.Buf32(32),_=0;_<144;)B.lens[_++]=8;for(;_<256;)B.lens[_++]=9;for(;_<280;)B.lens[_++]=7;for(;_<288;)B.lens[_++]=8;for(o(l,B.lens,0,288,M,0,B.work,{bits:9}),_=0;_<32;)B.lens[_++]=5;o(h,B.lens,0,32,D,0,B.work,{bits:5}),L=!1}B.lencode=M,B.lenbits=9,B.distcode=D,B.distbits=5}function V(B,_,S,G){var Q,Y=B.state;return Y.window===null&&(Y.wsize=1<=Y.wsize?(i.arraySet(Y.window,_,S-Y.wsize,Y.wsize,0),Y.wnext=0,Y.whave=Y.wsize):(G<(Q=Y.wsize-Y.wnext)&&(Q=G),i.arraySet(Y.window,_,S-G,Q,Y.wnext),(G-=Q)?(i.arraySet(Y.window,_,S-G,G,0),Y.wnext=G,Y.whave=Y.wsize):(Y.wnext+=Q,Y.wnext===Y.wsize&&(Y.wnext=0),Y.whave>>8&255,S.check=s(S.check,ie,2,0),O=ae=0,S.mode=2;break}if(S.flags=0,S.head&&(S.head.done=!1),!(1&S.wrap)||(((255&ae)<<8)+(ae>>8))%31){B.msg="incorrect header check",S.mode=30;break}if((15&ae)!=8){B.msg="unknown compression method",S.mode=30;break}if(O-=4,F=8+(15&(ae>>>=4)),S.wbits===0)S.wbits=F;else if(F>S.wbits){B.msg="invalid window size",S.mode=30;break}S.dmax=1<>8&1),512&S.flags&&(ie[0]=255&ae,ie[1]=ae>>>8&255,S.check=s(S.check,ie,2,0)),O=ae=0,S.mode=3;case 3:for(;O<32;){if(ee===0)break e;ee--,ae+=G[Y++]<>>8&255,ie[2]=ae>>>16&255,ie[3]=ae>>>24&255,S.check=s(S.check,ie,4,0)),O=ae=0,S.mode=4;case 4:for(;O<16;){if(ee===0)break e;ee--,ae+=G[Y++]<>8),512&S.flags&&(ie[0]=255&ae,ie[1]=ae>>>8&255,S.check=s(S.check,ie,2,0)),O=ae=0,S.mode=5;case 5:if(1024&S.flags){for(;O<16;){if(ee===0)break e;ee--,ae+=G[Y++]<>>8&255,S.check=s(S.check,ie,2,0)),O=ae=0}else S.head&&(S.head.extra=null);S.mode=6;case 6:if(1024&S.flags&&(ee<(R=S.length)&&(R=ee),R&&(S.head&&(F=S.head.extra_len-S.length,S.head.extra||(S.head.extra=new Array(S.head.extra_len)),i.arraySet(S.head.extra,G,Y,R,F)),512&S.flags&&(S.check=s(S.check,G,R,Y)),ee-=R,Y+=R,S.length-=R),S.length))break e;S.length=0,S.mode=7;case 7:if(2048&S.flags){if(ee===0)break e;for(R=0;F=G[Y+R++],S.head&&F&&S.length<65536&&(S.head.name+=String.fromCharCode(F)),F&&R>9&1,S.head.done=!0),B.adler=S.check=0,S.mode=12;break;case 10:for(;O<32;){if(ee===0)break e;ee--,ae+=G[Y++]<>>=7&O,O-=7&O,S.mode=27;break}for(;O<3;){if(ee===0)break e;ee--,ae+=G[Y++]<>>=1)){case 0:S.mode=14;break;case 1:if(k(S),S.mode=20,_!==6)break;ae>>>=2,O-=2;break e;case 2:S.mode=17;break;case 3:B.msg="invalid block type",S.mode=30}ae>>>=2,O-=2;break;case 14:for(ae>>>=7&O,O-=7&O;O<32;){if(ee===0)break e;ee--,ae+=G[Y++]<>>16^65535)){B.msg="invalid stored block lengths",S.mode=30;break}if(S.length=65535&ae,O=ae=0,S.mode=15,_===6)break e;case 15:S.mode=16;case 16:if(R=S.length){if(ee>>=5,O-=5,S.ndist=1+(31&ae),ae>>>=5,O-=5,S.ncode=4+(15&ae),ae>>>=4,O-=4,286>>=3,O-=3}for(;S.have<19;)S.lens[ye[S.have++]]=0;if(S.lencode=S.lendyn,S.lenbits=7,ce={bits:S.lenbits},de=o(0,S.lens,0,19,S.lencode,0,S.work,ce),S.lenbits=ce.bits,de){B.msg="invalid code lengths set",S.mode=30;break}S.have=0,S.mode=19;case 19:for(;S.have>>16&255,le=65535&W,!((U=W>>>24)<=O);){if(ee===0)break e;ee--,ae+=G[Y++]<>>=U,O-=U,S.lens[S.have++]=le;else{if(le===16){for(K=U+2;O>>=U,O-=U,S.have===0){B.msg="invalid bit length repeat",S.mode=30;break}F=S.lens[S.have-1],R=3+(3&ae),ae>>>=2,O-=2}else if(le===17){for(K=U+3;O>>=U)),ae>>>=3,O-=3}else{for(K=U+7;O>>=U)),ae>>>=7,O-=7}if(S.have+R>S.nlen+S.ndist){B.msg="invalid bit length repeat",S.mode=30;break}for(;R--;)S.lens[S.have++]=F}}if(S.mode===30)break;if(S.lens[256]===0){B.msg="invalid code -- missing end-of-block",S.mode=30;break}if(S.lenbits=9,ce={bits:S.lenbits},de=o(l,S.lens,0,S.nlen,S.lencode,0,S.work,ce),S.lenbits=ce.bits,de){B.msg="invalid literal/lengths set",S.mode=30;break}if(S.distbits=6,S.distcode=S.distdyn,ce={bits:S.distbits},de=o(h,S.lens,S.nlen,S.ndist,S.distcode,0,S.work,ce),S.distbits=ce.bits,de){B.msg="invalid distances set",S.mode=30;break}if(S.mode=20,_===6)break e;case 20:S.mode=21;case 21:if(6<=ee&&258<=be){B.next_out=ne,B.avail_out=be,B.next_in=Y,B.avail_in=ee,S.hold=ae,S.bits=O,a(B,we),ne=B.next_out,Q=B.output,be=B.avail_out,Y=B.next_in,G=B.input,ee=B.avail_in,ae=S.hold,O=S.bits,S.mode===12&&(S.back=-1);break}for(S.back=0;I=(W=S.lencode[ae&(1<>>16&255,le=65535&W,!((U=W>>>24)<=O);){if(ee===0)break e;ee--,ae+=G[Y++]<>te)])>>>16&255,le=65535&W,!(te+(U=W>>>24)<=O);){if(ee===0)break e;ee--,ae+=G[Y++]<>>=te,O-=te,S.back+=te}if(ae>>>=U,O-=U,S.back+=U,S.length=le,I===0){S.mode=26;break}if(32&I){S.back=-1,S.mode=12;break}if(64&I){B.msg="invalid literal/length code",S.mode=30;break}S.extra=15&I,S.mode=22;case 22:if(S.extra){for(K=S.extra;O>>=S.extra,O-=S.extra,S.back+=S.extra}S.was=S.length,S.mode=23;case 23:for(;I=(W=S.distcode[ae&(1<>>16&255,le=65535&W,!((U=W>>>24)<=O);){if(ee===0)break e;ee--,ae+=G[Y++]<>te)])>>>16&255,le=65535&W,!(te+(U=W>>>24)<=O);){if(ee===0)break e;ee--,ae+=G[Y++]<>>=te,O-=te,S.back+=te}if(ae>>>=U,O-=U,S.back+=U,64&I){B.msg="invalid distance code",S.mode=30;break}S.offset=le,S.extra=15&I,S.mode=24;case 24:if(S.extra){for(K=S.extra;O>>=S.extra,O-=S.extra,S.back+=S.extra}if(S.offset>S.dmax){B.msg="invalid distance too far back",S.mode=30;break}S.mode=25;case 25:if(be===0)break e;if(R=we-be,S.offset>R){if((R=S.offset-R)>S.whave&&S.sane){B.msg="invalid distance too far back",S.mode=30;break}gt=R>S.wnext?(R-=S.wnext,S.wsize-R):S.wnext-R,R>S.length&&(R=S.length),Ct=S.window}else Ct=Q,gt=ne-S.offset,R=S.length;for(beM?(L=gt[Ct+m[_]],O[Fe+m[_]]):(L=96,0),v=1<>ne)+(y-=v)]=D<<24|L<<16|k|0,y!==0;);for(v=1<>=1;if(v!==0?(ae&=v-1,ae+=v):ae=0,_++,--we[B]==0){if(B===G)break;B=h[c+m[_]]}if(Q>>7)]}function Fe(W,ie){W.pending_buf[W.pending++]=255&ie,W.pending_buf[W.pending++]=ie>>>8&255}function we(W,ie,ye){W.bi_valid>g-ye?(W.bi_buf|=ie<>g-W.bi_valid,W.bi_valid+=ye-g):(W.bi_buf|=ie<>>=1,ye<<=1,0<--ie;);return ye>>>1}function Ct(W,ie,ye){var ve,oe,ke=new Array(m+1),Be=0;for(ve=1;ve<=m;ve++)ke[ve]=Be=Be+ye[ve-1]<<1;for(oe=0;oe<=ie;oe++){var Ne=W[2*oe+1];Ne!==0&&(W[2*oe]=gt(ke[Ne]++,Ne))}}function U(W){var ie;for(ie=0;ie>1;1<=ye;ye--)te(W,ke,ye);for(oe=qe;ye=W.heap[1],W.heap[1]=W.heap[W.heap_len--],te(W,ke,1),ve=W.heap[1],W.heap[--W.heap_max]=ye,W.heap[--W.heap_max]=ve,ke[2*oe]=ke[2*ye]+ke[2*ve],W.depth[oe]=(W.depth[ye]>=W.depth[ve]?W.depth[ye]:W.depth[ve])+1,ke[2*ye+1]=ke[2*ve+1]=oe,W.heap[1]=oe++,te(W,ke,1),2<=W.heap_len;);W.heap[--W.heap_max]=W.heap[1],function(St,me){var xe,Ve,Ft,et,Gr,di,lr=me.dyn_tree,kn=me.max_code,ua=me.stat_desc.static_tree,tr=me.stat_desc.has_stree,xl=me.stat_desc.extra_bits,li=me.stat_desc.extra_base,jn=me.stat_desc.max_length,io=0;for(et=0;et<=m;et++)St.bl_count[et]=0;for(lr[2*St.heap[St.heap_max]+1]=0,xe=St.heap_max+1;xe>=7;oe>>=1)if(1&Vt&&Ne.dyn_ltree[2*qe]!==0)return n;if(Ne.dyn_ltree[18]!==0||Ne.dyn_ltree[20]!==0||Ne.dyn_ltree[26]!==0)return s;for(qe=32;qe>>3,(ke=W.static_len+3+7>>>3)<=oe&&(oe=ke)):oe=ke=ye+5,ye+4<=oe&&ie!==-1?K(W,ie,ye,ve):W.strategy===4||ke===oe?(we(W,2+(ve?1:0),3),Ye(W,V,B)):(we(W,4+(ve?1:0),3),function(Ne,qe,Vt,St){var me;for(we(Ne,qe-257,5),we(Ne,Vt-1,5),we(Ne,St-4,4),me=0;me>>8&255,W.pending_buf[W.d_buf+2*W.last_lit+1]=255&ie,W.pending_buf[W.l_buf+W.last_lit]=255&ye,W.last_lit++,ie===0?W.dyn_ltree[2*ye]++:(W.matches++,ie--,W.dyn_ltree[2*(S[ye]+h+1)]++,W.dyn_dtree[2*O(ie)]++),W.last_lit===W.lit_bufsize-1},t._tr_align=function(W){we(W,2,3),R(W,y,V),function(ie){ie.bi_valid===16?(Fe(ie,ie.bi_buf),ie.bi_buf=0,ie.bi_valid=0):8<=ie.bi_valid&&(ie.pending_buf[ie.pending++]=255&ie.bi_buf,ie.bi_buf>>=8,ie.bi_valid-=8)}(W)}},{"../utils/common":41}],53:[function(r,e,t){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(r,e,t){(function(i){(function(n,s){"use strict";if(!n.setImmediate){var a,o,l,h,c=1,u={},d=!1,f=n.document,m=Object.getPrototypeOf&&Object.getPrototypeOf(n);m=m&&m.setTimeout?m:n,a={}.toString.call(n.process)==="[object process]"?function(A){process.nextTick(function(){v(A)})}:function(){if(n.postMessage&&!n.importScripts){var A=!0,b=n.onmessage;return n.onmessage=function(){A=!1},n.postMessage("","*"),n.onmessage=b,A}}()?(h="setImmediate$"+Math.random()+"$",n.addEventListener?n.addEventListener("message",y,!1):n.attachEvent("onmessage",y),function(A){n.postMessage(h+A,"*")}):n.MessageChannel?((l=new MessageChannel).port1.onmessage=function(A){v(A.data)},function(A){l.port2.postMessage(A)}):f&&"onreadystatechange"in f.createElement("script")?(o=f.documentElement,function(A){var b=f.createElement("script");b.onreadystatechange=function(){v(A),b.onreadystatechange=null,o.removeChild(b),b=null},o.appendChild(b)}):function(A){setTimeout(v,0,A)},m.setImmediate=function(A){typeof A!="function"&&(A=new Function(""+A));for(var b=new Array(arguments.length-1),C=0;C{(function(r){r.parser=function(U,I){return new t(U,I)},r.SAXParser=t,r.SAXStream=h,r.createStream=l,r.MAX_BUFFER_LENGTH=64*1024;var e=["comment","sgmlDecl","textNode","tagName","doctype","procInstName","procInstBody","entity","attribName","attribValue","cdata","script"];r.EVENTS=["text","processinginstruction","sgmldeclaration","doctype","comment","opentagstart","attribute","opentag","closetag","opencdata","cdata","closecdata","error","end","ready","script","opennamespace","closenamespace"];function t(U,I){if(!(this instanceof t))return new t(U,I);var le=this;n(le),le.q=le.c="",le.bufferCheckPosition=r.MAX_BUFFER_LENGTH,le.opt=I||{},le.opt.lowercase=le.opt.lowercase||le.opt.lowercasetags,le.looseCase=le.opt.lowercase?"toLowerCase":"toUpperCase",le.tags=[],le.closed=le.closedRoot=le.sawRoot=!1,le.tag=le.error=null,le.strict=!!U,le.noscript=!!(U||le.opt.noscript),le.state=k.BEGIN,le.strictEntities=le.opt.strictEntities,le.ENTITIES=le.strictEntities?Object.create(r.XML_ENTITIES):Object.create(r.ENTITIES),le.attribList=[],le.opt.xmlns&&(le.ns=Object.create(m)),le.opt.unquotedAttributeValues===void 0&&(le.opt.unquotedAttributeValues=!U),le.trackPosition=le.opt.position!==!1,le.trackPosition&&(le.position=le.line=le.column=0),B(le,"onready")}Object.create||(Object.create=function(U){function I(){}I.prototype=U;var le=new I;return le}),Object.keys||(Object.keys=function(U){var I=[];for(var le in U)U.hasOwnProperty(le)&&I.push(le);return I});function i(U){for(var I=Math.max(r.MAX_BUFFER_LENGTH,10),le=0,te=0,Ye=e.length;teI)switch(e[te]){case"textNode":S(U);break;case"cdata":_(U,"oncdata",U.cdata),U.cdata="";break;case"script":_(U,"onscript",U.script),U.script="";break;default:Q(U,"Max buffer length exceeded: "+e[te])}le=Math.max(le,We)}var F=r.MAX_BUFFER_LENGTH-le;U.bufferCheckPosition=F+U.position}function n(U){for(var I=0,le=e.length;I"||b(U)}function D(U,I){return U.test(I)}function L(U,I){return!D(U,I)}var k=0;r.STATE={BEGIN:k++,BEGIN_WHITESPACE:k++,TEXT:k++,TEXT_ENTITY:k++,OPEN_WAKA:k++,SGML_DECL:k++,SGML_DECL_QUOTED:k++,DOCTYPE:k++,DOCTYPE_QUOTED:k++,DOCTYPE_DTD:k++,DOCTYPE_DTD_QUOTED:k++,COMMENT_STARTING:k++,COMMENT:k++,COMMENT_ENDING:k++,COMMENT_ENDED:k++,CDATA:k++,CDATA_ENDING:k++,CDATA_ENDING_2:k++,PROC_INST:k++,PROC_INST_BODY:k++,PROC_INST_ENDING:k++,OPEN_TAG:k++,OPEN_TAG_SLASH:k++,ATTRIB:k++,ATTRIB_NAME:k++,ATTRIB_NAME_SAW_WHITE:k++,ATTRIB_VALUE:k++,ATTRIB_VALUE_QUOTED:k++,ATTRIB_VALUE_CLOSED:k++,ATTRIB_VALUE_UNQUOTED:k++,ATTRIB_VALUE_ENTITY_Q:k++,ATTRIB_VALUE_ENTITY_U:k++,CLOSE_TAG:k++,CLOSE_TAG_SAW_WHITE:k++,SCRIPT:k++,SCRIPT_ENDING:k++},r.XML_ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'"},r.ENTITIES={amp:"&",gt:">",lt:"<",quot:'"',apos:"'",AElig:198,Aacute:193,Acirc:194,Agrave:192,Aring:197,Atilde:195,Auml:196,Ccedil:199,ETH:208,Eacute:201,Ecirc:202,Egrave:200,Euml:203,Iacute:205,Icirc:206,Igrave:204,Iuml:207,Ntilde:209,Oacute:211,Ocirc:212,Ograve:210,Oslash:216,Otilde:213,Ouml:214,THORN:222,Uacute:218,Ucirc:219,Ugrave:217,Uuml:220,Yacute:221,aacute:225,acirc:226,aelig:230,agrave:224,aring:229,atilde:227,auml:228,ccedil:231,eacute:233,ecirc:234,egrave:232,eth:240,euml:235,iacute:237,icirc:238,igrave:236,iuml:239,ntilde:241,oacute:243,ocirc:244,ograve:242,oslash:248,otilde:245,ouml:246,szlig:223,thorn:254,uacute:250,ucirc:251,ugrave:249,uuml:252,yacute:253,yuml:255,copy:169,reg:174,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,ordf:170,laquo:171,not:172,shy:173,macr:175,deg:176,plusmn:177,sup1:185,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,times:215,divide:247,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},Object.keys(r.ENTITIES).forEach(function(U){var I=r.ENTITIES[U],le=typeof I=="number"?String.fromCharCode(I):I;r.ENTITIES[U]=le});for(var V in r.STATE)r.STATE[r.STATE[V]]=V;k=r.STATE;function B(U,I,le){U[I]&&U[I](le)}function _(U,I,le){U.textNode&&S(U),B(U,I,le)}function S(U){U.textNode=G(U.opt,U.textNode),U.textNode&&B(U,"ontext",U.textNode),U.textNode=""}function G(U,I){return U.trim&&(I=I.trim()),U.normalize&&(I=I.replace(/\s+/g," ")),I}function Q(U,I){return S(U),U.trackPosition&&(I+=` +Line: `+U.line+` +Column: `+U.column+` +Char: `+U.c),I=new Error(I),U.error=I,B(U,"onerror",I),U}function Y(U){return U.sawRoot&&!U.closedRoot&&ne(U,"Unclosed root tag"),U.state!==k.BEGIN&&U.state!==k.BEGIN_WHITESPACE&&U.state!==k.TEXT&&Q(U,"Unexpected end"),S(U),U.c="",U.closed=!0,B(U,"onend"),t.call(U,U.strict,U.opt),U}function ne(U,I){if(typeof U!="object"||!(U instanceof t))throw new Error("bad call to strictFail");U.strict&&Q(U,I)}function ee(U){U.strict||(U.tagName=U.tagName[U.looseCase]());var I=U.tags[U.tags.length-1]||U,le=U.tag={name:U.tagName,attributes:{}};U.opt.xmlns&&(le.ns=I.ns),U.attribList.length=0,_(U,"onopentagstart",le)}function be(U,I){var le=U.indexOf(":"),te=le<0?["",U]:U.split(":"),Ye=te[0],We=te[1];return I&&U==="xmlns"&&(Ye="xmlns",We=""),{prefix:Ye,local:We}}function ae(U){if(U.strict||(U.attribName=U.attribName[U.looseCase]()),U.attribList.indexOf(U.attribName)!==-1||U.tag.attributes.hasOwnProperty(U.attribName)){U.attribName=U.attribValue="";return}if(U.opt.xmlns){var I=be(U.attribName,!0),le=I.prefix,te=I.local;if(le==="xmlns")if(te==="xml"&&U.attribValue!==d)ne(U,"xml: prefix must be bound to "+d+` +Actual: `+U.attribValue);else if(te==="xmlns"&&U.attribValue!==f)ne(U,"xmlns: prefix must be bound to "+f+` +Actual: `+U.attribValue);else{var Ye=U.tag,We=U.tags[U.tags.length-1]||U;Ye.ns===We.ns&&(Ye.ns=Object.create(We.ns)),Ye.ns[te]=U.attribValue}U.attribList.push([U.attribName,U.attribValue])}else U.tag.attributes[U.attribName]=U.attribValue,_(U,"onattribute",{name:U.attribName,value:U.attribValue});U.attribName=U.attribValue=""}function O(U,I){if(U.opt.xmlns){var le=U.tag,te=be(U.tagName);le.prefix=te.prefix,le.local=te.local,le.uri=le.ns[te.prefix]||"",le.prefix&&!le.uri&&(ne(U,"Unbound namespace prefix: "+JSON.stringify(U.tagName)),le.uri=te.prefix);var Ye=U.tags[U.tags.length-1]||U;le.ns&&Ye.ns!==le.ns&&Object.keys(le.ns).forEach(function(ke){_(U,"onopennamespace",{prefix:ke,uri:le.ns[ke]})});for(var We=0,F=U.attribList.length;We",U.tagName="",U.state=k.SCRIPT;return}_(U,"onscript",U.script),U.script=""}var I=U.tags.length,le=U.tagName;U.strict||(le=le[U.looseCase]());for(var te=le;I--;){var Ye=U.tags[I];if(Ye.name!==te)ne(U,"Unexpected close tag");else break}if(I<0){ne(U,"Unmatched closing tag: "+U.tagName),U.textNode+="",U.state=k.TEXT;return}U.tagName=le;for(var We=U.tags.length;We-- >I;){var F=U.tag=U.tags.pop();U.tagName=U.tag.name,_(U,"onclosetag",U.tagName);var de={};for(var ce in F.ns)de[ce]=F.ns[ce];var K=U.tags[U.tags.length-1]||U;U.opt.xmlns&&F.ns!==K.ns&&Object.keys(F.ns).forEach(function(W){var ie=F.ns[W];_(U,"onclosenamespace",{prefix:W,uri:ie})})}I===0&&(U.closedRoot=!0),U.tagName=U.attribValue=U.attribName="",U.attribList.length=0,U.state=k.TEXT}function we(U){var I=U.entity,le=I.toLowerCase(),te,Ye="";return U.ENTITIES[I]?U.ENTITIES[I]:U.ENTITIES[le]?U.ENTITIES[le]:(I=le,I.charAt(0)==="#"&&(I.charAt(1)==="x"?(I=I.slice(2),te=parseInt(I,16),Ye=te.toString(16)):(I=I.slice(1),te=parseInt(I,10),Ye=te.toString(10))),I=I.replace(/^0+/,""),isNaN(te)||Ye.toLowerCase()!==I?(ne(U,"Invalid character entity"),"&"+U.entity+";"):String.fromCodePoint(te))}function R(U,I){I==="<"?(U.state=k.OPEN_WAKA,U.startTagPosition=U.position):b(I)||(ne(U,"Non-whitespace before first tag."),U.textNode=I,U.state=k.TEXT)}function gt(U,I){var le="";return I"?(_(I,"onsgmldeclaration",I.sgmlDecl),I.sgmlDecl="",I.state=k.TEXT):(C(te)&&(I.state=k.SGML_DECL_QUOTED),I.sgmlDecl+=te);continue;case k.SGML_DECL_QUOTED:te===I.q&&(I.state=k.SGML_DECL,I.q=""),I.sgmlDecl+=te;continue;case k.DOCTYPE:te===">"?(I.state=k.TEXT,_(I,"ondoctype",I.doctype),I.doctype=!0):(I.doctype+=te,te==="["?I.state=k.DOCTYPE_DTD:C(te)&&(I.state=k.DOCTYPE_QUOTED,I.q=te));continue;case k.DOCTYPE_QUOTED:I.doctype+=te,te===I.q&&(I.q="",I.state=k.DOCTYPE);continue;case k.DOCTYPE_DTD:te==="]"?(I.doctype+=te,I.state=k.DOCTYPE):te==="<"?(I.state=k.OPEN_WAKA,I.startTagPosition=I.position):C(te)?(I.doctype+=te,I.state=k.DOCTYPE_DTD_QUOTED,I.q=te):I.doctype+=te;continue;case k.DOCTYPE_DTD_QUOTED:I.doctype+=te,te===I.q&&(I.state=k.DOCTYPE_DTD,I.q="");continue;case k.COMMENT:te==="-"?I.state=k.COMMENT_ENDING:I.comment+=te;continue;case k.COMMENT_ENDING:te==="-"?(I.state=k.COMMENT_ENDED,I.comment=G(I.opt,I.comment),I.comment&&_(I,"oncomment",I.comment),I.comment=""):(I.comment+="-"+te,I.state=k.COMMENT);continue;case k.COMMENT_ENDED:te!==">"?(ne(I,"Malformed comment"),I.comment+="--"+te,I.state=k.COMMENT):I.doctype&&I.doctype!==!0?I.state=k.DOCTYPE_DTD:I.state=k.TEXT;continue;case k.CDATA:te==="]"?I.state=k.CDATA_ENDING:I.cdata+=te;continue;case k.CDATA_ENDING:te==="]"?I.state=k.CDATA_ENDING_2:(I.cdata+="]"+te,I.state=k.CDATA);continue;case k.CDATA_ENDING_2:te===">"?(I.cdata&&_(I,"oncdata",I.cdata),_(I,"onclosecdata"),I.cdata="",I.state=k.TEXT):te==="]"?I.cdata+="]":(I.cdata+="]]"+te,I.state=k.CDATA);continue;case k.PROC_INST:te==="?"?I.state=k.PROC_INST_ENDING:b(te)?I.state=k.PROC_INST_BODY:I.procInstName+=te;continue;case k.PROC_INST_BODY:if(!I.procInstBody&&b(te))continue;te==="?"?I.state=k.PROC_INST_ENDING:I.procInstBody+=te;continue;case k.PROC_INST_ENDING:te===">"?(_(I,"onprocessinginstruction",{name:I.procInstName,body:I.procInstBody}),I.procInstName=I.procInstBody="",I.state=k.TEXT):(I.procInstBody+="?"+te,I.state=k.PROC_INST_BODY);continue;case k.OPEN_TAG:D(v,te)?I.tagName+=te:(ee(I),te===">"?O(I):te==="/"?I.state=k.OPEN_TAG_SLASH:(b(te)||ne(I,"Invalid character in tag name"),I.state=k.ATTRIB));continue;case k.OPEN_TAG_SLASH:te===">"?(O(I,!0),Fe(I)):(ne(I,"Forward-slash in opening tag not followed by >"),I.state=k.ATTRIB);continue;case k.ATTRIB:if(b(te))continue;te===">"?O(I):te==="/"?I.state=k.OPEN_TAG_SLASH:D(g,te)?(I.attribName=te,I.attribValue="",I.state=k.ATTRIB_NAME):ne(I,"Invalid attribute name");continue;case k.ATTRIB_NAME:te==="="?I.state=k.ATTRIB_VALUE:te===">"?(ne(I,"Attribute without value"),I.attribValue=I.attribName,ae(I),O(I)):b(te)?I.state=k.ATTRIB_NAME_SAW_WHITE:D(v,te)?I.attribName+=te:ne(I,"Invalid attribute name");continue;case k.ATTRIB_NAME_SAW_WHITE:if(te==="=")I.state=k.ATTRIB_VALUE;else{if(b(te))continue;ne(I,"Attribute without value"),I.tag.attributes[I.attribName]="",I.attribValue="",_(I,"onattribute",{name:I.attribName,value:""}),I.attribName="",te===">"?O(I):D(g,te)?(I.attribName=te,I.state=k.ATTRIB_NAME):(ne(I,"Invalid attribute name"),I.state=k.ATTRIB)}continue;case k.ATTRIB_VALUE:if(b(te))continue;C(te)?(I.q=te,I.state=k.ATTRIB_VALUE_QUOTED):(I.opt.unquotedAttributeValues||Q(I,"Unquoted attribute value"),I.state=k.ATTRIB_VALUE_UNQUOTED,I.attribValue=te);continue;case k.ATTRIB_VALUE_QUOTED:if(te!==I.q){te==="&"?I.state=k.ATTRIB_VALUE_ENTITY_Q:I.attribValue+=te;continue}ae(I),I.q="",I.state=k.ATTRIB_VALUE_CLOSED;continue;case k.ATTRIB_VALUE_CLOSED:b(te)?I.state=k.ATTRIB:te===">"?O(I):te==="/"?I.state=k.OPEN_TAG_SLASH:D(g,te)?(ne(I,"No whitespace between attributes"),I.attribName=te,I.attribValue="",I.state=k.ATTRIB_NAME):ne(I,"Invalid attribute name");continue;case k.ATTRIB_VALUE_UNQUOTED:if(!M(te)){te==="&"?I.state=k.ATTRIB_VALUE_ENTITY_U:I.attribValue+=te;continue}ae(I),te===">"?O(I):I.state=k.ATTRIB;continue;case k.CLOSE_TAG:if(I.tagName)te===">"?Fe(I):D(v,te)?I.tagName+=te:I.script?(I.script+=""?Fe(I):ne(I,"Invalid characters in closing tag");continue;case k.TEXT_ENTITY:case k.ATTRIB_VALUE_ENTITY_Q:case k.ATTRIB_VALUE_ENTITY_U:var F,de;switch(I.state){case k.TEXT_ENTITY:F=k.TEXT,de="textNode";break;case k.ATTRIB_VALUE_ENTITY_Q:F=k.ATTRIB_VALUE_QUOTED,de="attribValue";break;case k.ATTRIB_VALUE_ENTITY_U:F=k.ATTRIB_VALUE_UNQUOTED,de="attribValue";break}if(te===";"){var ce=we(I);I.opt.unparsedEntities&&!Object.values(r.XML_ENTITIES).includes(ce)?(I.entity="",I.state=F,I.write(ce)):(I[de]+=ce,I.entity="",I.state=F)}else D(I.entity.length?A:y,te)?I.entity+=te:(ne(I,"Invalid character in entity name"),I[de]+="&"+I.entity+te,I.entity="",I.state=F);continue;default:throw new Error(I,"Unknown state: "+I.state)}return I.position>=I.bufferCheckPosition&&i(I),I}String.fromCodePoint||function(){var U=String.fromCharCode,I=Math.floor,le=function(){var te=16384,Ye=[],We,F,de=-1,ce=arguments.length;if(!ce)return"";for(var K="";++de1114111||I(W)!==W)throw RangeError("Invalid code point: "+W);W<=65535?Ye.push(W):(W-=65536,We=(W>>10)+55296,F=W%1024+56320,Ye.push(We,F)),(de+1===ce||Ye.length>te)&&(K+=U.apply(null,Ye),Ye.length=0)}return K};Object.defineProperty?Object.defineProperty(String,"fromCodePoint",{value:le,configurable:!0,writable:!0}):String.fromCodePoint=le}()})(typeof r2=="undefined"?r2.sax={}:r2)});var i2=Dt((dxe,JT)=>{JT.exports={isArray:function(r){return Array.isArray?Array.isArray(r):Object.prototype.toString.call(r)==="[object Array]"}}});var n2=Dt((fxe,$T)=>{var Ree=i2().isArray;$T.exports={copyOptions:function(r){var e,t={};for(e in r)r.hasOwnProperty(e)&&(t[e]=r[e]);return t},ensureFlagExists:function(r,e){(!(r in e)||typeof e[r]!="boolean")&&(e[r]=!1)},ensureSpacesExists:function(r){(!("spaces"in r)||typeof r.spaces!="number"&&typeof r.spaces!="string")&&(r.spaces=0)},ensureAlwaysArrayExists:function(r){(!("alwaysArray"in r)||typeof r.alwaysArray!="boolean"&&!Ree(r.alwaysArray))&&(r.alwaysArray=!1)},ensureKeyExists:function(r,e){(!(r+"Key"in e)||typeof e[r+"Key"]!="string")&&(e[r+"Key"]=e.compact?"_"+r:r)},checkFnExists:function(r,e){return r+"Fn"in e}}});var X5=Dt((mxe,oM)=>{var Pee=ZT(),_ee={on:function(){},parse:function(){}},Mt=n2(),rc=i2().isArray,ue,Q5=!0,mt;function qee(r){return ue=Mt.copyOptions(r),Mt.ensureFlagExists("ignoreDeclaration",ue),Mt.ensureFlagExists("ignoreInstruction",ue),Mt.ensureFlagExists("ignoreAttributes",ue),Mt.ensureFlagExists("ignoreText",ue),Mt.ensureFlagExists("ignoreComment",ue),Mt.ensureFlagExists("ignoreCdata",ue),Mt.ensureFlagExists("ignoreDoctype",ue),Mt.ensureFlagExists("compact",ue),Mt.ensureFlagExists("alwaysChildren",ue),Mt.ensureFlagExists("addParent",ue),Mt.ensureFlagExists("trim",ue),Mt.ensureFlagExists("nativeType",ue),Mt.ensureFlagExists("nativeTypeAttributes",ue),Mt.ensureFlagExists("sanitize",ue),Mt.ensureFlagExists("instructionHasAttributes",ue),Mt.ensureFlagExists("captureSpacesBetweenElements",ue),Mt.ensureAlwaysArrayExists(ue),Mt.ensureKeyExists("declaration",ue),Mt.ensureKeyExists("instruction",ue),Mt.ensureKeyExists("attributes",ue),Mt.ensureKeyExists("text",ue),Mt.ensureKeyExists("comment",ue),Mt.ensureKeyExists("cdata",ue),Mt.ensureKeyExists("doctype",ue),Mt.ensureKeyExists("type",ue),Mt.ensureKeyExists("name",ue),Mt.ensureKeyExists("elements",ue),Mt.ensureKeyExists("parent",ue),Mt.checkFnExists("doctype",ue),Mt.checkFnExists("instruction",ue),Mt.checkFnExists("cdata",ue),Mt.checkFnExists("comment",ue),Mt.checkFnExists("text",ue),Mt.checkFnExists("instructionName",ue),Mt.checkFnExists("elementName",ue),Mt.checkFnExists("attributeName",ue),Mt.checkFnExists("attributeValue",ue),Mt.checkFnExists("attributes",ue),ue}function sM(r){var e=Number(r);if(!isNaN(e))return e;var t=r.toLowerCase();return t==="true"?!0:t==="false"?!1:r}function Ud(r,e){var t;if(ue.compact){if(!mt[ue[r+"Key"]]&&(rc(ue.alwaysArray)?ue.alwaysArray.indexOf(ue[r+"Key"])!==-1:ue.alwaysArray)&&(mt[ue[r+"Key"]]=[]),mt[ue[r+"Key"]]&&!rc(mt[ue[r+"Key"]])&&(mt[ue[r+"Key"]]=[mt[ue[r+"Key"]]]),r+"Fn"in ue&&typeof e=="string"&&(e=ue[r+"Fn"](e,mt)),r==="instruction"&&("instructionFn"in ue||"instructionNameFn"in ue)){for(t in e)if(e.hasOwnProperty(t))if("instructionFn"in ue)e[t]=ue.instructionFn(e[t],t,mt);else{var i=e[t];delete e[t],e[ue.instructionNameFn(t,i,mt)]=i}}rc(mt[ue[r+"Key"]])?mt[ue[r+"Key"]].push(e):mt[ue[r+"Key"]]=e}else{mt[ue.elementsKey]||(mt[ue.elementsKey]=[]);var n={};if(n[ue.typeKey]=r,r==="instruction"){for(t in e)if(e.hasOwnProperty(t))break;n[ue.nameKey]="instructionNameFn"in ue?ue.instructionNameFn(t,e,mt):t,ue.instructionHasAttributes?(n[ue.attributesKey]=e[t][ue.attributesKey],"instructionFn"in ue&&(n[ue.attributesKey]=ue.instructionFn(n[ue.attributesKey],t,mt))):("instructionFn"in ue&&(e[t]=ue.instructionFn(e[t],t,mt)),n[ue.instructionKey]=e[t])}else r+"Fn"in ue&&(e=ue[r+"Fn"](e,mt)),n[ue[r+"Key"]]=e;ue.addParent&&(n[ue.parentKey]=mt),mt[ue.elementsKey].push(n)}}function aM(r){if("attributesFn"in ue&&r&&(r=ue.attributesFn(r,mt)),(ue.trim||"attributeValueFn"in ue||"attributeNameFn"in ue||ue.nativeTypeAttributes)&&r){var e;for(e in r)if(r.hasOwnProperty(e)&&(ue.trim&&(r[e]=r[e].trim()),ue.nativeTypeAttributes&&(r[e]=sM(r[e])),"attributeValueFn"in ue&&(r[e]=ue.attributeValueFn(r[e],e,mt)),"attributeNameFn"in ue)){var t=r[e];delete r[e],r[ue.attributeNameFn(e,r[e],mt)]=t}}return r}function Uee(r){var e={};if(r.body&&(r.name.toLowerCase()==="xml"||ue.instructionHasAttributes)){for(var t=/([\w:-]+)\s*=\s*(?:"([^"]*)"|'([^']*)'|(\w+))\s*/g,i;(i=t.exec(r.body))!==null;)e[i[1]]=i[2]||i[3]||i[4];e=aM(e)}if(r.name.toLowerCase()==="xml"){if(ue.ignoreDeclaration)return;mt[ue.declarationKey]={},Object.keys(e).length&&(mt[ue.declarationKey][ue.attributesKey]=e),ue.addParent&&(mt[ue.declarationKey][ue.parentKey]=mt)}else{if(ue.ignoreInstruction)return;ue.trim&&(r.body=r.body.trim());var n={};ue.instructionHasAttributes&&Object.keys(e).length?(n[r.name]={},n[r.name][ue.attributesKey]=e):n[r.name]=r.body,Ud("instruction",n)}}function eM(r,e){var t;if(typeof r=="object"&&(e=r.attributes,r=r.name),e=aM(e),"elementNameFn"in ue&&(r=ue.elementNameFn(r,mt)),ue.compact){if(t={},!ue.ignoreAttributes&&e&&Object.keys(e).length){t[ue.attributesKey]={};var i;for(i in e)e.hasOwnProperty(i)&&(t[ue.attributesKey][i]=e[i])}!(r in mt)&&(rc(ue.alwaysArray)?ue.alwaysArray.indexOf(r)!==-1:ue.alwaysArray)&&(mt[r]=[]),mt[r]&&!rc(mt[r])&&(mt[r]=[mt[r]]),rc(mt[r])?mt[r].push(t):mt[r]=t}else mt[ue.elementsKey]||(mt[ue.elementsKey]=[]),t={},t[ue.typeKey]="element",t[ue.nameKey]=r,!ue.ignoreAttributes&&e&&Object.keys(e).length&&(t[ue.attributesKey]=e),ue.alwaysChildren&&(t[ue.elementsKey]=[]),mt[ue.elementsKey].push(t);t[ue.parentKey]=mt,mt=t}function tM(r){ue.ignoreText||!r.trim()&&!ue.captureSpacesBetweenElements||(ue.trim&&(r=r.trim()),ue.nativeType&&(r=sM(r)),ue.sanitize&&(r=r.replace(/&/g,"&").replace(//g,">")),Ud("text",r))}function rM(r){ue.ignoreComment||(ue.trim&&(r=r.trim()),Ud("comment",r))}function iM(r){var e=mt[ue.parentKey];ue.addParent||delete mt[ue.parentKey],mt=e}function Hee(r){ue.ignoreCdata||(ue.trim&&(r=r.trim()),Ud("cdata",r))}function jee(r){ue.ignoreDoctype||(r=r.replace(/^ /,""),ue.trim&&(r=r.trim()),Ud("doctype",r))}function nM(r){r.note=r}oM.exports=function(r,e){var t=Q5?Pee.parser(!0,{}):t=new _ee.Parser("UTF-8"),i={};if(mt=i,ue=qee(e),Q5?(t.opt={strictEntities:!0},t.onopentag=eM,t.ontext=tM,t.oncomment=rM,t.onclosetag=iM,t.onerror=nM,t.oncdata=Hee,t.ondoctype=jee,t.onprocessinginstruction=Uee):(t.on("startElement",eM),t.on("text",tM),t.on("comment",rM),t.on("endElement",iM),t.on("error",nM)),Q5)t.write(r).close();else if(!t.parse(r))throw new Error("XML parsing error: "+t.getError());if(i[ue.elementsKey]){var n=i[ue.elementsKey];delete i[ue.elementsKey],i[ue.elementsKey]=n,delete i.text}return i}});var cM=Dt((pxe,hM)=>{var lM=n2(),Gee=X5();function Wee(r){var e=lM.copyOptions(r);return lM.ensureSpacesExists(e),e}hM.exports=function(r,e){var t,i,n,s;return t=Wee(e),i=Gee(r,t),s="compact"in t&&t.compact?"_parent":"parent","addParent"in t&&t.addParent?n=JSON.stringify(i,function(a,o){return a===s?"_":o},t.spaces):n=JSON.stringify(i,null,t.spaces),n.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}});var J5=Dt((gxe,xM)=>{var zt=n2(),Yee=i2().isArray,Di,Ni;function Vee(r){var e=zt.copyOptions(r);return zt.ensureFlagExists("ignoreDeclaration",e),zt.ensureFlagExists("ignoreInstruction",e),zt.ensureFlagExists("ignoreAttributes",e),zt.ensureFlagExists("ignoreText",e),zt.ensureFlagExists("ignoreComment",e),zt.ensureFlagExists("ignoreCdata",e),zt.ensureFlagExists("ignoreDoctype",e),zt.ensureFlagExists("compact",e),zt.ensureFlagExists("indentText",e),zt.ensureFlagExists("indentCdata",e),zt.ensureFlagExists("indentAttributes",e),zt.ensureFlagExists("indentInstruction",e),zt.ensureFlagExists("fullTagEmptyElement",e),zt.ensureFlagExists("noQuotesForNativeAttributes",e),zt.ensureSpacesExists(e),typeof e.spaces=="number"&&(e.spaces=Array(e.spaces+1).join(" ")),zt.ensureKeyExists("declaration",e),zt.ensureKeyExists("instruction",e),zt.ensureKeyExists("attributes",e),zt.ensureKeyExists("text",e),zt.ensureKeyExists("comment",e),zt.ensureKeyExists("cdata",e),zt.ensureKeyExists("doctype",e),zt.ensureKeyExists("type",e),zt.ensureKeyExists("name",e),zt.ensureKeyExists("elements",e),zt.checkFnExists("doctype",e),zt.checkFnExists("instruction",e),zt.checkFnExists("cdata",e),zt.checkFnExists("comment",e),zt.checkFnExists("text",e),zt.checkFnExists("instructionName",e),zt.checkFnExists("elementName",e),zt.checkFnExists("attributeName",e),zt.checkFnExists("attributeValue",e),zt.checkFnExists("attributes",e),zt.checkFnExists("fullTagEmptyElement",e),e}function Js(r,e,t){return(!t&&r.spaces?` +`:"")+Array(e+1).join(r.spaces)}function s2(r,e,t){if(e.ignoreAttributes)return"";"attributesFn"in e&&(r=e.attributesFn(r,Ni,Di));var i,n,s,a,o=[];for(i in r)r.hasOwnProperty(i)&&r[i]!==null&&r[i]!==void 0&&(a=e.noQuotesForNativeAttributes&&typeof r[i]!="string"?"":'"',n=""+r[i],n=n.replace(/"/g,"""),s="attributeNameFn"in e?e.attributeNameFn(i,n,Ni,Di):i,o.push(e.spaces&&e.indentAttributes?Js(e,t+1,!1):" "),o.push(s+"="+a+("attributeValueFn"in e?e.attributeValueFn(n,i,Ni,Di):n)+a));return r&&Object.keys(r).length&&e.spaces&&e.indentAttributes&&o.push(Js(e,t,!1)),o.join("")}function uM(r,e,t){return Di=r,Ni="xml",e.ignoreDeclaration?"":""}function dM(r,e,t){if(e.ignoreInstruction)return"";var i;for(i in r)if(r.hasOwnProperty(i))break;var n="instructionNameFn"in e?e.instructionNameFn(i,r[i],Ni,Di):i;if(typeof r[i]=="object")return Di=r,Ni=n,"";var s=r[i]?r[i]:"";return"instructionFn"in e&&(s=e.instructionFn(s,i,Ni,Di)),""}function fM(r,e){return e.ignoreComment?"":""}function mM(r,e){return e.ignoreCdata?"":"","]]]]>"))+"]]>"}function pM(r,e){return e.ignoreDoctype?"":""}function Z5(r,e){return e.ignoreText?"":(r=""+r,r=r.replace(/&/g,"&"),r=r.replace(/&/g,"&").replace(//g,">"),"textFn"in e?e.textFn(r,Ni,Di):r)}function Kee(r,e){var t;if(r.elements&&r.elements.length)for(t=0;t"),r[e.elementsKey]&&r[e.elementsKey].length&&(i.push(gM(r[e.elementsKey],e,t+1)),Di=r,Ni=r.name),i.push(e.spaces&&Kee(r,e)?` +`+Array(t+1).join(e.spaces):""),i.push("")):i.push("/>"),i.join("")}function gM(r,e,t,i){return r.reduce(function(n,s){var a=Js(e,t,i&&!n);switch(s.type){case"element":return n+a+Qee(s,e,t);case"comment":return n+a+fM(s[e.commentKey],e);case"doctype":return n+a+pM(s[e.doctypeKey],e);case"cdata":return n+(e.indentCdata?a:"")+mM(s[e.cdataKey],e);case"text":return n+(e.indentText?a:"")+Z5(s[e.textKey],e);case"instruction":var o={};return o[s[e.nameKey]]=s[e.attributesKey]?s:s[e.instructionKey],n+(e.indentInstruction?a:"")+dM(o,e,t)}},"")}function vM(r,e,t){var i;for(i in r)if(r.hasOwnProperty(i))switch(i){case e.parentKey:case e.attributesKey:break;case e.textKey:if(e.indentText||t)return!0;break;case e.cdataKey:if(e.indentCdata||t)return!0;break;case e.instructionKey:if(e.indentInstruction||t)return!0;break;case e.doctypeKey:case e.commentKey:return!0;default:return!0}return!1}function Xee(r,e,t,i,n){Di=r,Ni=e;var s="elementNameFn"in t?t.elementNameFn(e,r):e;if(typeof r=="undefined"||r===null||r==="")return"fullTagEmptyElementFn"in t&&t.fullTagEmptyElementFn(e,r)||t.fullTagEmptyElement?"<"+s+">":"<"+s+"/>";var a=[];if(e){if(a.push("<"+s),typeof r!="object")return a.push(">"+Z5(r,t)+""),a.join("");r[t.attributesKey]&&a.push(s2(r[t.attributesKey],t,i));var o=vM(r,t,!0)||r[t.attributesKey]&&r[t.attributesKey]["xml:space"]==="preserve";if(o||("fullTagEmptyElementFn"in t?o=t.fullTagEmptyElementFn(e,r):o=t.fullTagEmptyElement),o)a.push(">");else return a.push("/>"),a.join("")}return a.push(yM(r,t,i+1,!1)),Di=r,Ni=e,e&&a.push((n?Js(t,i,!1):"")+""),a.join("")}function yM(r,e,t,i){var n,s,a,o=[];for(s in r)if(r.hasOwnProperty(s))for(a=Yee(r[s])?r[s]:[r[s]],n=0;n{var Zee=J5();bM.exports=function(r,e){r instanceof Buffer&&(r=r.toString());var t=null;if(typeof r=="string")try{t=JSON.parse(r)}catch(i){throw new Error("The JSON structure is invalid")}else t=r;return Zee(t,e)}});var EM=Dt((yxe,AM)=>{var Jee=X5(),$ee=cM(),ete=J5(),tte=wM();AM.exports={xml2js:Jee,xml2json:$ee,js2xml:ete,json2xml:tte}});var Qa=Dt($i=>{"use strict";var fte=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";function mte(r,e){return Object.prototype.hasOwnProperty.call(r,e)}$i.assign=function(r){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(var i in t)mte(t,i)&&(r[i]=t[i])}}return r};$i.shrinkBuf=function(r,e){return r.length===e?r:r.subarray?r.subarray(0,e):(r.length=e,r)};var pte={arraySet:function(r,e,t,i,n){if(e.subarray&&r.subarray){r.set(e.subarray(t,t+i),n);return}for(var s=0;s{"use strict";var vte=Qa(),yte=4,lk=0,hk=1,xte=2;function lc(r){for(var e=r.length;--e>=0;)r[e]=0}var bte=0,pk=1,wte=2,Ate=3,Ete=258,f7=29,$d=256,Qd=$d+1+f7,oc=30,m7=19,gk=2*Qd+1,d0=15,o7=16,Cte=7,p7=256,vk=16,yk=17,xk=18,u7=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],m2=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ste=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bk=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Tte=512,Xa=new Array((Qd+2)*2);lc(Xa);var Kd=new Array(oc*2);lc(Kd);var Xd=new Array(Tte);lc(Xd);var Zd=new Array(Ete-Ate+1);lc(Zd);var g7=new Array(f7);lc(g7);var p2=new Array(oc);lc(p2);function l7(r,e,t,i,n){this.static_tree=r,this.extra_bits=e,this.extra_base=t,this.elems=i,this.max_length=n,this.has_stree=r&&r.length}var wk,Ak,Ek;function h7(r,e){this.dyn_tree=r,this.max_code=0,this.stat_desc=e}function Ck(r){return r<256?Xd[r]:Xd[256+(r>>>7)]}function Jd(r,e){r.pending_buf[r.pending++]=e&255,r.pending_buf[r.pending++]=e>>>8&255}function Sn(r,e,t){r.bi_valid>o7-t?(r.bi_buf|=e<>o7-r.bi_valid,r.bi_valid+=t-o7):(r.bi_buf|=e<>>=1,t<<=1;while(--e>0);return t>>>1}function Mte(r){r.bi_valid===16?(Jd(r,r.bi_buf),r.bi_buf=0,r.bi_valid=0):r.bi_valid>=8&&(r.pending_buf[r.pending++]=r.bi_buf&255,r.bi_buf>>=8,r.bi_valid-=8)}function kte(r,e){var t=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,a=e.stat_desc.extra_bits,o=e.stat_desc.extra_base,l=e.stat_desc.max_length,h,c,u,d,f,m,g=0;for(d=0;d<=d0;d++)r.bl_count[d]=0;for(t[r.heap[r.heap_max]*2+1]=0,h=r.heap_max+1;hl&&(d=l,g++),t[c*2+1]=d,!(c>i)&&(r.bl_count[d]++,f=0,c>=o&&(f=a[c-o]),m=t[c*2],r.opt_len+=m*(d+f),s&&(r.static_len+=m*(n[c*2+1]+f)));if(g!==0){do{for(d=l-1;r.bl_count[d]===0;)d--;r.bl_count[d]--,r.bl_count[d+1]+=2,r.bl_count[l]--,g-=2}while(g>0);for(d=l;d!==0;d--)for(c=r.bl_count[d];c!==0;)u=r.heap[--h],!(u>i)&&(t[u*2+1]!==d&&(r.opt_len+=(d-t[u*2+1])*t[u*2],t[u*2+1]=d),c--)}}function Tk(r,e,t){var i=new Array(d0+1),n=0,s,a;for(s=1;s<=d0;s++)i[s]=n=n+t[s-1]<<1;for(a=0;a<=e;a++){var o=r[a*2+1];o!==0&&(r[a*2]=Sk(i[o]++,o))}}function Dte(){var r,e,t,i,n,s=new Array(d0+1);for(t=0,i=0;i>=7;i8?Jd(r,r.bi_buf):r.bi_valid>0&&(r.pending_buf[r.pending++]=r.bi_buf),r.bi_buf=0,r.bi_valid=0}function Nte(r,e,t,i){kk(r),i&&(Jd(r,t),Jd(r,~t)),vte.arraySet(r.pending_buf,r.window,e,t,r.pending),r.pending+=t}function ck(r,e,t,i){var n=e*2,s=t*2;return r[n]>1;a>=1;a--)c7(r,t,a);h=s;do a=r.heap[1],r.heap[1]=r.heap[r.heap_len--],c7(r,t,1),o=r.heap[1],r.heap[--r.heap_max]=a,r.heap[--r.heap_max]=o,t[h*2]=t[a*2]+t[o*2],r.depth[h]=(r.depth[a]>=r.depth[o]?r.depth[a]:r.depth[o])+1,t[a*2+1]=t[o*2+1]=h,r.heap[1]=h++,c7(r,t,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],kte(r,e),Tk(t,l,r.bl_count)}function dk(r,e,t){var i,n=-1,s,a=e[0*2+1],o=0,l=7,h=4;for(a===0&&(l=138,h=3),e[(t+1)*2+1]=65535,i=0;i<=t;i++)s=a,a=e[(i+1)*2+1],!(++o=3&&r.bl_tree[bk[e]*2+1]===0;e--);return r.opt_len+=3*(e+1)+5+5+4,e}function Ite(r,e,t,i){var n;for(Sn(r,e-257,5),Sn(r,t-1,5),Sn(r,i-4,4),n=0;n>>=1)if(e&1&&r.dyn_ltree[t*2]!==0)return lk;if(r.dyn_ltree[9*2]!==0||r.dyn_ltree[10*2]!==0||r.dyn_ltree[13*2]!==0)return hk;for(t=32;t<$d;t++)if(r.dyn_ltree[t*2]!==0)return hk;return lk}var mk=!1;function Lte(r){mk||(Dte(),mk=!0),r.l_desc=new h7(r.dyn_ltree,wk),r.d_desc=new h7(r.dyn_dtree,Ak),r.bl_desc=new h7(r.bl_tree,Ek),r.bi_buf=0,r.bi_valid=0,Mk(r)}function Dk(r,e,t,i){Sn(r,(bte<<1)+(i?1:0),3),Nte(r,e,t,!0)}function Ote(r){Sn(r,pk<<1,3),ea(r,p7,Xa),Mte(r)}function Bte(r,e,t,i){var n,s,a=0;r.level>0?(r.strm.data_type===xte&&(r.strm.data_type=zte(r)),d7(r,r.l_desc),d7(r,r.d_desc),a=Fte(r),n=r.opt_len+3+7>>>3,s=r.static_len+3+7>>>3,s<=n&&(n=s)):n=s=t+5,t+4<=n&&e!==-1?Dk(r,e,t,i):r.strategy===yte||s===n?(Sn(r,(pk<<1)+(i?1:0),3),uk(r,Xa,Kd)):(Sn(r,(wte<<1)+(i?1:0),3),Ite(r,r.l_desc.max_code+1,r.d_desc.max_code+1,a+1),uk(r,r.dyn_ltree,r.dyn_dtree)),Mk(r),i&&kk(r)}function Rte(r,e,t){return r.pending_buf[r.d_buf+r.last_lit*2]=e>>>8&255,r.pending_buf[r.d_buf+r.last_lit*2+1]=e&255,r.pending_buf[r.l_buf+r.last_lit]=t&255,r.last_lit++,e===0?r.dyn_ltree[t*2]++:(r.matches++,e--,r.dyn_ltree[(Zd[t]+$d+1)*2]++,r.dyn_dtree[Ck(e)*2]++),r.last_lit===r.lit_bufsize-1}hc._tr_init=Lte;hc._tr_stored_block=Dk;hc._tr_flush_block=Bte;hc._tr_tally=Rte;hc._tr_align=Ote});var v7=Dt((jxe,Fk)=>{"use strict";function Pte(r,e,t,i){for(var n=r&65535|0,s=r>>>16&65535|0,a=0;t!==0;){a=t>2e3?2e3:t,t-=a;do n=n+e[i++]|0,s=s+n|0;while(--a);n%=65521,s%=65521}return n|s<<16|0}Fk.exports=Pte});var y7=Dt((Gxe,Ik)=>{"use strict";function _te(){for(var r,e=[],t=0;t<256;t++){r=t;for(var i=0;i<8;i++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r}return e}var qte=_te();function Ute(r,e,t,i){var n=qte,s=i+t;r^=-1;for(var a=i;a>>8^n[(r^e[a])&255];return r^-1}Ik.exports=Ute});var g2=Dt((Wxe,zk)=>{"use strict";zk.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var Hk=Dt(ia=>{"use strict";var en=Qa(),ns=Nk(),Rk=v7(),Zo=y7(),Hte=g2(),g0=0,jte=1,Gte=3,rl=4,Lk=5,ra=0,Ok=1,ss=-2,Wte=-3,x7=-5,Yte=-1,Vte=1,v2=2,Kte=3,Qte=4,Xte=0,Zte=2,w2=8,Jte=9,$te=15,ere=8,tre=29,rre=256,w7=rre+1+tre,ire=30,nre=19,sre=2*w7+1,are=15,qt=3,el=258,Ms=el+qt+1,ore=32,A2=42,A7=69,y2=73,x2=91,b2=103,f0=113,t1=666,si=1,r1=2,m0=3,dc=4,lre=3;function tl(r,e){return r.msg=Hte[e],e}function Bk(r){return(r<<1)-(r>4?9:0)}function $o(r){for(var e=r.length;--e>=0;)r[e]=0}function Jo(r){var e=r.state,t=e.pending;t>r.avail_out&&(t=r.avail_out),t!==0&&(en.arraySet(r.output,e.pending_buf,e.pending_out,t,r.next_out),r.next_out+=t,e.pending_out+=t,r.total_out+=t,r.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))}function gi(r,e){ns._tr_flush_block(r,r.block_start>=0?r.block_start:-1,r.strstart-r.block_start,e),r.block_start=r.strstart,Jo(r.strm)}function Yt(r,e){r.pending_buf[r.pending++]=e}function e1(r,e){r.pending_buf[r.pending++]=e>>>8&255,r.pending_buf[r.pending++]=e&255}function hre(r,e,t,i){var n=r.avail_in;return n>i&&(n=i),n===0?0:(r.avail_in-=n,en.arraySet(e,r.input,r.next_in,n,t),r.state.wrap===1?r.adler=Rk(r.adler,e,n,t):r.state.wrap===2&&(r.adler=Zo(r.adler,e,n,t)),r.next_in+=n,r.total_in+=n,n)}function Pk(r,e){var t=r.max_chain_length,i=r.strstart,n,s,a=r.prev_length,o=r.nice_match,l=r.strstart>r.w_size-Ms?r.strstart-(r.w_size-Ms):0,h=r.window,c=r.w_mask,u=r.prev,d=r.strstart+el,f=h[i+a-1],m=h[i+a];r.prev_length>=r.good_match&&(t>>=2),o>r.lookahead&&(o=r.lookahead);do if(n=e,!(h[n+a]!==m||h[n+a-1]!==f||h[n]!==h[i]||h[++n]!==h[i+1])){i+=2,n++;do;while(h[++i]===h[++n]&&h[++i]===h[++n]&&h[++i]===h[++n]&&h[++i]===h[++n]&&h[++i]===h[++n]&&h[++i]===h[++n]&&h[++i]===h[++n]&&h[++i]===h[++n]&&ia){if(r.match_start=e,a=s,s>=o)break;f=h[i+a-1],m=h[i+a]}}while((e=u[e&c])>l&&--t!==0);return a<=r.lookahead?a:r.lookahead}function p0(r){var e=r.w_size,t,i,n,s,a;do{if(s=r.window_size-r.lookahead-r.strstart,r.strstart>=e+(e-Ms)){en.arraySet(r.window,r.window,e,e,0),r.match_start-=e,r.strstart-=e,r.block_start-=e,i=r.hash_size,t=i;do n=r.head[--t],r.head[t]=n>=e?n-e:0;while(--i);i=e,t=i;do n=r.prev[--t],r.prev[t]=n>=e?n-e:0;while(--i);s+=e}if(r.strm.avail_in===0)break;if(i=hre(r.strm,r.window,r.strstart+r.lookahead,s),r.lookahead+=i,r.lookahead+r.insert>=qt)for(a=r.strstart-r.insert,r.ins_h=r.window[a],r.ins_h=(r.ins_h<r.pending_buf_size-5&&(t=r.pending_buf_size-5);;){if(r.lookahead<=1){if(p0(r),r.lookahead===0&&e===g0)return si;if(r.lookahead===0)break}r.strstart+=r.lookahead,r.lookahead=0;var i=r.block_start+t;if((r.strstart===0||r.strstart>=i)&&(r.lookahead=r.strstart-i,r.strstart=i,gi(r,!1),r.strm.avail_out===0)||r.strstart-r.block_start>=r.w_size-Ms&&(gi(r,!1),r.strm.avail_out===0))return si}return r.insert=0,e===rl?(gi(r,!0),r.strm.avail_out===0?m0:dc):(r.strstart>r.block_start&&(gi(r,!1),r.strm.avail_out===0),si)}function b7(r,e){for(var t,i;;){if(r.lookahead=qt&&(r.ins_h=(r.ins_h<=qt)if(i=ns._tr_tally(r,r.strstart-r.match_start,r.match_length-qt),r.lookahead-=r.match_length,r.match_length<=r.max_lazy_match&&r.lookahead>=qt){r.match_length--;do r.strstart++,r.ins_h=(r.ins_h<=qt&&(r.ins_h=(r.ins_h<4096)&&(r.match_length=qt-1)),r.prev_length>=qt&&r.match_length<=r.prev_length){n=r.strstart+r.lookahead-qt,i=ns._tr_tally(r,r.strstart-1-r.prev_match,r.prev_length-qt),r.lookahead-=r.prev_length-1,r.prev_length-=2;do++r.strstart<=n&&(r.ins_h=(r.ins_h<=qt&&r.strstart>0&&(n=r.strstart-1,i=a[n],i===a[++n]&&i===a[++n]&&i===a[++n])){s=r.strstart+el;do;while(i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&i===a[++n]&&nr.lookahead&&(r.match_length=r.lookahead)}if(r.match_length>=qt?(t=ns._tr_tally(r,1,r.match_length-qt),r.lookahead-=r.match_length,r.strstart+=r.match_length,r.match_length=0):(t=ns._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++),t&&(gi(r,!1),r.strm.avail_out===0))return si}return r.insert=0,e===rl?(gi(r,!0),r.strm.avail_out===0?m0:dc):r.last_lit&&(gi(r,!1),r.strm.avail_out===0)?si:r1}function dre(r,e){for(var t;;){if(r.lookahead===0&&(p0(r),r.lookahead===0)){if(e===g0)return si;break}if(r.match_length=0,t=ns._tr_tally(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++,t&&(gi(r,!1),r.strm.avail_out===0))return si}return r.insert=0,e===rl?(gi(r,!0),r.strm.avail_out===0?m0:dc):r.last_lit&&(gi(r,!1),r.strm.avail_out===0)?si:r1}function ta(r,e,t,i,n){this.good_length=r,this.max_lazy=e,this.nice_length=t,this.max_chain=i,this.func=n}var uc;uc=[new ta(0,0,0,0,cre),new ta(4,4,8,4,b7),new ta(4,5,16,8,b7),new ta(4,6,32,32,b7),new ta(4,4,16,16,cc),new ta(8,16,32,32,cc),new ta(8,16,128,128,cc),new ta(8,32,128,256,cc),new ta(32,128,258,1024,cc),new ta(32,258,258,4096,cc)];function fre(r){r.window_size=2*r.w_size,$o(r.head),r.max_lazy_match=uc[r.level].max_lazy,r.good_match=uc[r.level].good_length,r.nice_match=uc[r.level].nice_length,r.max_chain_length=uc[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=qt-1,r.match_available=0,r.ins_h=0}function mre(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=w2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new en.Buf16(sre*2),this.dyn_dtree=new en.Buf16((2*ire+1)*2),this.bl_tree=new en.Buf16((2*nre+1)*2),$o(this.dyn_ltree),$o(this.dyn_dtree),$o(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new en.Buf16(are+1),this.heap=new en.Buf16(2*w7+1),$o(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new en.Buf16(2*w7+1),$o(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function _k(r){var e;return!r||!r.state?tl(r,ss):(r.total_in=r.total_out=0,r.data_type=Zte,e=r.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?A2:f0,r.adler=e.wrap===2?0:1,e.last_flush=g0,ns._tr_init(e),ra)}function qk(r){var e=_k(r);return e===ra&&fre(r.state),e}function pre(r,e){return!r||!r.state||r.state.wrap!==2?ss:(r.state.gzhead=e,ra)}function Uk(r,e,t,i,n,s){if(!r)return ss;var a=1;if(e===Yte&&(e=6),i<0?(a=0,i=-i):i>15&&(a=2,i-=16),n<1||n>Jte||t!==w2||i<8||i>15||e<0||e>9||s<0||s>Qte)return tl(r,ss);i===8&&(i=9);var o=new mre;return r.state=o,o.strm=r,o.wrap=a,o.gzhead=null,o.w_bits=i,o.w_size=1<Lk||e<0)return r?tl(r,ss):ss;if(i=r.state,!r.output||!r.input&&r.avail_in!==0||i.status===t1&&e!==rl)return tl(r,r.avail_out===0?x7:ss);if(i.strm=r,t=i.last_flush,i.last_flush=e,i.status===A2)if(i.wrap===2)r.adler=0,Yt(i,31),Yt(i,139),Yt(i,8),i.gzhead?(Yt(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),Yt(i,i.gzhead.time&255),Yt(i,i.gzhead.time>>8&255),Yt(i,i.gzhead.time>>16&255),Yt(i,i.gzhead.time>>24&255),Yt(i,i.level===9?2:i.strategy>=v2||i.level<2?4:0),Yt(i,i.gzhead.os&255),i.gzhead.extra&&i.gzhead.extra.length&&(Yt(i,i.gzhead.extra.length&255),Yt(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(r.adler=Zo(r.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=A7):(Yt(i,0),Yt(i,0),Yt(i,0),Yt(i,0),Yt(i,0),Yt(i,i.level===9?2:i.strategy>=v2||i.level<2?4:0),Yt(i,lre),i.status=f0);else{var a=w2+(i.w_bits-8<<4)<<8,o=-1;i.strategy>=v2||i.level<2?o=0:i.level<6?o=1:i.level===6?o=2:o=3,a|=o<<6,i.strstart!==0&&(a|=ore),a+=31-a%31,i.status=f0,e1(i,a),i.strstart!==0&&(e1(i,r.adler>>>16),e1(i,r.adler&65535)),r.adler=1}if(i.status===A7)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(i.gzhead.extra.length&65535)&&!(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(r.adler=Zo(r.adler,i.pending_buf,i.pending-n,n)),Jo(r),n=i.pending,i.pending===i.pending_buf_size));)Yt(i,i.gzhead.extra[i.gzindex]&255),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(r.adler=Zo(r.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=y2)}else i.status=y2;if(i.status===y2)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(r.adler=Zo(r.adler,i.pending_buf,i.pending-n,n)),Jo(r),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}i.gzindexn&&(r.adler=Zo(r.adler,i.pending_buf,i.pending-n,n)),s===0&&(i.gzindex=0,i.status=x2)}else i.status=x2;if(i.status===x2)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(r.adler=Zo(r.adler,i.pending_buf,i.pending-n,n)),Jo(r),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}i.gzindexn&&(r.adler=Zo(r.adler,i.pending_buf,i.pending-n,n)),s===0&&(i.status=b2)}else i.status=b2;if(i.status===b2&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&Jo(r),i.pending+2<=i.pending_buf_size&&(Yt(i,r.adler&255),Yt(i,r.adler>>8&255),r.adler=0,i.status=f0)):i.status=f0),i.pending!==0){if(Jo(r),r.avail_out===0)return i.last_flush=-1,ra}else if(r.avail_in===0&&Bk(e)<=Bk(t)&&e!==rl)return tl(r,x7);if(i.status===t1&&r.avail_in!==0)return tl(r,x7);if(r.avail_in!==0||i.lookahead!==0||e!==g0&&i.status!==t1){var l=i.strategy===v2?dre(i,e):i.strategy===Kte?ure(i,e):uc[i.level].func(i,e);if((l===m0||l===dc)&&(i.status=t1),l===si||l===m0)return r.avail_out===0&&(i.last_flush=-1),ra;if(l===r1&&(e===jte?ns._tr_align(i):e!==Lk&&(ns._tr_stored_block(i,0,0,!1),e===Gte&&($o(i.head),i.lookahead===0&&(i.strstart=0,i.block_start=0,i.insert=0))),Jo(r),r.avail_out===0))return i.last_flush=-1,ra}return e!==rl?ra:i.wrap<=0?Ok:(i.wrap===2?(Yt(i,r.adler&255),Yt(i,r.adler>>8&255),Yt(i,r.adler>>16&255),Yt(i,r.adler>>24&255),Yt(i,r.total_in&255),Yt(i,r.total_in>>8&255),Yt(i,r.total_in>>16&255),Yt(i,r.total_in>>24&255)):(e1(i,r.adler>>>16),e1(i,r.adler&65535)),Jo(r),i.wrap>0&&(i.wrap=-i.wrap),i.pending!==0?ra:Ok)}function yre(r){var e;return!r||!r.state?ss:(e=r.state.status,e!==A2&&e!==A7&&e!==y2&&e!==x2&&e!==b2&&e!==f0&&e!==t1?tl(r,ss):(r.state=null,e===f0?tl(r,Wte):ra))}function xre(r,e){var t=e.length,i,n,s,a,o,l,h,c;if(!r||!r.state||(i=r.state,a=i.wrap,a===2||a===1&&i.status!==A2||i.lookahead))return ss;for(a===1&&(r.adler=Rk(r.adler,e,t,0)),i.wrap=0,t>=i.w_size&&(a===0&&($o(i.head),i.strstart=0,i.block_start=0,i.insert=0),c=new en.Buf8(i.w_size),en.arraySet(c,e,t-i.w_size,i.w_size,0),e=c,t=i.w_size),o=r.avail_in,l=r.next_in,h=r.input,r.avail_in=t,r.next_in=0,r.input=e,p0(i);i.lookahead>=qt;){n=i.strstart,s=i.lookahead-(qt-1);do i.ins_h=(i.ins_h<{"use strict";var E2=Qa(),jk=!0,Gk=!0;try{String.fromCharCode.apply(null,[0])}catch(r){jk=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(r){Gk=!1}var i1=new E2.Buf8(256);for(Za=0;Za<256;Za++)i1[Za]=Za>=252?6:Za>=248?5:Za>=240?4:Za>=224?3:Za>=192?2:1;var Za;i1[254]=i1[254]=1;fc.string2buf=function(r){var e,t,i,n,s,a=r.length,o=0;for(n=0;n>>6,e[s++]=128|t&63):t<65536?(e[s++]=224|t>>>12,e[s++]=128|t>>>6&63,e[s++]=128|t&63):(e[s++]=240|t>>>18,e[s++]=128|t>>>12&63,e[s++]=128|t>>>6&63,e[s++]=128|t&63);return e};function Wk(r,e){if(e<65534&&(r.subarray&&Gk||!r.subarray&&jk))return String.fromCharCode.apply(null,E2.shrinkBuf(r,e));for(var t="",i=0;i4){o[i++]=65533,t+=s-1;continue}for(n&=s===2?31:s===3?15:7;s>1&&t1){o[i++]=65533;continue}n<65536?o[i++]=n:(n-=65536,o[i++]=55296|n>>10&1023,o[i++]=56320|n&1023)}return Wk(o,i)};fc.utf8border=function(r,e){var t;for(e=e||r.length,e>r.length&&(e=r.length),t=e-1;t>=0&&(r[t]&192)===128;)t--;return t<0||t===0?e:t+i1[r[t]]>e?t:e}});var C7=Dt((Kxe,Yk)=>{"use strict";function bre(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}Yk.exports=bre});var Xk=Dt(a1=>{"use strict";var n1=Hk(),s1=Qa(),T7=E7(),M7=g2(),wre=C7(),Qk=Object.prototype.toString,Are=0,S7=4,mc=0,Vk=1,Kk=2,Ere=-1,Cre=0,Sre=8;function v0(r){if(!(this instanceof v0))return new v0(r);this.options=s1.assign({level:Ere,method:Sre,chunkSize:16384,windowBits:15,memLevel:8,strategy:Cre,to:""},r||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wre,this.strm.avail_out=0;var t=n1.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==mc)throw new Error(M7[t]);if(e.header&&n1.deflateSetHeader(this.strm,e.header),e.dictionary){var i;if(typeof e.dictionary=="string"?i=T7.string2buf(e.dictionary):Qk.call(e.dictionary)==="[object ArrayBuffer]"?i=new Uint8Array(e.dictionary):i=e.dictionary,t=n1.deflateSetDictionary(this.strm,i),t!==mc)throw new Error(M7[t]);this._dict_set=!0}}v0.prototype.push=function(r,e){var t=this.strm,i=this.options.chunkSize,n,s;if(this.ended)return!1;s=e===~~e?e:e===!0?S7:Are,typeof r=="string"?t.input=T7.string2buf(r):Qk.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;do{if(t.avail_out===0&&(t.output=new s1.Buf8(i),t.next_out=0,t.avail_out=i),n=n1.deflate(t,s),n!==Vk&&n!==mc)return this.onEnd(n),this.ended=!0,!1;(t.avail_out===0||t.avail_in===0&&(s===S7||s===Kk))&&(this.options.to==="string"?this.onData(T7.buf2binstring(s1.shrinkBuf(t.output,t.next_out))):this.onData(s1.shrinkBuf(t.output,t.next_out)))}while((t.avail_in>0||t.avail_out===0)&&n!==Vk);return s===S7?(n=n1.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===mc):(s===Kk&&(this.onEnd(mc),t.avail_out=0),!0)};v0.prototype.onData=function(r){this.chunks.push(r)};v0.prototype.onEnd=function(r){r===mc&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=s1.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};function k7(r,e){var t=new v0(e);if(t.push(r,!0),t.err)throw t.msg||M7[t.err];return t.result}function Tre(r,e){return e=e||{},e.raw=!0,k7(r,e)}function Mre(r,e){return e=e||{},e.gzip=!0,k7(r,e)}a1.Deflate=v0;a1.deflate=k7;a1.deflateRaw=Tre;a1.gzip=Mre});var Jk=Dt((Xxe,Zk)=>{"use strict";var C2=30,kre=12;Zk.exports=function(e,t){var i,n,s,a,o,l,h,c,u,d,f,m,g,v,y,A,b,C,M,D,L,k,V,B,_;i=e.state,n=e.next_in,B=e.input,s=n+(e.avail_in-5),a=e.next_out,_=e.output,o=a-(t-e.avail_out),l=a+(e.avail_out-257),h=i.dmax,c=i.wsize,u=i.whave,d=i.wnext,f=i.window,m=i.hold,g=i.bits,v=i.lencode,y=i.distcode,A=(1<>>24,m>>>=M,g-=M,M=C>>>16&255,M===0)_[a++]=C&65535;else if(M&16){D=C&65535,M&=15,M&&(g>>=M,g-=M),g<15&&(m+=B[n++]<>>24,m>>>=M,g-=M,M=C>>>16&255,M&16){if(L=C&65535,M&=15,gh){e.msg="invalid distance too far back",i.mode=C2;break e}if(m>>>=M,g-=M,M=a-o,L>M){if(M=L-M,M>u&&i.sane){e.msg="invalid distance too far back",i.mode=C2;break e}if(k=0,V=f,d===0){if(k+=c-M,M2;)_[a++]=V[k++],_[a++]=V[k++],_[a++]=V[k++],D-=3;D&&(_[a++]=V[k++],D>1&&(_[a++]=V[k++]))}else{k=a-L;do _[a++]=_[k++],_[a++]=_[k++],_[a++]=_[k++],D-=3;while(D>2);D&&(_[a++]=_[k++],D>1&&(_[a++]=_[k++]))}}else if(M&64){e.msg="invalid distance code",i.mode=C2;break e}else{C=y[(C&65535)+(m&(1<>3,n-=D,g-=D<<3,m&=(1<{"use strict";var $k=Qa(),pc=15,eD=852,tD=592,rD=0,D7=1,iD=2,Dre=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Nre=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],Fre=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],Ire=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];nD.exports=function(e,t,i,n,s,a,o,l){var h=l.bits,c=0,u=0,d=0,f=0,m=0,g=0,v=0,y=0,A=0,b=0,C,M,D,L,k,V=null,B=0,_,S=new $k.Buf16(pc+1),G=new $k.Buf16(pc+1),Q=null,Y=0,ne,ee,be;for(c=0;c<=pc;c++)S[c]=0;for(u=0;u=1&&S[f]===0;f--);if(m>f&&(m=f),f===0)return s[a++]=1<<24|64<<16|0,s[a++]=1<<24|64<<16|0,l.bits=1,0;for(d=1;d0&&(e===rD||f!==1))return-1;for(G[1]=0,c=1;ceD||e===iD&&A>tD)return 1;for(;;){ne=c-v,o[u]<_?(ee=0,be=o[u]):o[u]>_?(ee=Q[Y+o[u]],be=V[B+o[u]]):(ee=32+64,be=0),C=1<>v)+M]=ne<<24|ee<<16|be|0;while(M!==0);for(C=1<>=1;if(C!==0?(b&=C-1,b+=C):b=0,u++,--S[c]===0){if(c===f)break;c=t[i+o[u]]}if(c>m&&(b&L)!==D){for(v===0&&(v=m),k+=d,g=c-v,y=1<eD||e===iD&&A>tD)return 1;D=b&L,s[D]=m<<24|g<<16|k-a|0}}return b!==0&&(s[k+b]=c-v<<24|64<<16|0),l.bits=m,0}});var qD=Dt(ks=>{"use strict";var _n=Qa(),O7=v7(),na=y7(),zre=Jk(),o1=sD(),Lre=0,FD=1,ID=2,aD=4,Ore=5,S2=6,y0=0,Bre=1,Rre=2,as=-2,zD=-3,B7=-4,Pre=-5,oD=8,LD=1,lD=2,hD=3,cD=4,uD=5,dD=6,fD=7,mD=8,pD=9,gD=10,k2=11,Ja=12,N7=13,vD=14,F7=15,yD=16,xD=17,bD=18,wD=19,T2=20,M2=21,AD=22,ED=23,CD=24,SD=25,TD=26,I7=27,MD=28,kD=29,Er=30,R7=31,_re=32,qre=852,Ure=592,Hre=15,jre=Hre;function DD(r){return(r>>>24&255)+(r>>>8&65280)+((r&65280)<<8)+((r&255)<<24)}function Gre(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new _n.Buf16(320),this.work=new _n.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function OD(r){var e;return!r||!r.state?as:(e=r.state,r.total_in=r.total_out=e.total=0,r.msg="",e.wrap&&(r.adler=e.wrap&1),e.mode=LD,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new _n.Buf32(qre),e.distcode=e.distdyn=new _n.Buf32(Ure),e.sane=1,e.back=-1,y0)}function BD(r){var e;return!r||!r.state?as:(e=r.state,e.wsize=0,e.whave=0,e.wnext=0,OD(r))}function RD(r,e){var t,i;return!r||!r.state||(i=r.state,e<0?(t=0,e=-e):(t=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15))?as:(i.window!==null&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,BD(r))}function PD(r,e){var t,i;return r?(i=new Gre,r.state=i,i.window=null,t=RD(r,e),t!==y0&&(r.state=null),t):as}function Wre(r){return PD(r,jre)}var ND=!0,z7,L7;function Yre(r){if(ND){var e;for(z7=new _n.Buf32(512),L7=new _n.Buf32(32),e=0;e<144;)r.lens[e++]=8;for(;e<256;)r.lens[e++]=9;for(;e<280;)r.lens[e++]=7;for(;e<288;)r.lens[e++]=8;for(o1(FD,r.lens,0,288,z7,0,r.work,{bits:9}),e=0;e<32;)r.lens[e++]=5;o1(ID,r.lens,0,32,L7,0,r.work,{bits:5}),ND=!1}r.lencode=z7,r.lenbits=9,r.distcode=L7,r.distbits=5}function _D(r,e,t,i){var n,s=r.state;return s.window===null&&(s.wsize=1<=s.wsize?(_n.arraySet(s.window,e,t-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),_n.arraySet(s.window,e,t-i,n,s.wnext),i-=n,i?(_n.arraySet(s.window,e,t-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,t.check=na(t.check,V,2,0),h=0,c=0,t.mode=lD;break}if(t.flags=0,t.head&&(t.head.done=!1),!(t.wrap&1)||(((h&255)<<8)+(h>>8))%31){r.msg="incorrect header check",t.mode=Er;break}if((h&15)!==oD){r.msg="unknown compression method",t.mode=Er;break}if(h>>>=4,c-=4,L=(h&15)+8,t.wbits===0)t.wbits=L;else if(L>t.wbits){r.msg="invalid window size",t.mode=Er;break}t.dmax=1<>8&1),t.flags&512&&(V[0]=h&255,V[1]=h>>>8&255,t.check=na(t.check,V,2,0)),h=0,c=0,t.mode=hD;case hD:for(;c<32;){if(o===0)break e;o--,h+=i[s++]<>>8&255,V[2]=h>>>16&255,V[3]=h>>>24&255,t.check=na(t.check,V,4,0)),h=0,c=0,t.mode=cD;case cD:for(;c<16;){if(o===0)break e;o--,h+=i[s++]<>8),t.flags&512&&(V[0]=h&255,V[1]=h>>>8&255,t.check=na(t.check,V,2,0)),h=0,c=0,t.mode=uD;case uD:if(t.flags&1024){for(;c<16;){if(o===0)break e;o--,h+=i[s++]<>>8&255,t.check=na(t.check,V,2,0)),h=0,c=0}else t.head&&(t.head.extra=null);t.mode=dD;case dD:if(t.flags&1024&&(f=t.length,f>o&&(f=o),f&&(t.head&&(L=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Array(t.head.extra_len)),_n.arraySet(t.head.extra,i,s,f,L)),t.flags&512&&(t.check=na(t.check,i,f,s)),o-=f,s+=f,t.length-=f),t.length))break e;t.length=0,t.mode=fD;case fD:if(t.flags&2048){if(o===0)break e;f=0;do L=i[s+f++],t.head&&L&&t.length<65536&&(t.head.name+=String.fromCharCode(L));while(L&&f>9&1,t.head.done=!0),r.adler=t.check=0,t.mode=Ja;break;case gD:for(;c<32;){if(o===0)break e;o--,h+=i[s++]<>>=c&7,c-=c&7,t.mode=I7;break}for(;c<3;){if(o===0)break e;o--,h+=i[s++]<>>=1,c-=1,h&3){case 0:t.mode=vD;break;case 1:if(Yre(t),t.mode=T2,e===S2){h>>>=2,c-=2;break e}break;case 2:t.mode=xD;break;case 3:r.msg="invalid block type",t.mode=Er}h>>>=2,c-=2;break;case vD:for(h>>>=c&7,c-=c&7;c<32;){if(o===0)break e;o--,h+=i[s++]<>>16^65535)){r.msg="invalid stored block lengths",t.mode=Er;break}if(t.length=h&65535,h=0,c=0,t.mode=F7,e===S2)break e;case F7:t.mode=yD;case yD:if(f=t.length,f){if(f>o&&(f=o),f>l&&(f=l),f===0)break e;_n.arraySet(n,i,s,f,a),o-=f,s+=f,l-=f,a+=f,t.length-=f;break}t.mode=Ja;break;case xD:for(;c<14;){if(o===0)break e;o--,h+=i[s++]<>>=5,c-=5,t.ndist=(h&31)+1,h>>>=5,c-=5,t.ncode=(h&15)+4,h>>>=4,c-=4,t.nlen>286||t.ndist>30){r.msg="too many length or distance symbols",t.mode=Er;break}t.have=0,t.mode=bD;case bD:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[S[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,B={bits:t.lenbits},k=o1(Lre,t.lens,0,19,t.lencode,0,t.work,B),t.lenbits=B.bits,k){r.msg="invalid code lengths set",t.mode=Er;break}t.have=0,t.mode=wD;case wD:for(;t.have>>24,A=v>>>16&255,b=v&65535,!(y<=c);){if(o===0)break e;o--,h+=i[s++]<>>=y,c-=y,t.lens[t.have++]=b;else{if(b===16){for(_=y+2;c<_;){if(o===0)break e;o--,h+=i[s++]<>>=y,c-=y,t.have===0){r.msg="invalid bit length repeat",t.mode=Er;break}L=t.lens[t.have-1],f=3+(h&3),h>>>=2,c-=2}else if(b===17){for(_=y+3;c<_;){if(o===0)break e;o--,h+=i[s++]<>>=y,c-=y,L=0,f=3+(h&7),h>>>=3,c-=3}else{for(_=y+7;c<_;){if(o===0)break e;o--,h+=i[s++]<>>=y,c-=y,L=0,f=11+(h&127),h>>>=7,c-=7}if(t.have+f>t.nlen+t.ndist){r.msg="invalid bit length repeat",t.mode=Er;break}for(;f--;)t.lens[t.have++]=L}}if(t.mode===Er)break;if(t.lens[256]===0){r.msg="invalid code -- missing end-of-block",t.mode=Er;break}if(t.lenbits=9,B={bits:t.lenbits},k=o1(FD,t.lens,0,t.nlen,t.lencode,0,t.work,B),t.lenbits=B.bits,k){r.msg="invalid literal/lengths set",t.mode=Er;break}if(t.distbits=6,t.distcode=t.distdyn,B={bits:t.distbits},k=o1(ID,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,B),t.distbits=B.bits,k){r.msg="invalid distances set",t.mode=Er;break}if(t.mode=T2,e===S2)break e;case T2:t.mode=M2;case M2:if(o>=6&&l>=258){r.next_out=a,r.avail_out=l,r.next_in=s,r.avail_in=o,t.hold=h,t.bits=c,zre(r,d),a=r.next_out,n=r.output,l=r.avail_out,s=r.next_in,i=r.input,o=r.avail_in,h=t.hold,c=t.bits,t.mode===Ja&&(t.back=-1);break}for(t.back=0;v=t.lencode[h&(1<>>24,A=v>>>16&255,b=v&65535,!(y<=c);){if(o===0)break e;o--,h+=i[s++]<>C)],y=v>>>24,A=v>>>16&255,b=v&65535,!(C+y<=c);){if(o===0)break e;o--,h+=i[s++]<>>=C,c-=C,t.back+=C}if(h>>>=y,c-=y,t.back+=y,t.length=b,A===0){t.mode=TD;break}if(A&32){t.back=-1,t.mode=Ja;break}if(A&64){r.msg="invalid literal/length code",t.mode=Er;break}t.extra=A&15,t.mode=AD;case AD:if(t.extra){for(_=t.extra;c<_;){if(o===0)break e;o--,h+=i[s++]<>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=ED;case ED:for(;v=t.distcode[h&(1<>>24,A=v>>>16&255,b=v&65535,!(y<=c);){if(o===0)break e;o--,h+=i[s++]<>C)],y=v>>>24,A=v>>>16&255,b=v&65535,!(C+y<=c);){if(o===0)break e;o--,h+=i[s++]<>>=C,c-=C,t.back+=C}if(h>>>=y,c-=y,t.back+=y,A&64){r.msg="invalid distance code",t.mode=Er;break}t.offset=b,t.extra=A&15,t.mode=CD;case CD:if(t.extra){for(_=t.extra;c<_;){if(o===0)break e;o--,h+=i[s++]<>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){r.msg="invalid distance too far back",t.mode=Er;break}t.mode=SD;case SD:if(l===0)break e;if(f=d-l,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){r.msg="invalid distance too far back",t.mode=Er;break}f>t.wnext?(f-=t.wnext,m=t.wsize-f):m=t.wnext-f,f>t.length&&(f=t.length),g=t.window}else g=n,m=a-t.offset,f=t.length;f>l&&(f=l),l-=f,t.length-=f;do n[a++]=g[m++];while(--f);t.length===0&&(t.mode=M2);break;case TD:if(l===0)break e;n[a++]=t.length,l--,t.mode=M2;break;case I7:if(t.wrap){for(;c<32;){if(o===0)break e;o--,h|=i[s++]<{"use strict";UD.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var jD=Dt((ebe,HD)=>{"use strict";function Zre(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}HD.exports=Zre});var WD=Dt(h1=>{"use strict";var gc=qD(),l1=Qa(),D2=E7(),Hr=P7(),_7=g2(),Jre=C7(),$re=jD(),GD=Object.prototype.toString;function x0(r){if(!(this instanceof x0))return new x0(r);this.options=l1.assign({chunkSize:16384,windowBits:0,to:""},r||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(r&&r.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Jre,this.strm.avail_out=0;var t=gc.inflateInit2(this.strm,e.windowBits);if(t!==Hr.Z_OK)throw new Error(_7[t]);if(this.header=new $re,gc.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=D2.string2buf(e.dictionary):GD.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=gc.inflateSetDictionary(this.strm,e.dictionary),t!==Hr.Z_OK)))throw new Error(_7[t])}x0.prototype.push=function(r,e){var t=this.strm,i=this.options.chunkSize,n=this.options.dictionary,s,a,o,l,h,c=!1;if(this.ended)return!1;a=e===~~e?e:e===!0?Hr.Z_FINISH:Hr.Z_NO_FLUSH,typeof r=="string"?t.input=D2.binstring2buf(r):GD.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;do{if(t.avail_out===0&&(t.output=new l1.Buf8(i),t.next_out=0,t.avail_out=i),s=gc.inflate(t,Hr.Z_NO_FLUSH),s===Hr.Z_NEED_DICT&&n&&(s=gc.inflateSetDictionary(this.strm,n)),s===Hr.Z_BUF_ERROR&&c===!0&&(s=Hr.Z_OK,c=!1),s!==Hr.Z_STREAM_END&&s!==Hr.Z_OK)return this.onEnd(s),this.ended=!0,!1;t.next_out&&(t.avail_out===0||s===Hr.Z_STREAM_END||t.avail_in===0&&(a===Hr.Z_FINISH||a===Hr.Z_SYNC_FLUSH))&&(this.options.to==="string"?(o=D2.utf8border(t.output,t.next_out),l=t.next_out-o,h=D2.buf2string(t.output,o),t.next_out=l,t.avail_out=i-l,l&&l1.arraySet(t.output,t.output,o,l,0),this.onData(h)):this.onData(l1.shrinkBuf(t.output,t.next_out))),t.avail_in===0&&t.avail_out===0&&(c=!0)}while((t.avail_in>0||t.avail_out===0)&&s!==Hr.Z_STREAM_END);return s===Hr.Z_STREAM_END&&(a=Hr.Z_FINISH),a===Hr.Z_FINISH?(s=gc.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===Hr.Z_OK):(a===Hr.Z_SYNC_FLUSH&&(this.onEnd(Hr.Z_OK),t.avail_out=0),!0)};x0.prototype.onData=function(r){this.chunks.push(r)};x0.prototype.onEnd=function(r){r===Hr.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=l1.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};function q7(r,e){var t=new x0(e);if(t.push(r,!0),t.err)throw t.msg||_7[t.err];return t.result}function eie(r,e){return e=e||{},e.raw=!0,q7(r,e)}h1.Inflate=x0;h1.inflate=q7;h1.inflateRaw=eie;h1.ungzip=q7});var c1=Dt((rbe,VD)=>{"use strict";var tie=Qa().assign,rie=Xk(),iie=WD(),nie=P7(),YD={};tie(YD,rie,iie,nie);VD.exports=YD});var I8=Dt((F8,Uc)=>{(function(r,e){typeof F8=="object"&&typeof Uc!="undefined"?Uc.exports=e():typeof define=="function"&&define.amd?define(e):r.moment=e()})(F8,function(){"use strict";var r;function e(){return r.apply(null,arguments)}function t(p){r=p}function i(p){return p instanceof Array||Object.prototype.toString.call(p)==="[object Array]"}function n(p){return p!=null&&Object.prototype.toString.call(p)==="[object Object]"}function s(p,x){return Object.prototype.hasOwnProperty.call(p,x)}function a(p){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(p).length===0;var x;for(x in p)if(s(p,x))return!1;return!0}function o(p){return p===void 0}function l(p){return typeof p=="number"||Object.prototype.toString.call(p)==="[object Number]"}function h(p){return p instanceof Date||Object.prototype.toString.call(p)==="[object Date]"}function c(p,x){var E=[],N,P=p.length;for(N=0;N>>0,N;for(N=0;N0)for(E=0;E<$;E++)N=A[E],P=x[N],o(P)||(p[N]=P);return p}function M(p){C(this,p),this._d=new Date(p._d!=null?p._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),b===!1&&(b=!0,e.updateOffset(this),b=!1)}function D(p){return p instanceof M||p!=null&&p._isAMomentObject!=null}function L(p){e.suppressDeprecationWarnings===!1&&typeof console!="undefined"&&console.warn&&console.warn("Deprecation warning: "+p)}function k(p,x){var E=!0;return u(function(){if(e.deprecationHandler!=null&&e.deprecationHandler(null,p),E){var N=[],P,$,pe,Ue=arguments.length;for($=0;$=0;return($?E?"+":"":"-")+Math.pow(10,Math.max(0,P)).toString().substr(1)+N}var ae=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,O=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Fe={},we={};function R(p,x,E,N){var P=N;typeof N=="string"&&(P=function(){return this[N]()}),p&&(we[p]=P),x&&(we[x[0]]=function(){return be(P.apply(this,arguments),x[1],x[2])}),E&&(we[E]=function(){return this.localeData().ordinal(P.apply(this,arguments),p)})}function gt(p){return p.match(/\[[\s\S]/)?p.replace(/^\[|\]$/g,""):p.replace(/\\/g,"")}function Ct(p){var x=p.match(ae),E,N;for(E=0,N=x.length;E=0&&O.test(p);)p=p.replace(O,N),O.lastIndex=0,E-=1;return p}var le={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function te(p){var x=this._longDateFormat[p],E=this._longDateFormat[p.toUpperCase()];return x||!E?x:(this._longDateFormat[p]=E.match(ae).map(function(N){return N==="MMMM"||N==="MM"||N==="DD"||N==="dddd"?N.slice(1):N}).join(""),this._longDateFormat[p])}var Ye="Invalid date";function We(){return this._invalidDate}var F="%d",de=/\d{1,2}/;function ce(p){return this._ordinal.replace("%d",p)}var K={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function W(p,x,E,N){var P=this._relativeTime[E];return _(P)?P(p,x,E,N):P.replace(/%d/i,p)}function ie(p,x){var E=this._relativeTime[p>0?"future":"past"];return _(E)?E(x):E.replace(/%s/i,x)}var ye={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function ve(p){return typeof p=="string"?ye[p]||ye[p.toLowerCase()]:void 0}function oe(p){var x={},E,N;for(N in p)s(p,N)&&(E=ve(N),E&&(x[E]=p[N]));return x}var ke={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Be(p){var x=[],E;for(E in p)s(p,E)&&x.push({unit:E,priority:ke[E]});return x.sort(function(N,P){return N.priority-P.priority}),x}var Ne=/\d/,qe=/\d\d/,Vt=/\d{3}/,St=/\d{4}/,me=/[+-]?\d{6}/,xe=/\d\d?/,Ve=/\d\d\d\d?/,Ft=/\d\d\d\d\d\d?/,et=/\d{1,3}/,Gr=/\d{1,4}/,di=/[+-]?\d{1,6}/,lr=/\d+/,kn=/[+-]?\d+/,ua=/Z|[+-]\d\d:?\d\d/gi,tr=/Z|[+-]\d\d(?::?\d\d)?/gi,xl=/[+-]?\d+(\.\d{1,3})?/,li=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,jn=/^[1-9]\d?/,io=/^([1-9]\d|\d)/,ef;ef={};function He(p,x,E){ef[p]=_(x)?x:function(N,P){return N&&E?E:x}}function iI(p,x){return s(ef,p)?ef[p](x._strict,x._locale):new RegExp(nI(p))}function nI(p){return da(p.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(x,E,N,P,$){return E||N||P||$}))}function da(p){return p.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Gn(p){return p<0?Math.ceil(p)||0:Math.floor(p)}function Lt(p){var x=+p,E=0;return x!==0&&isFinite(x)&&(E=Gn(x)),E}var ap={};function rr(p,x){var E,N=x,P;for(typeof p=="string"&&(p=[p]),l(x)&&(N=function($,pe){pe[x]=Lt($)}),P=p.length,E=0;E68?1900:2e3)};var B8=B0("FullYear",!0);function lI(){return tf(this.year())}function B0(p,x){return function(E){return E!=null?(R8(this,p,E),e.updateOffset(this,x),this):Gc(this,p)}}function Gc(p,x){if(!p.isValid())return NaN;var E=p._d,N=p._isUTC;switch(x){case"Milliseconds":return N?E.getUTCMilliseconds():E.getMilliseconds();case"Seconds":return N?E.getUTCSeconds():E.getSeconds();case"Minutes":return N?E.getUTCMinutes():E.getMinutes();case"Hours":return N?E.getUTCHours():E.getHours();case"Date":return N?E.getUTCDate():E.getDate();case"Day":return N?E.getUTCDay():E.getDay();case"Month":return N?E.getUTCMonth():E.getMonth();case"FullYear":return N?E.getUTCFullYear():E.getFullYear();default:return NaN}}function R8(p,x,E){var N,P,$,pe,Ue;if(!(!p.isValid()||isNaN(E))){switch(N=p._d,P=p._isUTC,x){case"Milliseconds":return void(P?N.setUTCMilliseconds(E):N.setMilliseconds(E));case"Seconds":return void(P?N.setUTCSeconds(E):N.setSeconds(E));case"Minutes":return void(P?N.setUTCMinutes(E):N.setMinutes(E));case"Hours":return void(P?N.setUTCHours(E):N.setHours(E));case"Date":return void(P?N.setUTCDate(E):N.setDate(E));case"FullYear":break;default:return}$=E,pe=p.month(),Ue=p.date(),Ue=Ue===29&&pe===1&&!tf($)?28:Ue,P?N.setUTCFullYear($,pe,Ue):N.setFullYear($,pe,Ue)}}function hI(p){return p=ve(p),_(this[p])?this[p]():this}function cI(p,x){if(typeof p=="object"){p=oe(p);var E=Be(p),N,P=E.length;for(N=0;N=0?(Ue=new Date(p+400,x,E,N,P,$,pe),isFinite(Ue.getFullYear())&&Ue.setFullYear(p)):Ue=new Date(p,x,E,N,P,$,pe),Ue}function Wc(p){var x,E;return p<100&&p>=0?(E=Array.prototype.slice.call(arguments),E[0]=p+400,x=new Date(Date.UTC.apply(null,E)),isFinite(x.getUTCFullYear())&&x.setUTCFullYear(p)):x=new Date(Date.UTC.apply(null,arguments)),x}function rf(p,x,E){var N=7+x-E,P=(7+Wc(p,0,N).getUTCDay()-x)%7;return-P+N-1}function j8(p,x,E,N,P){var $=(7+E-N)%7,pe=rf(p,N,P),Ue=1+7*(x-1)+$+pe,dt,_t;return Ue<=0?(dt=p-1,_t=jc(dt)+Ue):Ue>jc(p)?(dt=p+1,_t=Ue-jc(p)):(dt=p,_t=Ue),{year:dt,dayOfYear:_t}}function Yc(p,x,E){var N=rf(p.year(),x,E),P=Math.floor((p.dayOfYear()-N-1)/7)+1,$,pe;return P<1?(pe=p.year()-1,$=P+pa(pe,x,E)):P>pa(p.year(),x,E)?($=P-pa(p.year(),x,E),pe=p.year()+1):(pe=p.year(),$=P),{week:$,year:pe}}function pa(p,x,E){var N=rf(p,x,E),P=rf(p+1,x,E);return(jc(p)-N+P)/7}R("w",["ww",2],"wo","week"),R("W",["WW",2],"Wo","isoWeek"),He("w",xe,jn),He("ww",xe,qe),He("W",xe,jn),He("WW",xe,qe),Hc(["w","ww","W","WW"],function(p,x,E,N){x[N.substr(0,1)]=Lt(p)});function EI(p){return Yc(p,this._week.dow,this._week.doy).week}var CI={dow:0,doy:6};function SI(){return this._week.dow}function TI(){return this._week.doy}function MI(p){var x=this.localeData().week(this);return p==null?x:this.add((p-x)*7,"d")}function kI(p){var x=Yc(this,1,4).week;return p==null?x:this.add((p-x)*7,"d")}R("d",0,"do","day"),R("dd",0,0,function(p){return this.localeData().weekdaysMin(this,p)}),R("ddd",0,0,function(p){return this.localeData().weekdaysShort(this,p)}),R("dddd",0,0,function(p){return this.localeData().weekdays(this,p)}),R("e",0,0,"weekday"),R("E",0,0,"isoWeekday"),He("d",xe),He("e",xe),He("E",xe),He("dd",function(p,x){return x.weekdaysMinRegex(p)}),He("ddd",function(p,x){return x.weekdaysShortRegex(p)}),He("dddd",function(p,x){return x.weekdaysRegex(p)}),Hc(["dd","ddd","dddd"],function(p,x,E,N){var P=E._locale.weekdaysParse(p,N,E._strict);P!=null?x.d=P:m(E).invalidWeekday=p}),Hc(["d","e","E"],function(p,x,E,N){x[N]=Lt(p)});function DI(p,x){return typeof p!="string"?p:isNaN(p)?(p=x.weekdaysParse(p),typeof p=="number"?p:null):parseInt(p,10)}function NI(p,x){return typeof p=="string"?x.weekdaysParse(p)%7||7:isNaN(p)?null:p}function lp(p,x){return p.slice(x,7).concat(p.slice(0,x))}var FI="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),G8="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),II="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),zI=li,LI=li,OI=li;function BI(p,x){var E=i(this._weekdays)?this._weekdays:this._weekdays[p&&p!==!0&&this._weekdays.isFormat.test(x)?"format":"standalone"];return p===!0?lp(E,this._week.dow):p?E[p.day()]:E}function RI(p){return p===!0?lp(this._weekdaysShort,this._week.dow):p?this._weekdaysShort[p.day()]:this._weekdaysShort}function PI(p){return p===!0?lp(this._weekdaysMin,this._week.dow):p?this._weekdaysMin[p.day()]:this._weekdaysMin}function _I(p,x,E){var N,P,$,pe=p.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],N=0;N<7;++N)$=d([2e3,1]).day(N),this._minWeekdaysParse[N]=this.weekdaysMin($,"").toLocaleLowerCase(),this._shortWeekdaysParse[N]=this.weekdaysShort($,"").toLocaleLowerCase(),this._weekdaysParse[N]=this.weekdays($,"").toLocaleLowerCase();return E?x==="dddd"?(P=Rr.call(this._weekdaysParse,pe),P!==-1?P:null):x==="ddd"?(P=Rr.call(this._shortWeekdaysParse,pe),P!==-1?P:null):(P=Rr.call(this._minWeekdaysParse,pe),P!==-1?P:null):x==="dddd"?(P=Rr.call(this._weekdaysParse,pe),P!==-1||(P=Rr.call(this._shortWeekdaysParse,pe),P!==-1)?P:(P=Rr.call(this._minWeekdaysParse,pe),P!==-1?P:null)):x==="ddd"?(P=Rr.call(this._shortWeekdaysParse,pe),P!==-1||(P=Rr.call(this._weekdaysParse,pe),P!==-1)?P:(P=Rr.call(this._minWeekdaysParse,pe),P!==-1?P:null)):(P=Rr.call(this._minWeekdaysParse,pe),P!==-1||(P=Rr.call(this._weekdaysParse,pe),P!==-1)?P:(P=Rr.call(this._shortWeekdaysParse,pe),P!==-1?P:null))}function qI(p,x,E){var N,P,$;if(this._weekdaysParseExact)return _I.call(this,p,x,E);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),N=0;N<7;N++){if(P=d([2e3,1]).day(N),E&&!this._fullWeekdaysParse[N]&&(this._fullWeekdaysParse[N]=new RegExp("^"+this.weekdays(P,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[N]=new RegExp("^"+this.weekdaysShort(P,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[N]=new RegExp("^"+this.weekdaysMin(P,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[N]||($="^"+this.weekdays(P,"")+"|^"+this.weekdaysShort(P,"")+"|^"+this.weekdaysMin(P,""),this._weekdaysParse[N]=new RegExp($.replace(".",""),"i")),E&&x==="dddd"&&this._fullWeekdaysParse[N].test(p))return N;if(E&&x==="ddd"&&this._shortWeekdaysParse[N].test(p))return N;if(E&&x==="dd"&&this._minWeekdaysParse[N].test(p))return N;if(!E&&this._weekdaysParse[N].test(p))return N}}function UI(p){if(!this.isValid())return p!=null?this:NaN;var x=Gc(this,"Day");return p!=null?(p=DI(p,this.localeData()),this.add(p-x,"d")):x}function HI(p){if(!this.isValid())return p!=null?this:NaN;var x=(this.day()+7-this.localeData()._week.dow)%7;return p==null?x:this.add(p-x,"d")}function jI(p){if(!this.isValid())return p!=null?this:NaN;if(p!=null){var x=NI(p,this.localeData());return this.day(this.day()%7?x:x-7)}else return this.day()||7}function GI(p){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||hp.call(this),p?this._weekdaysStrictRegex:this._weekdaysRegex):(s(this,"_weekdaysRegex")||(this._weekdaysRegex=zI),this._weekdaysStrictRegex&&p?this._weekdaysStrictRegex:this._weekdaysRegex)}function WI(p){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||hp.call(this),p?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(s(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=LI),this._weekdaysShortStrictRegex&&p?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function YI(p){return this._weekdaysParseExact?(s(this,"_weekdaysRegex")||hp.call(this),p?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(s(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=OI),this._weekdaysMinStrictRegex&&p?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function hp(){function p(Bi,ba){return ba.length-Bi.length}var x=[],E=[],N=[],P=[],$,pe,Ue,dt,_t;for($=0;$<7;$++)pe=d([2e3,1]).day($),Ue=da(this.weekdaysMin(pe,"")),dt=da(this.weekdaysShort(pe,"")),_t=da(this.weekdays(pe,"")),x.push(Ue),E.push(dt),N.push(_t),P.push(Ue),P.push(dt),P.push(_t);x.sort(p),E.sort(p),N.sort(p),P.sort(p),this._weekdaysRegex=new RegExp("^("+P.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+N.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+E.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+x.join("|")+")","i")}function cp(){return this.hours()%12||12}function VI(){return this.hours()||24}R("H",["HH",2],0,"hour"),R("h",["hh",2],0,cp),R("k",["kk",2],0,VI),R("hmm",0,0,function(){return""+cp.apply(this)+be(this.minutes(),2)}),R("hmmss",0,0,function(){return""+cp.apply(this)+be(this.minutes(),2)+be(this.seconds(),2)}),R("Hmm",0,0,function(){return""+this.hours()+be(this.minutes(),2)}),R("Hmmss",0,0,function(){return""+this.hours()+be(this.minutes(),2)+be(this.seconds(),2)});function W8(p,x){R(p,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),x)})}W8("a",!0),W8("A",!1);function Y8(p,x){return x._meridiemParse}He("a",Y8),He("A",Y8),He("H",xe,io),He("h",xe,jn),He("k",xe,jn),He("HH",xe,qe),He("hh",xe,qe),He("kk",xe,qe),He("hmm",Ve),He("hmmss",Ft),He("Hmm",Ve),He("Hmmss",Ft),rr(["H","HH"],Jr),rr(["k","kk"],function(p,x,E){var N=Lt(p);x[Jr]=N===24?0:N}),rr(["a","A"],function(p,x,E){E._isPm=E._locale.isPM(p),E._meridiem=p}),rr(["h","hh"],function(p,x,E){x[Jr]=Lt(p),m(E).bigHour=!0}),rr("hmm",function(p,x,E){var N=p.length-2;x[Jr]=Lt(p.substr(0,N)),x[ms]=Lt(p.substr(N)),m(E).bigHour=!0}),rr("hmmss",function(p,x,E){var N=p.length-4,P=p.length-2;x[Jr]=Lt(p.substr(0,N)),x[ms]=Lt(p.substr(N,2)),x[ma]=Lt(p.substr(P)),m(E).bigHour=!0}),rr("Hmm",function(p,x,E){var N=p.length-2;x[Jr]=Lt(p.substr(0,N)),x[ms]=Lt(p.substr(N))}),rr("Hmmss",function(p,x,E){var N=p.length-4,P=p.length-2;x[Jr]=Lt(p.substr(0,N)),x[ms]=Lt(p.substr(N,2)),x[ma]=Lt(p.substr(P))});function KI(p){return(p+"").toLowerCase().charAt(0)==="p"}var QI=/[ap]\.?m?\.?/i,XI=B0("Hours",!0);function ZI(p,x,E){return p>11?E?"pm":"PM":E?"am":"AM"}var V8={calendar:ne,longDateFormat:le,invalidDate:Ye,ordinal:F,dayOfMonthOrdinalParse:de,relativeTime:K,months:dI,monthsShort:P8,week:CI,weekdays:FI,weekdaysMin:II,weekdaysShort:G8,meridiemParse:QI},br={},Vc={},Kc;function JI(p,x){var E,N=Math.min(p.length,x.length);for(E=0;E0;){if(P=nf($.slice(0,E).join("-")),P)return P;if(N&&N.length>=E&&JI($,N)>=E-1)break;E--}x++}return Kc}function ez(p){return!!(p&&p.match("^[^/\\\\]*$"))}function nf(p){var x=null,E;if(br[p]===void 0&&typeof Uc!="undefined"&&Uc&&Uc.exports&&ez(p))try{x=Kc._abbr,E=require,E("./locale/"+p),no(x)}catch(N){br[p]=null}return br[p]}function no(p,x){var E;return p&&(o(x)?E=ga(p):E=up(p,x),E?Kc=E:typeof console!="undefined"&&console.warn&&console.warn("Locale "+p+" not found. Did you forget to load it?")),Kc._abbr}function up(p,x){if(x!==null){var E,N=V8;if(x.abbr=p,br[p]!=null)B("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),N=br[p]._config;else if(x.parentLocale!=null)if(br[x.parentLocale]!=null)N=br[x.parentLocale]._config;else if(E=nf(x.parentLocale),E!=null)N=E._config;else return Vc[x.parentLocale]||(Vc[x.parentLocale]=[]),Vc[x.parentLocale].push({name:p,config:x}),null;return br[p]=new Q(G(N,x)),Vc[p]&&Vc[p].forEach(function(P){up(P.name,P.config)}),no(p),br[p]}else return delete br[p],null}function tz(p,x){if(x!=null){var E,N,P=V8;br[p]!=null&&br[p].parentLocale!=null?br[p].set(G(br[p]._config,x)):(N=nf(p),N!=null&&(P=N._config),x=G(P,x),N==null&&(x.abbr=p),E=new Q(x),E.parentLocale=br[p],br[p]=E),no(p)}else br[p]!=null&&(br[p].parentLocale!=null?(br[p]=br[p].parentLocale,p===no()&&no(p)):br[p]!=null&&delete br[p]);return br[p]}function ga(p){var x;if(p&&p._locale&&p._locale._abbr&&(p=p._locale._abbr),!p)return Kc;if(!i(p)){if(x=nf(p),x)return x;p=[p]}return $I(p)}function rz(){return Y(br)}function dp(p){var x,E=p._a;return E&&m(p).overflow===-2&&(x=E[fa]<0||E[fa]>11?fa:E[zs]<1||E[zs]>op(E[yi],E[fa])?zs:E[Jr]<0||E[Jr]>24||E[Jr]===24&&(E[ms]!==0||E[ma]!==0||E[bl]!==0)?Jr:E[ms]<0||E[ms]>59?ms:E[ma]<0||E[ma]>59?ma:E[bl]<0||E[bl]>999?bl:-1,m(p)._overflowDayOfYear&&(xzs)&&(x=zs),m(p)._overflowWeeks&&x===-1&&(x=aI),m(p)._overflowWeekday&&x===-1&&(x=oI),m(p).overflow=x),p}var iz=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,nz=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,sz=/Z|[+-]\d\d(?::?\d\d)?/,sf=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],fp=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],az=/^\/?Date\((-?\d+)/i,oz=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,lz={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function Q8(p){var x,E,N=p._i,P=iz.exec(N)||nz.exec(N),$,pe,Ue,dt,_t=sf.length,Bi=fp.length;if(P){for(m(p).iso=!0,x=0,E=_t;xjc(pe)||p._dayOfYear===0)&&(m(p)._overflowDayOfYear=!0),E=Wc(pe,0,p._dayOfYear),p._a[fa]=E.getUTCMonth(),p._a[zs]=E.getUTCDate()),x=0;x<3&&p._a[x]==null;++x)p._a[x]=N[x]=P[x];for(;x<7;x++)p._a[x]=N[x]=p._a[x]==null?x===2?1:0:p._a[x];p._a[Jr]===24&&p._a[ms]===0&&p._a[ma]===0&&p._a[bl]===0&&(p._nextDay=!0,p._a[Jr]=0),p._d=(p._useUTC?Wc:AI).apply(null,N),$=p._useUTC?p._d.getUTCDay():p._d.getDay(),p._tzm!=null&&p._d.setUTCMinutes(p._d.getUTCMinutes()-p._tzm),p._nextDay&&(p._a[Jr]=24),p._w&&typeof p._w.d!="undefined"&&p._w.d!==$&&(m(p).weekdayMismatch=!0)}}function gz(p){var x,E,N,P,$,pe,Ue,dt,_t;x=p._w,x.GG!=null||x.W!=null||x.E!=null?($=1,pe=4,E=R0(x.GG,p._a[yi],Yc(fr(),1,4).year),N=R0(x.W,1),P=R0(x.E,1),(P<1||P>7)&&(dt=!0)):($=p._locale._week.dow,pe=p._locale._week.doy,_t=Yc(fr(),$,pe),E=R0(x.gg,p._a[yi],_t.year),N=R0(x.w,_t.week),x.d!=null?(P=x.d,(P<0||P>6)&&(dt=!0)):x.e!=null?(P=x.e+$,(x.e<0||x.e>6)&&(dt=!0)):P=$),N<1||N>pa(E,$,pe)?m(p)._overflowWeeks=!0:dt!=null?m(p)._overflowWeekday=!0:(Ue=j8(E,N,P,$,pe),p._a[yi]=Ue.year,p._dayOfYear=Ue.dayOfYear)}e.ISO_8601=function(){},e.RFC_2822=function(){};function pp(p){if(p._f===e.ISO_8601){Q8(p);return}if(p._f===e.RFC_2822){X8(p);return}p._a=[],m(p).empty=!0;var x=""+p._i,E,N,P,$,pe,Ue=x.length,dt=0,_t,Bi;for(P=I(p._f,p._locale).match(ae)||[],Bi=P.length,E=0;E0&&m(p).unusedInput.push(pe),x=x.slice(x.indexOf(N)+N.length),dt+=N.length),we[$]?(N?m(p).empty=!1:m(p).unusedTokens.push($),sI($,N,p)):p._strict&&!N&&m(p).unusedTokens.push($);m(p).charsLeftOver=Ue-dt,x.length>0&&m(p).unusedInput.push(x),p._a[Jr]<=12&&m(p).bigHour===!0&&p._a[Jr]>0&&(m(p).bigHour=void 0),m(p).parsedDateParts=p._a.slice(0),m(p).meridiem=p._meridiem,p._a[Jr]=vz(p._locale,p._a[Jr],p._meridiem),_t=m(p).era,_t!==null&&(p._a[yi]=p._locale.erasConvertYear(_t,p._a[yi])),mp(p),dp(p)}function vz(p,x,E){var N;return E==null?x:p.meridiemHour!=null?p.meridiemHour(x,E):(p.isPM!=null&&(N=p.isPM(E),N&&x<12&&(x+=12),!N&&x===12&&(x=0)),x)}function yz(p){var x,E,N,P,$,pe,Ue=!1,dt=p._f.length;if(dt===0){m(p).invalidFormat=!0,p._d=new Date(NaN);return}for(P=0;Pthis?this:p:y()});function $8(p,x){var E,N;if(x.length===1&&i(x[0])&&(x=x[0]),!x.length)return fr();for(E=x[0],N=1;Nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function _z(){if(!o(this._isDSTShifted))return this._isDSTShifted;var p={},x;return C(p,this),p=Z8(p),p._a?(x=p._isUTC?d(p._a):fr(p._a),this._isDSTShifted=this.isValid()&&Nz(p._a,x.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function qz(){return this.isValid()?!this._isUTC:!1}function Uz(){return this.isValid()?this._isUTC:!1}function tv(){return this.isValid()?this._isUTC&&this._offset===0:!1}var Hz=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,jz=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function ps(p,x){var E=p,N=null,P,$,pe;return of(p)?E={ms:p._milliseconds,d:p._days,M:p._months}:l(p)||!isNaN(+p)?(E={},x?E[x]=+p:E.milliseconds=+p):(N=Hz.exec(p))?(P=N[1]==="-"?-1:1,E={y:0,d:Lt(N[zs])*P,h:Lt(N[Jr])*P,m:Lt(N[ms])*P,s:Lt(N[ma])*P,ms:Lt(gp(N[bl]*1e3))*P}):(N=jz.exec(p))?(P=N[1]==="-"?-1:1,E={y:wl(N[2],P),M:wl(N[3],P),w:wl(N[4],P),d:wl(N[5],P),h:wl(N[6],P),m:wl(N[7],P),s:wl(N[8],P)}):E==null?E={}:typeof E=="object"&&("from"in E||"to"in E)&&(pe=Gz(fr(E.from),fr(E.to)),E={},E.ms=pe.milliseconds,E.M=pe.months),$=new af(E),of(p)&&s(p,"_locale")&&($._locale=p._locale),of(p)&&s(p,"_isValid")&&($._isValid=p._isValid),$}ps.fn=af.prototype,ps.invalid=Dz;function wl(p,x){var E=p&&parseFloat(p.replace(",","."));return(isNaN(E)?0:E)*x}function rv(p,x){var E={};return E.months=x.month()-p.month()+(x.year()-p.year())*12,p.clone().add(E.months,"M").isAfter(x)&&--E.months,E.milliseconds=+x-+p.clone().add(E.months,"M"),E}function Gz(p,x){var E;return p.isValid()&&x.isValid()?(x=yp(x,p),p.isBefore(x)?E=rv(p,x):(E=rv(x,p),E.milliseconds=-E.milliseconds,E.months=-E.months),E):{milliseconds:0,months:0}}function iv(p,x){return function(E,N){var P,$;return N!==null&&!isNaN(+N)&&(B(x,"moment()."+x+"(period, number) is deprecated. Please use moment()."+x+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),$=E,E=N,N=$),P=ps(E,N),nv(this,P,p),this}}function nv(p,x,E,N){var P=x._milliseconds,$=gp(x._days),pe=gp(x._months);p.isValid()&&(N=N==null?!0:N,pe&&q8(p,Gc(p,"Month")+pe*E),$&&R8(p,"Date",Gc(p,"Date")+$*E),P&&p._d.setTime(p._d.valueOf()+P*E),N&&e.updateOffset(p,$||pe))}var Wz=iv(1,"add"),Yz=iv(-1,"subtract");function sv(p){return typeof p=="string"||p instanceof String}function Vz(p){return D(p)||h(p)||sv(p)||l(p)||Qz(p)||Kz(p)||p===null||p===void 0}function Kz(p){var x=n(p)&&!a(p),E=!1,N=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],P,$,pe=N.length;for(P=0;PE.valueOf():E.valueOf()9999?U(E,x?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):_(Date.prototype.toISOString)?x?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",U(E,"Z")):U(E,x?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function hL(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var p="moment",x="",E,N,P,$;return this.isLocal()||(p=this.utcOffset()===0?"moment.utc":"moment.parseZone",x="Z"),E="["+p+'("]',N=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",P="-MM-DD[T]HH:mm:ss.SSS",$=x+'[")]',this.format(E+N+P+$)}function cL(p){p||(p=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var x=U(this,p);return this.localeData().postformat(x)}function uL(p,x){return this.isValid()&&(D(p)&&p.isValid()||fr(p).isValid())?ps({to:this,from:p}).locale(this.locale()).humanize(!x):this.localeData().invalidDate()}function dL(p){return this.from(fr(),p)}function fL(p,x){return this.isValid()&&(D(p)&&p.isValid()||fr(p).isValid())?ps({from:this,to:p}).locale(this.locale()).humanize(!x):this.localeData().invalidDate()}function mL(p){return this.to(fr(),p)}function av(p){var x;return p===void 0?this._locale._abbr:(x=ga(p),x!=null&&(this._locale=x),this)}var ov=k("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(p){return p===void 0?this.localeData():this.locale(p)});function lv(){return this._locale}var hf=1e3,P0=60*hf,cf=60*P0,hv=(365*400+97)*24*cf;function _0(p,x){return(p%x+x)%x}function cv(p,x,E){return p<100&&p>=0?new Date(p+400,x,E)-hv:new Date(p,x,E).valueOf()}function uv(p,x,E){return p<100&&p>=0?Date.UTC(p+400,x,E)-hv:Date.UTC(p,x,E)}function pL(p){var x,E;if(p=ve(p),p===void 0||p==="millisecond"||!this.isValid())return this;switch(E=this._isUTC?uv:cv,p){case"year":x=E(this.year(),0,1);break;case"quarter":x=E(this.year(),this.month()-this.month()%3,1);break;case"month":x=E(this.year(),this.month(),1);break;case"week":x=E(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":x=E(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":x=E(this.year(),this.month(),this.date());break;case"hour":x=this._d.valueOf(),x-=_0(x+(this._isUTC?0:this.utcOffset()*P0),cf);break;case"minute":x=this._d.valueOf(),x-=_0(x,P0);break;case"second":x=this._d.valueOf(),x-=_0(x,hf);break}return this._d.setTime(x),e.updateOffset(this,!0),this}function gL(p){var x,E;if(p=ve(p),p===void 0||p==="millisecond"||!this.isValid())return this;switch(E=this._isUTC?uv:cv,p){case"year":x=E(this.year()+1,0,1)-1;break;case"quarter":x=E(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":x=E(this.year(),this.month()+1,1)-1;break;case"week":x=E(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":x=E(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":x=E(this.year(),this.month(),this.date()+1)-1;break;case"hour":x=this._d.valueOf(),x+=cf-_0(x+(this._isUTC?0:this.utcOffset()*P0),cf)-1;break;case"minute":x=this._d.valueOf(),x+=P0-_0(x,P0)-1;break;case"second":x=this._d.valueOf(),x+=hf-_0(x,hf)-1;break}return this._d.setTime(x),e.updateOffset(this,!0),this}function vL(){return this._d.valueOf()-(this._offset||0)*6e4}function yL(){return Math.floor(this.valueOf()/1e3)}function xL(){return new Date(this.valueOf())}function bL(){var p=this;return[p.year(),p.month(),p.date(),p.hour(),p.minute(),p.second(),p.millisecond()]}function wL(){var p=this;return{years:p.year(),months:p.month(),date:p.date(),hours:p.hours(),minutes:p.minutes(),seconds:p.seconds(),milliseconds:p.milliseconds()}}function AL(){return this.isValid()?this.toISOString():null}function EL(){return v(this)}function CL(){return u({},m(this))}function SL(){return m(this).overflow}function TL(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}R("N",0,0,"eraAbbr"),R("NN",0,0,"eraAbbr"),R("NNN",0,0,"eraAbbr"),R("NNNN",0,0,"eraName"),R("NNNNN",0,0,"eraNarrow"),R("y",["y",1],"yo","eraYear"),R("y",["yy",2],0,"eraYear"),R("y",["yyy",3],0,"eraYear"),R("y",["yyyy",4],0,"eraYear"),He("N",bp),He("NN",bp),He("NNN",bp),He("NNNN",RL),He("NNNNN",PL),rr(["N","NN","NNN","NNNN","NNNNN"],function(p,x,E,N){var P=E._locale.erasParse(p,N,E._strict);P?m(E).era=P:m(E).invalidEra=p}),He("y",lr),He("yy",lr),He("yyy",lr),He("yyyy",lr),He("yo",_L),rr(["y","yy","yyy","yyyy"],yi),rr(["yo"],function(p,x,E,N){var P;E._locale._eraYearOrdinalRegex&&(P=p.match(E._locale._eraYearOrdinalRegex)),E._locale.eraYearOrdinalParse?x[yi]=E._locale.eraYearOrdinalParse(p,P):x[yi]=parseInt(p,10)});function ML(p,x){var E,N,P,$=this._eras||ga("en")._eras;for(E=0,N=$.length;E=0)return $[N]}function DL(p,x){var E=p.since<=p.until?1:-1;return x===void 0?e(p.since).year():e(p.since).year()+(x-p.offset)*E}function NL(){var p,x,E,N=this.localeData().eras();for(p=0,x=N.length;p$&&(x=$),YL.call(this,p,x,E,N,P))}function YL(p,x,E,N,P){var $=j8(p,x,E,N,P),pe=Wc($.year,0,$.dayOfYear);return this.year(pe.getUTCFullYear()),this.month(pe.getUTCMonth()),this.date(pe.getUTCDate()),this}R("Q",0,"Qo","quarter"),He("Q",Ne),rr("Q",function(p,x){x[fa]=(Lt(p)-1)*3});function VL(p){return p==null?Math.ceil((this.month()+1)/3):this.month((p-1)*3+this.month()%3)}R("D",["DD",2],"Do","date"),He("D",xe,jn),He("DD",xe,qe),He("Do",function(p,x){return p?x._dayOfMonthOrdinalParse||x._ordinalParse:x._dayOfMonthOrdinalParseLenient}),rr(["D","DD"],zs),rr("Do",function(p,x){x[zs]=Lt(p.match(xe)[0])});var fv=B0("Date",!0);R("DDD",["DDDD",3],"DDDo","dayOfYear"),He("DDD",et),He("DDDD",Vt),rr(["DDD","DDDD"],function(p,x,E){E._dayOfYear=Lt(p)});function KL(p){var x=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return p==null?x:this.add(p-x,"d")}R("m",["mm",2],0,"minute"),He("m",xe,io),He("mm",xe,qe),rr(["m","mm"],ms);var QL=B0("Minutes",!1);R("s",["ss",2],0,"second"),He("s",xe,io),He("ss",xe,qe),rr(["s","ss"],ma);var XL=B0("Seconds",!1);R("S",0,0,function(){return~~(this.millisecond()/100)}),R(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),R(0,["SSS",3],0,"millisecond"),R(0,["SSSS",4],0,function(){return this.millisecond()*10}),R(0,["SSSSS",5],0,function(){return this.millisecond()*100}),R(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),R(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),R(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),R(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),He("S",et,Ne),He("SS",et,qe),He("SSS",et,Vt);var so,mv;for(so="SSSS";so.length<=9;so+="S")He(so,lr);function ZL(p,x){x[bl]=Lt(("0."+p)*1e3)}for(so="S";so.length<=9;so+="S")rr(so,ZL);mv=B0("Milliseconds",!1),R("z",0,0,"zoneAbbr"),R("zz",0,0,"zoneName");function JL(){return this._isUTC?"UTC":""}function $L(){return this._isUTC?"Coordinated Universal Time":""}var De=M.prototype;De.add=Wz,De.calendar=Jz,De.clone=$z,De.diff=aL,De.endOf=gL,De.format=cL,De.from=uL,De.fromNow=dL,De.to=fL,De.toNow=mL,De.get=hI,De.invalidAt=SL,De.isAfter=eL,De.isBefore=tL,De.isBetween=rL,De.isSame=iL,De.isSameOrAfter=nL,De.isSameOrBefore=sL,De.isValid=EL,De.lang=ov,De.locale=av,De.localeData=lv,De.max=Ez,De.min=Az,De.parsingFlags=CL,De.set=cI,De.startOf=pL,De.subtract=Yz,De.toArray=bL,De.toObject=wL,De.toDate=xL,De.toISOString=lL,De.inspect=hL,typeof Symbol!="undefined"&&Symbol.for!=null&&(De[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),De.toJSON=AL,De.toString=oL,De.unix=yL,De.valueOf=vL,De.creationData=TL,De.eraName=NL,De.eraNarrow=FL,De.eraAbbr=IL,De.eraYear=zL,De.year=B8,De.isLeapYear=lI,De.weekYear=qL,De.isoWeekYear=UL,De.quarter=De.quarters=VL,De.month=U8,De.daysInMonth=xI,De.week=De.weeks=MI,De.isoWeek=De.isoWeeks=kI,De.weeksInYear=GL,De.weeksInWeekYear=WL,De.isoWeeksInYear=HL,De.isoWeeksInISOWeekYear=jL,De.date=fv,De.day=De.days=UI,De.weekday=HI,De.isoWeekday=jI,De.dayOfYear=KL,De.hour=De.hours=XI,De.minute=De.minutes=QL,De.second=De.seconds=XL,De.millisecond=De.milliseconds=mv,De.utcOffset=Iz,De.utc=Lz,De.local=Oz,De.parseZone=Bz,De.hasAlignedHourOffset=Rz,De.isDST=Pz,De.isLocal=qz,De.isUtcOffset=Uz,De.isUtc=tv,De.isUTC=tv,De.zoneAbbr=JL,De.zoneName=$L,De.dates=k("dates accessor is deprecated. Use date instead.",fv),De.months=k("months accessor is deprecated. Use month instead",U8),De.years=k("years accessor is deprecated. Use year instead",B8),De.zone=k("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",zz),De.isDSTShifted=k("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",_z);function eO(p){return fr(p*1e3)}function tO(){return fr.apply(null,arguments).parseZone()}function pv(p){return p}var Gt=Q.prototype;Gt.calendar=ee,Gt.longDateFormat=te,Gt.invalidDate=We,Gt.ordinal=ce,Gt.preparse=pv,Gt.postformat=pv,Gt.relativeTime=W,Gt.pastFuture=ie,Gt.set=S,Gt.eras=ML,Gt.erasParse=kL,Gt.erasConvertYear=DL,Gt.erasAbbrRegex=OL,Gt.erasNameRegex=LL,Gt.erasNarrowRegex=BL,Gt.months=pI,Gt.monthsShort=gI,Gt.monthsParse=yI,Gt.monthsRegex=wI,Gt.monthsShortRegex=bI,Gt.week=EI,Gt.firstDayOfYear=TI,Gt.firstDayOfWeek=SI,Gt.weekdays=BI,Gt.weekdaysMin=PI,Gt.weekdaysShort=RI,Gt.weekdaysParse=qI,Gt.weekdaysRegex=GI,Gt.weekdaysShortRegex=WI,Gt.weekdaysMinRegex=YI,Gt.isPM=KI,Gt.meridiem=ZI;function df(p,x,E,N){var P=ga(),$=d().set(N,x);return P[E]($,p)}function gv(p,x,E){if(l(p)&&(x=p,p=void 0),p=p||"",x!=null)return df(p,x,E,"month");var N,P=[];for(N=0;N<12;N++)P[N]=df(p,N,E,"month");return P}function Ap(p,x,E,N){typeof p=="boolean"?(l(x)&&(E=x,x=void 0),x=x||""):(x=p,E=x,p=!1,l(x)&&(E=x,x=void 0),x=x||"");var P=ga(),$=p?P._week.dow:0,pe,Ue=[];if(E!=null)return df(x,(E+$)%7,N,"day");for(pe=0;pe<7;pe++)Ue[pe]=df(x,(pe+$)%7,N,"day");return Ue}function rO(p,x){return gv(p,x,"months")}function iO(p,x){return gv(p,x,"monthsShort")}function nO(p,x,E){return Ap(p,x,E,"weekdays")}function sO(p,x,E){return Ap(p,x,E,"weekdaysShort")}function aO(p,x,E){return Ap(p,x,E,"weekdaysMin")}no("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(p){var x=p%10,E=Lt(p%100/10)===1?"th":x===1?"st":x===2?"nd":x===3?"rd":"th";return p+E}}),e.lang=k("moment.lang is deprecated. Use moment.locale instead.",no),e.langData=k("moment.langData is deprecated. Use moment.localeData instead.",ga);var va=Math.abs;function oO(){var p=this._data;return this._milliseconds=va(this._milliseconds),this._days=va(this._days),this._months=va(this._months),p.milliseconds=va(p.milliseconds),p.seconds=va(p.seconds),p.minutes=va(p.minutes),p.hours=va(p.hours),p.months=va(p.months),p.years=va(p.years),this}function vv(p,x,E,N){var P=ps(x,E);return p._milliseconds+=N*P._milliseconds,p._days+=N*P._days,p._months+=N*P._months,p._bubble()}function lO(p,x){return vv(this,p,x,1)}function hO(p,x){return vv(this,p,x,-1)}function yv(p){return p<0?Math.floor(p):Math.ceil(p)}function cO(){var p=this._milliseconds,x=this._days,E=this._months,N=this._data,P,$,pe,Ue,dt;return p>=0&&x>=0&&E>=0||p<=0&&x<=0&&E<=0||(p+=yv(Ep(E)+x)*864e5,x=0,E=0),N.milliseconds=p%1e3,P=Gn(p/1e3),N.seconds=P%60,$=Gn(P/60),N.minutes=$%60,pe=Gn($/60),N.hours=pe%24,x+=Gn(pe/24),dt=Gn(xv(x)),E+=dt,x-=yv(Ep(dt)),Ue=Gn(E/12),E%=12,N.days=x,N.months=E,N.years=Ue,this}function xv(p){return p*4800/146097}function Ep(p){return p*146097/4800}function uO(p){if(!this.isValid())return NaN;var x,E,N=this._milliseconds;if(p=ve(p),p==="month"||p==="quarter"||p==="year")switch(x=this._days+N/864e5,E=this._months+xv(x),p){case"month":return E;case"quarter":return E/3;case"year":return E/12}else switch(x=this._days+Math.round(Ep(this._months)),p){case"week":return x/7+N/6048e5;case"day":return x+N/864e5;case"hour":return x*24+N/36e5;case"minute":return x*1440+N/6e4;case"second":return x*86400+N/1e3;case"millisecond":return Math.floor(x*864e5)+N;default:throw new Error("Unknown unit "+p)}}function ya(p){return function(){return this.as(p)}}var bv=ya("ms"),dO=ya("s"),fO=ya("m"),mO=ya("h"),pO=ya("d"),gO=ya("w"),vO=ya("M"),yO=ya("Q"),xO=ya("y"),bO=bv;function wO(){return ps(this)}function AO(p){return p=ve(p),this.isValid()?this[p+"s"]():NaN}function Al(p){return function(){return this.isValid()?this._data[p]:NaN}}var EO=Al("milliseconds"),CO=Al("seconds"),SO=Al("minutes"),TO=Al("hours"),MO=Al("days"),kO=Al("months"),DO=Al("years");function NO(){return Gn(this.days()/7)}var xa=Math.round,q0={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function FO(p,x,E,N,P){return P.relativeTime(x||1,!!E,p,N)}function IO(p,x,E,N){var P=ps(p).abs(),$=xa(P.as("s")),pe=xa(P.as("m")),Ue=xa(P.as("h")),dt=xa(P.as("d")),_t=xa(P.as("M")),Bi=xa(P.as("w")),ba=xa(P.as("y")),ao=$<=E.ss&&["s",$]||$0,ao[4]=N,FO.apply(null,ao)}function zO(p){return p===void 0?xa:typeof p=="function"?(xa=p,!0):!1}function LO(p,x){return q0[p]===void 0?!1:x===void 0?q0[p]:(q0[p]=x,p==="s"&&(q0.ss=x-1),!0)}function OO(p,x){if(!this.isValid())return this.localeData().invalidDate();var E=!1,N=q0,P,$;return typeof p=="object"&&(x=p,p=!1),typeof p=="boolean"&&(E=p),typeof x=="object"&&(N=Object.assign({},q0,x),x.s!=null&&x.ss==null&&(N.ss=x.s-1)),P=this.localeData(),$=IO(this,!E,N,P),E&&($=P.pastFuture(+this,$)),P.postformat($)}var Cp=Math.abs;function U0(p){return(p>0)-(p<0)||+p}function ff(){if(!this.isValid())return this.localeData().invalidDate();var p=Cp(this._milliseconds)/1e3,x=Cp(this._days),E=Cp(this._months),N,P,$,pe,Ue=this.asSeconds(),dt,_t,Bi,ba;return Ue?(N=Gn(p/60),P=Gn(N/60),p%=60,N%=60,$=Gn(E/12),E%=12,pe=p?p.toFixed(3).replace(/\.?0+$/,""):"",dt=Ue<0?"-":"",_t=U0(this._months)!==U0(Ue)?"-":"",Bi=U0(this._days)!==U0(Ue)?"-":"",ba=U0(this._milliseconds)!==U0(Ue)?"-":"",dt+"P"+($?_t+$+"Y":"")+(E?_t+E+"M":"")+(x?Bi+x+"D":"")+(P||N||p?"T":"")+(P?ba+P+"H":"")+(N?ba+N+"M":"")+(p?ba+pe+"S":"")):"P0D"}var Ut=af.prototype;Ut.isValid=kz,Ut.abs=oO,Ut.add=lO,Ut.subtract=hO,Ut.as=uO,Ut.asMilliseconds=bv,Ut.asSeconds=dO,Ut.asMinutes=fO,Ut.asHours=mO,Ut.asDays=pO,Ut.asWeeks=gO,Ut.asMonths=vO,Ut.asQuarters=yO,Ut.asYears=xO,Ut.valueOf=bO,Ut._bubble=cO,Ut.clone=wO,Ut.get=AO,Ut.milliseconds=EO,Ut.seconds=CO,Ut.minutes=SO,Ut.hours=TO,Ut.days=MO,Ut.weeks=NO,Ut.months=kO,Ut.years=DO,Ut.humanize=OO,Ut.toISOString=ff,Ut.toString=ff,Ut.toJSON=ff,Ut.locale=av,Ut.localeData=lv,Ut.toIsoString=k("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",ff),Ut.lang=ov,R("X",0,0,"unix"),R("x",0,0,"valueOf"),He("x",kn),He("X",xl),rr("X",function(p,x,E){E._d=new Date(parseFloat(p)*1e3)}),rr("x",function(p,x,E){E._d=new Date(Lt(p))});return e.version="2.30.1",t(fr),e.fn=De,e.min=Cz,e.max=Sz,e.now=Tz,e.utc=d,e.unix=eO,e.months=rO,e.isDate=h,e.locale=no,e.invalid=y,e.duration=ps,e.isMoment=D,e.weekdays=nO,e.parseZone=tO,e.localeData=ga,e.isDuration=of,e.monthsShort=iO,e.weekdaysMin=aO,e.defineLocale=up,e.updateLocale=tz,e.locales=rz,e.weekdaysShort=sO,e.normalizeUnits=ve,e.relativeTimeRounding=zO,e.relativeTimeThreshold=LO,e.calendarFormat=Zz,e.prototype=De,e.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},e})});var eI=Dt((gOe,$F)=>{"use strict";var Hn=function(r){if(r=r||{},this.Promise=r.Promise||Promise,this.queues=Object.create(null),this.domainReentrant=r.domainReentrant||!1,this.domainReentrant){if(typeof process=="undefined"||typeof process.domain=="undefined")throw new Error("Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill.");this.domains=Object.create(null)}this.timeout=r.timeout||Hn.DEFAULT_TIMEOUT,this.maxOccupationTime=r.maxOccupationTime||Hn.DEFAULT_MAX_OCCUPATION_TIME,this.maxExecutionTime=r.maxExecutionTime||Hn.DEFAULT_MAX_EXECUTION_TIME,r.maxPending===1/0||Number.isInteger(r.maxPending)&&r.maxPending>=0?this.maxPending=r.maxPending:this.maxPending=Hn.DEFAULT_MAX_PENDING};Hn.DEFAULT_TIMEOUT=0;Hn.DEFAULT_MAX_OCCUPATION_TIME=0;Hn.DEFAULT_MAX_EXECUTION_TIME=0;Hn.DEFAULT_MAX_PENDING=1e3;Hn.prototype.acquire=function(r,e,t,i){if(Array.isArray(r))return this._acquireBatch(r,e,t,i);if(typeof e!="function")throw new Error("You must pass a function to execute");var n=null,s=null,a=null;typeof t!="function"&&(i=t,t=null,a=new this.Promise(function(A,b){n=A,s=b})),i=i||{};var o=!1,l=null,h=null,c=null,u=this,d=function(A,b,C){h&&(clearTimeout(h),h=null),c&&(clearTimeout(c),c=null),A&&(u.queues[r]&&u.queues[r].length===0&&delete u.queues[r],u.domainReentrant&&delete u.domains[r]),o||(a?b?s(b):n(C):typeof t=="function"&&t(b,C),o=!0),A&&u.queues[r]&&u.queues[r].length>0&&u.queues[r].shift()()},f=function(A){if(o)return d(A);l&&(clearTimeout(l),l=null),u.domainReentrant&&A&&(u.domains[r]=process.domain);var b=i.maxExecutionTime||u.maxExecutionTime;if(b&&(c=setTimeout(function(){u.queues[r]&&d(A,new Error("Maximum execution time is exceeded "+r))},b)),e.length===1){var C=!1;try{e(function(M,D){C||(C=!0,d(A,M,D))})}catch(M){C||(C=!0,d(A,M))}}else u._promiseTry(function(){return e()}).then(function(M){d(A,void 0,M)},function(M){d(A,M)})};u.domainReentrant&&process.domain&&(f=process.domain.bind(f));var m=i.maxPending||u.maxPending;if(!u.queues[r])u.queues[r]=[],f(!0);else if(u.domainReentrant&&process.domain&&process.domain===u.domains[r])f(!1);else if(u.queues[r].length>=m)d(!1,new Error("Too many pending tasks in queue "+r));else{var g=function(){f(!0)};i.skipQueue?u.queues[r].unshift(g):u.queues[r].push(g);var v=i.timeout||u.timeout;v&&(l=setTimeout(function(){l=null,d(!1,new Error("async-lock timed out in queue "+r))},v))}var y=i.maxOccupationTime||u.maxOccupationTime;if(y&&(h=setTimeout(function(){u.queues[r]&&d(!1,new Error("Maximum occupation time is exceeded in queue "+r))},y)),a)return a};Hn.prototype._acquireBatch=function(r,e,t,i){typeof t!="function"&&(i=t,t=null);var n=this,s=function(o,l){return function(h){n.acquire(o,l,h,i)}},a=r.reduceRight(function(o,l){return s(l,o)},e);if(typeof t=="function")a(t);else return new this.Promise(function(o,l){a.length===1?a(function(h,c){h?l(h):o(c)}):o(a())})};Hn.prototype.isBusy=function(r){return r?!!this.queues[r]:Object.keys(this.queues).length>0};Hn.prototype._promiseTry=function(r){try{return this.Promise.resolve(r())}catch(e){return this.Promise.reject(e)}};$F.exports=Hn});var rI=Dt((vOe,tI)=>{"use strict";tI.exports=eI()});var Vse={};Sp(Vse,{default:()=>sp});module.exports=HO(Vse);var Pt=require("obsidian");var or=require("obsidian");var J={CHANGE_THEME:"changeTheme",CHANGE_LAYOUT:"changeLayout",MODE:{READONLY:"readonly",EDIT:"edit"},LAYOUT:{LOGICAL_STRUCTURE:"logicalStructure",LOGICAL_STRUCTURE_LEFT:"logicalStructureLeft",MIND_MAP:"mindMap",ORGANIZATION_STRUCTURE:"organizationStructure",CATALOG_ORGANIZATION:"catalogOrganization",TIMELINE:"timeline",TIMELINE2:"timeline2",FISHBONE:"fishbone",FISHBONE2:"fishbone2",RIGHT_FISHBONE:"rightFishbone",RIGHT_FISHBONE2:"rightFishbone2",VERTICAL_TIMELINE:"verticalTimeline",VERTICAL_TIMELINE2:"verticalTimeline2",VERTICAL_TIMELINE3:"verticalTimeline3"},DIR:{UP:"up",LEFT:"left",DOWN:"down",RIGHT:"right"},KEY_DIR:{LEFT:"Left",UP:"Up",RIGHT:"Right",DOWN:"Down"},SHAPE:{RECTANGLE:"rectangle",DIAMOND:"diamond",PARALLELOGRAM:"parallelogram",ROUNDED_RECTANGLE:"roundedRectangle",OCTAGONAL_RECTANGLE:"octagonalRectangle",OUTER_TRIANGULAR_RECTANGLE:"outerTriangularRectangle",INNER_TRIANGULAR_RECTANGLE:"innerTriangularRectangle",ELLIPSE:"ellipse",CIRCLE:"circle"},MOUSE_WHEEL_ACTION:{ZOOM:"zoom",MOVE:"move"},INIT_ROOT_NODE_POSITION:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom",CENTER:"center"},LAYOUT_GROW_DIR:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom"},PASTE_TYPE:{CLIP_BOARD:"clipBoard",CANVAS:"canvas"},SCROLL_BAR_DIR:{VERTICAL:"vertical",HORIZONTAL:"horizontal"},CREATE_NEW_NODE_BEHAVIOR:{DEFAULT:"default",NOT_ACTIVE:"notActive",ACTIVE_ONLY:"activeOnly"},TAG_PLACEMENT:{RIGHT:"right",BOTTOM:"bottom"},IMG_PLACEMENT:{LEFT:"left",TOP:"top",RIGHT:"right",BOTTOM:"bottom"}},Tp={[J.INIT_ROOT_NODE_POSITION.LEFT]:0,[J.INIT_ROOT_NODE_POSITION.TOP]:0,[J.INIT_ROOT_NODE_POSITION.RIGHT]:1,[J.INIT_ROOT_NODE_POSITION.BOTTOM]:1,[J.INIT_ROOT_NODE_POSITION.CENTER]:.5},Qse=[{name:"\u903B\u8F91\u7ED3\u6784\u56FE",value:J.LAYOUT.LOGICAL_STRUCTURE},{name:"\u5411\u5DE6\u903B\u8F91\u7ED3\u6784\u56FE",value:J.LAYOUT.LOGICAL_STRUCTURE_LEFT},{name:"\u601D\u7EF4\u5BFC\u56FE",value:J.LAYOUT.MIND_MAP},{name:"\u7EC4\u7EC7\u7ED3\u6784\u56FE",value:J.LAYOUT.ORGANIZATION_STRUCTURE},{name:"\u76EE\u5F55\u7EC4\u7EC7\u56FE",value:J.LAYOUT.CATALOG_ORGANIZATION},{name:"\u65F6\u95F4\u8F74",value:J.LAYOUT.TIMELINE},{name:"\u65F6\u95F4\u8F742",value:J.LAYOUT.TIMELINE2},{name:"\u7AD6\u5411\u65F6\u95F4\u8F74",value:J.LAYOUT.VERTICAL_TIMELINE},{name:"\u7AD6\u5411\u65F6\u95F4\u8F742",value:J.LAYOUT.VERTICAL_TIMELINE2},{name:"\u7AD6\u5411\u65F6\u95F4\u8F743",value:J.LAYOUT.VERTICAL_TIMELINE3},{name:"\u9C7C\u9AA8\u56FE",value:J.LAYOUT.FISHBONE},{name:"\u9C7C\u9AA8\u56FE2",value:J.LAYOUT.FISHBONE2},{name:"\u5411\u53F3\u9C7C\u9AA8\u56FE",value:J.LAYOUT.RIGHT_FISHBONE},{name:"\u5411\u53F3\u9C7C\u9AA8\u56FE2",value:J.LAYOUT.RIGHT_FISHBONE2}],Mp=[J.LAYOUT.LOGICAL_STRUCTURE,J.LAYOUT.LOGICAL_STRUCTURE_LEFT,J.LAYOUT.MIND_MAP,J.LAYOUT.CATALOG_ORGANIZATION,J.LAYOUT.ORGANIZATION_STRUCTURE,J.LAYOUT.TIMELINE,J.LAYOUT.TIMELINE2,J.LAYOUT.VERTICAL_TIMELINE,J.LAYOUT.VERTICAL_TIMELINE2,J.LAYOUT.VERTICAL_TIMELINE3,J.LAYOUT.FISHBONE,J.LAYOUT.FISHBONE2,J.LAYOUT.RIGHT_FISHBONE,J.LAYOUT.RIGHT_FISHBONE2],H0=["text","image","imageTitle","imageSize","icon","tag","hyperlink","hyperlinkTitle","note","expand","isActive","generalization","richText","resetRichText","uid","activeStyle","associativeLineTargets","associativeLineTargetControlOffsets","associativeLinePoint","associativeLineText","attachmentUrl","attachmentName","notation","outerFrame","number","range","customLeft","customTop","customTextWidth","checkbox","dir","needUpdate","imgMap","nodeLink"],Wn={READ_CLIPBOARD_ERROR:"read_clipboard_error",PARSE_PASTE_DATA_ERROR:"parse_paste_data_error",CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR:"custom_handle_clipboard_text_error",LOAD_CLIPBOARD_IMAGE_ERROR:"load_clipboard_image_error",BEFORE_TEXT_EDIT_ERROR:"before_text_edit_error",EXPORT_ERROR:"export_error",EXPORT_LOAD_IMAGE_ERROR:"export_load_image_error",DATA_CHANGE_DETAIL_EVENT_ERROR:"data_change_detail_event_error"},Av=` + /* \u9F20\u6807hover\u548C\u6FC0\u6D3B\u65F6\u6E32\u67D3\u7684\u77E9\u5F62 */ + .smm-hover-node{ + display: none; + opacity: 0.6; + stroke-width: 1; + } + + .smm-node:not(.smm-node-dragging):hover .smm-hover-node{ + display: block; + } + + .smm-node.active .smm-hover-node, .smm-node-highlight .smm-hover-node{ + display: block; + opacity: 1; + stroke-width: 2; + } + + .smm-text-node-wrap, .smm-expand-btn-text { + user-select: none; + } +`,Ev=["img","br","hr","input","link","meta","area"],j0=1.2,G0=["fontFamily","fontSize","fontWeight","fontStyle","textDecoration","color","textAlign"];var kp=class{constructor(e={}){this.opt=e,this.mindMap=this.opt.mindMap,this.scale=1,this.sx=0,this.sy=0,this.x=0,this.y=0,this.firstDrag=!0,this.setTransformData(this.mindMap.opt.viewData),this.bind()}bind(){this.mindMap.keyCommand.addShortcut("Control+=",()=>{this.enlarge()}),this.mindMap.keyCommand.addShortcut("Control+-",()=>{this.narrow()}),this.mindMap.keyCommand.addShortcut("Control+i",()=>{this.fit()}),this.mindMap.event.on("mousedown",e=>{let{isDisableDrag:t,mousedownEventPreventDefault:i}=this.mindMap.opt;t||(i&&e.preventDefault(),this.sx=this.x,this.sy=this.y)}),this.mindMap.event.on("drag",(e,t)=>{e.ctrlKey||e.metaKey||this.mindMap.opt.isDisableDrag||(this.firstDrag&&(this.firstDrag=!1,this.mindMap.renderer.activeNodeList.length>0&&this.mindMap.execCommand("CLEAR_ACTIVE_NODE")),this.x=this.sx+t.mousemoveOffset.x,this.y=this.sy+t.mousemoveOffset.y,this.transform())}),this.mindMap.event.on("mouseup",()=>{this.firstDrag=!0}),this.mindMap.event.on("mousewheel",(e,t,i,n)=>{let{customHandleMousewheel:s,mousewheelAction:a,mouseScaleCenterUseMousePosition:o,mousewheelMoveStep:l,mousewheelZoomActionReverse:h,disableMouseWheelZoom:c,translateRatio:u}=this.mindMap.opt;if(s&&typeof s=="function")return s(e);if(a===J.MOUSE_WHEEL_ACTION.ZOOM||e.ctrlKey||e.metaKey){if(c)return;let{x:d,y:f}=this.mindMap.toPos(e.clientX,e.clientY),m=o?d:void 0,g=o?f:void 0;switch(n&&(t.includes(J.DIR.LEFT)||t.includes(J.DIR.RIGHT))&&(t=t.filter(v=>![J.DIR.LEFT,J.DIR.RIGHT].includes(v))),!0){case t.includes(J.DIR.UP||J.DIR.LEFT):h?this.enlarge(m,g,n):this.narrow(m,g,n);break;case t.includes(J.DIR.DOWN||J.DIR.RIGHT):h?this.narrow(m,g,n):this.enlarge(m,g,n);break}}else{let d=0,f=0;n?(d=Math.abs(e.wheelDeltaX),f=Math.abs(e.wheelDeltaY)):d=f=l;let m=0,g=0;t.includes(J.DIR.DOWN)&&(g=-f),t.includes(J.DIR.UP)&&(g=f),t.includes(J.DIR.LEFT)&&(m=d),t.includes(J.DIR.RIGHT)&&(m=-d),this.translateXY(m*u,g*u)}}),this.mindMap.on("resize",()=>{this.checkNeedMindMapInCanvas()&&this.transform()})}getTransformData(){return{transform:this.mindMap.draw.transform(),state:{scale:this.scale,x:this.x,y:this.y,sx:this.sx,sy:this.sy}}}setTransformData(e){e&&(Object.keys(e.state).forEach(t=>{this[t]=e.state[t]}),this.mindMap.draw.transform({...e.transform}),this.mindMap.emit("view_data_change",this.getTransformData()),this.emitEvent("scale"),this.emitEvent("translate"))}translateXY(e,t){e===0&&t===0||(this.x+=e,this.y+=t,this.transform(),this.emitEvent("translate"))}translateX(e){e!==0&&(this.x+=e,this.transform(),this.emitEvent("translate"))}translateXTo(e){this.x=e,this.transform(),this.emitEvent("translate")}translateY(e){e!==0&&(this.y+=e,this.transform(),this.emitEvent("translate"))}translateYTo(e){this.y=e,this.transform(),this.emitEvent("translate")}transform(){try{this.limitMindMapInCanvas()}catch(e){}this.mindMap.draw.transform({origin:[0,0],scale:this.scale,translate:[this.x,this.y]}),this.mindMap.emit("view_data_change",this.getTransformData())}reset(){let e=this.scale!==1,t=this.x!==0||this.y!==0;this.scale=1,this.x=0,this.y=0,this.transform(),e&&this.emitEvent("scale"),t&&this.emitEvent("translate")}narrow(e,t,i){let{scaleRatio:n,minZoomRatio:s}=this.mindMap.opt;n=n/(i?5:1);let a=Math.max(this.scale-n,s/100);this.scaleInCenter(a,e,t),this.transform(),this.emitEvent("scale")}enlarge(e,t,i){let{scaleRatio:n,maxZoomRatio:s}=this.mindMap.opt;n=n/(i?5:1);let a=0;s===-1?a=this.scale+n:a=Math.min(this.scale+n,s/100),this.scaleInCenter(a,e,t),this.transform(),this.emitEvent("scale")}scaleInCenter(e,t,i){(t===void 0||i===void 0)&&(t=this.mindMap.width/2,i=this.mindMap.height/2);let n=this.scale,s=1-e/n,a=(t-this.x)*s,o=(i-this.y)*s;this.x+=a,this.y+=o,this.scale=e}setScale(e,t,i){t!==void 0&&i!==void 0?this.scaleInCenter(e,t,i):this.scale=e,this.transform(),this.emitEvent("scale")}fit(e=()=>{},t=!1,i){i=i===void 0?this.mindMap.opt.fitPadding:i;let n=this.mindMap.draw,s=n.transform(),a=e()||n.rbox(),o=a.width/s.scaleX,l=a.height/s.scaleY,h=o/l,{width:c,height:u}=this.mindMap.elRect;c=c-i*2,u=u-i*2;let d=c/u,f=0,m="";if(o<=c&&l<=u&&!t)f=1,m=1;else{let A=0,b=0;h>d?(A=c,b=c/h,m=2):(b=u,A=u*h,m=3),f=A/o}this.setScale(f);let g=e()||n.rbox();g.x-=this.mindMap.elRect.left,g.y-=this.mindMap.elRect.top;let v=0,y=0;m===1?(v=-g.x+i+(c-g.width)/2,y=-g.y+i+(u-g.height)/2):m===2?(v=-g.x+i,y=-g.y+i+(u-g.height)/2):m===3&&(v=-g.x+i+(c-g.width)/2,y=-g.y+i),this.translateXY(v,y)}checkNeedMindMapInCanvas(){if(this.mindMap.demonstrate&&this.mindMap.demonstrate.isInDemonstrate)return!1;let{isLimitMindMapInCanvasWhenHasScrollbar:e,isLimitMindMapInCanvas:t}=this.mindMap.opt;return this.mindMap.scrollbar?e:t}limitMindMapInCanvas(){if(!this.checkNeedMindMapInCanvas())return;let{scale:e,left:t,top:i,right:n,bottom:s}=this.getPositionLimit(),a=(this.mindMap.width-this.mindMap.initWidth)/2*e,o=(this.mindMap.height-this.mindMap.initHeight)/2*e,l=this.scale/e;t*=l,n*=l,i*=l,s*=l;let h=this.mindMap.width/2,c=this.mindMap.height/2,u=this.scale-1;t-=u*h-a,n-=u*h-a,i-=u*c-o,s-=u*c-o,this.x>t&&(this.x=t),this.xi&&(this.y=i),this.y0&&t.push(J.DIR.DOWN),e.deltaX<0&&t.push(J.DIR.LEFT),e.deltaX>0&&t.push(J.DIR.RIGHT);let i=!1,{customCheckIsTouchPad:n}=this.mindMap.opt;typeof n=="function"?i=n(e):i=Math.abs(e.deltaY)<=10,this.emit("mousewheel",e,t,this,i)}onContextmenu(e){e.preventDefault(),!e.ctrlKey&&this.emit("contextmenu",e)}onKeyup(e){this.emit("keyup",e)}onMouseenter(e){this.emit("svg_mouseenter",e)}onMouseleave(e){this.emit("svg_mouseleave",e)}},kv=Np;var K9=mr($c());var gf,$O=new Uint8Array(16);function Fp(){if(!gf&&(gf=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!gf))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return gf($O)}var fi=[];for(let r=0;r<256;++r)fi.push((r+256).toString(16).slice(1));function Fv(r,e=0){return fi[r[e+0]]+fi[r[e+1]]+fi[r[e+2]]+fi[r[e+3]]+"-"+fi[r[e+4]]+fi[r[e+5]]+"-"+fi[r[e+6]]+fi[r[e+7]]+"-"+fi[r[e+8]]+fi[r[e+9]]+"-"+fi[r[e+10]]+fi[r[e+11]]+fi[r[e+12]]+fi[r[e+13]]+fi[r[e+14]]+fi[r[e+15]]}var eB=typeof crypto!="undefined"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),Ip={randomUUID:eB};function tB(r,e,t){if(Ip.randomUUID&&!e&&!r)return Ip.randomUUID();r=r||{};let i=r.random||(r.rng||Fp)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,e){t=t||0;for(let n=0;n<16;++n)e[t+n]=i[n];return e}return Fv(i)}var eu=tB;function tu(r){this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(r)}tu.prototype.init_genrand=function(r){for(this.mt[0]=r>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(((r&4294901760)>>>16)*1812433253<<16)+(r&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0};tu.prototype.genrand_int32=function(){var r,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var t;for(this.mti==this.N+1&&this.init_genrand(5489),t=0;t>>1^e[r&1];for(;t>>1^e[r&1];r=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^r>>>1^e[r&1],this.mti=0}return r=this.mt[this.mti++],r^=r>>>11,r^=r<<7&2636928640,r^=r<<15&4022730752,r^=r>>>18,r>>>0};var Rp={},Pv=[];function At(r,e){if(Array.isArray(r)){for(let t of r)At(t,e);return}if(typeof r=="object"){for(let t in r)At(t,r[t]);return}_v(Object.getOwnPropertyNames(e)),Rp[r]=Object.assign(Rp[r]||{},e)}function an(r){return Rp[r]||{}}function rB(){return[...new Set(Pv)]}function _v(r){Pv.push(...r)}function Yp(r,e){let t,i=r.length,n=[];for(t=0;t=0;e--)Hv(r.children[e]);return r.id&&(r.id=Uv(r.nodeName)),r}function It(r,e){let t,i;for(r=Array.isArray(r)?r:[r],i=r.length-1;i>=0;i--)for(t in e)r[i].prototype[t]=e[t]}function pr(r){return function(...e){let t=e[e.length-1];return t&&t.constructor===Object&&!(t instanceof Array)?r.apply(this,e.slice(0,-1)).attr(t):r.apply(this,e)}}function hB(){return this.parent().children()}function cB(){return this.parent().index(this)}function uB(){return this.siblings()[this.position()+1]}function dB(){return this.siblings()[this.position()-1]}function fB(){let r=this.position();return this.parent().add(this.remove(),r+1),this}function mB(){let r=this.position();return this.parent().add(this.remove(),r?r-1:0),this}function pB(){return this.parent().add(this.remove()),this}function gB(){return this.parent().add(this.remove(),0),this}function vB(r){r=Pi(r),r.remove();let e=this.position();return this.parent().add(r,e),this}function yB(r){r=Pi(r),r.remove();let e=this.position();return this.parent().add(r,e+1),this}function xB(r){return r=Pi(r),r.before(this),this}function bB(r){return r=Pi(r),r.after(this),this}At("Dom",{siblings:hB,position:cB,next:uB,prev:dB,forward:fB,backward:mB,front:pB,back:gB,before:vB,after:yB,insertBefore:xB,insertAfter:bB});var jv=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,wB=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,AB=/rgb\((\d+),(\d+),(\d+)\)/,EB=/(#[a-z_][a-z0-9\-_]*)/i,CB=/\)\s*,?\s*/,SB=/\s/g,Iv=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,zv=/^rgb\(/,Lv=/^(\s+)?$/,Ov=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,TB=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Ca=/[\s,]+/,Qp=/[MLHVCSQTAZ]/i;function MB(){let r=this.attr("class");return r==null?[]:r.trim().split(Ca)}function kB(r){return this.classes().indexOf(r)!==-1}function DB(r){if(!this.hasClass(r)){let e=this.classes();e.push(r),this.attr("class",e.join(" "))}return this}function NB(r){return this.hasClass(r)&&this.attr("class",this.classes().filter(function(e){return e!==r}).join(" ")),this}function FB(r){return this.hasClass(r)?this.removeClass(r):this.addClass(r)}At("Dom",{classes:MB,hasClass:kB,addClass:DB,removeClass:NB,toggleClass:FB});function IB(r,e){let t={};if(arguments.length===0)return this.node.style.cssText.split(/\s*;\s*/).filter(function(i){return!!i.length}).forEach(function(i){let n=i.split(/\s*:\s*/);t[n[0]]=n[1]}),t;if(arguments.length<2){if(Array.isArray(r)){for(let i of r){let n=vf(i);t[i]=this.node.style[n]}return t}if(typeof r=="string")return this.node.style[vf(r)];if(typeof r=="object")for(let i in r)this.node.style[vf(i)]=r[i]==null||Lv.test(r[i])?"":r[i]}return arguments.length===2&&(this.node.style[vf(r)]=e==null||Lv.test(e)?"":e),this}function zB(){return this.css("display","")}function LB(){return this.css("display","none")}function OB(){return this.css("display")!=="none"}At("Dom",{css:IB,show:zB,hide:LB,visible:OB});function BB(r,e,t){if(r==null)return this.data(Yp(iB(this.node.attributes,i=>i.nodeName.indexOf("data-")===0),i=>i.nodeName.slice(5)));if(r instanceof Array){let i={};for(let n of r)i[n]=this.data(n);return i}else if(typeof r=="object")for(e in r)this.data(e,r[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+r))}catch(i){return this.attr("data-"+r)}else this.attr("data-"+r,e===null?null:t===!0||typeof e=="string"||typeof e=="number"?e:JSON.stringify(e));return this}At("Dom",{data:BB});function RB(r,e){if(typeof arguments[0]=="object")for(let t in r)this.remember(t,r[t]);else{if(arguments.length===1)return this.memory()[r];this.memory()[r]=e}return this}function PB(){if(arguments.length===0)this._memory={};else for(let r=arguments.length-1;r>=0;r--)delete this.memory()[arguments[r]];return this}function _B(){return this._memory=this._memory||{}}At("Dom",{remember:RB,forget:PB,memory:_B});function qB(r){return r.length===4?["#",r.substring(1,2),r.substring(1,2),r.substring(2,3),r.substring(2,3),r.substring(3,4),r.substring(3,4)].join(""):r}function UB(r){let e=Math.round(r),i=Math.max(0,Math.min(255,e)).toString(16);return i.length===1?"0"+i:i}function Y0(r,e){for(let t=e.length;t--;)if(r[e[t]]==null)return!1;return!0}function HB(r,e){let t=Y0(r,"rgb")?{_a:r.r,_b:r.g,_c:r.b,_d:0,space:"rgb"}:Y0(r,"xyz")?{_a:r.x,_b:r.y,_c:r.z,_d:0,space:"xyz"}:Y0(r,"hsl")?{_a:r.h,_b:r.s,_c:r.l,_d:0,space:"hsl"}:Y0(r,"lab")?{_a:r.l,_b:r.a,_c:r.b,_d:0,space:"lab"}:Y0(r,"lch")?{_a:r.l,_b:r.c,_c:r.h,_d:0,space:"lch"}:Y0(r,"cmyk")?{_a:r.c,_b:r.m,_c:r.y,_d:r.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return t.space=e||t.space,t}function jB(r){return r==="lab"||r==="xyz"||r==="lch"}function Op(r,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?r+(e-r)*6*t:t<1/2?e:t<2/3?r+(e-r)*(2/3-t)*6:r}var Kt=class{constructor(...e){this.init(...e)}static isColor(e){return e&&(e instanceof Kt||this.isRgb(e)||this.test(e))}static isRgb(e){return e&&typeof e.r=="number"&&typeof e.g=="number"&&typeof e.b=="number"}static random(e="vibrant",t,i){let{random:n,round:s,sin:a,PI:o}=Math;if(e==="vibrant"){let l=24*n()+57,h=(83-45)*n()+45,c=360*n();return new Kt(l,h,c,"lch")}else if(e==="sine"){t=t==null?n():t;let l=s(80*a(2*o*t/.5+.01)+150),h=s(50*a(2*o*t/.5+4.6)+200),c=s(100*a(2*o*t/.5+2.3)+150);return new Kt(l,h,c)}else if(e==="pastel"){let l=8*n()+86,h=(26-9)*n()+9,c=360*n();return new Kt(l,h,c,"lch")}else if(e==="dark"){let l=10+10*n(),h=(125-75)*n()+86,c=360*n();return new Kt(l,h,c,"lch")}else if(e==="rgb"){let l=255*n(),h=255*n(),c=255*n();return new Kt(l,h,c)}else if(e==="lab"){let l=100*n(),h=256*n()-128,c=256*n()-128;return new Kt(l,h,c,"lab")}else if(e==="grey"){let l=255*n();return new Kt(l,l,l)}else throw new Error("Unsupported random color mode")}static test(e){return typeof e=="string"&&(Iv.test(e)||zv.test(e))}cmyk(){let{_a:e,_b:t,_c:i}=this.rgb(),[n,s,a]=[e,t,i].map(d=>d/255),o=Math.min(1-n,1-s,1-a);if(o===1)return new Kt(0,0,0,1,"cmyk");let l=(1-n-o)/(1-o),h=(1-s-o)/(1-o),c=(1-a-o)/(1-o);return new Kt(l,h,c,o,"cmyk")}hsl(){let{_a:e,_b:t,_c:i}=this.rgb(),[n,s,a]=[e,t,i].map(g=>g/255),o=Math.max(n,s,a),l=Math.min(n,s,a),h=(o+l)/2,c=o===l,u=o-l,d=c?0:h>.5?u/(2-o-l):u/(o+l),f=c?0:o===n?((s-a)/u+(sparseInt(g));Object.assign(this,{_a:d,_b:f,_c:m,_d:0,space:"rgb"})}else if(Iv.test(e)){let u=g=>parseInt(g,16),[,d,f,m]=wB.exec(qB(e)).map(u);Object.assign(this,{_a:d,_b:f,_c:m,_d:0,space:"rgb"})}else throw Error("Unsupported string format, can't construct Color");let{_a:a,_b:o,_c:l,_d:h}=this,c=this.space==="rgb"?{r:a,g:o,b:l}:this.space==="xyz"?{x:a,y:o,z:l}:this.space==="hsl"?{h:a,s:o,l}:this.space==="lab"?{l:a,a:o,b:l}:this.space==="lch"?{l:a,c:o,h:l}:this.space==="cmyk"?{c:a,m:o,y:l,k:h}:{};Object.assign(this,c)}lab(){let{x:e,y:t,z:i}=this.xyz(),n=116*t-16,s=500*(e-t),a=200*(t-i);return new Kt(n,s,a,"lab")}lch(){let{l:e,a:t,b:i}=this.lab(),n=Math.sqrt(t**2+i**2),s=180*Math.atan2(i,t)/Math.PI;return s<0&&(s*=-1,s=360-s),new Kt(e,n,s,"lch")}rgb(){if(this.space==="rgb")return this;if(jB(this.space)){let{x:e,y:t,z:i}=this;if(this.space==="lab"||this.space==="lch"){let{l:f,a:m,b:g}=this;if(this.space==="lch"){let{c:D,h:L}=this,k=Math.PI/180;m=D*Math.cos(k*L),g=D*Math.sin(k*L)}let v=(f+16)/116,y=m/500+v,A=v-g/200,b=16/116,C=.008856,M=7.787;e=.95047*(y**3>C?y**3:(y-b)/M),t=1*(v**3>C?v**3:(v-b)/M),i=1.08883*(A**3>C?A**3:(A-b)/M)}let n=e*3.2406+t*-1.5372+i*-.4986,s=e*-.9689+t*1.8758+i*.0415,a=e*.0557+t*-.204+i*1.057,o=Math.pow,l=.0031308,h=n>l?1.055*o(n,1/2.4)-.055:12.92*n,c=s>l?1.055*o(s,1/2.4)-.055:12.92*s,u=a>l?1.055*o(a,1/2.4)-.055:12.92*a;return new Kt(255*h,255*c,255*u)}else if(this.space==="hsl"){let{h:e,s:t,l:i}=this;if(e/=360,t/=100,i/=100,t===0)return i*=255,new Kt(i,i,i);let n=i<.5?i*(1+t):i+t-i*t,s=2*i-n,a=255*Op(s,n,e+1/3),o=255*Op(s,n,e),l=255*Op(s,n,e-1/3);return new Kt(a,o,l)}else if(this.space==="cmyk"){let{c:e,m:t,y:i,k:n}=this,s=255*(1-Math.min(1,e*(1-n)+n)),a=255*(1-Math.min(1,t*(1-n)+n)),o=255*(1-Math.min(1,i*(1-n)+n));return new Kt(s,a,o)}else return this}toArray(){let{_a:e,_b:t,_c:i,_d:n,space:s}=this;return[e,t,i,n,s]}toHex(){let[e,t,i]=this._clamped().map(UB);return`#${e}${t}${i}`}toRgb(){let[e,t,i]=this._clamped();return`rgb(${e},${t},${i})`}toString(){return this.toHex()}xyz(){let{_a:e,_b:t,_c:i}=this.rgb(),[n,s,a]=[e,t,i].map(y=>y/255),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,l=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,h=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92,c=(o*.4124+l*.3576+h*.1805)/.95047,u=(o*.2126+l*.7152+h*.0722)/1,d=(o*.0193+l*.1192+h*.9505)/1.08883,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,m=u>.008856?Math.pow(u,1/3):7.787*u+16/116,g=d>.008856?Math.pow(d,1/3):7.787*d+16/116;return new Kt(f,m,g,"xyz")}_clamped(){let{_a:e,_b:t,_c:i}=this.rgb(),{max:n,min:s,round:a}=Math,o=l=>n(0,s(a(l),255));return[e,t,i].map(o)}},Sr=class{constructor(...e){this.init(...e)}clone(){return new Sr(this)}init(e,t){let i={x:0,y:0},n=Array.isArray(e)?{x:e[0],y:e[1]}:typeof e=="object"?{x:e.x,y:e.y}:{x:e,y:t};return this.x=n.x==null?i.x:n.x,this.y=n.y==null?i.y:n.y,this}toArray(){return[this.x,this.y]}transform(e){return this.clone().transformO(e)}transformO(e){tt.isMatrixLike(e)||(e=new tt(e));let{x:t,y:i}=this;return this.x=e.a*t+e.c*i+e.e,this.y=e.b*t+e.d*i+e.f,this}};function GB(r,e){return new Sr(r,e).transformO(this.screenCTM().inverseO())}function V0(r,e,t){return Math.abs(e-r)<(t||1e-6)}var tt=class{constructor(...e){this.init(...e)}static formatTransforms(e){let t=e.flip==="both"||e.flip===!0,i=e.flip&&(t||e.flip==="x")?-1:1,n=e.flip&&(t||e.flip==="y")?-1:1,s=e.skew&&e.skew.length?e.skew[0]:isFinite(e.skew)?e.skew:isFinite(e.skewX)?e.skewX:0,a=e.skew&&e.skew.length?e.skew[1]:isFinite(e.skew)?e.skew:isFinite(e.skewY)?e.skewY:0,o=e.scale&&e.scale.length?e.scale[0]*i:isFinite(e.scale)?e.scale*i:isFinite(e.scaleX)?e.scaleX*i:i,l=e.scale&&e.scale.length?e.scale[1]*n:isFinite(e.scale)?e.scale*n:isFinite(e.scaleY)?e.scaleY*n:n,h=e.shear||0,c=e.rotate||e.theta||0,u=new Sr(e.origin||e.around||e.ox||e.originX,e.oy||e.originY),d=u.x,f=u.y,m=new Sr(e.position||e.px||e.positionX||NaN,e.py||e.positionY||NaN),g=m.x,v=m.y,y=new Sr(e.translate||e.tx||e.translateX,e.ty||e.translateY),A=y.x,b=y.y,C=new Sr(e.relative||e.rx||e.relativeX,e.ry||e.relativeY),M=C.x,D=C.y;return{scaleX:o,scaleY:l,skewX:s,skewY:a,shear:h,theta:c,rx:M,ry:D,tx:A,ty:b,ox:d,oy:f,px:g,py:v}}static fromArray(e){return{a:e[0],b:e[1],c:e[2],d:e[3],e:e[4],f:e[5]}}static isMatrixLike(e){return e.a!=null||e.b!=null||e.c!=null||e.d!=null||e.e!=null||e.f!=null}static matrixMultiply(e,t,i){let n=e.a*t.a+e.c*t.b,s=e.b*t.a+e.d*t.b,a=e.a*t.c+e.c*t.d,o=e.b*t.c+e.d*t.d,l=e.e+e.a*t.e+e.c*t.f,h=e.f+e.b*t.e+e.d*t.f;return i.a=n,i.b=s,i.c=a,i.d=o,i.e=l,i.f=h,i}around(e,t,i){return this.clone().aroundO(e,t,i)}aroundO(e,t,i){let n=e||0,s=t||0;return this.translateO(-n,-s).lmultiplyO(i).translateO(n,s)}clone(){return new tt(this)}decompose(e=0,t=0){let i=this.a,n=this.b,s=this.c,a=this.d,o=this.e,l=this.f,h=i*a-n*s,c=h>0?1:-1,u=c*Math.sqrt(i*i+n*n),d=Math.atan2(c*n,c*i),f=180/Math.PI*d,m=Math.cos(d),g=Math.sin(d),v=(i*s+n*a)/h,y=s*u/(v*i-n)||a*u/(v*n+i),A=o-e+e*m*u+t*(v*m*u-g*y),b=l-t+e*g*u+t*(v*g*u+m*y);return{scaleX:u,scaleY:y,shear:v,rotate:f,translateX:A,translateY:b,originX:e,originY:t,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(e){if(e===this)return!0;let t=new tt(e);return V0(this.a,t.a)&&V0(this.b,t.b)&&V0(this.c,t.c)&&V0(this.d,t.d)&&V0(this.e,t.e)&&V0(this.f,t.f)}flip(e,t){return this.clone().flipO(e,t)}flipO(e,t){return e==="x"?this.scaleO(-1,1,t,0):e==="y"?this.scaleO(1,-1,0,t):this.scaleO(-1,-1,e,t||e)}init(e){let t=tt.fromArray([1,0,0,1,0,0]);return e=e instanceof Vn?e.matrixify():typeof e=="string"?tt.fromArray(e.split(Ca).map(parseFloat)):Array.isArray(e)?tt.fromArray(e):typeof e=="object"&&tt.isMatrixLike(e)?e:typeof e=="object"?new tt().transform(e):arguments.length===6?tt.fromArray([].slice.call(arguments)):t,this.a=e.a!=null?e.a:t.a,this.b=e.b!=null?e.b:t.b,this.c=e.c!=null?e.c:t.c,this.d=e.d!=null?e.d:t.d,this.e=e.e!=null?e.e:t.e,this.f=e.f!=null?e.f:t.f,this}inverse(){return this.clone().inverseO()}inverseO(){let e=this.a,t=this.b,i=this.c,n=this.d,s=this.e,a=this.f,o=e*n-t*i;if(!o)throw new Error("Cannot invert "+this);let l=n/o,h=-t/o,c=-i/o,u=e/o,d=-(l*s+c*a),f=-(h*s+u*a);return this.a=l,this.b=h,this.c=c,this.d=u,this.e=d,this.f=f,this}lmultiply(e){return this.clone().lmultiplyO(e)}lmultiplyO(e){let t=this,i=e instanceof tt?e:new tt(e);return tt.matrixMultiply(i,t,this)}multiply(e){return this.clone().multiplyO(e)}multiplyO(e){let t=this,i=e instanceof tt?e:new tt(e);return tt.matrixMultiply(t,i,this)}rotate(e,t,i){return this.clone().rotateO(e,t,i)}rotateO(e,t=0,i=0){e=zp(e);let n=Math.cos(e),s=Math.sin(e),{a,b:o,c:l,d:h,e:c,f:u}=this;return this.a=a*n-o*s,this.b=o*n+a*s,this.c=l*n-h*s,this.d=h*n+l*s,this.e=c*n-u*s+i*s-t*n+t,this.f=u*n+c*s-t*s-i*n+i,this}scale(e,t,i,n){return this.clone().scaleO(...arguments)}scaleO(e,t=e,i=0,n=0){arguments.length===3&&(n=i,i=t,t=e);let{a:s,b:a,c:o,d:l,e:h,f:c}=this;return this.a=s*e,this.b=a*t,this.c=o*e,this.d=l*t,this.e=h*e-i*e+i,this.f=c*t-n*t+n,this}shear(e,t,i){return this.clone().shearO(e,t,i)}shearO(e,t=0,i=0){let{a:n,b:s,c:a,d:o,e:l,f:h}=this;return this.a=n+s*e,this.c=a+o*e,this.e=l+h*e-i*e,this}skew(e,t,i,n){return this.clone().skewO(...arguments)}skewO(e,t=e,i=0,n=0){arguments.length===3&&(n=i,i=t,t=e),e=zp(e),t=zp(t);let s=Math.tan(e),a=Math.tan(t),{a:o,b:l,c:h,d:c,e:u,f:d}=this;return this.a=o+l*s,this.b=l+o*a,this.c=h+c*s,this.d=c+h*a,this.e=u+d*s-n*s,this.f=d+u*a-i*a,this}skewX(e,t,i){return this.skew(e,0,t,i)}skewY(e,t,i){return this.skew(0,e,t,i)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(e){if(tt.isMatrixLike(e))return new tt(e).multiplyO(this);let t=tt.formatTransforms(e),i=this,{x:n,y:s}=new Sr(t.ox,t.oy).transform(i),a=new tt().translateO(t.rx,t.ry).lmultiplyO(i).translateO(-n,-s).scaleO(t.scaleX,t.scaleY).skewO(t.skewX,t.skewY).shearO(t.shear).rotateO(t.theta).translateO(n,s);if(isFinite(t.px)||isFinite(t.py)){let o=new Sr(n,s).transform(a),l=isFinite(t.px)?t.px-o.x:0,h=isFinite(t.py)?t.py-o.y:0;a.translateO(l,h)}return a.translateO(t.tx,t.ty),a}translate(e,t){return this.clone().translateO(e,t)}translateO(e,t){return this.e+=e||0,this.f+=t||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}};function WB(){return new tt(this.node.getCTM())}function YB(){if(typeof this.isRoot=="function"&&!this.isRoot()){let r=this.rect(1,1),e=r.node.getScreenCTM();return r.remove(),new tt(e)}return new tt(this.node.getScreenCTM())}Ht(tt,"Matrix");function oo(){if(!oo.nodes){let r=Pi().size(2,0);r.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),r.attr("focusable","false"),r.attr("aria-hidden","true");let e=r.path().node;oo.nodes={svg:r,path:e}}if(!oo.nodes.svg.node.parentNode){let r=Wt.document.body||Wt.document.documentElement;oo.nodes.svg.addTo(r)}return oo.nodes}function Gv(r){return!r.width&&!r.height&&!r.x&&!r.y}function VB(r){return r===Wt.document||(Wt.document.documentElement.contains||function(e){for(;e.parentNode;)e=e.parentNode;return e===Wt.document}).call(Wt.document.documentElement,r)}var hi=class{constructor(...e){this.init(...e)}addOffset(){return this.x+=Wt.window.pageXOffset,this.y+=Wt.window.pageYOffset,new hi(this)}init(e){let t=[0,0,0,0];return e=typeof e=="string"?e.split(Ca).map(parseFloat):Array.isArray(e)?e:typeof e=="object"?[e.left!=null?e.left:e.x,e.top!=null?e.top:e.y,e.width,e.height]:arguments.length===4?[].slice.call(arguments):t,this.x=e[0]||0,this.y=e[1]||0,this.width=this.w=e[2]||0,this.height=this.h=e[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return Gv(this)}merge(e){let t=Math.min(this.x,e.x),i=Math.min(this.y,e.y),n=Math.max(this.x+this.width,e.x+e.width)-t,s=Math.max(this.y+this.height,e.y+e.height)-i;return new hi(t,i,n,s)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(e){e instanceof tt||(e=new tt(e));let t=1/0,i=-1/0,n=1/0,s=-1/0;return[new Sr(this.x,this.y),new Sr(this.x2,this.y),new Sr(this.x,this.y2),new Sr(this.x2,this.y2)].forEach(function(o){o=o.transform(e),t=Math.min(t,o.x),i=Math.max(i,o.x),n=Math.min(n,o.y),s=Math.max(s,o.y)}),new hi(t,n,i-t,s-n)}};function Wv(r,e,t){let i;try{if(i=e(r.node),Gv(i)&&!VB(r.node))throw new Error("Element not in the dom")}catch(n){i=t(r)}return i}function KB(){let t=Wv(this,n=>n.getBBox(),n=>{try{let s=n.clone().addTo(oo().svg).show(),a=s.node.getBBox();return s.remove(),a}catch(s){throw new Error(`Getting bbox of element "${n.node.nodeName}" is not possible: ${s.toString()}`)}});return new hi(t)}function QB(r){let i=Wv(this,s=>s.getBoundingClientRect(),s=>{throw new Error(`Getting rbox of element "${s.node.nodeName}" is not possible`)}),n=new hi(i);return r?n.transform(r.screenCTM().inverseO()):n.addOffset()}function XB(r,e){let t=this.bbox();return r>t.x&&e>t.y&&rr.call(t,t,i,n)):this.map(t=>t[r](...e))},toArray(){return Array.prototype.concat.apply([],this)}});var ZB=["toArray","constructor","each"];Aa.extend=function(r){r=r.reduce((e,t)=>(ZB.includes(t)||t[0]==="_"||(e[t]=function(...i){return this.each(t,...i)}),e),{}),It([Aa],r)};function ih(r,e){return new Aa(Yp((e||Wt.document).querySelectorAll(r),function(t){return Yn(t)}))}function JB(r){return ih(r,this.node)}function $B(r){return Yn(this.node.querySelector(r))}var eR=0,Yv={};function Vv(r){let e=r.getEventHolder();return e===Wt.window&&(e=Yv),e.events||(e.events={}),e.events}function Xp(r){return r.getEventTarget()}function tR(r){let e=r.getEventHolder();e===Wt.window&&(e=Yv),e.events&&(e.events={})}function _p(r,e,t,i,n){let s=t.bind(i||r),a=Pi(r),o=Vv(a),l=Xp(a);e=Array.isArray(e)?e:e.split(Ca),t._svgjsListenerId||(t._svgjsListenerId=++eR),e.forEach(function(h){let c=h.split(".")[0],u=h.split(".")[1]||"*";o[c]=o[c]||{},o[c][u]=o[c][u]||{},o[c][u][t._svgjsListenerId]=s,l.addEventListener(c,s,n||!1)})}function K0(r,e,t,i){let n=Pi(r),s=Vv(n),a=Xp(n);typeof t=="function"&&(t=t._svgjsListenerId,!t)||(e=Array.isArray(e)?e:(e||"").split(Ca),e.forEach(function(o){let l=o&&o.split(".")[0],h=o&&o.split(".")[1],c,u;if(t)s[l]&&s[l][h||"*"]&&(a.removeEventListener(l,s[l][h||"*"][t],i||!1),delete s[l][h||"*"][t]);else if(l&&h){if(s[l]&&s[l][h]){for(u in s[l][h])K0(a,[l,h].join("."),u);delete s[l][h]}}else if(h)for(o in s)for(c in s[o])h===c&&K0(a,[o,h].join("."));else if(l){if(s[l]){for(c in s[l])K0(a,[l,c].join("."));delete s[l]}}else{for(o in s)K0(a,o);tR(n)}}))}function rR(r,e,t,i){let n=Xp(r);return e instanceof Wt.window.Event||(e=new Wt.window.CustomEvent(e,{detail:t,cancelable:!0,...i})),n.dispatchEvent(e),e}var Sl=class extends su{addEventListener(){}dispatch(e,t,i){return rR(this,e,t,i)}dispatchEvent(e){let t=this.getEventHolder().events;if(!t)return!0;let i=t[e.type];for(let n in i)for(let s in i[n])i[n][s](e);return!e.defaultPrevented}fire(e,t,i){return this.dispatch(e,t,i),this}getEventHolder(){return this}getEventTarget(){return this}off(e,t,i){return K0(this,e,t,i),this}on(e,t,i,n){return _p(this,e,t,i,n),this}removeEventListener(){}};Ht(Sl,"EventTarget");function Bv(){}var iu={duration:400,ease:">",delay:0},iR={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};var lo=class extends Array{constructor(...e){super(...e),this.init(...e)}clone(){return new this.constructor(this)}init(e){return typeof e=="number"?this:(this.length=0,this.push(...this.parse(e)),this)}parse(e=[]){return e instanceof Array?e:e.trim().split(Ca).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){let e=[];return e.push(...this),e}},ft=class{constructor(...e){this.init(...e)}convert(e){return new ft(this.value,e)}divide(e){return e=new ft(e),new ft(this/e,this.unit||e.unit)}init(e,t){return t=Array.isArray(e)?e[1]:t,e=Array.isArray(e)?e[0]:e,this.value=0,this.unit=t||"",typeof e=="number"?this.value=isNaN(e)?0:isFinite(e)?e:e<0?-34e37:34e37:typeof e=="string"?(t=e.match(jv),t&&(this.value=parseFloat(t[1]),t[5]==="%"?this.value/=100:t[5]==="s"&&(this.value*=1e3),this.unit=t[5])):e instanceof ft&&(this.value=e.valueOf(),this.unit=e.unit),this}minus(e){return e=new ft(e),new ft(this-e,this.unit||e.unit)}plus(e){return e=new ft(e),new ft(this+e,this.unit||e.unit)}times(e){return e=new ft(e),new ft(this*e,this.unit||e.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return(this.unit==="%"?~~(this.value*1e8)/1e6:this.unit==="s"?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}},Kv=[];function nR(r){Kv.push(r)}function sR(r,e,t){if(r==null){r={},e=this.node.attributes;for(let i of e)r[i.nodeName]=Ov.test(i.nodeValue)?parseFloat(i.nodeValue):i.nodeValue;return r}else{if(r instanceof Array)return r.reduce((i,n)=>(i[n]=this.attr(n),i),{});if(typeof r=="object"&&r.constructor===Object)for(e in r)this.attr(e,r[e]);else if(e===null)this.node.removeAttribute(r);else{if(e==null)return e=this.node.getAttribute(r),e==null?iR[r]:Ov.test(e)?parseFloat(e):e;e=Kv.reduce((i,n)=>n(r,i,this),e),typeof e=="number"?e=new ft(e):Kt.isColor(e)?e=new Kt(e):e.constructor===Array&&(e=new lo(e)),r==="leading"?this.leading&&this.leading(e):typeof t=="string"?this.node.setAttributeNS(t,r,e.toString()):this.node.setAttribute(r,e.toString()),this.rebuild&&(r==="font-size"||r==="x")&&this.rebuild()}}return this}var Ls=class extends Sl{constructor(e,t){super(),this.node=e,this.type=e.nodeName,t&&e!==t&&this.attr(t)}add(e,t){return e=Pi(e),e.removeNamespace&&this.node instanceof Wt.window.SVGElement&&e.removeNamespace(),t==null?this.node.appendChild(e.node):e.node!==this.node.childNodes[t]&&this.node.insertBefore(e.node,this.node.childNodes[t]),this}addTo(e,t){return Pi(e).put(this,t)}children(){return new Aa(Yp(this.node.children,function(e){return Yn(e)}))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(e=!0,t=!0){this.writeDataToDom();let i=this.node.cloneNode(e);return t&&(i=Hv(i)),new this.constructor(i)}each(e,t){let i=this.children(),n,s;for(n=0,s=i.length;n=0}html(e,t){return this.xml(e,t,sB)}id(e){return typeof e=="undefined"&&!this.node.id&&(this.node.id=Uv(this.type)),this.attr("id",e)}index(e){return[].slice.call(this.node.childNodes).indexOf(e.node)}last(){return Yn(this.node.lastChild)}matches(e){let t=this.node,i=t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector||null;return i&&i.call(t,e)}parent(e){let t=this;if(!t.node.parentNode)return null;if(t=Yn(t.node.parentNode),!e)return t;do if(typeof e=="string"?t.matches(e):t instanceof e)return t;while(t=Yn(t.node.parentNode));return t}put(e,t){return e=Pi(e),this.add(e,t),e}putIn(e,t){return Pi(e).add(this,t)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(e){return this.node.removeChild(e.node),this}replace(e){return e=Pi(e),this.node.parentNode&&this.node.parentNode.replaceChild(e.node,this.node),e}round(e=2,t=null){let i=10**e,n=this.attr(t);for(let s in n)typeof n[s]=="number"&&(n[s]=Math.round(n[s]*i)/i);return this.attr(n),this}svg(e,t){return this.xml(e,t,Vp)}toString(){return this.id()}words(e){return this.node.textContent=e,this}wrap(e){let t=this.parent();if(!t)return this.addTo(e);let i=t.index(this);return t.put(e,i).put(this)}writeDataToDom(){return this.each(function(){this.writeDataToDom()}),this}xml(e,t,i){if(typeof e=="boolean"&&(i=t,t=e,e=null),e==null||typeof e=="function"){t=t==null?!0:t,this.writeDataToDom();let o=this;if(e!=null){if(o=Yn(o.node.cloneNode(!0)),t){let l=e(o);if(o=l||o,l===!1)return""}o.each(function(){let l=e(this),h=l||this;l===!1?this.remove():l&&this!==h&&this.replace(h)},!0)}return t?o.node.outerHTML:o.node.innerHTML}t=t==null?!1:t;let n=au("wrapper",i),s=Wt.document.createDocumentFragment();n.innerHTML=e;for(let o=n.children.length;o--;)s.appendChild(n.firstElementChild);let a=this.parent();return t?this.replace(s)&&a:this.add(s)}};It(Ls,{attr:sR,find:JB,findOne:$B});Ht(Ls,"Dom");var Vn=class extends Ls{constructor(e,t){super(e,t),this.dom={},this.node.instance=this,e.hasAttribute("svgjs:data")&&this.setData(JSON.parse(e.getAttribute("svgjs:data"))||{})}center(e,t){return this.cx(e).cy(t)}cx(e){return e==null?this.x()+this.width()/2:this.x(e-this.width()/2)}cy(e){return e==null?this.y()+this.height()/2:this.y(e-this.height()/2)}defs(){let e=this.root();return e&&e.defs()}dmove(e,t){return this.dx(e).dy(t)}dx(e=0){return this.x(new ft(e).plus(this.x()))}dy(e=0){return this.y(new ft(e).plus(this.y()))}getEventHolder(){return this}height(e){return this.attr("height",e)}move(e,t){return this.x(e).y(t)}parents(e=this.root()){let t=typeof e=="string";t||(e=Pi(e));let i=new Aa,n=this;for(;(n=n.parent())&&n.node!==Wt.document&&n.nodeName!=="#document-fragment"&&(i.push(n),!(!t&&n.node===e.node||t&&n.matches(e)));)if(n.node===this.root().node)return null;return i}reference(e){if(e=this.attr(e),!e)return null;let t=(e+"").match(EB);return t?Pi(t[1]):null}root(){let e=this.parent(oB(Kp));return e&&e.root()}setData(e){return this.dom=e,this}size(e,t){let i=rh(this,e,t);return this.width(new ft(i.width)).height(new ft(i.height))}width(e){return this.attr("width",e)}writeDataToDom(){return this.node.removeAttribute("svgjs:data"),Object.keys(this.dom).length&&this.node.setAttribute("svgjs:data",JSON.stringify(this.dom)),super.writeDataToDom()}x(e){return this.attr("x",e)}y(e){return this.attr("y",e)}};It(Vn,{bbox:KB,rbox:QB,inside:XB,point:GB,ctm:WB,screenCTM:YB});Ht(Vn,"Element");var ru={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(r,e){return e==="color"?r:r+"-"+e}};["fill","stroke"].forEach(function(r){let e={},t;e[r]=function(i){if(typeof i=="undefined")return this.attr(r);if(typeof i=="string"||i instanceof Kt||Kt.isRgb(i)||i instanceof Vn)this.attr(r,i);else for(t=ru[r].length-1;t>=0;t--)i[ru[r][t]]!=null&&this.attr(ru.prefix(r,ru[r][t]),i[ru[r][t]]);return this},At(["Element","Runner"],e)});At(["Element","Runner"],{matrix:function(r,e,t,i,n,s){return r==null?new tt(this):this.attr("transform",new tt(r,e,t,i,n,s))},rotate:function(r,e,t){return this.transform({rotate:r,ox:e,oy:t},!0)},skew:function(r,e,t,i){return arguments.length===1||arguments.length===3?this.transform({skew:r,ox:e,oy:t},!0):this.transform({skew:[r,e],ox:t,oy:i},!0)},shear:function(r,e,t){return this.transform({shear:r,ox:e,oy:t},!0)},scale:function(r,e,t,i){return arguments.length===1||arguments.length===3?this.transform({scale:r,ox:e,oy:t},!0):this.transform({scale:[r,e],ox:t,oy:i},!0)},translate:function(r,e){return this.transform({translate:[r,e]},!0)},relative:function(r,e){return this.transform({relative:[r,e]},!0)},flip:function(r="both",e="center"){return"xybothtrue".indexOf(r)===-1&&(e=r,r="both"),this.transform({flip:r,origin:e},!0)},opacity:function(r){return this.attr("opacity",r)}});At("radius",{radius:function(r,e=r){return(this._element||this).type==="radialGradient"?this.attr("r",new ft(r)):this.rx(r).ry(e)}});At("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(r){return new Sr(this.node.getPointAtLength(r))}});At(["Element","Runner"],{font:function(r,e){if(typeof r=="object"){for(e in r)this.font(e,r[e]);return this}return r==="leading"?this.leading(e):r==="anchor"?this.attr("text-anchor",e):r==="size"||r==="family"||r==="weight"||r==="stretch"||r==="variant"||r==="style"?this.attr("font-"+r,e):this.attr(r,e)}});var aR=["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel"].reduce(function(r,e){let t=function(i){return i===null?this.off(e):this.on(e,i),this};return r[e]=t,r},{});At("Element",aR);function oR(){return this.attr("transform",null)}function lR(){return(this.attr("transform")||"").split(CB).slice(0,-1).map(function(e){let t=e.trim().split("(");return[t[0],t[1].split(Ca).map(function(i){return parseFloat(i)})]}).reverse().reduce(function(e,t){return t[0]==="matrix"?e.lmultiply(tt.fromArray(t[1])):e[t[0]].apply(e,t[1])},new tt)}function hR(r,e){if(this===r)return this;let t=this.screenCTM(),i=r.screenCTM().inverse();return this.addTo(r,e).untransform().transform(i.multiply(t)),this}function cR(r){return this.toParent(this.root(),r)}function uR(r,e){if(r==null||typeof r=="string"){let n=new tt(this).decompose();return r==null?n:n[r]}tt.isMatrixLike(r)||(r={...r,origin:Pp(r,this)});let t=e===!0?this:e||!1,i=new tt(t).transform(r);return this.attr("transform",i)}At("Element",{untransform:oR,matrixify:lR,toParent:hR,toRoot:cR,transform:uR});var bi=class extends Vn{flatten(e=this,t){return this.each(function(){if(this instanceof bi)return this.flatten().ungroup()}),this}ungroup(e=this.parent(),t=e.index(this)){return t=t===-1?e.children().length:t,this.each(function(i,n){return n[n.length-i-1].toParent(e,t)}),this.remove()}};Ht(bi,"Container");var ou=class extends bi{constructor(e,t=e){super(gr("defs",e),t)}flatten(){return this}ungroup(){return this}};Ht(ou,"Defs");var qi=class extends Vn{};Ht(qi,"Shape");function Zp(r){return this.attr("rx",r)}function Jp(r){return this.attr("ry",r)}function Qv(r){return r==null?this.cx()-this.rx():this.cx(r+this.rx())}function Xv(r){return r==null?this.cy()-this.ry():this.cy(r+this.ry())}function Zv(r){return this.attr("cx",r)}function Jv(r){return this.attr("cy",r)}function $v(r){return r==null?this.rx()*2:this.rx(new ft(r).divide(2))}function e9(r){return r==null?this.ry()*2:this.ry(new ft(r).divide(2))}var dR={__proto__:null,rx:Zp,ry:Jp,x:Qv,y:Xv,cx:Zv,cy:Jv,width:$v,height:e9},X0=class extends qi{constructor(e,t=e){super(gr("ellipse",e),t)}size(e,t){let i=rh(this,e,t);return this.rx(new ft(i.width).divide(2)).ry(new ft(i.height).divide(2))}};It(X0,dR);At("Container",{ellipse:pr(function(r=0,e=r){return this.put(new X0).size(r,e).move(0,0)})});Ht(X0,"Ellipse");var xf=class extends Ls{constructor(e=Wt.document.createDocumentFragment()){super(e)}xml(e,t,i){if(typeof e=="boolean"&&(i=t,t=e,e=null),e==null||typeof e=="function"){let n=new Ls(au("wrapper",i));return n.add(this.node.cloneNode(!0)),n.xml(!1,i)}return super.xml(e,!1,i)}};Ht(xf,"Fragment");function t9(r,e){return(this._element||this).type==="radialGradient"?this.attr({fx:new ft(r),fy:new ft(e)}):this.attr({x1:new ft(r),y1:new ft(e)})}function r9(r,e){return(this._element||this).type==="radialGradient"?this.attr({cx:new ft(r),cy:new ft(e)}):this.attr({x2:new ft(r),y2:new ft(e)})}var fR={__proto__:null,from:t9,to:r9},Tl=class extends bi{constructor(e,t){super(gr(e+"Gradient",typeof e=="string"?null:e),t)}attr(e,t,i){return e==="transform"&&(e="gradientTransform"),super.attr(e,t,i)}bbox(){return new hi}targets(){return ih("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}};It(Tl,fR);At({Container:{gradient(...r){return this.defs().gradient(...r)}},Defs:{gradient:pr(function(r,e){return this.put(new Tl(r)).update(e)})}});Ht(Tl,"Gradient");var Ml=class extends bi{constructor(e,t=e){super(gr("pattern",e),t)}attr(e,t,i){return e==="transform"&&(e="patternTransform"),super.attr(e,t,i)}bbox(){return new hi}targets(){return ih("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(e){return this.clear(),typeof e=="function"&&e.call(this,this),this}url(){return"url(#"+this.id()+")"}};At({Container:{pattern(...r){return this.defs().pattern(...r)}},Defs:{pattern:pr(function(r,e,t){return this.put(new Ml).update(t).attr({x:0,y:0,width:r,height:e,patternUnits:"userSpaceOnUse"})})}});Ht(Ml,"Pattern");var gs=class extends qi{constructor(e,t=e){super(gr("image",e),t)}load(e,t){if(!e)return this;let i=new Wt.window.Image;return _p(i,"load",function(n){let s=this.parent(Ml);this.width()===0&&this.height()===0&&this.size(i.width,i.height),s instanceof Ml&&s.width()===0&&s.height()===0&&s.size(this.width(),this.height()),typeof t=="function"&&t.call(this,n)},this),_p(i,"load error",function(){K0(i)}),this.attr("href",i.src=e,vu)}};nR(function(r,e,t){return(r==="fill"||r==="stroke")&&TB.test(e)&&(e=t.root().defs().image(e)),e instanceof gs&&(e=t.root().defs().pattern(0,0,i=>{i.add(e)})),e});At({Container:{image:pr(function(r,e){return this.put(new gs).size(0,0).load(r,e)})}});Ht(gs,"Image");var Os=class extends lo{bbox(){let e=-1/0,t=-1/0,i=1/0,n=1/0;return this.forEach(function(s){e=Math.max(s[0],e),t=Math.max(s[1],t),i=Math.min(s[0],i),n=Math.min(s[1],n)}),new hi(i,n,e-i,t-n)}move(e,t){let i=this.bbox();if(e-=i.x,t-=i.y,!isNaN(e)&&!isNaN(t))for(let n=this.length-1;n>=0;n--)this[n]=[this[n][0]+e,this[n][1]+t];return this}parse(e=[0,0]){let t=[];e instanceof Array?e=Array.prototype.concat.apply([],e):e=e.trim().split(Ca).map(parseFloat),e.length%2!==0&&e.pop();for(let i=0,n=e.length;i=0;i--)n.width&&(this[i][0]=(this[i][0]-n.x)*e/n.width+n.x),n.height&&(this[i][1]=(this[i][1]-n.y)*t/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){let e=[];for(let t=0,i=this.length;t":function(r){return-Math.cos(r*Math.PI)/2+.5},">":function(r){return Math.sin(r*Math.PI/2)},"<":function(r){return-Math.cos(r*Math.PI/2)+1},bezier:function(r,e,t,i){return function(n){return n<0?r>0?e/r*n:t>0?i/t*n:0:n>1?t<1?(1-i)/(1-t)*n+(i-t)/(1-t):r<1?(1-e)/(1-r)*n+(e-r)/(1-r):1:3*n*(1-n)**2*e+3*n**2*(1-n)*i+n**3}},steps:function(r,e="end"){e=e.split("-").reverse()[0];let t=r;return e==="none"?--t:e==="both"&&++t,(i,n=!1)=>{let s=Math.floor(i*r),a=i*s%1===0;return(e==="start"||e==="both")&&++s,n&&a&&--s,i>=0&&s<0&&(s=0),i<=1&&s>t&&(s=t),s/t}}},lu=class{done(){return!1}},hu=class extends lu{constructor(e=iu.ease){super(),this.ease=xR[e]||e}step(e,t,i){return typeof e!="number"?i<1?e:t:e+(t-e)*this.ease(i)}},J0=class extends lu{constructor(e){super(),this.stepper=e}done(e){return e.done}step(e,t,i,n){return this.stepper(e,t,i,n)}};function Rv(){let r=(this._duration||500)/1e3,e=this._overshoot||0,t=1e-10,i=Math.PI,n=Math.log(e/100+t),s=-n/Math.sqrt(i*i+n*n),a=3.9/(s*r);this.d=2*s*a,this.k=a*a}var qp=class extends J0{constructor(e=500,t=0){super(),this.duration(e).overshoot(t)}step(e,t,i,n){if(typeof e=="string")return e;if(n.done=i===1/0,i===1/0)return t;if(i===0)return e;i>100&&(i=16),i/=1e3;let s=n.velocity||0,a=-this.d*s-this.k*(e-t),o=e+s*i+a*i*i/2;return n.velocity=s+a*i,n.done=Math.abs(t-o)+Math.abs(s)<.002,n.done?t:o}};It(qp,{duration:Q0("_duration",Rv),overshoot:Q0("_overshoot",Rv)});var Up=class extends J0{constructor(e=.1,t=.01,i=0,n=1e3){super(),this.p(e).i(t).d(i).windup(n)}step(e,t,i,n){if(typeof e=="string")return e;if(n.done=i===1/0,i===1/0)return t;if(i===0)return e;let s=t-e,a=(n.integral||0)+s*i,o=(s-(n.error||0))/i,l=this._windup;return l!==!1&&(a=Math.max(-l,Math.min(a,l))),n.error=s,n.integral=a,n.done=Math.abs(s)<.001,n.done?t:e+(this.P*s+this.I*a+this.D*o)}};It(Up,{windup:Q0("_windup"),p:Q0("P"),i:Q0("I"),d:Q0("D")});var bR={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},Hp={M:function(r,e,t){return e.x=t.x=r[0],e.y=t.y=r[1],["M",e.x,e.y]},L:function(r,e){return e.x=r[0],e.y=r[1],["L",r[0],r[1]]},H:function(r,e){return e.x=r[0],["H",r[0]]},V:function(r,e){return e.y=r[0],["V",r[0]]},C:function(r,e){return e.x=r[4],e.y=r[5],["C",r[0],r[1],r[2],r[3],r[4],r[5]]},S:function(r,e){return e.x=r[2],e.y=r[3],["S",r[0],r[1],r[2],r[3]]},Q:function(r,e){return e.x=r[2],e.y=r[3],["Q",r[0],r[1],r[2],r[3]]},T:function(r,e){return e.x=r[0],e.y=r[1],["T",r[0],r[1]]},Z:function(r,e,t){return e.x=t.x,e.y=t.y,["Z"]},A:function(r,e){return e.x=r[5],e.y=r[6],["A",r[0],r[1],r[2],r[3],r[4],r[5],r[6]]}},Bp="mlhvqtcsaz".split("");for(let r=0,e=Bp.length;r=0;s--)n=this[s][0],n==="M"||n==="L"||n==="T"?(this[s][1]+=e,this[s][2]+=t):n==="H"?this[s][1]+=e:n==="V"?this[s][1]+=t:n==="C"||n==="S"||n==="Q"?(this[s][1]+=e,this[s][2]+=t,this[s][3]+=e,this[s][4]+=t,n==="C"&&(this[s][5]+=e,this[s][6]+=t)):n==="A"&&(this[s][6]+=e,this[s][7]+=t);return this}parse(e="M0 0"){return Array.isArray(e)&&(e=Array.prototype.concat.apply([],e).toString()),SR(e)}size(e,t){let i=this.bbox(),n,s;for(i.width=i.width===0?1:i.width,i.height=i.height===0?1:i.height,n=this.length-1;n>=0;n--)s=this[n][0],s==="M"||s==="L"||s==="T"?(this[n][1]=(this[n][1]-i.x)*e/i.width+i.x,this[n][2]=(this[n][2]-i.y)*t/i.height+i.y):s==="H"?this[n][1]=(this[n][1]-i.x)*e/i.width+i.x:s==="V"?this[n][1]=(this[n][1]-i.y)*t/i.height+i.y:s==="C"||s==="S"||s==="Q"?(this[n][1]=(this[n][1]-i.x)*e/i.width+i.x,this[n][2]=(this[n][2]-i.y)*t/i.height+i.y,this[n][3]=(this[n][3]-i.x)*e/i.width+i.x,this[n][4]=(this[n][4]-i.y)*t/i.height+i.y,s==="C"&&(this[n][5]=(this[n][5]-i.x)*e/i.width+i.x,this[n][6]=(this[n][6]-i.y)*t/i.height+i.y)):s==="A"&&(this[n][1]=this[n][1]*e/i.width,this[n][2]=this[n][2]*t/i.height,this[n][6]=(this[n][6]-i.x)*e/i.width+i.x,this[n][7]=(this[n][7]-i.y)*t/i.height+i.y);return this}toString(){return TR(this)}},i9=r=>{let e=typeof r;return e==="number"?ft:e==="string"?Kt.isColor(r)?Kt:Ca.test(r)?Qp.test(r)?Ea:lo:jv.test(r)?ft:cu:e6.indexOf(r.constructor)>-1?r.constructor:Array.isArray(r)?lo:e==="object"?Nl:cu},wa=class{constructor(e){this._stepper=e||new hu("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(e){return this._morphObj.morph(this._from,this._to,e,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce(function(t,i){return t&&i},!0)}from(e){return e==null?this._from:(this._from=this._set(e),this)}stepper(e){return e==null?this._stepper:(this._stepper=e,this)}to(e){return e==null?this._to:(this._to=this._set(e),this)}type(e){return e==null?this._type:(this._type=e,this)}_set(e){this._type||this.type(i9(e));let t=new this._type(e);return this._type===Kt&&(t=this._to?t[this._to[4]]():this._from?t[this._from[4]]():t),this._type===Nl&&(t=this._to?t.align(this._to):this._from?t.align(this._from):t),t=t.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(t.length)).map(Object).map(function(i){return i.done=!0,i}),t}},cu=class{constructor(...e){this.init(...e)}init(e){return e=Array.isArray(e)?e[0]:e,this.value=e,this}toArray(){return[this.value]}valueOf(){return this.value}},Dl=class{constructor(...e){this.init(...e)}init(e){return Array.isArray(e)&&(e={scaleX:e[0],scaleY:e[1],shear:e[2],rotate:e[3],translateX:e[4],translateY:e[5],originX:e[6],originY:e[7]}),Object.assign(this,Dl.defaults,e),this}toArray(){let e=this;return[e.scaleX,e.scaleY,e.shear,e.rotate,e.translateX,e.translateY,e.originX,e.originY]}};Dl.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};var MR=(r,e)=>r[0]e[0]?1:0,Nl=class{constructor(...e){this.init(...e)}align(e){let t=this.values;for(let i=0,n=t.length;ii.concat(n),[]),this}toArray(){return this.values}valueOf(){let e={},t=this.values;for(;t.length;){let i=t.shift(),n=t.shift(),s=t.shift(),a=t.splice(0,s);e[i]=new n(a)}return e}},e6=[cu,Dl,Nl];function kR(r=[]){e6.push(...[].concat(r))}function DR(){It(e6,{to(r){return new wa().type(this.constructor).from(this.toArray()).to(r)},fromArray(r){return this.init(r),this},toConsumable(){return this.toArray()},morph(r,e,t,i,n){let s=function(a,o){return i.step(a,e[o],t,n[o],n)};return this.fromArray(r.map(s))}})}var Bs=class extends qi{constructor(e,t=e){super(gr("path",e),t)}array(){return this._array||(this._array=new Ea(this.attr("d")))}clear(){return delete this._array,this}height(e){return e==null?this.bbox().height:this.size(this.bbox().width,e)}move(e,t){return this.attr("d",this.array().move(e,t))}plot(e){return e==null?this.array():this.clear().attr("d",typeof e=="string"?e:this._array=new Ea(e))}size(e,t){let i=rh(this,e,t);return this.attr("d",this.array().size(i.width,i.height))}width(e){return e==null?this.bbox().width:this.size(e,this.bbox().height)}x(e){return e==null?this.bbox().x:this.move(e,this.bbox().y)}y(e){return e==null?this.bbox().y:this.move(this.bbox().x,e)}};Bs.prototype.MorphArray=Ea;At({Container:{path:pr(function(r){return this.put(new Bs).plot(r||new Ea)})}});Ht(Bs,"Path");function NR(){return this._array||(this._array=new Os(this.attr("points")))}function FR(){return delete this._array,this}function IR(r,e){return this.attr("points",this.array().move(r,e))}function zR(r){return r==null?this.array():this.clear().attr("points",typeof r=="string"?r:this._array=new Os(r))}function LR(r,e){let t=rh(this,r,e);return this.attr("points",this.array().size(t.width,t.height))}var n9={__proto__:null,array:NR,clear:FR,move:IR,plot:zR,size:LR},vs=class extends qi{constructor(e,t=e){super(gr("polygon",e),t)}};At({Container:{polygon:pr(function(r){return this.put(new vs).plot(r||new Os)})}});It(vs,$p);It(vs,n9);Ht(vs,"Polygon");var Fl=class extends qi{constructor(e,t=e){super(gr("polyline",e),t)}};At({Container:{polyline:pr(function(r){return this.put(new Fl).plot(r||new Os)})}});It(Fl,$p);It(Fl,n9);Ht(Fl,"Polyline");var Tr=class extends qi{constructor(e,t=e){super(gr("rect",e),t)}};It(Tr,{rx:Zp,ry:Jp});At({Container:{rect:pr(function(r,e){return this.put(new Tr).size(r,e)})}});Ht(Tr,"Rect");var nu=class{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(e){let t=typeof e.next!="undefined"?e:{value:e,next:null,prev:null};return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._last=t,this._first=t),t}remove(e){e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e===this._last&&(this._last=e.prev),e===this._first&&(this._first=e.next),e.prev=null,e.next=null}shift(){let e=this._first;return e?(this._first=e.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,e.value):null}},Xt={nextDraw:null,frames:new nu,timeouts:new nu,immediates:new nu,timer:()=>Wt.window.performance||Wt.window.Date,transforms:[],frame(r){let e=Xt.frames.push({run:r});return Xt.nextDraw===null&&(Xt.nextDraw=Wt.window.requestAnimationFrame(Xt._draw)),e},timeout(r,e){e=e||0;let t=Xt.timer().now()+e,i=Xt.timeouts.push({run:r,time:t});return Xt.nextDraw===null&&(Xt.nextDraw=Wt.window.requestAnimationFrame(Xt._draw)),i},immediate(r){let e=Xt.immediates.push(r);return Xt.nextDraw===null&&(Xt.nextDraw=Wt.window.requestAnimationFrame(Xt._draw)),e},cancelFrame(r){r!=null&&Xt.frames.remove(r)},clearTimeout(r){r!=null&&Xt.timeouts.remove(r)},cancelImmediate(r){r!=null&&Xt.immediates.remove(r)},_draw(r){let e=null,t=Xt.timeouts.last();for(;(e=Xt.timeouts.shift())&&(r>=e.time?e.run():Xt.timeouts.push(e),e!==t););let i=null,n=Xt.frames.last();for(;i!==n&&(i=Xt.frames.shift());)i.run(r);let s=null;for(;s=Xt.immediates.shift();)s();Xt.nextDraw=Xt.timeouts.first()||Xt.frames.first()?Wt.window.requestAnimationFrame(Xt._draw):null}},OR=function(r){let e=r.start,t=r.runner.duration(),i=e+t;return{start:e,duration:t,end:i,runner:r.runner}},BR=function(){let r=Wt.window;return(r.performance||r.Date).now()},bf=class extends Sl{constructor(e=BR){super(),this._timeSource=e,this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){let e=this.getLastRunnerInfo(),t=e?e.runner.duration():0;return(e?e.start:this._time)+t}getEndTimeOfTimeline(){let e=this._runners.map(t=>t.start+t.runner.duration());return Math.max(0,...e)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(e){return this._runners[this._runnerIds.indexOf(e)]||null}pause(){return this._paused=!0,this._continue()}persist(e){return e==null?this._persist:(this._persist=e,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(e){let t=this.speed();if(e==null)return this.speed(-t);let i=Math.abs(t);return this.speed(e?-i:i)}schedule(e,t,i){if(e==null)return this._runners.map(OR);let n=0,s=this.getEndTime();if(t=t||0,i==null||i==="last"||i==="after")n=s;else if(i==="absolute"||i==="start")n=t,t=0;else if(i==="now")n=this._time;else if(i==="relative"){let l=this.getRunnerInfoById(e.id);l&&(n=l.start+t,t=0)}else if(i==="with-last"){let l=this.getLastRunnerInfo();n=l?l.start:this._time}else throw new Error('Invalid value for the "when" parameter');e.unschedule(),e.timeline(this);let a=e.persist(),o={persist:a===null?this._persist:a,start:n+t,runner:e};return this._lastRunnerId=e.id,this._runners.push(o),this._runners.sort((l,h)=>l.start-h.start),this._runnerIds=this._runners.map(l=>l.runner.id),this.updateTime()._continue(),this}seek(e){return this.time(this._time+e)}source(e){return e==null?this._timeSource:(this._timeSource=e,this)}speed(e){return e==null?this._speed:(this._speed=e,this)}stop(){return this.time(0),this.pause()}time(e){return e==null?this._time:(this._time=e,this._continue(!0))}unschedule(e){let t=this._runnerIds.indexOf(e.id);return t<0?this:(this._runners.splice(t,1),this._runnerIds.splice(t,1),e.timeline(null),this)}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(e=!1){return Xt.cancelFrame(this._nextFrame),this._nextFrame=null,e?this._stepImmediate():this._paused?this:(this._nextFrame=Xt.frame(this._step),this)}_stepFn(e=!1){let t=this._timeSource(),i=t-this._lastSourceTime;e&&(i=0);let n=this._speed*i+(this._time-this._lastStepTime);this._lastSourceTime=t,e||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let a=this._runners.length;a--;){let o=this._runners[a],l=o.runner;this._time-o.start<=0&&l.reset()}let s=!1;for(let a=0,o=this._runners.length;a0?this._continue():(this.pause(),this.fire("finished")),this}};At({Element:{timeline:function(r){return r==null?(this._timeline=this._timeline||new bf,this._timeline):(this._timeline=r,this)}}});var _i=class extends Sl{constructor(e){super(),this.id=_i.id++,e=e==null?iu.duration:e,e=typeof e=="function"?new J0(e):e,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration=typeof e=="number"&&e,this._isDeclarative=e instanceof J0,this._stepper=this._isDeclarative?e:new hu,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new tt,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=this._isDeclarative?!0:null}static sanitise(e,t,i){let n=1,s=!1,a=0;return e=e||iu.duration,t=t||iu.delay,i=i||"last",typeof e=="object"&&!(e instanceof lu)&&(t=e.delay||t,i=e.when||i,s=e.swing||s,n=e.times||n,a=e.wait||a,e=e.duration||iu.duration),{duration:e,delay:t,swing:s,times:n,wait:a,when:i}}active(e){return e==null?this.enabled:(this.enabled=e,this)}addTransform(e,t){return this.transforms.lmultiplyO(e),this}after(e){return this.on("finished",e)}animate(e,t,i){let n=_i.sanitise(e,t,i),s=new _i(n.duration);return this._timeline&&s.timeline(this._timeline),this._element&&s.element(this._element),s.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new tt,this}clearTransformsFromQueue(){(!this.done||!this._timeline||!this._timeline._runnerIds.includes(this.id))&&(this._queue=this._queue.filter(e=>!e.isTransform))}delay(e){return this.animate(0,e)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(e){return this.queue(null,e)}ease(e){return this._stepper=new hu(e),this}element(e){return e==null?this._element:(this._element=e,e._prepareRunner(),this)}finish(){return this.step(1/0)}loop(e,t,i){return typeof e=="object"&&(t=e.swing,i=e.wait,e=e.times),this._times=e||1/0,this._swing=t||!1,this._wait=i||0,this._times===!0&&(this._times=1/0),this}loops(e){let t=this._duration+this._wait;if(e==null){let a=Math.floor(this._time/t),l=(this._time-a*t)/this._duration;return Math.min(a+l,this._times)}let i=Math.floor(e),n=e%1,s=t*i+this._duration*n;return this.time(s)}persist(e){return e==null?this._persist:(this._persist=e,this)}position(e){let t=this._time,i=this._duration,n=this._wait,s=this._times,a=this._swing,o=this._reverse,l;if(e==null){let d=function(m){let g=a*Math.floor(m%(2*(n+i))/(n+i)),v=g&&!o||!g&&o,y=Math.pow(-1,v)*(m%(n+i))/i+v;return Math.max(Math.min(y,1),0)},f=s*(n+i)-n;return l=t<=0?Math.round(d(1e-5)):t=0;this._lastPosition=t;let n=this.duration(),s=this._lastTime<=0&&this._time>0,a=this._lastTime=n;this._lastTime=this._time,s&&this.fire("start",this);let o=this._isDeclarative;this.done=!o&&!a&&this._time>=n,this._reseted=!1;let l=!1;return(i||o)&&(this._initialise(i),this.transforms=new tt,l=this._run(o?e:t),this.fire("step",this)),this.done=this.done||l&&o,a&&this.fire("finished",this),this}time(e){if(e==null)return this._time;let t=e-this._time;return this.step(t),this}timeline(e){return typeof e=="undefined"?this._timeline:(this._timeline=e,this)}unschedule(){let e=this.timeline();return e&&e.unschedule(this),this}_initialise(e){if(!(!e&&!this._isDeclarative))for(let t=0,i=this._queue.length;tr.lmultiplyO(e),a9=r=>r.transforms;function RR(){let e=this._transformationRunners.runners.map(a9).reduce(s9,new tt);this.transform(e),this._transformationRunners.merge(),this._transformationRunners.length()===1&&(this._frameId=null)}var Wp=class{constructor(){this.runners=[],this.ids=[]}add(e){if(this.runners.includes(e))return;let t=e.id+1;return this.runners.push(e),this.ids.push(t),this}clearBefore(e){let t=this.ids.indexOf(e+1)||1;return this.ids.splice(0,t,0),this.runners.splice(0,t,new $0).forEach(i=>i.clearTransformsFromQueue()),this}edit(e,t){let i=this.ids.indexOf(e+1);return this.ids.splice(i,1,e+1),this.runners.splice(i,1,t),this}getByID(e){return this.runners[this.ids.indexOf(e+1)]}length(){return this.ids.length}merge(){let e=null;for(let t=0;te.id<=r.id).map(a9).reduce(s9,new tt)},_addRunner(r){this._transformationRunners.add(r),Xt.cancelImmediate(this._frameId),this._frameId=Xt.immediate(RR.bind(this))},_prepareRunner(){this._frameId==null&&(this._transformationRunners=new Wp().add(new $0(new tt(this))))}}});var PR=(r,e)=>r.filter(t=>!e.includes(t));It(_i,{attr(r,e){return this.styleAttr("attr",r,e)},css(r,e){return this.styleAttr("css",r,e)},styleAttr(r,e,t){if(typeof e=="string")return this.styleAttr(r,{[e]:t});let i=e;if(this._tryRetarget(r,i))return this;let n=new wa(this._stepper).to(i),s=Object.keys(i);return this.queue(function(){n=n.from(this.element()[r](s))},function(a){return this.element()[r](n.at(a).valueOf()),n.done()},function(a){let o=Object.keys(a),l=PR(o,s);if(l.length){let c=this.element()[r](l),u=new Nl(n.from()).valueOf();Object.assign(u,c),n.from(u)}let h=new Nl(n.to()).valueOf();Object.assign(h,a),n.to(h),s=o,i=a}),this._rememberMorpher(r,n),this},zoom(r,e){if(this._tryRetarget("zoom",r,e))return this;let t=new wa(this._stepper).to(new ft(r));return this.queue(function(){t=t.from(this.element().zoom())},function(i){return this.element().zoom(t.at(i),e),t.done()},function(i,n){e=n,t.to(i)}),this._rememberMorpher("zoom",t),this},transform(r,e,t){if(e=r.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",r))return this;let i=tt.isMatrixLike(r);t=r.affine!=null?r.affine:t!=null?t:!i;let n=new wa(this._stepper).type(t?Dl:tt),s,a,o,l,h;function c(){a=a||this.element(),s=s||Pp(r,a),h=new tt(e?void 0:a),a._addRunner(this),e||a._clearTransformRunnersBefore(this)}function u(f){e||this.clearTransform();let{x:m,y:g}=new Sr(s).transform(a._currentTransform(this)),v=new tt({...r,origin:[m,g]}),y=this._isDeclarative&&o?o:h;if(t){v=v.decompose(m,g),y=y.decompose(m,g);let b=v.rotate,C=y.rotate,M=[b-360,b,b+360],D=M.map(V=>Math.abs(V-C)),L=Math.min(...D),k=D.indexOf(L);v.rotate=M[k]}e&&(i||(v.rotate=r.rotate||0),this._isDeclarative&&l&&(y.rotate=l)),n.from(y),n.to(v);let A=n.at(f);return l=A.rotate,o=new tt(A),this.addTransform(o),a._addRunner(this),n.done()}function d(f){(f.origin||"center").toString()!==(r.origin||"center").toString()&&(s=Pp(f,a)),r={...f,origin:s}}return this.queue(c,u,d,!0),this._isDeclarative&&this._rememberMorpher("transform",n),this},x(r,e){return this._queueNumber("x",r)},y(r){return this._queueNumber("y",r)},dx(r=0){return this._queueNumberDelta("x",r)},dy(r=0){return this._queueNumberDelta("y",r)},dmove(r,e){return this.dx(r).dy(e)},_queueNumberDelta(r,e){if(e=new ft(e),this._tryRetarget(r,e))return this;let t=new wa(this._stepper).to(e),i=null;return this.queue(function(){i=this.element()[r](),t.from(i),t.to(i+e)},function(n){return this.element()[r](t.at(n)),t.done()},function(n){t.to(i+new ft(n))}),this._rememberMorpher(r,t),this},_queueObject(r,e){if(this._tryRetarget(r,e))return this;let t=new wa(this._stepper).to(e);return this.queue(function(){t.from(this.element()[r]())},function(i){return this.element()[r](t.at(i)),t.done()}),this._rememberMorpher(r,t),this},_queueNumber(r,e){return this._queueObject(r,new ft(e))},cx(r){return this._queueNumber("cx",r)},cy(r){return this._queueNumber("cy",r)},move(r,e){return this.x(r).y(e)},center(r,e){return this.cx(r).cy(e)},size(r,e){let t;return(!r||!e)&&(t=this._element.bbox()),r||(r=t.width/t.height*e),e||(e=t.height/t.width*r),this.width(r).height(e)},width(r){return this._queueNumber("width",r)},height(r){return this._queueNumber("height",r)},plot(r,e,t,i){if(arguments.length===4)return this.plot([r,e,t,i]);if(this._tryRetarget("plot",r))return this;let n=new wa(this._stepper).type(this._element.MorphArray).to(r);return this.queue(function(){n.from(this._element.array())},function(s){return this._element.plot(n.at(s)),n.done()}),this._rememberMorpher("plot",n),this},leading(r){return this._queueNumber("leading",r)},viewbox(r,e,t,i){return this._queueObject("viewbox",new hi(r,e,t,i))},update(r){return typeof r!="object"?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(r.opacity!=null&&this.attr("stop-opacity",r.opacity),r.color!=null&&this.attr("stop-color",r.color),r.offset!=null&&this.attr("offset",r.offset),this)}});It(_i,{rx:Zp,ry:Jp,from:t9,to:r9});Ht(_i,"Runner");var uu=class extends bi{constructor(e,t=e){super(gr("svg",e),t),this.namespace()}defs(){return this.isRoot()?Yn(this.node.querySelector("defs"))||this.put(new ou):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof Wt.window.SVGElement)&&this.node.parentNode.nodeName!=="#document-fragment"}namespace(){return this.isRoot()?this.attr({xmlns:Vp,version:"1.1"}).attr("xmlns:xlink",vu,yf).attr("xmlns:svgjs",aB,yf):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,yf).attr("xmlns:svgjs",null,yf)}root(){return this.isRoot()?this:super.root()}};At({Container:{nested:pr(function(){return this.put(new uu)})}});Ht(uu,"Svg",!0);var du=class extends bi{constructor(e,t=e){super(gr("symbol",e),t)}};At({Container:{symbol:pr(function(){return this.put(new du)})}});Ht(du,"Symbol");function _R(r){return this._build===!1&&this.clear(),this.node.appendChild(Wt.document.createTextNode(r)),this}function qR(){return this.node.getComputedTextLength()}function UR(r,e=this.bbox()){return r==null?e.x:this.attr("x",this.attr("x")+r-e.x)}function HR(r,e=this.bbox()){return r==null?e.y:this.attr("y",this.attr("y")+r-e.y)}function jR(r,e,t=this.bbox()){return this.x(r,t).y(e,t)}function GR(r,e=this.bbox()){return r==null?e.cx:this.attr("x",this.attr("x")+r-e.cx)}function WR(r,e=this.bbox()){return r==null?e.cy:this.attr("y",this.attr("y")+r-e.cy)}function YR(r,e,t=this.bbox()){return this.cx(r,t).cy(e,t)}function VR(r){return this.attr("x",r)}function KR(r){return this.attr("y",r)}function QR(r,e){return this.ax(r).ay(e)}function XR(r){return this._build=!!r,this}var o9={__proto__:null,plain:_R,length:qR,x:UR,y:HR,move:jR,cx:GR,cy:WR,center:YR,ax:VR,ay:KR,amove:QR,build:XR},Zt=class extends qi{constructor(e,t=e){super(gr("text",e),t),this.dom.leading=new ft(1.3),this._rebuild=!0,this._build=!1}leading(e){return e==null?this.dom.leading:(this.dom.leading=new ft(e),this.rebuild())}rebuild(e){if(typeof e=="boolean"&&(this._rebuild=e),this._rebuild){let t=this,i=0,n=this.dom.leading;this.each(function(s){let a=Wt.window.getComputedStyle(this.node).getPropertyValue("font-size"),o=n*new ft(a);this.dom.newLined&&(this.attr("x",t.attr("x")),this.text()===` +`?i+=o:(this.attr("dy",s?o+i:0),i=0))}),this.fire("rebuild")}return this}setData(e){return this.dom=e,this.dom.leading=new ft(e.leading||1.3),this}text(e){if(e===void 0){let t=this.node.childNodes,i=0;e="";for(let n=0,s=t.length;n{let n;try{n=t.bbox()}catch(l){return}let s=new tt(t),a=s.translate(r,e).transform(s.inverse()),o=new Sr(n.x,n.y).transform(a);t.move(o.x,o.y)}),this}function JR(r){return this.dmove(r,0)}function $R(r){return this.dmove(0,r)}function eP(r,e=this.bbox()){return r==null?e.height:this.size(e.width,r,e)}function tP(r=0,e=0,t=this.bbox()){let i=r-t.x,n=e-t.y;return this.dmove(i,n)}function rP(r,e,t=this.bbox()){let i=rh(this,r,e,t),n=i.width/t.width,s=i.height/t.height;return this.children().forEach((a,o)=>{let l=new Sr(t).transform(new tt(a).inverse());a.scale(n,s,l.x,l.y)}),this}function iP(r,e=this.bbox()){return r==null?e.width:this.size(r,e.height,e)}function nP(r,e=this.bbox()){return r==null?e.x:this.move(r,e.y,e)}function sP(r,e=this.bbox()){return r==null?e.y:this.move(e.x,r,e)}var l9={__proto__:null,dmove:ZR,dx:JR,dy:$R,height:eP,move:tP,size:rP,width:iP,x:nP,y:sP},Qt=class extends bi{constructor(e,t=e){super(gr("g",e),t)}};It(Qt,l9);At({Container:{group:pr(function(){return this.put(new Qt)})}});Ht(Qt,"G");var ho=class extends bi{constructor(e,t=e){super(gr("a",e),t)}target(e){return this.attr("target",e)}to(e){return this.attr("href",e,vu)}};It(ho,l9);At({Container:{link:pr(function(r){return this.put(new ho).to(r)})},Element:{unlink(){let r=this.linker();if(!r)return this;let e=r.parent();if(!e)return this.remove();let t=e.index(r);return e.add(this,t),r.remove(),this},linkTo(r){let e=this.linker();return e||(e=new ho,this.wrap(e)),typeof r=="function"?r.call(e,e):e.to(r),this},linker(){let r=this.parent();return r&&r.node.nodeName.toLowerCase()==="a"?r:null}}});Ht(ho,"A");var mu=class extends bi{constructor(e,t=e){super(gr("mask",e),t)}remove(){return this.targets().forEach(function(e){e.unmask()}),super.remove()}targets(){return ih("svg [mask*="+this.id()+"]")}};At({Container:{mask:pr(function(){return this.defs().put(new mu)})},Element:{masker(){return this.reference("mask")},maskWith(r){let e=r instanceof mu?r:this.parent().mask().add(r);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}});Ht(mu,"Mask");var wf=class extends Vn{constructor(e,t=e){super(gr("stop",e),t)}update(e){return(typeof e=="number"||e instanceof ft)&&(e={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),e.opacity!=null&&this.attr("stop-opacity",e.opacity),e.color!=null&&this.attr("stop-color",e.color),e.offset!=null&&this.attr("offset",new ft(e.offset)),this}};At({Gradient:{stop:function(r,e,t){return this.put(new wf).update(r,e,t)}}});Ht(wf,"Stop");function aP(r,e){if(!r)return"";if(!e)return r;let t=r+"{";for(let i in e)t+=nB(i)+":"+e[i]+";";return t+="}",t}var pu=class extends Vn{constructor(e,t=e){super(gr("style",e),t)}addText(e=""){return this.node.textContent+=e,this}font(e,t,i={}){return this.rule("@font-face",{fontFamily:e,src:t,...i})}rule(e,t){return this.addText(aP(e,t))}};At("Dom",{style(r,e){return this.put(new pu).rule(r,e)},fontface(r,e,t){return this.put(new pu).font(r,e,t)}});Ht(pu,"Style");var gu=class extends Zt{constructor(e,t=e){super(gr("textPath",e),t)}array(){let e=this.track();return e?e.array():null}plot(e){let t=this.track(),i=null;return t&&(i=t.plot(e)),e==null?i:this}track(){return this.reference("href")}};At({Container:{textPath:pr(function(r,e){return r instanceof Zt||(r=this.text(r)),r.path(e)})},Text:{path:pr(function(r,e=!0){let t=new gu;r instanceof Bs||(r=this.defs().path(r)),t.attr("href","#"+r,vu);let i;if(e)for(;i=this.node.firstChild;)t.node.appendChild(i);return this.put(t)}),textPath(){return this.findOne("textPath")}},Path:{text:pr(function(r){return r instanceof Zt||(r=new Zt().addTo(this.parent()).text(r)),r.path(this)}),targets(){return ih("svg textPath").filter(r=>(r.attr("href")||"").includes(this.id()))}}});gu.prototype.MorphArray=Ea;Ht(gu,"TextPath");var Af=class extends qi{constructor(e,t=e){super(gr("use",e),t)}use(e,t){return this.attr("href",(t||"")+"#"+e,vu)}};At({Container:{use:pr(function(r,e){return this.put(new Af).use(r,e)})}});Ht(Af,"Use");var Jt=Pi;It([uu,du,gs,Ml,Z0],an("viewbox"));It([kl,Fl,vs,Bs],an("marker"));It(Zt,an("Text"));It(Bs,an("Path"));It(ou,an("Defs"));It([Zt,eh],an("Tspan"));It([Tr,X0,Tl,_i],an("radius"));It(Sl,an("EventTarget"));It(Ls,an("Dom"));It(Vn,an("Element"));It(qi,an("Shape"));It([bi,xf],an("Container"));It(Tl,an("Gradient"));It(_i,an("Runner"));Aa.extend(rB());kR([ft,Kt,hi,tt,lo,Os,Ea,Sr]);DR();var c9=mr($c());var Ef={paddingX:15,paddingY:5,imgMaxWidth:200,imgMaxHeight:100,iconSize:20,lineWidth:1,lineColor:"#549688",lineDasharray:"none",lineFlow:!1,lineFlowDuration:1,lineFlowForward:!0,lineStyle:"straight",rootLineKeepSameInCurve:!0,rootLineStartPositionKeepSameInCurve:!1,lineRadius:5,showLineMarker:!1,generalizationLineWidth:1,generalizationLineColor:"#549688",generalizationLineMargin:0,generalizationNodeMargin:20,associativeLineWidth:2,associativeLineColor:"rgb(51, 51, 51)",associativeLineActiveWidth:8,associativeLineActiveColor:"rgba(2, 167, 240, 1)",associativeLineDasharray:"6,4",associativeLineTextColor:"rgb(51, 51, 51)",associativeLineTextFontSize:14,associativeLineTextLineHeight:1.2,associativeLineTextFontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",backgroundColor:"#fafafa",backgroundImage:"none",backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"cover",nodeUseLineStyle:!1,root:{shape:"rectangle",fillColor:"#549688",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#fff",fontSize:16,fontWeight:"bold",fontStyle:"normal",borderColor:"transparent",borderWidth:0,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},second:{shape:"rectangle",marginX:100,marginY:40,fillColor:"#fff",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#565656",fontSize:16,fontWeight:"normal",fontStyle:"normal",borderColor:"#549688",borderWidth:1,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},node:{shape:"rectangle",marginX:50,marginY:0,fillColor:"transparent",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#6a6d6c",fontSize:14,fontWeight:"normal",fontStyle:"normal",borderColor:"transparent",borderWidth:0,borderRadius:5,borderDasharray:"none",textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],lineMarkerDir:"end",hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"},generalization:{shape:"rectangle",marginX:100,marginY:40,fillColor:"#fff",fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",color:"#565656",fontSize:16,fontWeight:"normal",fontStyle:"normal",borderColor:"#549688",borderWidth:1,borderDasharray:"none",borderRadius:5,textDecoration:"none",gradientStyle:!1,startColor:"#549688",endColor:"#fff",startDir:[0,0],endDir:[1,0],hoverRectColor:"",hoverRectRadius:5,textAlign:"left",imgPlacement:"top",tagPlacement:"right"}},oP=["lineWidth","lineColor","lineDasharray","lineStyle","generalizationLineWidth","generalizationLineColor","associativeLineWidth","associativeLineColor","associativeLineActiveWidth","associativeLineActiveColor","associativeLineTextColor","associativeLineTextFontSize","associativeLineTextLineHeight","associativeLineTextFontFamily","backgroundColor","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","rootLineKeepSameInCurve","rootLineStartPositionKeepSameInCurve","showLineMarker","lineRadius","hoverRectColor","hoverRectRadius","lineFlow","lineFlowDuration","lineFlowForward","textAlign"],h9=r=>{let e=Object.keys(r);for(let t=0;ti===e[t]))return!1;return!0},yu=["lineColor","lineDasharray","lineWidth","lineMarkerDir","lineFlow","lineFlowDuration","lineFlowForward"];var it=(r,e,t,i,n,s=0,a=0,o=[])=>{let l=!1;if(t&&(l=t(r,e,n,s,a,o)),!l&&r.children&&r.children.length>0){let h=s+1;r.children.forEach((c,u)=>{it(c,r,t,i,!1,h,u,[...o,r])})}i&&i(r,e,n,s,a,o)},on=(r,e)=>{let t=[r],i=!1;for(e(r,null)==="stop"&&(i=!0);t.length&&!i;){let n=t.shift();n.children&&n.children.length&&n.children.forEach(s=>{i||(t.push(s),e(s,n)==="stop"&&(i=!0))})}},u9=(r,e,t,i)=>{let n=[],s=r/e,a=t/i;return s>a?n=[t,t/s]:n=[s*i,i],n},Df=(r,e,t,i)=>{let n=r/e,s=[];if(t&&i)if(r<=t&&e<=i)s=[r,e];else{let a=t/i;n>a?s=[t,t/n]:s=[n*i,i]}else t?r<=t?s=[r,e]:s=[t,t/n]:i&&(e<=i?s=[r,e]:s=[n*i,i]);return s};var nh=r=>{r=r.replace(/
/gim,` +`);let e=document.createElement("div");return e.innerHTML=r,r=e.textContent,r},ln=r=>{try{return JSON.parse(JSON.stringify(r))}catch(e){return null}},t6=(r,e,t=!1)=>(r.data=ln(e.data),t&&(r.data.isActive=!1,Hi(r.data).forEach(n=>{n.isActive=!1})),r.children=[],e.children&&e.children.length>0&&e.children.forEach((i,n)=>{r.children[n]=t6({},i,t)}),Object.keys(e).forEach(i=>{!["data","children"].includes(i)&&!/^_/.test(i)&&(r[i]=e[i])}),r),zl=(r,e,t=!1,i=!0)=>{let n=e.nodeData?e.nodeData:e;return r.data=ln(n.data),i?delete r.data.uid:r.data.uid||(r.data.uid=$r()),t&&(r.data.isActive=!1),r.children=[],e.children&&e.children.length>0?e.children.forEach((s,a)=>{r.children[a]=zl({},s,t,i)}):e.nodeData&&e.nodeData.children&&e.nodeData.children.length>0&&e.nodeData.children.forEach((s,a)=>{r.children[a]=zl({},s,t,i)}),Object.keys(n).forEach(s=>{!["data","children"].includes(s)&&!/^_/.test(s)&&(r[s]=n[s])}),r},bu=(r,e=!1)=>new Promise((t,i)=>{let n=new Image;n.setAttribute("crossOrigin","anonymous"),n.onload=()=>{try{let s=document.createElement("canvas");s.width=n.width,s.height=n.height,s.getContext("2d").drawImage(n,0,0,n.width,n.height),e?s.toBlob(o=>{t(o)}):t(s.toDataURL())}catch(s){i(s)}},n.onerror=s=>{i(s)},n.src=r}),d9=r=>{if(!/^data:/.test(r))return r;let[e,t]=r.split(",");return{type:/^data:[^/]+\/([^;]+);/.exec(e)[1],base64:t}},f9=(r,e)=>{let t=document.createElement("a");t.href=r,t.download=e,t.click()},Rs=(r,e=300,t)=>{let i=null;return(...n)=>{i||(i=setTimeout(()=>{r.call(t,...n),i=null},e))}},m9=(r,e=300,t)=>{let i=null;return(...n)=>{i&&clearTimeout(i),i=setTimeout(()=>{i=null,r.apply(t,n)},e)}},hn=(r,e=()=>{})=>{let t=0,i=r.length;if(i<=0)return e();let n=()=>{if(t>=i){e();return}r[t](),setTimeout(()=>{t++,n()},0)};n()},Kn=r=>r*(Math.PI/180),Nf=r=>r.replace(/([a-z])([A-Z])/g,(...e)=>e[1]+"-"+e[2].toLowerCase());var p9=function(r,e){let t=!1,i=null,n=()=>{t=!1,e?r.call(e):r()};if(typeof MutationObserver!="undefined"){let s=1,a=new MutationObserver(n),o=document.createTextNode(s);a.observe(o,{characterData:!0}),i=function(){s=(s+1)%2,o.data=s}}else i=setTimeout;return function(){t||(t=!0,i(n,0))}},g9=(r,e,t=0,i=0)=>{let n=r.elRect,{scaleX:s,scaleY:a,translateX:o,translateY:l}=r.draw.transform(),{left:h,top:c,width:u,height:d}=e,f=(h+u)*s+o,m=(c+d)*a+l;h=h*s+o,c=c*a+l;let g=0,v=0;return h<0+t&&(g=-h+t),f>n.width-t&&(g=-(f-n.width)-t),c<0+i&&(v=-c+i),m>n.height-i&&(v=-(m-n.height)-i),{isOuter:g!==0||v!==0,offsetLeft:g,offsetTop:v}},Cf=null,cn=r=>(Cf||(Cf=document.createElement("div")),Cf.innerHTML=r,Cf.textContent),uo=r=>new Promise((e,t)=>{let i=new FileReader;i.onload=n=>{e(n.target.result)},i.onerror=n=>{t(n)},i.readAsDataURL(r)});var r6=r=>new Promise(e=>{let t=new Image;t.src=r,t.onload=()=>{e({width:t.width,height:t.height})},t.onerror=()=>{e({width:0,height:0})}}),$r=()=>eu(),v9=r=>new Promise((e,t)=>{let i=new FileReader;i.readAsDataURL(r),i.onload=async n=>{let s=n.target.result,a=await r6(s);e({url:s,size:a})},i.onerror=n=>{t(n)}}),y9=r=>([[" "," "]].forEach(e=>{r=r.replace(new RegExp(e[0],"g"),e[1])}),r),Il=r=>Object.prototype.toString.call(r).slice(8,-1),ei=r=>r==null||r==="";var Sf=null,x9=r=>{Sf||(Sf=document.createElement("div")),Sf.innerHTML=r;for(let e=Sf.childNodes,t=e.length;t--;)if(e[t].nodeType==1)return!0;return!1},xu=null,b9=(r,e,t)=>{xu||(xu=document.createElement("div")),xu.innerHTML=r;let i=n=>{n.childNodes.forEach(a=>{a.nodeType===1?i(a):a.nodeType===3&&n.replaceChild(document.createTextNode(a.nodeValue.replace(new RegExp(e,"g"),t)),a)})};return i(xu),xu.innerHTML};var wu=r=>(r=String(r).replace(/\s+/g,""),["#fff","#ffffff","#FFF","#FFFFFF","rgb(255,255,255)"].includes(r)||/rgba\(255,255,255,[^)]+\)/.test(r)),i6=r=>(r=String(r).replace(/\s+/g,""),["","transparent"].includes(r)||/rgba\(\d+,\d+,\d+,0\)/.test(r)),Ff=r=>{let{lineColor:e,root:t,second:i,node:n}=r,s=[e,t.fillColor,t.color,i.fillColor,i.color,n.fillColor,n.color,t.borderColor,i.borderColor,n.borderColor];for(let a=0;a{let e=t=>{t.childNodes.forEach(n=>{n.nodeType===1&&(n.classList.contains("ql-formula")?n.parentNode.removeChild(n):e(n))})};e(r)},Tf=null,fo=r=>{Tf||(Tf=document.createElement("div")),Tf.innerHTML=r;let e=Tf.childNodes,t="";for(let i=0;i{Mf||(Mf=document.createElement("div")),Mf.innerHTML=r;let e=Mf.childNodes,t=[],i="";for(let n=0;n`

${Dn(n)}

`).join("")},co=null,A9=r=>{co||(co=document.createElement("div")),co.innerHTML=r;let e=co.querySelectorAll(".ql-formula");Array.from(e).forEach(n=>{let s=document.createTextNode("$smmformula$");n.parentNode.replaceChild(s,n)});let t=co.childNodes,i=[];for(let n=0;n`

${Dn(n)}

`).join(""),e.length>0){r=r.replace(/\$smmformula\$/g,''),co.innerHTML=r;let n=co.querySelectorAll(".smmformula");Array.from(n).forEach((s,a)=>{s.parentNode.replaceChild(e[a],s)}),r=co.innerHTML}return r};var E9=(r,e)=>{let t={};return Object.keys(e).forEach(i=>{let n=r[i],s=e[i];if(Il(n)!==Il(s)){t[i]=s;return}if(Il(n)==="Object"){if(JSON.stringify(n)!==JSON.stringify(s)){t[i]=s;return}}else if(n!==s){t[i]=s;return}}),t},Ll=r=>/^_/.test(r)?!1:!H0.includes(r),C9=r=>{let e=[...yu],t=Object.keys(r);for(let i=0;ir.reduce((e,t)=>{let i=e.find(n=>n.type===t.type);return i?t.list.forEach(n=>{let s=i.list.find(a=>a.name===n.name);s?s.icon=n.icon:i.list.push(n)}):e.push({...t}),e},[]),Ol=r=>{let e=[];return r.forEach(t=>{r.find(i=>i.uid!==t.uid&&i.isAncestor(t))||e.push(t)}),e};var T9=r=>{let e={},t={};r.forEach(n=>{let s=n.parent;if(s){let a=s.uid;t[a]=s;let o=n.getIndexInBrothers(),l={node:n,index:o};e[a]?e[a].find(h=>h.index===l.index)||e[a].push(l):e[a]=[l]}});let i=[];return Object.keys(e).forEach(n=>{if(e[n].length>1){let s=e[n].map(a=>a.index).sort((a,o)=>a-o);i.push({node:t[n],range:[s[0],s[s.length-1]]})}else i.push({node:e[n][0].node})}),i},M9=(r,e,t,i,n,s,a,o)=>e>n&&s>r&&i>a&&o>t,sh=r=>{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(r),t.collapse(),e.removeAllRanges(),e.addRange(t)},ah=r=>{let e=window.getSelection(),t=document.createRange();t.selectNodeContents(r),e.removeAllRanges(),e.addRange(t)},Au=(r,e={})=>{e={...e},e&&e.richText&&e.resetRichText&&delete e.resetRichText;let i=n=>{n.forEach(s=>{s.data={...s.data,...e},s.children&&s.children.length>0&&i(s.children)})};return i(r),r},Bl=(r,e=!1,t=null,i=!1)=>{let n=s=>{s.forEach(a=>{a.data||(a.data={}),(e||ei(a.data.uid))&&(a.data.uid=$r()),i&&Hi(a.data).forEach(l=>{(e||ei(l.uid))&&(l.uid=$r())}),t&&t(a),a.children&&a.children.length>0&&n(a.children)})};return n(r),r},Ui=r=>r?Array.isArray(r)?r:[r]:[],mo=r=>r.parent?r.parent.nodeData.children.findIndex(e=>e.data.uid===r.uid):0,nr=(r,e)=>e.findIndex(t=>t.uid===r.uid),If=r=>{let e=0;for(let n=0;n([["&","&"],["<","<"],[">",">"]].forEach(e=>{r=r.replace(new RegExp(e[0],"g"),e[1])}),r),kf=(r,e)=>{let t=Il(r);if(t!==Il(e))return!1;if(t==="Object"){let i=Object.keys(r),n=Object.keys(e);if(i.length!==n.length)return!1;for(let s=0;snavigator.clipboard&&typeof navigator.clipboard.read=="function",s6=r=>{navigator.clipboard&&navigator.clipboard.writeText&&navigator.clipboard.writeText(JSON.stringify(r))},k9=async()=>{let r=null,e=null;if(n6()){let t=await navigator.clipboard.read();if(t&&t.length>0)for(let i of t)for(let n of i.types)/^image\//.test(n)?e=await i.getType(n):n==="text/plain"&&(r=await(await i.getType(n)).text())}return{text:r,img:e}},zf=r=>{if(!r||!r.parent)return;let e=mo(r);e!==-1&&r.parent.nodeData.children.splice(e,1)},D9=r=>(Ev.forEach(e=>{r=r.replace(new RegExp(`<${e}([^>]*)>`,"g"),`<${e} $1 />`)}),r),N9=(r,e)=>{if(r.length!==e.length)return!1;for(let t=0;ti.uid===r[t].uid))return!1;return!0},F9=()=>{let r=navigator.userAgent.match(/\s+Chrome\/(.*)\s+/);return r&&r[1]?Number.parseFloat(r[1]):""},a6=r=>({simpleMindMap:!0,data:r}),Rl=r=>{let e=null;if(typeof r=="string")try{let i=JSON.parse(r);typeof i=="object"&&i.simpleMindMap&&(e=i.data)}catch(i){}else typeof r=="object"&&r.simpleMindMap&&(e=r.data);let t=!!e;return{isSmm:t,data:t?e:String(r)}},o6=(r,e)=>{r.preventDefault();let t=window.getSelection();if(!t.rangeCount)return;t.deleteFromDocument(),e=e||r.clipboardData.getData("text"),e=Dn(e),e=cn(e);let i=e.split(/\n/g),n=document.createDocumentFragment();i.forEach((s,a)=>{let o=document.createTextNode(s);if(n.appendChild(o),a{let e={},t=(i,n)=>{let s=i.data.uid;n&&n.children.push(s),e[s]={isRoot:!n,data:{...i.data},children:[]},i.children&&i.children.length>0&&i.children.forEach(a=>{t(a,e[s])})};return t(r,null),e};var I9=(r,e,t,i)=>Math.sqrt(Math.pow(r-t,2)+Math.pow(e-i,2)),z9=(r,e)=>{let t=r.x+r.width/2,i=r.y+r.height/2,n=e.x+e.width/2,s=e.y+e.height/2;return tn&&in&&i>s?"right-bottom":ts?"left-bottom":tn&&i===s?"right":t===n&&is?"bottom":"overlap"},L9=({addContentToHeader:r,addContentToFooter:e})=>{let t=[],i=null,n=0,s=null,a=0,o=(l,h)=>{if(typeof l=="function"){let c=l();if(!c)return;let{el:u,cssText:d,height:f}=c;if(u instanceof HTMLElement){Ps(u);let m=po({el:u,height:f});h(m,f)}d&&t.push(d)}};return o(r,(l,h)=>{i=l,n=h}),o(e,(l,h)=>{s=l,a=h}),{cssTextList:t,header:i,headerHeight:n,footer:s,footerHeight:a}},oh=(r,e=0,t=0,i=0,n=0,s=!1,a=!1)=>{let o=1/0,l=-1/0,h=1/0,c=-1/0,u=(d,f)=>{if(!(f&&s)&&d.group)try{let{x:m,y:g,width:v,height:y}=d.group.findOne(".smm-node-shape").rbox();ml&&(l=m+v),gc&&(c=g+y)}catch(m){}!a&&d._generalizationList.length>0&&d._generalizationList.forEach(m=>{u(m.generalizationNode)}),d.children&&d.children.forEach(m=>{u(m)})};return u(r,!0),o=o-e+i,h=h-t+n,l=l-e+i,c=c-t+n,{left:o,top:h,width:l-o,height:c-h}},O9=(r,e=0,t=0,i=0,n=0)=>{let s=1/0,a=-1/0,o=1/0,l=-1/0;return r.forEach(h=>{let{left:c,top:u,width:d,height:f}=oh(h,e,t,i,n,!1,!0);ca&&(a=c+d),ul&&(l=u+f)}),{left:s,top:o,width:a-s,height:l-o}},hP=()=>{if(document.documentElement.requestFullScreen)return"fullscreenchange";if(document.documentElement.webkitRequestFullScreen)return"webkitfullscreenchange";if(document.documentElement.mozRequestFullScreen)return"mozfullscreenchange";if(document.documentElement.msRequestFullscreen)return"msfullscreenchange"},h6=hP(),B9=r=>{r.requestFullScreen?r.requestFullScreen():r.webkitRequestFullScreen?r.webkitRequestFullScreen():r.mozRequestFullScreen&&r.mozRequestFullScreen()},R9=()=>{document.fullscreenElement&&(document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.mozCancelFullScreen&&document.mozCancelFullScreen())},po=({el:r,width:e,height:t})=>{let i=new th;return e!==void 0&&i.width(e),t!==void 0&&i.height(t),i.add(r),i},Hi=r=>{let e=r.generalization;return e?Array.isArray(e)?e:[e]:[]};var Ps=r=>{r.setAttribute("xmlns","http://www.w3.org/1999/xhtml")},Eu=r=>(r=[...r],r.sort((e,t)=>e.sortIndex-t.sortIndex),r),c6=(r,e)=>(0,c9.default)(r,e,{arrayMerge:(t,i)=>i}),Lf=r=>{let e={};return G0.forEach(t=>{let i=r.style.merge(t);t==="fontSize"&&(i=i+"px"),e[t]=i}),e},P9=(r,e)=>{let t=String(r).split("."),i=String(e).split("."),n=Math.max(t.length,i.length);for(let s=0;so)return">";if(a{xs.cacheStyle[h]=l[h]})}let{backgroundColor:i,backgroundImage:n,backgroundRepeat:s,backgroundPosition:a,backgroundSize:o}=t;e.style.backgroundColor=i,n&&n!=="none"?(e.style.backgroundImage=`url(${n})`,e.style.backgroundRepeat=s,e.style.backgroundPosition=a,e.style.backgroundSize=o):e.style.backgroundImage="none"}static removeBackgroundStyle(e){xs.cacheStyle&&(_9.forEach(t=>{e.style[t]=xs.cacheStyle[t]}),xs.cacheStyle=null)}constructor(e){this.ctx=e,this._markerPath=null,this._marker=null,this._gradient=null}merge(e,t){let i=this.ctx.mindMap.themeConfig,n=null,s=!1;t?(s=!0,n=i):this.ctx.isGeneralization?n=i.generalization:this.ctx.layerIndex===0?n=i.root:this.ctx.layerIndex===1?n=i.second:n=i.node;let a="";return this.getSelfStyle(e)!==void 0?a=this.getSelfStyle(e):n[e]!==void 0?a=n[e]:a=i[e],s||this.addToEffectiveStyles({[e]:a}),a}getStyle(e,t){return this.merge(e,t)}getSelfStyle(e){return this.ctx.getData(e)}addToEffectiveStyles(e){this.ctx.mindMap.painter&&(this.ctx.effectiveStyles={...this.ctx.effectiveStyles,...e})}rect(e){this.shape(e),e.radius(this.merge("borderRadius"))}shape(e){let t={};u6.forEach(i=>{t[i]=this.merge(i)}),t.gradientStyle?(this._gradient||(this._gradient=this.ctx.nodeDraw.gradient("linear")),this._gradient.update(i=>{i.stop(0,t.startColor),i.stop(1,t.endColor)}),this._gradient.from(...t.startDir).to(...t.endDir),e.fill(this._gradient)):e.fill({color:t.fillColor}),e.stroke({color:t.borderColor,width:t.borderWidth,dasharray:t.borderDasharray})}text(e){let t={color:this.merge("color"),fontFamily:this.merge("fontFamily"),fontSize:this.merge("fontSize"),fontWeight:this.merge("fontWeight"),fontStyle:this.merge("fontStyle"),textDecoration:this.merge("textDecoration")};e.fill({color:t.color}).css({"font-family":t.fontFamily,"font-size":t.fontSize+"px","font-weight":t.fontWeight,"font-style":t.fontStyle,"text-decoration":t.textDecoration})}domText(e,t=1){let i={color:this.merge("color"),fontFamily:this.merge("fontFamily"),fontSize:this.merge("fontSize"),fontWeight:this.merge("fontWeight"),fontStyle:this.merge("fontStyle"),textDecoration:this.merge("textDecoration"),textAlign:this.merge("textAlign")};e.style.color=i.color,e.style.textDecoration=i.textDecoration,e.style.fontFamily=i.fontFamily,e.style.fontSize=i.fontSize*t+"px",e.style.fontWeight=i.fontWeight||"normal",e.style.fontStyle=i.fontStyle,e.style.textAlign=i.textAlign}tagText(e,t){e.fill({color:"#fff"}).css({"font-size":t.fontSize+"px"})}tagRect(e,t){e.fill({color:t.fill}),t.radius&&e.radius(t.radius)}iconNode(e,t){e.attr({fill:t||this.merge("color")})}line(e,{width:t,color:i,dasharray:n}={},s,a){let{customHandleLine:o}=this.ctx.mindMap.opt;if(typeof o=="function"&&o(this.ctx,e,{width:t,color:i,dasharray:n}),e.stroke({color:i,dasharray:n,width:t}).fill({color:"none"}),s){let l=this.merge("showLineMarker",!0),h=a.style;if(l){h._marker=h._marker||h.createMarker(),h._markerPath.stroke({color:i}).fill({color:i}),e.attr("marker-start",""),e.attr("marker-end","");let c=h.merge("lineMarkerDir");e.marker(c,h._marker)}else h._marker&&(e.attr("marker-start",""),e.attr("marker-end",""),h._marker.remove(),h._marker=null)}}createMarker(){return this.ctx.lineDraw.marker(20,20,e=>{e.ref(8,5),e.size(20,20),e.attr("markerUnits","userSpaceOnUse"),e.attr("orient","auto-start-reverse"),this._markerPath=e.path("M0,0 L2,5 L0,10 L10,5 Z")})}generalizationLine(e){e.stroke({width:this.merge("generalizationLineWidth",!0),color:this.merge("generalizationLineColor",!0)}).fill({color:"none"})}iconBtn(e,t,i){let{color:n,fill:s,fontSize:a,fontColor:o}=this.ctx.mindMap.opt.expandBtnStyle||{color:"#808080",fill:"#fff",fontSize:12,strokeColor:"#333333",fontColor:"#333333"};e.fill({color:n}),t.fill({color:n}),i.fill({color:s}),this.ctx.mindMap.opt.isShowExpandNum&&e.attr({"font-size":a+"px","font-color":o})}hasCustomStyle(){let e=!1;return Object.keys(this.ctx.getData()).forEach(t=>{Ll(t)&&(e=!0)}),e}getCustomStyle(){let e={};return Object.keys(this.ctx.getData()).forEach(t=>{Ll(t)&&(e[t]=this.ctx.getData(t))}),e}hoverNode(e){let t=this.merge("hoverRectColor")||this.ctx.mindMap.opt.hoverRectColor,i=this.merge("hoverRectRadius");e.radius(i).fill("none").stroke({color:t})}onRemove(){this._marker&&(this._marker.remove(),this._marker=null),this._markerPath&&(this._markerPath.remove(),this._markerPath=null),this._gradient&&(this._gradient.remove(),this._gradient=null)}};xs.cacheStyle=null;var Cu=xs;var Su=class{constructor(e){this.node=e,this.mindMap=e.mindMap}getShapePadding(e,t,i,n){let s=this.node.getShape(),a=15,o=5,l=e+i*2,h=t+n*2,c=Math.abs(l-h);switch(s){case J.SHAPE.ROUNDED_RECTANGLE:return{paddingX:t>e?(t-e)/2:0,paddingY:0};case J.SHAPE.DIAMOND:return{paddingX:e/2,paddingY:t/2};case J.SHAPE.PARALLELOGRAM:return{paddingX:i<=0?a:0,paddingY:0};case J.SHAPE.OUTER_TRIANGULAR_RECTANGLE:return{paddingX:i<=0?a:0,paddingY:0};case J.SHAPE.INNER_TRIANGULAR_RECTANGLE:return{paddingX:i<=0?a:0,paddingY:0};case J.SHAPE.ELLIPSE:return{paddingX:i<=0?a:0,paddingY:n<=0?o:0};case J.SHAPE.CIRCLE:return{paddingX:h>l?c/2:0,paddingY:ht.name===e)}createShape(){let e=this.node.getShape(),t=null;if(e===J.SHAPE.RECTANGLE?t=this.createRect():e===J.SHAPE.DIAMOND?t=this.createDiamond():e===J.SHAPE.PARALLELOGRAM?t=this.createParallelogram():e===J.SHAPE.ROUNDED_RECTANGLE?t=this.createRoundedRectangle():e===J.SHAPE.OCTAGONAL_RECTANGLE?t=this.createOctagonalRectangle():e===J.SHAPE.OUTER_TRIANGULAR_RECTANGLE?t=this.createOuterTriangularRectangle():e===J.SHAPE.INNER_TRIANGULAR_RECTANGLE?t=this.createInnerTriangularRectangle():e===J.SHAPE.ELLIPSE?t=this.createEllipse():e===J.SHAPE.CIRCLE&&(t=this.createCircle()),!t){let i=this.getShapeFromExtendList(e);i&&(t=i.createShape(this.node))}return t||this.createRect()}getNodeSize(){let e=this.node.getBorderWidth(),{width:t,height:i}=this.node;return t-=e,i-=e,{width:t,height:i}}createPath(e){let{customCreateNodePath:t}=this.mindMap.opt;return t?Jt(t(e)):new Bs().plot(e)}createPolygon(e){let{customCreateNodePolygon:t}=this.mindMap.opt;return t?Jt(t(e)):new vs().plot(e)}createRect(){let{width:e,height:t}=this.getNodeSize(),i=this.node.style.merge("borderRadius"),n=` + M${i},0 + L${e-i},0 + C${e-i},0 ${e},${0} ${e},${i} + L${e},${t-i} + C${e},${t-i} ${e},${t} ${e-i},${t} + L${i},${t} + C${i},${t} ${0},${t} ${0},${t-i} + L${0},${i} + C${0},${i} ${0},${0} ${i},${0} + Z + `;return this.createPath(n)}createDiamond(){let{width:e,height:t}=this.getNodeSize(),i=e/2,n=t/2,f=[[i,0],[e,n],[i,t],[0,n]];return this.createPolygon(f)}createParallelogram(){let{paddingX:e}=this.node.getPaddingVale();e=e||this.node.shapePadding.paddingX;let{width:t,height:i}=this.getNodeSize(),n=[[e,0],[t,0],[t-e,i],[0,i]];return this.createPolygon(n)}createRoundedRectangle(){let{width:e,height:t}=this.getNodeSize(),i=t/2,n=` + M${i},0 + L${e-i},0 + A${t/2},${t/2} 0 0,1 ${e-i},${t} + L${i},${t} + A${t/2},${t/2} 0 0,1 ${i},${0} + `;return this.createPath(n)}createOctagonalRectangle(){let e=5,{width:t,height:i}=this.getNodeSize(),n=[[0,e],[e,0],[t-e,0],[t,e],[t,i-e],[t-e,i],[e,i],[0,i-e]];return this.createPolygon(n)}createOuterTriangularRectangle(){let{paddingX:e}=this.node.getPaddingVale();e=e||this.node.shapePadding.paddingX;let{width:t,height:i}=this.getNodeSize(),n=[[e,0],[t-e,0],[t,i/2],[t-e,i],[e,i],[0,i/2]];return this.createPolygon(n)}createInnerTriangularRectangle(){let{paddingX:e}=this.node.getPaddingVale();e=e||this.node.shapePadding.paddingX;let{width:t,height:i}=this.getNodeSize(),n=[[0,0],[t,0],[t-e/2,i/2],[t,i],[0,i],[e/2,i/2]];return this.createPolygon(n)}createEllipse(){let{width:e,height:t}=this.getNodeSize(),i=e/2,n=t/2,s=` + M${i},0 + A${i},${n} 0 0,1 ${i},${t} + M${i},${t} + A${i},${n} 0 0,1 ${i},${0} + `;return this.createPath(s)}createCircle(){let{width:e,height:t}=this.getNodeSize(),i=e/2,n=t/2,s=` + M${i},0 + A${i},${n} 0 0,1 ${i},${t} + M${i},${t} + A${i},${n} 0 0,1 ${i},${0} + `;return this.createPath(s)}},q9=[J.SHAPE.RECTANGLE,J.SHAPE.DIAMOND,J.SHAPE.PARALLELOGRAM,J.SHAPE.ROUNDED_RECTANGLE,J.SHAPE.OCTAGONAL_RECTANGLE,J.SHAPE.OUTER_TRIANGULAR_RECTANGLE,J.SHAPE.INNER_TRIANGULAR_RECTANGLE,J.SHAPE.ELLIPSE,J.SHAPE.CIRCLE];function cP(){let r=this.getData("generalization");return Array.isArray(r)?r:r?[r]:[]}function uP(){return this.formatGetGeneralization().length>0}function dP(){return!!this.formatGetGeneralization().find(e=>!e.range||e.range.length<=0)}function fP(r){return this._generalizationList.findIndex(e=>e.generalizationNode.uid===r.uid)}function mP(){if(this.isGeneralization||!this.checkHasGeneralization())return;let r=0,e=0;this.formatGetGeneralization().forEach((i,n)=>{let s=this._generalizationList[n];s||(s=this._generalizationList[n]={}),s.node=this,s.range=i.range,s.generalizationLine||(s.generalizationLine=this.lineDraw.path()),s.generalizationNode||(s.generalizationNode=new go({data:{inserting:i.inserting,data:i},uid:$r(),renderer:this.renderer,mindMap:this.mindMap,isGeneralization:!0})),delete i.inserting,s.generalizationNode.generalizationBelongNode=this,s.generalizationNode.width>r&&(r=s.generalizationNode.width),s.generalizationNode.height>e&&(e=s.generalizationNode.height),i.isActive&&this.renderer.addNodeToActiveList(s.generalizationNode)}),this._generalizationNodeWidth=r,this._generalizationNodeHeight=e}function pP(){this.isGeneralization||(this.removeGeneralization(),this.createGeneralizationNode())}function gP(r){if(this.isGeneralization)return;this.updateGeneralizationData();let e=this.formatGetGeneralization();if(e.length<=0||this.getData("expand")===!1){this.removeGeneralization();return}e.length!==this._generalizationList.length&&this.removeGeneralization(),this.createGeneralizationNode(),this.renderer.layout.renderGeneralization(this._generalizationList),this._generalizationList.forEach(t=>{this.style.generalizationLine(t.generalizationLine),t.generalizationNode.render(()=>{},r)})}function vP(){let r=this.getChildrenLength(),e=this.formatGetGeneralization(),t=[];e.forEach(i=>{if(!i.range){t.push(i);return}i.range.length>0&&i.range[0]<=r-1&&i.range[1]<=r-1&&t.push(i)}),t.length!==e.length&&this.setData({generalization:t})}function yP(){this.isGeneralization||(this._generalizationList.forEach(r=>{r.generalizationNode.style.onRemove(),r.generalizationLine&&(r.generalizationLine.remove(),r.generalizationLine=null),r.generalizationNode&&(this.renderer.removeNodeFromActiveList(r.generalizationNode),r.generalizationNode.remove(),r.generalizationNode=null)}),this._generalizationList=[],this.generalizationBelongNode&&this.nodeDraw.find(".generalization_"+this.generalizationBelongNode.uid).remove())}function xP(){this.isGeneralization||this._generalizationList.forEach(r=>{r.generalizationLine&&r.generalizationLine.hide(),r.generalizationNode&&r.generalizationNode.hide()})}function bP(){this.isGeneralization||this._generalizationList.forEach(r=>{r.generalizationLine&&r.generalizationLine.show(),r.generalizationNode&&r.generalizationNode.show()})}function wP(r){this._generalizationList.forEach(e=>{e.generalizationLine.opacity(r),e.generalizationNode.group.opacity(r)})}function AP(){let r=this.generalizationBelongNode,e=r.formatGetGeneralization(),t=r.getGeneralizationNodeIndex(this),i=e[t],s=this.getStyle("hoverRectColor")||this.mindMap.opt.hoverRectColor,a=s?{stroke:s}:null;Array.isArray(i.range)&&i.range.length>0?this.mindMap.renderer.highlightNode(r,i.range,a):this.mindMap.renderer.highlightNode(r,null,a)}function EP(){this.mindMap.renderer.closeHighlightNode()}var d6={formatGetGeneralization:cP,checkHasGeneralization:uP,checkHasSelfGeneralization:dP,getGeneralizationNodeIndex:fP,createGeneralizationNode:mP,updateGeneralization:pP,updateGeneralizationData:vP,renderGeneralization:gP,removeGeneralization:yP,hideGeneralization:xP,showGeneralization:bP,setGeneralizationOpacity:wP,handleGeneralizationMouseenter:AP,handleGeneralizationMouseleave:EP};var CP='',SP='',TP='',MP='',kP='',vo={open:CP,close:SP,remove:TP,imgAdjust:MP,quickCreateChild:kP};function DP(){if(this._openExpandNode)return;let{expandBtnSize:r,expandBtnIcon:e,isShowExpandNum:t}=this.mindMap.opt,{close:i,open:n}=e||{};t?(this._openExpandNode=new Zt,this._openExpandNode.addClass("smm-expand-btn-text"),this._openExpandNode.attr({"text-anchor":"middle","dominant-baseline":"middle",x:r/2,y:2})):(this._openExpandNode=Jt(n||vo.open).size(r,r),this._openExpandNode.x(0).y(-r/2)),this._closeExpandNode=Jt(i||vo.close).size(r,r),this._closeExpandNode.x(0).y(-r/2),this._fillExpandNode=new ys().size(r),this._fillExpandNode.x(0).y(-r/2),this.style.iconBtn(this._openExpandNode,this._closeExpandNode,this._fillExpandNode)}function NP(r=[]){return r.reduce((e,t)=>e+this.sumNode(t.children||[]),r.length)}function FP(){let{expand:r}=this.getData();if(r===this._lastExpandBtnType)return;this._expandBtn&&this._expandBtn.clear(),this.createExpandNodeContent();let e;if(r===!1?(e=this._openExpandNode,this._lastExpandBtnType=!1):(e=this._closeExpandNode,this._lastExpandBtnType=!0),this._expandBtn){let{isShowExpandNum:t,expandBtnStyle:i,expandBtnNumHandler:n}=this.mindMap.opt;if(t)if(r)this._fillExpandNode.stroke("none");else{this._fillExpandNode.stroke({color:i.strokeColor});let s=this.sumNode(this.nodeData.children||[]);if(typeof n=="function"){let a=n(s,this);ei(a)||(s=a)}e.text(String(s))}this._expandBtn.add(this._fillExpandNode).add(e)}}function IP(){this._expandBtn&&this.renderer.layout.renderExpandBtn(this,this._expandBtn)}function zP(){this.getChildrenLength()<=0||this.isRoot||(this._expandBtn?this.group.add(this._expandBtn):(this._expandBtn=new Qt,this._expandBtn.on("mouseover",r=>{r.stopPropagation(),this._expandBtn.css({cursor:"pointer"})}),this._expandBtn.on("mouseout",r=>{r.stopPropagation(),this._expandBtn.css({cursor:"auto"})}),this._expandBtn.on("click",r=>{r.stopPropagation(),this.mindMap.execCommand("SET_NODE_EXPAND",this,!this.getData("expand")),this.mindMap.emit("expand_btn_click",this)}),this._expandBtn.on("dblclick",r=>{r.stopPropagation()}),this._expandBtn.addClass("smm-expand-btn"),this.group.add(this._expandBtn)),this._showExpandBtn=!0,this.updateExpandBtnNode(),this.updateExpandBtnPos())}function LP(){this._expandBtn&&this._showExpandBtn&&(this._expandBtn.remove(),this._showExpandBtn=!1)}function OP(){let{alwaysShowExpandBtn:r,notShowExpandBtn:e}=this.mindMap.opt;r||e||setTimeout(()=>{this.renderExpandBtn()},0)}function BP(){let{alwaysShowExpandBtn:r,notShowExpandBtn:e}=this.mindMap.opt;if(r||this._isMouseenter||e)return;let{isActive:t,expand:i}=this.getData();!t&&i&&setTimeout(()=>{this.removeExpandBtn()},0)}var f6={createExpandNodeContent:DP,updateExpandBtnNode:FP,updateExpandBtnPos:IP,renderExpandBtn:zP,removeExpandBtn:LP,showExpandBtn:OP,hideExpandBtn:BP,sumNode:NP};function RP(r={}){this.mindMap.execCommand("SET_NODE_DATA",this,r)}function PP(r,e,t){this.mindMap.execCommand("SET_NODE_TEXT",this,r,e,t)}function _P(r){this.mindMap.execCommand("SET_NODE_IMAGE",this,r)}function qP(r){this.mindMap.execCommand("SET_NODE_ICON",this,r)}function UP(r,e){this.mindMap.execCommand("SET_NODE_HYPERLINK",this,r,e)}function HP(r){this.mindMap.execCommand("SET_NODE_NOTE",this,r)}function jP(r,e){this.mindMap.execCommand("SET_NODE_ATTACHMENT",this,r,e)}function GP(r){this.mindMap.execCommand("SET_NODE_TAG",this,r)}function WP(r){this.mindMap.execCommand("SET_NODE_SHAPE",this,r)}function YP(r,e){this.mindMap.execCommand("SET_NODE_STYLE",this,r,e)}function VP(r){this.mindMap.execCommand("SET_NODE_STYLES",this,r)}var m6={setData:RP,setText:PP,setImage:_P,setIcon:qP,setHyperlink:UP,setNote:HP,setAttachment:jP,setTag:GP,setShape:WP,setStyle:YP,setStyles:VP};var KP='',QP='',XP='',U9=[{name:"\u4F18\u5148\u7EA7\u56FE\u6807",type:"priority",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''}]},{name:"\u8FDB\u5EA6\u56FE\u6807",type:"progress",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''}]},{name:"\u8868\u60C5\u56FE\u6807",type:"expression",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''}]},{name:"\u6807\u8BB0\u56FE\u6807",type:"sign",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''},{name:"21",icon:''},{name:"22",icon:''},{name:"23",icon:''}]}],ZP=(r,e=[])=>{let t=r.split("_"),n=S9([...U9,...e]).find(s=>s.type===t[0]);if(n){let s=n.list.find(a=>a.name===t[1]);return s?s.icon:""}else return""},Tu={hyperlink:KP,note:QP,attachment:XP,nodeIconList:U9,getNodeIconListIcon:ZP};var JP=(r,e)=>{let t=new Qt,i=new Zt().text(r);return e.text(i),t.add(i),t.bbox()},H9={radius:3,fontSize:12,fill:"",height:20,paddingX:8};function $P(){let r=this.getData("image");if(!r)return;r=(this.mindMap.renderer.renderTree.data.imgMap||{})[r]||r;let e=this.getImgShowSize(),t=new gs().load(r).size(...e),{defaultNodeImage:i}=this.mindMap.opt;if(i){let n=new Image;n.onerror=()=>{t.load(i)},n.src=r}return this.getData("imageTitle")&&t.attr("title",this.getData("imageTitle")),t.on("click",n=>{this.mindMap.emit("node_img_click",this,t,n)}),t.on("dblclick",n=>{this.mindMap.emit("node_img_dblclick",this,n,t)}),t.on("mouseenter",n=>{this.mindMap.emit("node_img_mouseenter",this,t,n)}),t.on("mouseleave",n=>{this.mindMap.emit("node_img_mouseleave",this,t,n)}),t.on("mousemove",n=>{this.mindMap.emit("node_img_mousemove",this,t,n)}),{node:t,width:e[0],height:e[1]}}function e_(){let{custom:r,width:e,height:t}=this.getData("imageSize");return r?[e,t]:Df(e,t,this.mindMap.themeConfig.imgMaxWidth,this.mindMap.themeConfig.imgMaxHeight)}function t_(){let r=this.getData();if(!r.icon||r.icon.length<=0)return[];let e=this.mindMap.themeConfig.iconSize;return r.icon.map(t=>{let i=Tu.getNodeIconListIcon(t,this.mindMap.opt.iconList||[]),n=null;return/^{this.mindMap.emit("node_icon_click",this,t,s,n)}),n.on("mouseenter",s=>{this.mindMap.emit("node_icon_mouseenter",this,t,s,n)}),n.on("mouseleave",s=>{this.mindMap.emit("node_icon_mouseleave",this,t,s,n)}),{node:n,width:e,height:e}})}function r_(r){let e=this.hasCustomWidth(),t=typeof r=="string"?r:this.getData("text"),{textAutoWrapWidth:i,emptyTextMeasureHeightText:n}=this.mindMap.opt;i=e?this.customTextWidth:i;let s=new Qt,a=!1;this.getData("resetRichText")&&(delete this.nodeData.data.resetRichText,a=!0),a&&!ei(t)&&(x9(t)?t=A9(t):t=`

${t}

`,this.setData({text:t}));let o=[],l=Lf(this);Object.keys(l).forEach(v=>{o.push([v,l[v]])}),this.mindMap.commonCaches.measureRichtextNodeTextSizeEl||(this.mindMap.commonCaches.measureRichtextNodeTextSizeEl=document.createElement("div"),this.mindMap.commonCaches.measureRichtextNodeTextSizeEl.style.position="fixed",this.mindMap.commonCaches.measureRichtextNodeTextSizeEl.style.left="-999999px",this.mindMap.el.appendChild(this.mindMap.commonCaches.measureRichtextNodeTextSizeEl));let h=this.mindMap.commonCaches.measureRichtextNodeTextSizeEl;o.forEach(([v,y])=>{h.style[v]=y}),h.style.lineHeight=1.2;let c=`
${t}
`;h.innerHTML=c;let u=h.children[0];u.classList.add("smm-richtext-node-wrap"),Ps(u),u.style.maxWidth=i+"px",e?u.style.width=this.customTextWidth+"px":u.style.width="";let{width:d,height:f}=u.getBoundingClientRect();if(f<=0){h.innerHTML=`

${n}

`;let v=h.children[0];v.classList.add("smm-richtext-node-wrap"),f=v.getBoundingClientRect().height,h.innerHTML=c}d=Math.min(Math.ceil(d)+1,i),f=Math.ceil(f),s.attr("data-width",d),s.attr("data-height",f);let m=po({el:h.children[0],width:d,height:f}),g={"line-height":1.2};return o.forEach(([v,y])=>{g[Nf(v)]=y}),m.css(g),s.add(m),{node:s,nodeContent:m,width:d,height:f}}function i_(r){if(this.getData("needUpdate")&&delete this.nodeData.data.needUpdate,this.getData("richText"))return this.createRichTextNode(r);let e=typeof r=="string"?r:this.getData("text");this.getData("resetRichText")&&delete this.nodeData.data.resetRichText;let t=new Qt,i=this.getStyle("fontSize",!1),n=this.getStyle("textAlign",!1),s=[];ei(e)||(s=String(e).split(/\n/gim));let{textAutoWrapWidth:a,emptyTextMeasureHeightText:o}=this.mindMap.opt,l=s.length>1;s.forEach((u,d)=>{let f=u.split(""),m=[],g=[];for(;f.length;){let v=f.shift(),y=[...g,v].join("");JP(y,this.style).width<=a?g.push(v):(m.push(g.join("")),g=[v])}g.length>0&&m.push(g.join("")),m.length>1&&(l=!0),s[d]=m.join(` +`)}),s=s.join(` +`).replace(/\n$/g,"").split(/\n/gim),s.forEach((u,d)=>{u===""&&(u="\uFEFF");let f=new Zt().text(u);f.addClass("smm-text-node-wrap"),f.attr("text-anchor",{left:"start",center:"middle",right:"end"}[n]||"start"),this.style.text(f),f.y(i*j0*d+(j0-1)*i/2),t.add(f)});let{width:h,height:c}=t.bbox();if(c<=0){let u=new Zt().text(o);this.style.text(u),c=u.bbox().height}return h=Math.min(Math.ceil(h),a),c=Math.ceil(c),t.attr("data-width",h),t.attr("data-height",c),t.attr("data-ismultiLine",l||s.length>1),{node:t,width:h,height:c}}function n_(){let{hyperlink:r,hyperlinkTitle:e}=this.getData();if(!r)return;let{customHyperlinkJump:t,hyperlinkIcon:i}=this.mindMap.opt,{icon:n,style:s}=i,a=this.getNodeIconSize("hyperlinkIcon"),o=new Jt().size(a,a),l=new ho().to(r).target("_blank");l.node.addEventListener("click",c=>{typeof t=="function"&&(c.preventDefault(),t(r,this))}),e&&o.add(Jt(`${e}`)),l.rect(a,a).fill({color:"transparent"});let h=Jt(n||Tu.hyperlink).size(a,a);return this.style.iconNode(h,s.color),l.add(h),o.add(l),{node:o,width:a,height:a}}function s_(){let r=this.getData("tag");if(!r||r.length<=0)return[];let{maxTag:e,tagsColorMap:t}=this.mindMap.opt;t=t||{};let i=[];return r.slice(0,e).forEach((n,s)=>{let a="",o={...H9};typeof n=="string"?a=n:(a=n.text,o={...H9,...n.style});let l=typeof o.width!="undefined",h=new Qt;h.on("click",()=>{this.mindMap.emit("node_tag_click",this,n,s,h)});let c=new Zt().text(a);this.style.tagText(c,o);let{width:u,height:d}=c.bbox(),f=l?o.width:u+o.paddingX*2,m=l?Math.max(f,u):f,g=Math.max(o.height,d);l?c.x((m-u)/2):c.x(l?0:o.paddingX),c.cy(-g/2);let v=new Tr().size(f,o.height).cy(-g/2);l&&v.x((m-f)/2),this.style.tagRect(v,{...o,fill:o.fill||t[c.node.textContent]||If(c.node.textContent)}),h.add(v).add(c),i.push({node:h,width:m,height:g})}),i}function a_(){if(!this.getData("note"))return null;let{icon:r,style:e}=this.mindMap.opt.noteIcon,t=this.getNodeIconSize("noteIcon"),i=new Jt().attr("cursor","pointer").addClass("smm-node-note").size(t,t);i.add(new Tr().size(t,t).fill({color:"transparent"}));let n=Jt(r||Tu.note).size(t,t);return this.style.iconNode(n,e.color),i.add(n),this.mindMap.opt.customNoteContentShow||(this.noteEl||(this.noteEl=document.createElement("div"),this.noteEl.style.cssText=` + position: fixed; + padding: 10px; + border-radius: 5px; + box-shadow: 0 2px 5px rgb(0 0 0 / 10%); + display: none; + background-color: var(--background-primary); + z-index: ${this.mindMap.opt.nodeNoteTooltipZIndex} + `,(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.noteEl)),this.noteEl.innerText=this.getData("note")),i.on("mouseover",()=>{let{left:s,top:a}=this.getNoteContentPosition();this.mindMap.opt.customNoteContentShow?this.mindMap.opt.customNoteContentShow.show(this.getData("note"),s,a,this):(this.noteEl.style.left=s+"px",this.noteEl.style.top=a+"px",this.noteEl.style.display="block")}),i.on("mouseout",()=>{this.mindMap.opt.customNoteContentShow?this.mindMap.opt.customNoteContentShow.hide():this.noteEl.style.display="none"}),i.on("click",s=>{this.mindMap.emit("node_note_click",this,s,i)}),i.on("dblclick",s=>{this.mindMap.emit("node_note_dblclick",this,s,i)}),{node:i,width:t,height:t}}function o_(){let{attachmentUrl:r,attachmentName:e}=this.getData();if(!r)return;let t=this.getNodeIconSize("attachmentIcon"),{icon:i,style:n}=this.mindMap.opt.attachmentIcon,s=new Jt().attr("cursor","pointer").size(t,t);e&&s.add(Jt(`${e}`)),s.add(new Tr().size(t,t).fill({color:"transparent"}));let a=Jt(i||Tu.attachment).size(t,t);return this.style.iconNode(a,n.color),s.add(a),s.on("click",o=>{this.mindMap.emit("node_attachmentClick",this,o,s)}),s.on("contextmenu",o=>{this.mindMap.emit("node_attachmentContextmenu",this,o,s)}),{node:s,width:t,height:t}}function l_(r){let{style:e}=this.mindMap.opt[r];return ei(e.size)?this.mindMap.themeConfig.iconSize:e.size}function h_(){let r=this.getNodeIconSize("noteIcon"),{scaleY:e}=this.mindMap.view.getTransformData().transform,t=r*e,{left:i,top:n}=this._noteData.node.node.getBoundingClientRect();return n+=t,{left:i,top:n}}function c_(r){this.mindMap.commonCaches.measureCustomNodeContentSizeEl||(this.mindMap.commonCaches.measureCustomNodeContentSizeEl=document.createElement("div"),this.mindMap.commonCaches.measureCustomNodeContentSizeEl.style.cssText=` + position: fixed; + left: -99999px; + top: -99999px; + `,this.mindMap.el.appendChild(this.mindMap.commonCaches.measureCustomNodeContentSizeEl)),this.mindMap.commonCaches.measureCustomNodeContentSizeEl.innerHTML="",this.mindMap.commonCaches.measureCustomNodeContentSizeEl.appendChild(r);let e=this.mindMap.commonCaches.measureCustomNodeContentSizeEl.getBoundingClientRect();return{width:e.width,height:e.height}}function u_(){return!!this._customNodeContent}var p6={createImgNode:$P,getImgShowSize:e_,createIconNode:t_,createRichTextNode:r_,createTextNode:i_,createHyperlinkNode:n_,createTagNode:s_,createNoteNode:a_,createAttachmentNode:o_,getNoteContentPosition:h_,getNodeIconSize:l_,measureCustomNodeContentSize:c_,isUseCustomNodeContent:u_};function d_(){if(this.getChildrenLength()<=0||this.isRoot)return;let{alwaysShowExpandBtn:r,notShowExpandBtn:e,expandBtnSize:t}=this.mindMap.opt;if(!r&&!e){let{width:i,height:n}=this;this._unVisibleRectRegionNode||(this._unVisibleRectRegionNode=new Tr,this._unVisibleRectRegionNode.fill({color:"transparent"})),this.group.add(this._unVisibleRectRegionNode),this.renderer.layout.renderExpandBtnRect(this._unVisibleRectRegionNode,t,i,n,this)}}function f_(){this._unVisibleRectRegionNode&&(this._unVisibleRectRegionNode.remove(),this._unVisibleRectRegionNode=null)}function m_(){this.needRerenderExpandBtnPlaceholderRect&&(this.needRerenderExpandBtnPlaceholderRect=!1,this.renderExpandBtnPlaceholderRect()),this.getChildrenLength()>0?this._unVisibleRectRegionNode||this.renderExpandBtnPlaceholderRect():this._unVisibleRectRegionNode&&this.clearExpandBtnPlaceholderRect()}var g6={renderExpandBtnPlaceholderRect:d_,clearExpandBtnPlaceholderRect:f_,updateExpandBtnPlaceholderRect:m_};function p_(){this.checkEnableDragModifyNodeWidth()&&(this._dragHandleNodes=null,this.dragHandleWidth=4,this.dragHandleMousedownX=0,this.isDragHandleMousedown=!1,this.dragHandleIndex=0,this.dragHandleMousedownCustomTextWidth=0,this.dragHandleMousedownBodyCursor="",this.dragHandleMousedownLeft=0,this.onDragMousemoveHandle=this.onDragMousemoveHandle.bind(this),window.addEventListener("mousemove",this.onDragMousemoveHandle),this.onDragMouseupHandle=this.onDragMouseupHandle.bind(this),window.addEventListener("mouseup",this.onDragMouseupHandle),this.mindMap.on("node_mouseup",this.onDragMouseupHandle))}function g_(r){if(!this.isDragHandleMousedown)return;r.stopPropagation(),r.preventDefault();let{minNodeTextModifyWidth:e,maxNodeTextModifyWidth:t,isUseCustomNodeContent:i,customCreateNodeContent:n}=this.mindMap.opt,s=i&&n&&this._customNodeContent;document.body.style.cursor="ew-resize",this.group.css({cursor:"ew-resize"});let{scaleX:a}=this.mindMap.draw.transform(),o=r.clientX-this.dragHandleMousedownX,l=this.dragHandleMousedownCustomTextWidth+(this.dragHandleIndex===0?-o:o)/a;if(l=Math.max(l,e),t!==-1&&(l=Math.min(l,t)),!s&&this.getData("image")){let h=this.getImgShowSize();this._rectInfo.textContentWidth-this.customTextWidth+l<=h[0]&&(l=h[0]+this.customTextWidth-this._rectInfo.textContentWidth)}this.customTextWidth=l,this.dragHandleIndex===0&&(this.left=this.dragHandleMousedownLeft+o/a),this.reRender(s?[]:["text"],{ignoreUpdateCustomTextWidth:!0})}function v_(){this.isDragHandleMousedown&&(document.body.style.cursor=this.dragHandleMousedownBodyCursor,this.group.css({cursor:"default"}),this.isDragHandleMousedown=!1,this.dragHandleMousedownX=0,this.dragHandleIndex=0,this.dragHandleMousedownCustomTextWidth=0,this.setData({customTextWidth:this.customTextWidth}),this.mindMap.render(),this.mindMap.emit("dragModifyNodeWidthEnd",this))}function y_(){let r=[new Tr,new Tr];return r.forEach((e,t)=>{e.size(this.dragHandleWidth,this.height).fill({color:"transparent"}).css({cursor:"ew-resize"}),e.on("mousedown",i=>{i.stopPropagation(),i.preventDefault(),this.dragHandleMousedownX=i.clientX,this.dragHandleIndex=t,this.dragHandleMousedownCustomTextWidth=this.customTextWidth===void 0?this._textData?this._textData.width:this.width:this.customTextWidth,this.dragHandleMousedownBodyCursor=document.body.style.cursor,this.dragHandleMousedownLeft=this.left,this.isDragHandleMousedown=!0})}),r}function x_(){this.checkEnableDragModifyNodeWidth()&&(this._dragHandleNodes||(this._dragHandleNodes=this.createDragHandleNode()),this.getData("isActive")?(this._dragHandleNodes.forEach(r=>{r.height(this.height),this.group.add(r)}),this._dragHandleNodes[1].x(this.width-this.dragHandleWidth)):this._dragHandleNodes.forEach(r=>{r.remove()}))}var v6={initDragHandle:p_,onDragMousemoveHandle:g_,onDragMouseupHandle:v_,createDragHandleNode:y_,updateDragHandle:x_};function b_(){this.mindMap.cooperate&&(this._userListGroup=new Qt,this.group.add(this._userListGroup))}function w_(r){let{avatarSize:e,fontSize:t}=this.mindMap.opt.cooperateStyle,i=new Qt,n=r.isMore?r.name:String(r.name)[0],s=new ys().size(e,e);s.fill({color:r.color||If(n)});let a=new Zt().text(n).fill({color:"#fff"}).css({"font-size":t+"px"}).dx(-t/2).dy((e-t)/2);return i.add(s).add(a),i}function A_(r){let{avatarSize:e}=this.mindMap.opt.cooperateStyle;return new gs().load(r.avatar).size(e,e)}function E_(){if(!this._userListGroup)return;let{avatarSize:r}=this.mindMap.opt.cooperateStyle;this._userListGroup.clear();let e=this.userList.length,t=Math.floor(this.width/r),i=[];e>t?i.push(...this.userList.slice(0,t-1),{isMore:!0,name:"+"+(e-t+1)}):i.push(...this.userList),i.forEach((n,s)=>{let a=null;n.avatar?a=this.createImageAvatar(n):a=this.createTextAvatar(n),a.on("click",o=>{this.mindMap.emit("node_cooperate_avatar_click",n,this,a,o)}),a.on("mouseenter",o=>{this.mindMap.emit("node_cooperate_avatar_mouseenter",n,this,a,o)}),a.on("mouseleave",o=>{this.mindMap.emit("node_cooperate_avatar_mouseleave",n,this,a,o)}),a.x(s*r).cy(-r/2),this._userListGroup.add(a)})}function C_(r){this.userList.find(e=>e.id==r.id)||(this.userList.push(r),this.updateUserListNode())}function S_(r){let e=this.userList.findIndex(t=>t.id==r.id);e!==-1&&(this.userList.splice(e,1),this.updateUserListNode())}function T_(){this.userList=[],this.updateUserListNode()}var y6={createUserListNode:b_,updateUserListNode:E_,createTextAvatar:w_,createImageAvatar:A_,addUser:C_,removeUser:S_,emptyUser:T_};function M_(){this.isGeneralization||(this._quickCreateChildBtn=null,this._showQuickCreateChildBtn=!1)}function k_(){if(!(this.isGeneralization||this.getChildrenLength()>0)){if(this._quickCreateChildBtn)this.group.add(this._quickCreateChildBtn);else{let{quickCreateChildBtnIcon:r,expandBtnStyle:e,expandBtnSize:t}=this.mindMap.opt,{icon:i,style:n}=r,{color:s,fill:a}=e||{color:"#808080",fill:"#fff"};s=n.color||s;let o=Jt(i||vo.quickCreateChild).size(t,t);o.css({cursor:"pointer"}),o.x(0).y(-t/2),this.style.iconNode(o,s);let l=new ys().size(t);l.x(0).y(-t/2),l.fill({color:a}).css({cursor:"pointer"}),this._quickCreateChildBtn=new Qt,this._quickCreateChildBtn.add(l).add(o),this._quickCreateChildBtn.on("click",h=>{h.stopPropagation(),this.mindMap.emit("quick_create_btn_click",this);let{customQuickCreateChildBtnClick:c}=this.mindMap.opt;if(typeof c=="function"){c(this);return}this.mindMap.execCommand("INSERT_CHILD_NODE",!0,[this])}),this._quickCreateChildBtn.on("dblclick",h=>{h.stopPropagation()}),this._quickCreateChildBtn.addClass("smm-quick-create-child-btn"),this.group.add(this._quickCreateChildBtn)}this._showQuickCreateChildBtn=!0,this.renderer.layout.renderExpandBtn(this,this._quickCreateChildBtn)}}function D_(){this.isGeneralization||this._quickCreateChildBtn&&this._showQuickCreateChildBtn&&(this._quickCreateChildBtn.remove(),this._showQuickCreateChildBtn=!1)}function N_(){if(this.isGeneralization)return;let{isActive:r}=this.getData();r||this.removeQuickCreateChildBtn()}var x6={initQuickCreateChildBtn:M_,showQuickCreateChildBtn:k_,removeQuickCreateChildBtn:D_,hideQuickCreateChildBtn:N_};function F_(r,e,t,i,n){let{imgTextMargin:s}=this.mindMap.opt;return r==="v"?i>0&&n>0?s:0:e>0&&t>0?s:0}function I_(r){let e=0,t=this._tagData.reduce((i,n)=>(e=Math.max(e,n.height),i+=n.width),0);return t+=(this._tagData.length-1)*r,{width:t,height:e}}function z_(){if(this.isUseCustomNodeContent()){let C=this.measureCustomNodeContentSize(this._customNodeContent);return{width:this.hasCustomWidth()?this.customTextWidth:C.width,height:C.height}}let{TAG_PLACEMENT:r,IMG_PLACEMENT:e}=J,{textContentMargin:t}=this.mindMap.opt,n=(this.getStyle("tagPlacement")||r.RIGHT)===r.BOTTOM,s=this.getStyle("imgPlacement")||e.TOP,a=0,o=0,l=0,h=0,c=0,u=0,d=0;if(this._imgData&&(a=this._imgData.width,o=this._imgData.height),this.mindMap.nodeInnerPrefixList.forEach(C=>{let M=this[`_${C.name}Data`];M&&(l+=M.width,h=Math.max(h,M.height),d++)}),this._prefixData&&(l+=this._prefixData.width,h=Math.max(h,this._prefixData.height),d++),this._iconData.length>0&&(l+=this._iconData.reduce((C,M)=>(h=Math.max(h,M.height),C+=M.width),0)+(this._iconData.length-1)*t,d++),this._textData&&(l+=this._textData.width,h=Math.max(h,this._textData.height),d++),this._hyperlinkData&&(l+=this._hyperlinkData.width,h=Math.max(h,this._hyperlinkData.height),d++),this._tagData.length>0){let{width:C,height:M}=this.getTagContentSize(t);n?(c=C,u=M):(l+=C,h=Math.max(h,M),d++)}this._noteData&&(l+=this._noteData.width,h=Math.max(h,this._noteData.height),d++),this._attachmentData&&(l+=this._attachmentData.width,h=Math.max(h,this._attachmentData.height),d++),this._postfixData&&(l+=this._postfixData.width,h=Math.max(h,this._postfixData.height),d++),this.mindMap.nodeInnerPostfixList.forEach(C=>{let M=this[`_${C.name}Data`];M&&(l+=M.width,h=Math.max(h,M.height),d++)}),l+=(d-1)*t,n&&l>0&&u>0&&(this._rectInfo.textContentWidthWithoutTag=l,l=Math.max(l,c),h=h+t+u),this._rectInfo.textContentWidth=l,this._rectInfo.textContentHeight=h;let f=0,m=0;[e.TOP,e.BOTTOM].includes(s)?(f=Math.max(a,l),m=o+h+this.getImgTextMarin("v",0,0,o,h)):(f=a+l+this.getImgTextMarin("h",a,l),m=Math.max(o,h));let{paddingX:g,paddingY:v}=this.getPaddingVale(),{paddingX:y,paddingY:A}=this.shapeInstance.getShapePadding(f,m,g,v);this.shapePadding.paddingX=y,this.shapePadding.paddingY=A;let b=this.getBorderWidth();return{width:f+g*2+y*2+b,height:m+v*2+A*2+b}}function L_(){if(!this.group)return;this.group.clear();let{hoverRectPadding:r,openRealtimeRenderOnNodeTextEdit:e,textContentMargin:t,addCustomContentToNode:i}=this.mindMap.opt,{width:n,height:s}=this,{paddingX:a,paddingY:o}=this.getPaddingVale(),l=this.getBorderWidth()/2;a+=this.shapePadding.paddingX+l,o+=this.shapePadding.paddingY+l,this.shapeNode=this.shapeInstance.createShape(),this.shapeNode.addClass("smm-node-shape"),this.shapeNode.translate(l,l),this.style.shape(this.shapeNode),this.group.add(this.shapeNode),this.renderExpandBtnPlaceholderRect(),this.createUserListNode&&this.createUserListNode(),this.isGeneralization&&this.generalizationBelongNode&&this.group.addClass("generalization_"+this.generalizationBelongNode.uid);let h=()=>{this.hoverNode=new Tr().size(n+r*2,s+r*2).x(-r).y(-r),this.hoverNode.addClass("smm-hover-node"),this.style.hoverNode(this.hoverNode,n,s),this.group.add(this.hoverNode)};if(this.isUseCustomNodeContent()){let ne=po({el:this._customNodeContent,width:n,height:s});this.group.add(ne),h();return}let{IMG_PLACEMENT:c,TAG_PLACEMENT:u}=J,d=this.getStyle("imgPlacement")||c.TOP,m=(this.getStyle("tagPlacement")||u.RIGHT)===u.BOTTOM,{textContentWidth:g,textContentHeight:v,textContentWidthWithoutTag:y}=this._rectInfo,A=v,b=0,C=0,M=this._tagData&&this._tagData.length>0;if(M){let ne=this.getTagContentSize(t);b=ne.width,C=ne.height,m&&(v-=C+t)}let D=0,L=0;if(this._imgData)switch(D=this._imgData.width,L=this._imgData.height,this.group.add(this._imgData.node),d){case c.TOP:this._imgData.node.cx(n/2).y(o);break;case c.BOTTOM:this._imgData.node.cx(n/2).y(s-o-L);break;case c.LEFT:this._imgData.node.x(a).cy(s/2);break;case c.RIGHT:this._imgData.node.x(n-a-D).cy(s/2);break;default:break}let k=new Qt,V=0;if(M&&m&&(V=y{let ee=this[`_${ne.name}Data`];ee&&(ee.node.x(V).y((v-ee.height)/2),k.add(ee.node),V+=ee.width+t)}),this._prefixData){let ne=po({el:this._prefixData.el,width:this._prefixData.width,height:this._prefixData.height});ne.x(V).y((v-this._prefixData.height)/2),k.add(ne),V+=this._prefixData.width+t}let B=new Qt;if(this._iconData&&this._iconData.length>0){let ne=0;this._iconData.forEach(ee=>{ee.node.x(V+ne).y((v-ee.height)/2),B.add(ee.node),ne+=ee.width+t}),k.add(B),V+=ne}if(this._textData){let ne=this._textData.node.attr("data-offsetx")||0;this._textData.node.attr("data-offsetx",V),(this._textData.nodeContent||this._textData.node).x(-ne).x(V).y((v-this._textData.height)/2),e&&this._textData.node.opacity(this.mindMap.renderer.textEdit.getCurrentEditNode()===this?0:1),k.add(this._textData.node),V+=this._textData.width+t}this._hyperlinkData&&(this._hyperlinkData.node.x(V).y((v-this._hyperlinkData.height)/2),k.add(this._hyperlinkData.node),V+=this._hyperlinkData.width+t);let _=new Qt;if(M)if(m){let ne=0;this._tagData.forEach(ee=>{ee.node.x(ne).y((C-ee.height)/2),_.add(ee.node),ne+=ee.width+t}),_.x((g-b)/2).y(A-C),k.add(_)}else{let ne=0;this._tagData.forEach(ee=>{ee.node.x(V+ne).y((v-ee.height)/2),_.add(ee.node),ne+=ee.width+t}),k.add(_),V+=ne}if(this._noteData&&(this._noteData.node.x(V).y((v-this._noteData.height)/2),k.add(this._noteData.node),V+=this._noteData.width+t),this._attachmentData&&(this._attachmentData.node.x(V).y((v-this._attachmentData.height)/2),k.add(this._attachmentData.node),V+=this._attachmentData.width+t),this._postfixData){let ne=po({el:this._postfixData.el,width:this._postfixData.width,height:this._postfixData.height});ne.x(V).y((v-this._postfixData.height)/2),k.add(ne),V+=this._postfixData.width+t}this.mindMap.nodeInnerPostfixList.forEach(ne=>{let ee=this[`_${ne.name}Data`];ee&&(ee.node.x(V).y((v-ee.height)/2),k.add(ee.node),V+=ee.width+t)}),this.group.add(k);let{width:S,height:G}=k.bbox(),Q=0,Y=0;switch(d){case c.TOP:Q=n/2-S/2,Y=o+L+this.getImgTextMarin("v",0,0,L,A);break;case c.BOTTOM:Q=n/2-S/2,Y=o;break;case c.LEFT:Q=D+a+this.getImgTextMarin("h",D,g),Y=s/2-G/2;break;case c.RIGHT:Q=a,Y=s/2-G/2;break}if(k.translate(Q,Y),h(),this._customContentAddToNodeAdd&&this._customContentAddToNodeAdd.el){let ne=po(this._customContentAddToNodeAdd);this.group.add(ne),i&&typeof i.handle=="function"&&i.handle({content:this._customContentAddToNodeAdd,element:ne,node:this})}this.mindMap.emit("node_layout_end",this)}var b6={getImgTextMarin:F_,getTagContentSize:I_,getNodeRect:z_,layout:L_};var Mu=class{constructor(e={}){this.opt=e,this.nodeData=this.handleData(e.data||{}),this.nodeDataSnapshot="",this.uid=e.uid,this.mindMap=e.mindMap,this.renderer=e.renderer,this.draw=this.mindMap.draw,this.nodeDraw=this.mindMap.nodeDraw,this.lineDraw=this.mindMap.lineDraw,this.style=new Cu(this),this.effectiveStyles={},this.shapeInstance=new Su(this),this.shapePadding={paddingX:0,paddingY:0},this.isRoot=e.isRoot===void 0?!1:e.isRoot,this.isGeneralization=e.isGeneralization===void 0?!1:e.isGeneralization,this.generalizationBelongNode=null,this.layerIndex=e.layerIndex===void 0?0:e.layerIndex,this.width=e.width||0,this.height=e.height||0,this.customTextWidth=e.data.data.customTextWidth||void 0,this._left=e.left||0,this._top=e.top||0,this.customLeft=e.data.data.customLeft||void 0,this.customTop=e.data.data.customTop||void 0,this.isDrag=!1,this.parent=e.parent||null,this.children=e.children||[],this.userList=[],this.group=null,this.shapeNode=null,this.hoverNode=null,this._customNodeContent=null,this._imgData=null,this._iconData=null,this._textData=null,this._hyperlinkData=null,this._tagData=null,this._noteData=null,this.noteEl=null,this.noteContentIsShow=!1,this._attachmentData=null,this._prefixData=null,this._postfixData=null,this._expandBtn=null,this._lastExpandBtnType=null,this._showExpandBtn=!1,this._openExpandNode=null,this._closeExpandNode=null,this._fillExpandNode=null,this._userListGroup=null,this._lines=[],this._generalizationList=[],this._unVisibleRectRegionNode=null,this._isMouseenter=!1,this._customContentAddToNodeAdd=null,this._rectInfo={textContentWidth:0,textContentHeight:0,textContentWidthWithoutTag:0},this._generalizationNodeWidth=0,this._generalizationNodeHeight=0,this.expandBtnSize=this.mindMap.opt.expandBtnSize,this.isMultipleChoice=!1,this.needLayout=!1,this.isHide=!1;let t=Object.getPrototypeOf(this);t.bindEvent||(Object.keys(b6).forEach(i=>{t[i]=b6[i]}),Object.keys(d6).forEach(i=>{t[i]=d6[i]}),Object.keys(f6).forEach(i=>{t[i]=f6[i]}),Object.keys(g6).forEach(i=>{t[i]=g6[i]}),Object.keys(m6).forEach(i=>{t[i]=m6[i]}),Object.keys(p6).forEach(i=>{t[i]=p6[i]}),this.mindMap.cooperate&&Object.keys(y6).forEach(i=>{t[i]=y6[i]}),Object.keys(v6).forEach(i=>{t[i]=v6[i]}),this.mindMap.opt.isShowCreateChildBtnIcon&&(Object.keys(x6).forEach(i=>{t[i]=x6[i]}),this.initQuickCreateChildBtn()),t.bindEvent=!0),this.getSize(),this.updateGeneralization(),this.initDragHandle()}get left(){return this.customLeft||this._left}set left(e){this._left=e}get top(){return this.customTop||this._top}set top(e){this._top=e}reset(){this.children=[],this.parent=null,this.isRoot=!1,this.layerIndex=0,this.left=0,this.top=0}resetWhenDelete(){this._isMouseenter=!1}handleData(e){return e.data.expand=e.data.expand!==!1,e.data.isActive=e.data.isActive===!0,e.children=e.children||[],e}createNodeData(e){let{isUseCustomNodeContent:t,customCreateNodeContent:i,createNodePrefixContent:n,createNodePostfixContent:s,addCustomContentToNode:a}=this.mindMap.opt,o=["custom","image","icon","text","hyperlink","tag","note","attachment","prefix","postfix",...this.mindMap.nodeInnerPrefixList.map(h=>h.name),...this.mindMap.nodeInnerPostfixList.map(h=>h.name)],l={};if(Array.isArray(e)?o.forEach(h=>{e.includes(h)&&(l[h]=!0)}):o.forEach(h=>{l[h]=!0}),t&&i&&l.custom&&(this._customNodeContent=i(this)),this._customNodeContent){Ps(this._customNodeContent);return}l.image&&(this._imgData=this.createImgNode()),l.icon&&(this._iconData=this.createIconNode()),l.text&&(this._textData=this.createTextNode()),l.hyperlink&&(this._hyperlinkData=this.createHyperlinkNode()),l.tag&&(this._tagData=this.createTagNode()),l.note&&(this._noteData=this.createNoteNode()),l.attachment&&(this._attachmentData=this.createAttachmentNode()),this.mindMap.nodeInnerPrefixList.forEach(h=>{l[h.name]&&(this[`_${h.name}Data`]=h.createContent(this))}),l.prefix&&(this._prefixData=n?n(this):null,this._prefixData&&this._prefixData.el&&Ps(this._prefixData.el)),l.postfix&&(this._postfixData=s?s(this):null,this._postfixData&&this._postfixData.el&&Ps(this._postfixData.el)),this.mindMap.nodeInnerPostfixList.forEach(h=>{l[h.name]&&(this[`_${h.name}Data`]=h.createContent(this))}),a&&typeof a.create=="function"&&(this._customContentAddToNodeAdd=a.create(this),this._customContentAddToNodeAdd&&this._customContentAddToNodeAdd.el&&Ps(this._customContentAddToNodeAdd.el))}getSize(e,t={}){t.ignoreUpdateCustomTextWidth||!1||(this.customTextWidth=this.getData("customTextWidth")||void 0),this.customLeft=this.getData("customLeft")||void 0,this.customTop=this.getData("customTop")||void 0,this.createNodeData(e);let{width:n,height:s}=this.getNodeRect(),a=this.width!==n||this.height!==s;return this.width=n,this.height=s,a}bindGroupEvent(){this.group.on("click",e=>{if(this.mindMap.emit("node_click",this,e),this.isMultipleChoice){e.stopPropagation(),this.isMultipleChoice=!1;return}this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate&&this.userList.length>0||this.active(e)}),this.group.on("mousedown",e=>{let{readonly:t,enableCtrlKeyNodeSelection:i,useLeftKeySelectionRightKeyDrag:n,mousedownEventPreventDefault:s}=this.mindMap.opt;if(s&&e.preventDefault(),t||(this.isRoot?e.which===3&&!n&&e.stopPropagation():e.which!==2&&e.stopPropagation()),!t&&(e.ctrlKey||e.metaKey)&&i){this.isMultipleChoice=!0;let a=this.getData("isActive");a||this.mindMap.emit("before_node_active",this,this.renderer.activeNodeList),this.mindMap.renderer[a?"removeNodeFromActiveList":"addNodeToActiveList"](this,!0),this.renderer.emitNodeActiveEvent(a?null:this)}this.mindMap.emit("node_mousedown",this,e)}),this.group.on("mouseup",e=>{!this.isRoot&&e.which!==2&&!this.mindMap.opt.readonly&&e.stopPropagation(),this.mindMap.emit("node_mouseup",this,e)}),this.group.on("mouseenter",e=>{this.isDrag||(this._isMouseenter=!0,this.showExpandBtn(),this.isGeneralization&&this.handleGeneralizationMouseenter(),this.mindMap.emit("node_mouseenter",this,e))}),this.group.on("mouseleave",e=>{this._isMouseenter&&(this._isMouseenter=!1,this.hideExpandBtn(),this.isGeneralization&&this.handleGeneralizationMouseleave(),this.mindMap.emit("node_mouseleave",this,e))}),this.group.on("dblclick",e=>{let{readonly:t,onlyOneEnableActiveNodeOnCooperate:i}=this.mindMap.opt;t||e.ctrlKey||e.metaKey||(e.stopPropagation(),!(i&&this.userList.length>0)&&this.mindMap.emit("node_dblclick",this,e))}),this.group.on("contextmenu",e=>{let{readonly:t,useLeftKeySelectionRightKeyDrag:i}=this.mindMap.opt;t||e.ctrlKey||(e.stopPropagation(),e.preventDefault(),!(this.mindMap.select&&!i&&this.mindMap.select.hasSelectRange())&&(this.getData("isActive")&&this.renderer.activeNodeList.length===1||(this.renderer.clearActiveNodeList(),this.active(e)),this.mindMap.emit("node_contextmenu",e,this)))})}active(e){this.mindMap.opt.readonly||(e&&e.stopPropagation(),!this.getData("isActive")&&(this.mindMap.emit("before_node_active",this,this.renderer.activeNodeList),this.renderer.clearActiveNodeList(),this.renderer.addNodeToActiveList(this,!0),this.renderer.emitNodeActiveEvent(this)))}deactivate(){this.mindMap.renderer.removeNodeFromActiveList(this),this.mindMap.renderer.emitNodeActiveEvent()}update(e){if(!this.group)return;this.updateNodeActiveClass();let{alwaysShowExpandBtn:t,notShowExpandBtn:i,isShowCreateChildBtnIcon:n,readonly:s}=this.mindMap.opt,a=this.getChildrenLength();if(!i)if(t)this._expandBtn&&a<=0?this.removeExpandBtn():this.renderExpandBtn();else{let{isActive:l,expand:h}=this.getData();a<=0?this.removeExpandBtn():h&&!l&&!this._isMouseenter?this.hideExpandBtn():this.showExpandBtn()}if(n)if(a>0)this.removeQuickCreateChildBtn();else{let{isActive:l}=this.getData();l?this.showQuickCreateChildBtn():this.hideQuickCreateChildBtn()}this.updateDragHandle(),this.renderGeneralization(e),this.updateUserListNode&&this.updateUserListNode();let o=this.group.transform();this.nodeDataSnapshot=s?"":JSON.stringify(this.getData()),(this.left!==o.translateX||this.top!==o.translateY)&&this.group.translate(this.left-o.translateX,this.top-o.translateY)}getNodePosInClient(e,t){let i=this.mindMap.draw.transform(),{scaleX:n,scaleY:s,translateX:a,translateY:o}=i,l=e*n+a,h=t*s+o;return{left:l,top:h}}checkIsInClient(e=0){let{left:t,top:i}=this.getNodePosInClient(this.left,this.top);return t+this.width>0-e&&i+this.height>0-e&&t{},t=!1,i=!1){this.renderLine();let{openPerformance:n,performanceConfig:s}=this.mindMap.opt;if(t||!n||this.checkIsInClient(s.padding)||this.isRoot?this.group?(this.nodeDraw.has(this.group)||this.nodeDraw.add(this.group),this.needLayout&&(this.needLayout=!1,this.layout()),this.updateExpandBtnPlaceholderRect(),this.update(t)):(this.group=new Qt,this.group.addClass("smm-node"),this.group.css({cursor:"default"}),this.bindGroupEvent(),this.nodeDraw.add(this.group),this.layout(),this.update(t)):n&&s.removeNodeWhenOutCanvas&&this.removeSelf(),this.children&&this.children.length&&this.getData("expand")!==!1){let a=0;this.children.forEach(o=>{let l=()=>{o.render(()=>{a++,a>=this.children.length&&e()},t,i)};i?setTimeout(l,0):l()})}else e();this.nodeData.inserting&&(delete this.nodeData.inserting,this.active(),this.mindMap.emit("node_dblclick",this,null,!0))}removeSelf(){this.group&&(this.group.remove(),this.removeGeneralization())}remove(){this.group&&(this.group.remove(),this.removeGeneralization(),this.removeLine(),this.children&&this.children.length&&this.children.forEach(e=>{e.remove()}))}destroy(){this.removeLine(),this.parent&&this.parent.removeLine(),this.group&&(this.emptyUser&&this.emptyUser(),this.resetWhenDelete(),this.group.remove(),this.removeGeneralization(),this.group=null,this.style.onRemove())}hide(){if(this.group&&this.group.hide(),this.hideGeneralization(),this.parent){let e=this.parent.children.indexOf(this);this.parent._lines[e]&&this.parent._lines[e].hide(),this._lines.forEach(t=>{t.hide()})}this.children&&this.children.length&&this.children.forEach(e=>{e.hide()})}show(){if(this.group){if(this.group.show(),this.showGeneralization(),this.parent){let e=this.parent.children.indexOf(this);this.parent._lines[e]&&this.parent._lines[e].show(),this._lines.forEach(t=>{t.show()})}this.children&&this.children.length&&this.children.forEach(e=>{e.show()})}}setOpacity(e){this.group&&this.group.opacity(e),this._lines.forEach(t=>{t.opacity(e)}),this.children.forEach(t=>{t.setOpacity(e)}),this.setGeneralizationOpacity(e)}hideChildren(){this._lines.forEach(e=>{e.hide()}),this.children&&this.children.length&&this.children.forEach(e=>{e.hide()})}showChildren(){this._lines.forEach(e=>{e.show()}),this.children&&this.children.length&&this.children.forEach(e=>{e.show()})}startDrag(){this.isDrag=!0,this.group&&this.group.addClass("smm-node-dragging")}endDrag(){this.isDrag=!1,this.group&&this.group.removeClass("smm-node-dragging")}renderLine(e=!1){if(this.getData("expand")===!1)return;let t=this.getChildrenLength();this.mindMap.renderer.layout.nodeIsRemoveAllLines&&this.mindMap.renderer.layout.nodeIsRemoveAllLines(this)&&(t=0),t>this._lines.length?new Array(t-this._lines.length).fill(0).forEach(()=>{this._lines.push(this.lineDraw.path())}):t{i.remove()}),this._lines=this._lines.slice(0,t)),this.renderer.layout.renderLine(this,this._lines,(...i)=>{this.styleLine(...i)},this.style.getStyle("lineStyle",!0)),e&&this.children&&this.children.length>0&&this.children.forEach(i=>{i.renderLine(e)})}getShape(){return this.mindMap.themeConfig.nodeUseLineStyle?J.SHAPE.RECTANGLE:this.style.getStyle("shape",!1,!1)}hasCustomPosition(){return this.customLeft!==void 0&&this.customTop!==void 0}ancestorHasCustomPosition(){let e=this;for(;e;){if(e.hasCustomPosition())return!0;e=e.parent}return!1}ancestorHasGeneralization(){let e=this.parent;for(;e;){if(e.checkHasGeneralization())return!0;e=e.parent}return!1}addChildren(e){this.children.push(e)}styleLine(e,t,i){let{enableInheritAncestorLineStyle:n}=this.mindMap.opt,s=n?"getSelfInhertStyle":"getSelfStyle",a=t[s]("lineWidth")||t.getStyle("lineWidth",!0),o=t[s]("lineColor")||this.getRainbowLineColor(t)||t.getStyle("lineColor",!0),l=t[s]("lineDasharray")||t.getStyle("lineDasharray",!0);this.style.line(e,{width:a,color:o,dasharray:l},i,t)}getRainbowLineColor(e){return this.mindMap.rainbowLines?this.mindMap.rainbowLines.getNodeColor(e):""}removeLine(){this._lines.forEach(e=>{e.remove()}),this._lines=[]}isAncestor(e){if(this.uid===e.uid)return!1;let t=e.parent;for(;t;){if(this.uid===t.uid)return!0;t=t.parent}return!1}isParent(e){if(this.uid===e.uid)return!1;let t=e.parent;return!!(t&&this.uid===t.uid)}isBrother(e){return!this.parent||this.uid===e.uid?!1:this.parent.children.find(t=>t.uid===e.uid)}getIndexInBrothers(){return this.parent&&this.parent.children?this.parent.children.findIndex(e=>e.uid===this.uid):-1}getPaddingVale(){return{paddingX:this.getStyle("paddingX"),paddingY:this.getStyle("paddingY")}}getStyle(e,t){let i=this.style.merge(e,t);return i===void 0?"":i}getSelfStyle(e){return this.style.getSelfStyle(e)}getParentSelfStyle(e){return this.parent?this.parent.getSelfStyle(e)||this.parent.getParentSelfStyle(e):null}getSelfInhertStyle(e){return this.getSelfStyle(e)||this.getParentSelfStyle(e)}getBorderWidth(){return this.style.merge("borderWidth",!1)||0}getData(e){return e?this.nodeData.data[e]:this.nodeData.data}getPureData(e=!0,t=!1){return zl({},this,e,t)}getAncestorNodes(){let e=[],t=this.parent;for(;t;)e.unshift(t),t=t.parent;return e}hasCustomStyle(){return this.style.hasCustomStyle()}getRect(){return this.group?this.group.rbox():null}getRectInSvg(){let{scaleX:e,scaleY:t,translateX:i,translateY:n}=this.mindMap.draw.transform(),{left:s,top:a,width:o,height:l}=this,h=(s+o)*e+i,c=(a+l)*t+n;return s=s*e+i,a=a*t+n,{left:s,right:h,top:a,bottom:c,width:o*e,height:l*t}}highlight(){this.group&&this.group.addClass("smm-node-highlight")}closeHighlight(){this.group&&this.group.removeClass("smm-node-highlight")}fakeClone(){let e=new Mu({...this.opt,uid:$r()});return Object.keys(this).forEach(t=>{e[t]=this[t]}),e}createSvgTextNode(e=""){return new Zt().text(e)}getSvgObjects(){return{SVG:Jt,G:Qt,Rect:Tr}}checkEnableDragModifyNodeWidth(){let{enableDragModifyNodeWidth:e,isUseCustomNodeContent:t,customCreateNodeContent:i}=this.mindMap.opt;return e&&(this.mindMap.richText||t&&i)}hasCustomWidth(){return this.checkEnableDragModifyNodeWidth()&&this.customTextWidth!==void 0}getChildrenLength(){return this.nodeData.children?this.nodeData.children.length:0}},go=Mu;var ku=class{constructor(e){this.max=e||1e3,this.size=0,this.pool=new Map}add(e,t){return!this.has(e)&&this.size>=this.max?!1:(this.delete(e),this.pool.set(e,t),this.size++,!0)}delete(e){this.pool.has(e)&&(this.pool.delete(e),this.size--)}has(e){return this.pool.has(e)}get(e){if(this.pool.has(e))return this.pool.get(e)}clear(){this.size=0,this.pool=new Map}};var w6=class{constructor(e){this.renderer=e,this.mindMap=e.mindMap,this.draw=this.mindMap.draw,this.lineDraw=this.mindMap.lineDraw,this.root=null,this.lru=new ku(this.mindMap.opt.maxNodeCacheCount),this.rootNodeCenterOffset=null}doLayout(){throw new Error("\u3010computed\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderLine(){throw new Error("\u3010renderLine\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderExpandBtn(){throw new Error("\u3010renderExpandBtn\u3011\u65B9\u6CD5\u4E3A\u5FC5\u8981\u65B9\u6CD5\uFF0C\u9700\u8981\u5B50\u7C7B\u8FDB\u884C\u91CD\u5199\uFF01")}renderGeneralization(){}cacheNode(e,t){this.renderer.nodeCache[e]=t,this.lru.add(e,t)}checkIsNeedResizeSources(){return this.renderer.checkHasRenderSource(J.CHANGE_THEME)}checkIsLayerTypeChange(e,t){if(e>=2&&t>=2)return!1;if(e>=2&&t<2||e<2&&t>=2)return!0}checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(e){this.renderer.checkHasRenderSource(J.CHANGE_LAYOUT)&&(e.needRerenderExpandBtnPlaceholderRect=!0)}checkIsNodeDataChange(e,t){if(e)e=typeof e=="string"?JSON.parse(e):e,e.isActive=t.isActive,e.expand=t.expand,e=JSON.stringify(e);else return!1;return e!==JSON.stringify(t)}checkNodeFixChange(e,t,i){let n=!1;this.mindMap.nodeInnerPrefixList.forEach(a=>{if(a.updateNodeData){let o=a.updateNodeData(e,t);o&&(n=o)}});let s=!1;return this.mindMap.nodeInnerPostfixList.forEach(a=>{if(a.updateNodeData){let o=a.updateNodeData(e,i);o&&(s=o)}}),n||s}createNode(e,t,i,n,s,a){let o={};this.mindMap.nodeInnerPrefixList.forEach(u=>{if(u.createNodeData){let[d,f]=u.createNodeData({data:e,parent:t,ancestors:a,layerIndex:n,index:s});o[d]=f}});let l={};this.mindMap.nodeInnerPostfixList.forEach(u=>{if(u.createNodeData){let[d,f]=u.createNodeData({data:e,parent:t,ancestors:a,layerIndex:n,index:s});l[d]=f}});let h=e.data.uid,c=null;if(e&&e._node&&!this.renderer.reRender){c=e._node;let u=this.checkIsLayerTypeChange(c.layerIndex,n);c.reset(),c.layerIndex=n,i?c.isRoot=!0:c.parent=t._node,this.cacheNode(e._node.uid,c),this.checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(c);let d=this.checkNodeFixChange(c,o,l),f=this.checkIsNeedResizeSources(),m=this.checkIsNodeDataChange(e._node.nodeDataSnapshot,e.data);(f||m||u||c.getData("resetRichText")||c.getData("needUpdate")||d)&&(c.getSize(),c.needLayout=!0),this.checkGetGeneralizationChange(c,f)}else if((this.lru.has(h)||this.renderer.lastNodeCache[h])&&!this.renderer.reRender){c=this.lru.get(h)||this.renderer.lastNodeCache[h];let u=JSON.stringify(c.getData()),d=this.checkIsLayerTypeChange(c.layerIndex,n);c.reset(),c.nodeData=c.handleData(e||{}),c.layerIndex=n,i?c.isRoot=!0:c.parent=t._node,this.cacheNode(h,c),this.checkIsLayoutChangeRerenderExpandBtnPlaceholderRect(c),e._node=c;let f=this.checkIsNeedResizeSources(),m=this.checkIsNodeDataChange(u,e.data),g=this.checkNodeFixChange(c,o,l);(f||m||d||c.getData("resetRichText")||c.getData("needUpdate")||g)&&(c.getSize(),c.needLayout=!0),this.checkGetGeneralizationChange(c,f)}else{let u=h||$r();c=new go({data:e,uid:u,renderer:this.renderer,mindMap:this.mindMap,draw:this.draw,layerIndex:n,isRoot:i,parent:i?null:t._node,...o}),e.data.uid=u,this.cacheNode(u,c),e._node=c}return e.data.isActive&&this.renderer.addNodeToActiveList(c),this.mindMap.renderer.findActiveNodeIndex(c)!==-1&&c.setData({isActive:!0}),i?this.root=c:t._node.addChildren(c),c}checkGetGeneralizationChange(e,t){let i=e.getData("generalization");i&&e._generalizationList&&e._generalizationList.length>0&&e._generalizationList.forEach((n,s)=>{let a=n.generalizationNode,o=a.getData(),l=i[s];(t||l&&JSON.stringify(o)!==JSON.stringify(l))&&(l&&(a.nodeData.data=l),a.getSize(),a.needLayout=!0)})}formatPosition(e,t,i){return typeof e=="number"?e:Tp[e]!==void 0?t*Tp[e]:/^\d\d*%$/.test(e)?Number.parseFloat(e)/100*t:(t-i)/2}formatInitRootNodePosition(e){let{CENTER:t}=J.INIT_ROOT_NODE_POSITION;return(!e||!Array.isArray(e)||e.length<2)&&(e=[t,t]),e}setNodeCenter(e,t){let{initRootNodePosition:i}=this.mindMap.opt;i=this.formatInitRootNodePosition(t||i),e.left=this.formatPosition(i[0],this.mindMap.width,e.width),e.top=this.formatPosition(i[1],this.mindMap.height,e.height)}getRootCenterOffset(e,t){if(this.rootNodeCenterOffset)return this.rootNodeCenterOffset;let{initRootNodePosition:i}=this.mindMap.opt,{CENTER:n}=J.INIT_ROOT_NODE_POSITION;if(i=this.formatInitRootNodePosition(i),i[0]===n&&i[1]===n)this.rootNodeCenterOffset={x:0,y:0};else{let s={width:e,height:t},a={width:e,height:t};this.setNodeCenter(s,[n,n]),this.setNodeCenter(a),this.rootNodeCenterOffset={x:a.left-s.left,y:a.top-s.top}}return this.rootNodeCenterOffset}updateChildren(e,t,i){e.forEach(n=>{n[t]+=i,n.children&&n.children.length&&!n.hasCustomPosition()&&this.updateChildren(n.children,t,i)})}updateChildrenPro(e,t){e.forEach(i=>{Object.keys(t).forEach(n=>{i[n]+=t[n]}),i.children&&i.children.length&&!i.hasCustomPosition()&&this.updateChildrenPro(i.children,t)})}getNodeAreaWidth(e,t=!1){let i=[],n=0,s=(a,o)=>{t&&a.checkHasGeneralization()&&(n+=a._generalizationNodeWidth),a.children.length?(o+=a.width/2,a.children.forEach(l=>{s(l,o)})):(o+=a.width,i.push(o))};return s(e,0),Math.max(...i)+n}quadraticCurvePath(e,t,i,n,s=!1){let a,o;return s?(a=e+(i-e)*.8,o=t+(n-t)*.2):(a=e+(i-e)*.2,o=t+(n-t)*.8),`M ${e},${t} Q ${a},${o} ${i},${n}`}cubicBezierPath(e,t,i,n,s=!1){let a,o,l,h;return s?(a=e,o=t+(n-t)/2,l=i,h=o):(a=e+(i-e)/2,o=t,l=a,h=n),`M ${e},${t} C ${a},${o} ${l},${h} ${i},${n}`}computeNewPoint(e,t,i=0){if(e[0]===t[0])return t[1]>e[1]?[t[0],t[1]-i]:[t[0],t[1]+i];if(e[1]===t[1])return t[0]>e[0]?[t[0]-i,t[1]]:[t[0]+i,t[1]]}createFoldLine(e){let{lineRadius:t}=this.mindMap.themeConfig,i=e.length,n="",s="";if(i>=3&&t>0){let a=e[i-3],o=e[i-2],l=e[i-1];if(!(a[0].toFixed(0)===o[0].toFixed(0)&&o[0].toFixed(0)===l[0].toFixed(0)||a[1].toFixed(0)===o[1].toFixed(0)&&o[1].toFixed(0)===l[1].toFixed(0))){let c=this.computeNewPoint(a,o,t),u=this.computeNewPoint(l,o,t);s=`Q ${o[0]},${o[1]} ${u[0]},${u[1]}`,e.splice(i-2,1,c,s)}}return e.forEach((a,o)=>{if(typeof a=="string")n+=a;else{let[l,h]=a;o===0?n+=`M ${l},${h}`:n+=`L ${l},${h}`}}),n}getMarginX(e){let{themeConfig:t,opt:i}=this.mindMap,{second:n,node:s}=t,a=i.hoverRectPadding*2;return e===1?n.marginX+a:s.marginX+a}getMarginY(e){let{themeConfig:t,opt:i}=this.mindMap,{second:n,node:s}=t,a=i.hoverRectPadding*2;return e===1?n.marginY+a:s.marginY+a}getNodeWidthWithGeneralization(e){return Math.max(e.width,e.checkHasGeneralization()?e._generalizationNodeWidth:0)}getNodeHeightWithGeneralization(e){return Math.max(e.height,e.checkHasGeneralization()?e._generalizationNodeHeight:0)}getNodeBoundaries(e,t){let{generalizationLineMargin:i,generalizationNodeMargin:n}=this.mindMap.themeConfig,s=c=>{let u=1/0,d=-1/0,f=1/0,m=-1/0;c.children&&c.children.length>0&&c.children.forEach(v=>{let{left:y,right:A,top:b,bottom:C}=s(v),M=v.checkHasGeneralization()&&v.getData("expand")?v._generalizationNodeWidth+n:0,D=v.checkHasGeneralization()&&v.getData("expand")?v._generalizationNodeHeight+n:0;y-(t==="h"?M:0)d&&(d=A+(t==="h"?M:0)),bm&&(m=C+(t==="v"?D:0))});let g={left:c.left,right:c.left+c.width,top:c.top,bottom:c.top+c.height};return{left:g.leftd?g.right:d,top:g.topm?g.bottom:m}},{left:a,right:o,top:l,bottom:h}=s(e);return{left:a,right:o,top:l,bottom:h,generalizationLineMargin:i,generalizationNodeMargin:n}}getChildrenBoundaries(e,t,i=0,n){let{generalizationLineMargin:s,generalizationNodeMargin:a}=this.mindMap.themeConfig,o=e.children.slice(i,n+1),l=1/0,h=-1/0,c=1/0,u=-1/0;return o.forEach(d=>{let f=this.getNodeBoundaries(d,t);l=f.lefth?f.right:h,c=f.topu?f.bottom:u}),{left:l,right:h,top:c,bottom:u,generalizationLineMargin:s,generalizationNodeMargin:a}}getNodeGeneralizationRenderBoundaries(e,t){let i=null;return e.range?i=this.getChildrenBoundaries(e.node,t,e.range[0],e.range[1]):i=this.getNodeBoundaries(e.node,t),i}getNodeActChildrenLength(e){return e.nodeData.children&&e.nodeData.children.length}setLineStyle(e,t,i,n){t.plot(this.transformPath(i)),e&&e(t,n,!0)}transformPath(e){let{customTransformNodeLinePath:t}=this.mindMap.opt;return t?t(e):e}},wi=w6;var A6=class extends wi{constructor(e={},t){super(e),this.isUseLeft=t===J.LAYOUT.LOGICAL_STRUCTURE_LEFT}doLayout(e){hn([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustTopValue()},()=>{e(this.root)}])}computedBaseValue(){let e=0;it(this.renderer.renderTree,null,(t,i,n,s,a,o)=>{let l=this.createNode(t,i,n,s,a,o);if(l.sortIndex=e,e++,n?this.setNodeCenter(l):this.isUseLeft?l.left=i._node.left-l.width-this.getMarginX(s):l.left=i._node.left+i._node.width+this.getMarginX(s),!t.data.expand)return!0},(t,i,n,s)=>{let a=t.data.expand===!1?0:t._node.children.length;t._node.childrenAreaHeight=a?t._node.children.reduce((l,h)=>l+h.height,0)+(a+1)*this.getMarginY(s+1):0;let o=t._node.checkHasGeneralization()?t._node._generalizationNodeHeight+this.getMarginY(s+1):0;t._node.childrenAreaHeight2=Math.max(t._node.childrenAreaHeight,o)},!0,0)}computedTopValue(){it(this.root,null,(e,t,i,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),o=e.top+e.height/2-e.childrenAreaHeight/2+s;e.children.forEach(l=>{l.top=o,o+=l.height+s})}},null,!0)}adjustTopValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand"))return;let s=e.childrenAreaHeight2-this.getMarginY(n+1)*2-e.height;s>0&&this.updateBrothers(e,s/2)},null,!0)}updateBrothers(e,t){if(e.parent){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.uid===e.uid||s.hasCustomPosition())return;let o=0;an&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothers(e.parent,t)}}renderLine(e,t,i,n){n==="curve"?this.renderLineCurve(e,t,i):n==="direct"?this.renderLineDirect(e,t,i):this.renderLineStraight(e,t,i)}renderLineStraight(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let d=(this.getMarginX(e.layerIndex+1)-l)*.6;this.isUseLeft&&(d*=-1);let f=this.mindMap.themeConfig.nodeUseLineStyle;e.children.forEach((m,g)=>{let v;this.isUseLeft?v=e.layerIndex===0?n:n-l:v=e.layerIndex===0?n+a:n+a+l;let y=s+o/2,A=this.isUseLeft?m.left+m.width:m.left,b=m.top+m.height/2,C=f?m.width*(this.isUseLeft?-1:1):0;y=f&&!e.isRoot?y+o/2:y,b=f?b+m.height/2:b;let M=this.createFoldLine([[v,y],[v+d,y],[v+d,b],[A+C,b]]);this.setLineStyle(i,t[g],M,m)})}renderLineDirect(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let{nodeUseLineStyle:u}=this.mindMap.themeConfig;e.children.forEach((d,f)=>{e.layerIndex===0&&(l=0);let m=this.isUseLeft?n-l:n+a+l,g=s+o/2,v=this.isUseLeft?d.left+d.width:d.left,y=d.top+d.height/2;g=u&&!e.isRoot?g+o/2:g,y=u?y+d.height/2:y;let A=u?` L ${this.isUseLeft?d.left:d.left+d.width},${y}`:"",b=`M ${m},${g} L ${v},${y}`+A;this.setLineStyle(i,t[f],b,d)})}renderLineCurve(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let{nodeUseLineStyle:u,rootLineStartPositionKeepSameInCurve:d,rootLineKeepSameInCurve:f}=this.mindMap.themeConfig;e.children.forEach((m,g)=>{e.layerIndex===0&&(l=0);let v;this.isUseLeft?v=e.layerIndex===0&&!d?n+a/2:n-l:v=e.layerIndex===0&&!d?n+a/2:n+a+l;let y=s+o/2,A=this.isUseLeft?m.left+m.width:m.left,b=m.top+m.height/2,C="";y=u&&!e.isRoot?y+o/2:y,b=u?b+m.height/2:b;let M;this.isUseLeft?M=u?` L ${m.left},${b}`:"":M=u?` L ${m.left+m.width},${b}`:"",e.isRoot&&!f?C=this.quadraticCurvePath(v,y,A,b)+M:C=this.cubicBezierPath(v,y,A,b)+M,this.setLineStyle(i,t[g],C,m)})}renderExpandBtn(e,t){let{width:i,height:n,expandBtnSize:s,layerIndex:a}=e;a===0&&(s=0);let{translateX:o,translateY:l}=t.transform(),h=this.mindMap.themeConfig.nodeUseLineStyle?n/2:0,c=this.isUseLeft?0-s:i,u=n/2+h;c===o&&u===l||t.translate(c-o,u-l)}renderGeneralization(e){e.forEach(t=>{let{left:i,top:n,bottom:s,right:a,generalizationLineMargin:o,generalizationNodeMargin:l}=this.getNodeGeneralizationRenderBoundaries(t,"h"),h=this.isUseLeft?i-o:a+o,c=h,u=n,d=h,f=s,m=c+(this.isUseLeft?-20:20),g=u+(f-u)/2,v=`M ${c},${u} Q ${m},${g} ${d},${f}`;t.generalizationLine.plot(v),t.generalizationNode.left=h+(this.isUseLeft?-l:l)-(this.isUseLeft?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,i,n){this.isUseLeft?e.size(t,n).x(-t).y(0):e.size(t,n).x(i).y(0)}},E6=A6;var C6=class extends wi{constructor(e={}){super(e)}doLayout(e){hn([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustTopValue()},()=>{e(this.root)}])}computedBaseValue(){it(this.renderer.renderTree,null,(e,t,i,n,s,a)=>{let o=this.createNode(e,t,i,n,s,a);if(i?this.setNodeCenter(o):(t._node.dir?o.dir=t._node.dir:o.dir=o.getData("dir")||(s%2===0?J.LAYOUT_GROW_DIR.RIGHT:J.LAYOUT_GROW_DIR.LEFT),o.left=o.dir===J.LAYOUT_GROW_DIR.RIGHT?t._node.left+t._node.width+this.getMarginX(n):t._node.left-this.getMarginX(n)-o.width),!e.data.expand)return!0},(e,t,i,n)=>{if(!e.data.expand){e._node.leftChildrenAreaHeight=0,e._node.rightChildrenAreaHeight=0;return}let s=0,a=0,o=0,l=0;e._node.children.forEach(c=>{c.dir===J.LAYOUT_GROW_DIR.LEFT?(s++,o+=c.height):(a++,l+=c.height)}),e._node.leftChildrenAreaHeight=o+(s+1)*this.getMarginY(n+1),e._node.rightChildrenAreaHeight=l+(a+1)*this.getMarginY(n+1);let h=e._node.checkHasGeneralization()?e._node._generalizationNodeHeight+this.getMarginY(n+1):0;e._node.leftChildrenAreaHeight2=Math.max(e._node.leftChildrenAreaHeight,h),e._node.rightChildrenAreaHeight2=Math.max(e._node.rightChildrenAreaHeight,h)},!0,0)}computedTopValue(){it(this.root,null,(e,t,i,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),a=e.top+e.height/2+s,o=a-e.leftChildrenAreaHeight/2,l=a-e.rightChildrenAreaHeight/2;e.children.forEach(h=>{h.dir===J.LAYOUT_GROW_DIR.LEFT?(h.top=o,o+=h.height+s):(h.top=l,l+=h.height+s)})}},null,!0)}adjustTopValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand"))return;let s=this.getMarginY(n+1)*2+e.height,a=e.leftChildrenAreaHeight2-s,o=e.rightChildrenAreaHeight2-s;(a>0||o>0)&&this.updateBrothers(e,a/2,o/2)},null,!0)}updateBrothers(e,t,i){if(e.parent){let n=e.parent.children.filter(a=>a.dir===e.dir),s=nr(e,n);n.forEach((a,o)=>{if(a.hasCustomPosition())return;let l=0,h=a.dir===J.LAYOUT_GROW_DIR.LEFT?t:i;os&&(l=h),a.top+=l,a.children&&a.children.length&&this.updateChildren(a.children,"top",l)}),this.updateBrothers(e.parent,t,i)}}renderLine(e,t,i,n){n==="curve"?this.renderLineCurve(e,t,i):n==="direct"?this.renderLineDirect(e,t,i):this.renderLineStraight(e,t,i)}renderLineStraight(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let d=(this.getMarginX(e.layerIndex+1)-l)*.6,f=this.mindMap.themeConfig.nodeUseLineStyle;e.children.forEach((m,g)=>{let v=0,y=0,A=f?m.width:0;m.dir===J.LAYOUT_GROW_DIR.LEFT?(y=-d,v=e.layerIndex===0?n:n-l,A=-A):(y=d,v=e.layerIndex===0?n+a:n+a+l);let b=s+o/2,C=m.dir===J.LAYOUT_GROW_DIR.LEFT?m.left+m.width:m.left,M=m.top+m.height/2;b=f&&!e.isRoot?b+o/2:b,M=f?M+m.height/2:M;let D=this.createFoldLine([[v,b],[v+y,b],[v+y,M],[C+A,M]]);this.setLineStyle(i,t[g],D,m)})}renderLineDirect(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let{nodeUseLineStyle:u}=this.mindMap.themeConfig;e.children.forEach((d,f)=>{e.layerIndex===0&&(l=0);let m=d.dir===J.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,g=s+o/2,v=d.dir===J.LAYOUT_GROW_DIR.LEFT?d.left+d.width:d.left,y=d.top+d.height/2;g=u&&!e.isRoot?g+o/2:g,y=u?y+d.height/2:y;let A="";u&&(d.dir===J.LAYOUT_GROW_DIR.LEFT?A=` L ${d.left},${y}`:A=` L ${d.left+d.width},${y}`);let b=`M ${m},${g} L ${v},${y}`+A;this.setLineStyle(i,t[f],b,d)})}renderLineCurve(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let{nodeUseLineStyle:u,rootLineKeepSameInCurve:d,rootLineStartPositionKeepSameInCurve:f}=this.mindMap.themeConfig;e.children.forEach((m,g)=>{e.layerIndex===0&&(l=0);let v=e.layerIndex===0&&!f?n+a/2:m.dir===J.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,y=s+o/2,A=m.dir===J.LAYOUT_GROW_DIR.LEFT?m.left+m.width:m.left,b=m.top+m.height/2,C="";y=u&&!e.isRoot?y+o/2:y,b=u?b+m.height/2:b;let M="";u&&(m.dir===J.LAYOUT_GROW_DIR.LEFT?M=` L ${m.left},${b}`:M=` L ${m.left+m.width},${b}`),e.isRoot&&!d?C=this.quadraticCurvePath(v,y,A,b)+M:C=this.cubicBezierPath(v,y,A,b)+M,this.setLineStyle(i,t[g],C,m)})}renderExpandBtn(e,t){let{width:i,height:n,expandBtnSize:s}=e,{translateX:a,translateY:o}=t.transform(),l=this.mindMap.themeConfig.nodeUseLineStyle?n/2:0,h=e.dir===J.LAYOUT_GROW_DIR.LEFT?0-s:i,c=n/2+l;if(h===a&&c===o)return;let u=h-a,d=c-o;t.translate(u,d)}renderGeneralization(e){e.forEach(t=>{let i=t.node.dir===J.LAYOUT_GROW_DIR.LEFT,{top:n,bottom:s,left:a,right:o,generalizationLineMargin:l,generalizationNodeMargin:h}=this.getNodeGeneralizationRenderBoundaries(t,"h"),c=i?a-l:o+l,u=c,d=n,f=c,m=s,g=u+(i?-20:20),v=d+(m-d)/2,y=`M ${u},${d} Q ${g},${v} ${f},${m}`;t.generalizationLine.plot(y),t.generalizationNode.left=c+(i?-h:h)-(i?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,i,n,s){s.dir===J.LAYOUT_GROW_DIR.LEFT?e.size(t,n).x(-t).y(0):e.size(t,n).x(i).y(0)}},j9=C6;var S6=class extends wi{constructor(e={}){super(e)}doLayout(e){hn([()=>{this.computedBaseValue()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){it(this.renderer.renderTree,null,(e,t,i,n,s,a)=>{let o=this.createNode(e,t,i,n,s,a);if(i?this.setNodeCenter(o):t._node.isRoot&&(o.top=t._node.top+t._node.height+this.getMarginX(n)),!e.data.expand)return!0},(e,t,i,n)=>{if(i){let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaWidth=s?e._node.children.reduce((a,o)=>a+o.width,0)+(s+1)*this.getMarginX(n+1):0}},!0,0)}computedLeftTopValue(){it(this.root,null,(e,t,i,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginX(n+1),a=this.getMarginY(n+1);if(i){let l=e.left+e.width/2-e.childrenAreaWidth/2+s;e.children.forEach(h=>{h.left=l,l+=h.width+s})}else{let o=e.top+this.getNodeHeightWithGeneralization(e)+a+(this.getNodeActChildrenLength(e)>0?e.expandBtnSize:0);e.children.forEach(l=>{l.left=e.left+e.width*.5,l.top=o,o+=this.getNodeHeightWithGeneralization(l)+a+(this.getNodeActChildrenLength(l)>0?l.expandBtnSize:0)})}}},null,!0)}adjustLeftTopValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand"))return;if(t&&t.isRoot){let o=this.getNodeAreaWidth(e,!0)-e.width;o>0&&this.updateBrothersLeft(e,o)}let s=e.children.length;if(t&&!t.isRoot&&s>0){let a=this.getMarginY(n+1),o=e.children.reduce((l,h)=>l+this.getNodeHeightWithGeneralization(h)+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0),0)+s*a;this.updateBrothersTop(e,o)}},(e,t,i)=>{if(i){let{right:n,left:s}=this.getNodeBoundaries(e,"h"),a=n-s,o=e.left-s-(a-e.width)/2;this.updateChildren(e.children,"left",o)}},!0)}updateBrothersLeft(e,t){if(e.parent){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{s.hasCustomPosition()||a<=n||(s.left+=t,s.children&&s.children.length&&this.updateChildren(s.children,"left",t))}),this.updateBrothersLeft(e.parent,t)}}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let u=e.children.length,d=this.getMarginX(e.layerIndex+1);if(e.isRoot){let f=n+a/2,m=s+o,g=d*.7,v=1/0,y=-1/0;e.children.forEach((b,C)=>{let M=b.left+b.width/2,D=b.top;My&&(y=M);let L=this.mindMap.themeConfig.nodeUseLineStyle?` L ${b.left},${D} L ${b.left+b.width},${D}`:"",k=`M ${M},${m+g} L ${M},${m+g>D?D+b.height:D}`+L;this.setLineStyle(i,t[C],k,b)}),v=Math.min(v,f),y=Math.max(y,f);let A=this.lineDraw.path();if(e.style.line(A),A.plot(this.transformPath(`M ${f},${m} L ${f},${m+g}`)),e._lines.push(A),i&&i(A,e),u>0){let b=this.lineDraw.path();e.style.line(b),b.plot(this.transformPath(`M ${v},${m+g} L ${y},${m+g}`)),e._lines.push(b),i&&i(b,e)}}else{let f=s+o,m=-1/0,g=e.left+e.width*.3;if(e.children.forEach((v,y)=>{let A=v.top+v.height/2;A>m&&(m=A);let b="",C=v.left,M=v.left+v.widthg&&(D=!0,A=v.top,m=A),A>s&&A0){let v=this.lineDraw.path();l=u>0?l:0,e.style.line(v),m{let{top:i,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=i,c=s+a,u=n,d=l+20,f=h+(u-h)/2,m=`M ${l},${h} Q ${d},${f} ${c},${u}`;t.generalizationLine.plot(this.transformPath(m)),t.generalizationNode.left=s+o,t.generalizationNode.top=i+(n-i-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,i,n,s){e.size(i,t).x(0).y(n)}},G9=S6;var T6=class extends wi{constructor(e={}){super(e)}doLayout(e){hn([()=>{this.computedBaseValue()},()=>{this.computedLeftValue()},()=>{this.adjustLeftValue()},()=>{e(this.root)}])}computedBaseValue(){it(this.renderer.renderTree,null,(e,t,i,n,s,a)=>{let o=this.createNode(e,t,i,n,s,a);if(i?this.setNodeCenter(o):o.top=t._node.top+t._node.height+this.getMarginX(n),!e.data.expand)return!0},(e,t,i,n)=>{let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaWidth=s?e._node.children.reduce((o,l)=>o+l.width,0)+(s+1)*this.getMarginY(n+1):0;let a=e._node.checkHasGeneralization()?e._node._generalizationNodeWidth+this.getMarginY(n+1):0;e._node.childrenAreaWidth2=Math.max(e._node.childrenAreaWidth,a)},!0,0)}computedLeftValue(){it(this.root,null,(e,t,i,n)=>{if(e.getData("expand")&&e.children&&e.children.length){let s=this.getMarginY(n+1),o=e.left+e.width/2-e.childrenAreaWidth/2+s;e.children.forEach(l=>{l.left=o,o+=l.width+s})}},null,!0)}adjustLeftValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand"))return;let s=e.childrenAreaWidth2-this.getMarginY(n+1)*2-e.width;s>0&&this.updateBrothers(e,s/2)},null,!0)}updateBrothers(e,t){if(e.parent){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;an&&(o=t),s.left+=o,s.children&&s.children.length&&this.updateChildren(s.children,"left",o)}),this.updateBrothers(e.parent,t)}}renderLine(e,t,i,n){n==="curve"?this.renderLineCurve(e,t,i):n==="direct"?this.renderLineDirect(e,t,i):this.renderLineStraight(e,t,i)}renderLineCurve(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let{nodeUseLineStyle:u,rootLineStartPositionKeepSameInCurve:d,rootLineKeepSameInCurve:f}=this.mindMap.themeConfig;e.children.forEach((m,g)=>{e.layerIndex===0&&(l=0);let v=n+a/2,y=e.layerIndex===0&&!d?s+o/2:s+o+l,A=m.left+m.width/2,b=m.top,C="",M=u?` L ${m.left},${b} L ${m.left+m.width},${b}`:"";e.isRoot&&!f?C=this.quadraticCurvePath(v,y,A,b,!0)+M:C=this.cubicBezierPath(v,y,A,b,!0)+M,this.setLineStyle(i,t[g],C,m)})}renderLineDirect(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o}=e,{nodeUseLineStyle:l}=this.mindMap.themeConfig,h=n+a/2,c=s+o;e.children.forEach((u,d)=>{let f=u.left+u.width/2,m=u.top,g=l?` L ${u.left},${m} L ${u.left+u.width},${m}`:"",v=`M ${h},${c} L ${f},${m}`+g;this.setLineStyle(i,t[d],v,u)})}renderLineStraight(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l,isRoot:h}=e,{alwaysShowExpandBtn:c,notShowExpandBtn:u}=this.mindMap.opt;(!c||u)&&(l=0);let d=n+a/2,f=s+o,g=this.getMarginX(e.layerIndex+1)*.7,v=1/0,y=-1/0,A=e.children.length;e.children.forEach((C,M)=>{let D=C.left+C.width/2,L=f+g>C.top?C.top+C.height:C.top;Dy&&(y=D);let k=this.mindMap.themeConfig.nodeUseLineStyle?` L ${C.left},${L} L ${C.left+C.width},${L}`:"",V=`M ${D},${f+g} L ${D},${L}`+k;this.setLineStyle(i,t[M],V,C)}),v=Math.min(d,v),y=Math.max(d,y);let b=this.lineDraw.path();if(e.style.line(b),l=A>0&&!h?l:0,b.plot(this.transformPath(`M ${d},${f+l} L ${d},${f+g}`)),e._lines.push(b),i&&i(b,e),A>0){let C=this.lineDraw.path();e.style.line(C),C.plot(this.transformPath(`M ${v},${f+g} L ${y},${f+g}`)),e._lines.push(C),i&&i(C,e)}}renderExpandBtn(e,t){let{width:i,height:n,expandBtnSize:s}=e,{translateX:a,translateY:o}=t.transform();t.translate(i/2-s/2-a,n+s/2-o)}renderGeneralization(e){e.forEach(t=>{let{bottom:i,left:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"v"),l=n,h=i+a,c=s,u=i+a,d=l+(c-l)/2,f=h+20,m=`M ${l},${h} Q ${d},${f} ${c},${u}`;t.generalizationLine.plot(this.transformPath(m)),t.generalizationNode.top=i+o,t.generalizationNode.left=n+(s-n-t.generalizationNode.width)/2})}renderExpandBtnRect(e,t,i,n,s){e.size(i,t).x(0).y(n)}},W9=T6;var M6=class extends wi{constructor(e={},t){super(e),this.layout=t}doLayout(e){hn([()=>{this.computedBaseValue()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){it(this.renderer.renderTree,null,(e,t,i,n,s,a)=>{let o=this.createNode(e,t,i,n,s,a);if(i?this.setNodeCenter(o):(this.layout===J.LAYOUT.TIMELINE2?t._node.dir?o.dir=t._node.dir:o.dir=s%2===0?J.LAYOUT_GROW_DIR.BOTTOM:J.LAYOUT_GROW_DIR.TOP:o.dir="",t._node.isRoot&&(o.top=t._node.top+(e._node.height>t._node.height?-(e._node.height-t._node.height)/2:(t._node.height-e._node.height)/2))),!e.data.expand)return!0},null,!0,0)}computedLeftTopValue(){it(this.root,null,(e,t,i,n,s)=>{if(e.getData("expand")&&e.children&&e.children.length){let a=this.getMarginX(n+1),o=this.getMarginY(n+1);if(i){let h=e.left+e.width+a;e.children.forEach(c=>{c.left=h,h+=c.width+a})}else{let l=e.top+e.height+o+(this.getNodeActChildrenLength(e)>0?e.expandBtnSize:0);e.children.forEach(h=>{h.left=e.left+e.width*.5,h.top=l,l+=h.height+o+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0)})}}},null,!0)}adjustLeftTopValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand"))return;e.isRoot&&this.updateBrothersLeft(e);let s=e.children.length;if(t&&!t.isRoot&&s>0){let a=this.getMarginY(n+1),o=e.children.reduce((l,h)=>l+h.height+(this.getNodeActChildrenLength(h)>0?h.expandBtnSize:0),0)+s*a;this.updateBrothersTop(e,o)}},(e,t,i,n)=>{t&&t.isRoot&&e.dir===J.LAYOUT_GROW_DIR.TOP&&e.children.forEach(s=>{let a=this.getNodeAreaHeight(s),o=s.top;s.top=e.top-(s.top-e.top)-a+e.height,this.updateChildren(s.children,"top",s.top-o)})},!0)}getNodeAreaHeight(e){let t=0,i=n=>{t+=n.height+(this.getNodeActChildrenLength(n)>0?n.expandBtnSize:0)+this.getMarginY(n.layerIndex),n.children.length&&n.children.forEach(s=>{i(s)})};return i(e),t}updateBrothersLeft(e){let t=e.children,i=0;t.forEach(n=>{n.left+=i,n.children&&n.children.length&&this.updateChildren(n.children,"left",i);let{left:s,right:a}=this.getNodeBoundaries(n,"h"),l=a-s-n.width;l>0&&(i+=l)})}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0);let u=e.children.length;if(e.isRoot){let d=e;e.children.forEach((f,m)=>{let g=d.left+d.width,v=f.left,y=e.top+e.height/2,A=`M ${g},${y} L ${v},${y}`;this.setLineStyle(i,t[m],A,f),d=f})}else{let d=-1/0,f=1/0,m=e.left+e.width*.3;if(e.children.forEach((g,v)=>{let y=g.top+g.height/2;y>d&&(d=y),y0){let g=this.lineDraw.path();l=u>0?l:0,e.parent&&e.parent.isRoot&&e.dir===J.LAYOUT_GROW_DIR.TOP?g.plot(this.transformPath(`M ${m},${s} L ${m},${f}`)):g.plot(this.transformPath(`M ${m},${s+o+l} L ${m},${d}`)),e.style.line(g),e._lines.push(g),i&&i(g,e)}}}renderExpandBtn(e,t){let{width:i,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform();e.parent&&e.parent.isRoot&&e.dir===J.LAYOUT_GROW_DIR.TOP?t.translate(i*.3-s/2-o,-s/2-l):t.translate(i*.3-s/2-o,n+s/2-l)}}renderGeneralization(e){e.forEach(t=>{let{top:i,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=i,c=s+a,u=n,d=l+20,f=h+(u-h)/2,m=`M ${l},${h} Q ${d},${f} ${c},${u}`;t.generalizationLine.plot(this.transformPath(m)),t.generalizationNode.left=s+o,t.generalizationNode.top=i+(n-i-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,i,n,s){if(this.layout===J.LAYOUT.TIMELINE)e.size(i,t).x(0).y(n);else{let a="";s.dir===J.LAYOUT_GROW_DIR.TOP?a=s.layerIndex===1?J.LAYOUT_GROW_DIR.TOP:J.LAYOUT_GROW_DIR.BOTTOM:a=J.LAYOUT_GROW_DIR.BOTTOM,a===J.LAYOUT_GROW_DIR.TOP?e.size(i,t).x(0).y(-t):e.size(i,t).x(0).y(n)}}},k6=M6;var D6=class extends wi{constructor(e={},t){super(e),this.layout=t}doLayout(e){hn([()=>{this.computedBaseValue()},()=>{this.computedTopValue()},()=>{this.adjustLeftTopValue()},()=>{e(this.root)}])}computedBaseValue(){it(this.renderer.renderTree,null,(e,t,i,n,s,a)=>{let o=this.createNode(e,t,i,n,s,a);if(i?this.setNodeCenter(o):(t._node.dir?o.dir=t._node.dir:this.layout===J.LAYOUT.VERTICAL_TIMELINE2?o.dir=J.LAYOUT_GROW_DIR.LEFT:this.layout===J.LAYOUT.VERTICAL_TIMELINE3?o.dir=J.LAYOUT_GROW_DIR.RIGHT:o.dir=s%2===0?J.LAYOUT_GROW_DIR.RIGHT:J.LAYOUT_GROW_DIR.LEFT,t._node.isRoot?o.left=t._node.left+(e._node.width>t._node.width?-(e._node.width-t._node.width)/2:(t._node.width-e._node.width)/2):o.left=o.dir===J.LAYOUT_GROW_DIR.RIGHT?t._node.left+t._node.width+this.getMarginX(n):t._node.left-this.getMarginX(n)-o.width),!e.data.expand)return!0},(e,t,i,n)=>{if(i)return;let s=e.data.expand===!1?0:e._node.children.length;e._node.childrenAreaHeight=s?e._node.children.reduce((a,o)=>a+o.height,0)+(s+1)*this.getMarginY(n+1):0},!0,0)}computedTopValue(){it(this.root,null,(e,t,i,n,s)=>{if(e.getData("expand")&&e.children&&e.children.length){let a=this.getMarginY(n+1);if(i){let l=e.top+e.height+a;e.children.forEach(h=>{h.top=l,l+=h.height+a})}else{let o=this.getMarginY(n+1),h=e.top+e.height/2+o-e.childrenAreaHeight/2;e.children.forEach(c=>{c.top=h,h+=c.height+o})}}},null,!0)}adjustLeftTopValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand")||i)return;let s=this.getMarginY(n+1)*2+e.height,a=e.childrenAreaHeight-s;a>0&&this.updateBrothers(e,a/2)},null,!0)}updateBrothers(e,t){if(e.parent){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.hasCustomPosition()||!e.parent.isRoot&&s.uid===e.uid)return;let o=0;e.parent.isRoot?an?o=t*2:o=t:an&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothers(e.parent,t)}}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.updateBrothersTop(e.parent,t)}}renderLine(e,t,i,n){n==="curve"?this.renderLineCurve(e,t,i):n==="direct"?this.renderLineDirect(e,t,i):this.renderLineStraight(e,t,i)}renderLineStraight(e,t,i){if(e.children.length<=0)return[];let{expandBtnSize:n}=e,{alwaysShowExpandBtn:s,notShowExpandBtn:a}=this.mindMap.opt;if((!s||a)&&(n=0),e.isRoot){let o=e;e.children.forEach((l,h)=>{let c=o.top+o.height,u=l.top,d=e.left+e.width/2,f=`M ${d},${c} L ${d},${u}`;this.setLineStyle(i,t[h],f,l),o=l})}else if(e.dir===J.LAYOUT_GROW_DIR.RIGHT){let o=e.left+e.width,l=e.top+e.height/2,c=(this.getMarginX(e.layerIndex+1)-n)*.6;e.children.forEach((u,d)=>{let f=u.left,m=u.top+u.height/2,g=this.createFoldLine([[o,l],[o+c,l],[o+c,m],[f,m]]);this.setLineStyle(i,t[d],g,u)})}else{let o=e.left,l=e.top+e.height/2,c=(this.getMarginX(e.layerIndex+1)-n)*.6;e.children.forEach((u,d)=>{let f=u.left+u.width,m=u.top+u.height/2,g=this.createFoldLine([[o,l],[o-c,l],[o-c,m],[f,m]]);this.setLineStyle(i,t[d],g,u)})}}renderLineDirect(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0),e.children.forEach((u,d)=>{if(e.isRoot){let f=e;e.children.forEach((m,g)=>{let v=f.top+f.height,y=m.top,A=e.left+e.width/2,b=`M ${A},${v} L ${A},${y}`;this.setLineStyle(i,t[g],b,m),f=m})}else{let f=u.dir===J.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,m=s+o/2,g=u.dir===J.LAYOUT_GROW_DIR.LEFT?u.left+u.width:u.left,v=u.top+u.height/2,y=`M ${f},${m} L ${g},${v}`;this.setLineStyle(i,t[d],y,u)}})}renderLineCurve(e,t,i){if(e.children.length<=0)return[];let{left:n,top:s,width:a,height:o,expandBtnSize:l}=e,{alwaysShowExpandBtn:h,notShowExpandBtn:c}=this.mindMap.opt;(!h||c)&&(l=0),e.children.forEach((u,d)=>{if(e.isRoot){let f=e;e.children.forEach((m,g)=>{let v=f.top+f.height,y=m.top,A=e.left+e.width/2,b=`M ${A},${v} L ${A},${y}`;this.setLineStyle(i,t[g],b,m),f=m})}else{let f=u.dir===J.LAYOUT_GROW_DIR.LEFT?n-l:n+a+l,m=s+o/2,g=u.dir===J.LAYOUT_GROW_DIR.LEFT?u.left+u.width:u.left,v=u.top+u.height/2,y=this.cubicBezierPath(f,m,g,v);this.setLineStyle(i,t[d],y,u)}})}renderExpandBtn(e,t){let{width:i,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform();e.dir===J.LAYOUT_GROW_DIR.RIGHT?t.translate(i-o,n/2-l):t.translate(-s-o,n/2-l)}}renderGeneralization(e){e.forEach(t=>{let i=t.node.dir===J.LAYOUT_GROW_DIR.LEFT,{top:n,bottom:s,left:a,right:o,generalizationLineMargin:l,generalizationNodeMargin:h}=this.getNodeGeneralizationRenderBoundaries(t,"h"),c=i?a-l:o+l,u=c,d=n,f=c,m=s,g=u+(i?-20:20),v=d+(m-d)/2,y=`M ${u},${d} Q ${g},${v} ${f},${m}`;t.generalizationLine.plot(this.transformPath(y)),t.generalizationNode.left=c+(i?-h:h)-(i?t.generalizationNode.width:0),t.generalizationNode.top=n+(s-n-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,i,n,s){s.dir===J.LAYOUT_GROW_DIR.LEFT?e.size(t,n).x(-t).y(0):e.size(t,n).x(i).y(0)}},Of=D6;var bs={top:{renderExpandBtn({node:r,btn:e,expandBtnSize:t,translateX:i,translateY:n,width:s,height:a}){r.parent&&r.parent.isRoot?e.translate(s*.3-t/2-i,-t/2-n):e.translate(s*.3-t/2-i,a+t/2-n)},renderLine({node:r,line:e,top:t,x:i,lineLength:n,height:s,expandBtnSize:a,maxy:o,ctx:l}){r.parent&&r.parent.isRoot?e.plot(l.transformPath(`M ${i},${t} L ${i+n},${t-Math.tan(Kn(l.mindMap.opt.fishboneDeg))*n}`)):e.plot(l.transformPath(`M ${i},${t+s+a} L ${i},${o}`))},computedLeftTopValue({layerIndex:r,node:e,ctx:t}){if(r>=1&&e.children){let i=t.getMarginY(r+1),n=e.left+e.width*t.childIndent,s=e.top+e.height+(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)+i;e.children.forEach(a=>{a.left=n,a.top+=s,s+=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+i})}},adjustLeftTopValueBefore({node:r,parent:e,ctx:t,layerIndex:i}){let n=r.children.length,s=t.getMarginY(i+1);if(e&&!e.isRoot&&n>0){let a=r.children.reduce((o,l)=>o+l.height+(t.getNodeActChildrenLength(l)>0?l.expandBtnSize:0)+s,0);t.updateBrothersTop(r,a)}},adjustLeftTopValueAfter({parent:r,node:e,ctx:t}){if(r&&r.isRoot){let i=t.getMarginY(e.layerIndex+1),n=e.expandBtnSize+i;e.children.forEach(s=>{let a=t.getNodeAreaHeight(s),o=s.top,l=s.left;s.top=e.top-(s.top-e.top)-a+e.height,s.left=e.left+e.width*t.indent+(a+n)/Math.tan(Kn(t.mindMap.opt.fishboneDeg)),n+=a,t.updateChildrenPro(s.children,{top:s.top-o,left:s.left-l})})}}},bottom:{renderExpandBtn({node:r,btn:e,expandBtnSize:t,translateX:i,translateY:n,width:s,height:a}){r.parent&&r.parent.isRoot?e.translate(s*.3-t/2-i,a+t/2-n):e.translate(s*.3-t/2-i,-t/2-n)},renderLine({node:r,line:e,top:t,x:i,lineLength:n,height:s,miny:a,ctx:o}){r.parent&&r.parent.isRoot?e.plot(o.transformPath(`M ${i},${t+s} L ${i+n},${t+s+Math.tan(Kn(o.mindMap.opt.fishboneDeg))*n}`)):e.plot(o.transformPath(`M ${i},${t} L ${i},${a}`))},computedLeftTopValue({layerIndex:r,node:e,ctx:t}){let i=t.getMarginY(r+1);if(r===1&&e.children){let n=e.left+e.width*t.childIndent,s=e.top+e.height+(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)+i;e.children.forEach(a=>{a.left=n,a.top=s+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0),s+=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+i})}if(r>1&&e.children){let n=e.left+e.width*t.childIndent,s=e.top-(t.getNodeActChildrenLength(e)>0?e.expandBtnSize:0)-i;e.children.forEach(a=>{a.left=n,a.top=s-a.height,s-=a.height+(t.getNodeActChildrenLength(a)>0?a.expandBtnSize:0)+i})}},adjustLeftTopValueBefore({node:r,ctx:e,layerIndex:t}){let i=e.getMarginY(t+1),n=r.children.length;if(t>2&&n>0){let s=r.children.reduce((a,o)=>a+o.height+(e.getNodeActChildrenLength(o)>0?o.expandBtnSize:0)+i,0);e.updateBrothersTop(r,-s)}},adjustLeftTopValueAfter({parent:r,node:e,ctx:t}){if(r&&r.isRoot){let i=t.getMarginY(e.layerIndex+1),n=0,s=e.expandBtnSize;e.children.forEach(a=>{let o=t.getNodeActChildrenLength(a)>0,l=t.getNodeAreaHeight(a),h=o?l-a.height-(o?a.expandBtnSize:0):0;h-=o?i:0;let c=n+h,u=a.left;a.top+=c,a.left=e.left+e.width*t.indent+(l+s)/Math.tan(Kn(t.mindMap.opt.fishboneDeg)),n+=h,s+=l,t.updateChildrenPro(a.children,{top:c,left:a.left-u})})}}}};var N6=class extends wi{constructor(e={},t){super(e),this.layout=t,this.indent=.3,this.childIndent=.5,this.fishTail=null,this.maxx=0,this.headRatio=1,this.tailRatio=.6,this.paddingXRatio=.3,this.fishHeadPathStr="M4,181 C4,181, 0,177, 4,173 Q 96.09523809523809,0, 288.2857142857143,0 L 288.2857142857143,354 Q 48.047619047619044,354, 8,218.18367346938777 C8,218.18367346938777, 6,214.18367346938777, 8,214.18367346938777 L 41.183673469387756,214.18367346938777 Z",this.fishTailPathStr="M 606.9342905223708 0 Q 713.1342905223709 -177 819.3342905223708 -177 L 766.2342905223709 0 L 819.3342905223708 177 Q 713.1342905223709 177 606.9342905223708 0 z",this.bindEvent(),this.extendShape(),this.beforeChange=this.beforeChange.bind(this)}nodeIsRemoveAllLines(e){return e.isRoot||e.layerIndex===1}isFishbone2(){return this.layout===J.LAYOUT.FISHBONE2}bindEvent(){this.isFishbone2()&&(this.onCheckUpdateFishTail=this.onCheckUpdateFishTail.bind(this),this.mindMap.on("afterExecCommand",this.onCheckUpdateFishTail))}unBindEvent(){this.mindMap.off("afterExecCommand",this.onCheckUpdateFishTail)}extendShape(){this.isFishbone2()&&this.mindMap.addShape({name:"fishHead",createShape:e=>{let t=Jt(``),{width:i,height:n}=e.shapeInstance.getNodeSize();return t.size(i,n),t},getPadding:({width:e,height:t,paddingX:i,paddingY:n})=>{e+=i*2,t+=n*2;let s=this.paddingXRatio*e,a=0;return e+=s*2,a=(e/this.headRatio-t)/2,{paddingX:s,paddingY:a}}})}doLayout(e){hn([()=>{this.computedBaseValue(),this.addFishTail()},()=>{this.computedLeftTopValue()},()=>{this.adjustLeftTopValue(),this.updateFishTailPosition()},()=>{e(this.root)}])}addFishTail(){if(!this.isFishbone2())return;let e=this.mindMap.lineDraw.findOne(".smm-layout-fishbone-tail");e?this.fishTail=e:(this.fishTail=Jt(``),this.fishTail.addClass("smm-layout-fishbone-tail"));let t=this.root.height,i=t*this.tailRatio;this.fishTail.size(i,t),this.styleFishTail(),this.mindMap.lineDraw.add(this.fishTail)}onCheckUpdateFishTail(e,t,i){if(e==="SET_NODE_DATA"){let n=!1;Object.keys(i).forEach(s=>{u6.includes(s)&&(n=!0)}),n&&this.styleFishTail()}}styleFishTail(){this.root.style.shape(this.fishTail)}removeFishTail(){let e=this.mindMap.lineDraw.findOne(".smm-layout-fishbone-tail");e&&e.remove()}updateFishTailPosition(){this.isFishbone2()&&this.fishTail.x(this.maxx).cy(this.root.top+this.root.height/2)}computedBaseValue(){it(this.renderer.renderTree,null,(e,t,i,n,s,a)=>{i&&this.isFishbone2()&&(e.data.shape="fishHead");let o=this.createNode(e,t,i,n,s,a);if(i)this.setNodeCenter(o);else if(t._node.dir?o.dir=t._node.dir:o.dir=s%2===0?J.LAYOUT_GROW_DIR.TOP:J.LAYOUT_GROW_DIR.BOTTOM,t._node.isRoot){let l=this.getMarginY(n),h=this.isFishbone2()?t._node.height/4:0;this.checkIsTop(o)?o.top=t._node.top-o.height-l+h:o.top=t._node.top+t._node.height+l-h}if(!e.data.expand)return!0},null,!0,0)}computedLeftTopValue(){it(this.root,null,(e,t,i,n)=>{if(e.isRoot){let a=this.getMarginX(n+1),o=this.isFishbone2()?2:1,l=e.left+e.width+e.height/o+a,h=e.left+e.width+e.height/o+a;e.children.forEach(c=>{this.checkIsTop(c)?(c.left=l,l+=c.width+a):(c.left=h+20,h+=c.width+a)})}let s={layerIndex:n,node:e,ctx:this};this.checkIsTop(e)?bs.top.computedLeftTopValue(s):bs.bottom.computedLeftTopValue(s)},null,!0)}adjustLeftTopValue(){it(this.root,null,(e,t,i,n)=>{if(!e.getData("expand"))return;let s={node:e,parent:t,layerIndex:n,ctx:this};this.checkIsTop(e)?bs.top.adjustLeftTopValueBefore(s):bs.bottom.adjustLeftTopValueBefore(s)},(e,t)=>{let i={parent:t,node:e,ctx:this};if(this.checkIsTop(e)?bs.top.adjustLeftTopValueAfter(i):bs.bottom.adjustLeftTopValueAfter(i),e.isRoot){let n=0,s=0,a=-1/0;e.children.forEach(o=>{if(this.checkIsTop(o)){o.left+=n,this.updateChildren(o.children,"left",n);let{left:l,right:h}=this.getNodeBoundaries(o,"h");h>a&&(a=h),n+=h-l}else{o.left+=s,this.updateChildren(o.children,"left",s);let{left:l,right:h}=this.getNodeBoundaries(o,"h");h>a&&(a=h),s+=h-l}}),this.maxx=a}},!0)}getNodeAreaHeight(e){let t=0,i=n=>{let s=this.getMarginY(n.layerIndex);t+=n.height+(this.getNodeActChildrenLength(n)>0?n.expandBtnSize:0)+s,n.children.length&&n.children.forEach(a=>{i(a)})};return i(e),t}updateBrothersLeft(e){let t=e.children,i=0;t.forEach(n=>{n.left+=i,n.children&&n.children.length&&this.updateChildren(n.children,"left",i);let{left:s,right:a}=this.getNodeBoundaries(n,"h"),l=a-s-n.width;l>0&&(i+=l)})}updateBrothersTop(e,t){if(e.parent&&!e.parent.isRoot){let i=e.parent.children,n=nr(e,i);i.forEach((s,a)=>{if(s.hasCustomPosition())return;let o=0;a>n&&(o=t),s.top+=o,s.children&&s.children.length&&this.updateChildren(s.children,"top",o)}),this.checkIsTop(e)?this.updateBrothersTop(e.parent,t):this.updateBrothersTop(e.parent,e.layerIndex===3?0:t)}}checkIsTop(e){return e.dir===J.LAYOUT_GROW_DIR.TOP}renderLine(e,t,i){if(e.layerIndex!==1&&e.children.length<=0)return[];let{top:n,height:s,expandBtnSize:a}=e,{alwaysShowExpandBtn:o,notShowExpandBtn:l}=this.mindMap.opt;(!o||l)&&(a=0);let h=e.children.length;if(e.isRoot){let c=-1/0;e.children.forEach(g=>{g.left>c&&(c=g.left);let v=this.getMarginY(g.layerIndex),y=g.left,A=e.height/2+v-(this.isFishbone2()?e.height/4:0),b=A/Math.tan(Kn(this.mindMap.opt.fishboneDeg)),C=this.lineDraw.path();this.checkIsTop(g)?C.plot(this.transformPath(`M ${y-b},${g.top+g.height+A} L ${g.left},${g.top+g.height}`)):C.plot(this.transformPath(`M ${y-b},${g.top-A} L ${y},${g.top}`)),e.style.line(C),e._lines.push(C),i&&i(C,e)});let u=e.top+e.height/2,d=e.height/2+this.getMarginY(e.layerIndex+1),f=this.lineDraw.path(),m=this.isFishbone2()?this.maxx:c-d/Math.tan(Kn(this.mindMap.opt.fishboneDeg));f.plot(this.transformPath(`M ${e.left+e.width},${u} L ${m},${u}`)),e.style.line(f),e._lines.push(f),i&&i(f,e)}else{let c=-1/0,u=1/0,d=-1/0,f=e.left+e.width*this.indent;if(e.children.forEach((m,g)=>{m.left>d&&(d=m.left);let v=m.top+m.height/2;if(v>c&&(c=v),v1){let y=`M ${f},${v} L ${m.left},${v}`;this.setLineStyle(i,t[g],y,m)}}),h>=0){let m=this.lineDraw.path();a=h>0?a:0;let g=d-e.left-e.width*this.indent;g=Math.max(g,0);let v={node:e,line:m,top:n,x:f,lineLength:g,height:s,expandBtnSize:a,maxy:c,miny:u,ctx:this};this.checkIsTop(e)?bs.top.renderLine(v):bs.bottom.renderLine(v),e.style.line(m),e._lines.push(m),i&&i(m,e)}}}renderExpandBtn(e,t){let{width:i,height:n,expandBtnSize:s,isRoot:a}=e;if(!a){let{translateX:o,translateY:l}=t.transform(),h={node:e,btn:t,expandBtnSize:s,translateX:o,translateY:l,width:i,height:n};this.checkIsTop(e)?bs.top.renderExpandBtn(h):bs.bottom.renderExpandBtn(h)}}renderGeneralization(e){e.forEach(t=>{let{top:i,bottom:n,right:s,generalizationLineMargin:a,generalizationNodeMargin:o}=this.getNodeGeneralizationRenderBoundaries(t,"h"),l=s+a,h=i,c=s+a,u=n,d=l+20,f=h+(u-h)/2,m=`M ${l},${h} Q ${d},${f} ${c},${u}`;t.generalizationLine.plot(this.transformPath(m)),t.generalizationNode.left=s+o,t.generalizationNode.top=i+(n-i-t.generalizationNode.height)/2})}renderExpandBtnRect(e,t,i,n,s){let a="";s.dir===J.LAYOUT_GROW_DIR.TOP?a=s.layerIndex===1?J.LAYOUT_GROW_DIR.TOP:J.LAYOUT_GROW_DIR.BOTTOM:a=s.layerIndex===1?J.LAYOUT_GROW_DIR.BOTTOM:J.LAYOUT_GROW_DIR.TOP,a===J.LAYOUT_GROW_DIR.TOP?e.size(i,t).x(0).y(-t):e.size(i,t).x(0).y(n)}beforeChange(){this.isFishbone2()&&(this.root.nodeData.data.shape=J.SHAPE.RECTANGLE,this.removeFishTail(),this.unBindEvent(),this.mindMap.removeShape("fishHead"))}},F6=N6;var Y9="smm-node-edit-wrap",Du=class{constructor(e){this.renderer=e,this.mindMap=e.mindMap,this.currentNode=null,this.textEditNode=null,this.showTextEdit=!1,this.cacheEditingText="",this.hasBodyMousedown=!1,this.textNodePaddingX=5,this.textNodePaddingY=3,this.isNeedUpdateTextEditNode=!1,this.mindMap.addEditNodeClass(Y9),this.bindEvent()}bindEvent(){this.show=this.show.bind(this),this.onScale=this.onScale.bind(this),this.onKeydown=this.onKeydown.bind(this),this.mindMap.on("node_dblclick",(e,t,i)=>{this.show({node:e,e:t,isInserting:i})}),this.mindMap.on("draw_click",()=>{this.hideEditTextBox()}),this.mindMap.on("body_mousedown",()=>{this.hasBodyMousedown=!0}),this.mindMap.on("body_click",()=>{this.hasBodyMousedown&&(this.hasBodyMousedown=!1,this.mindMap.opt.isEndNodeTextEditOnClickOuter&&this.hideEditTextBox())}),this.mindMap.on("svg_mousedown",()=>{this.hideEditTextBox()}),this.mindMap.on("expand_btn_click",()=>{this.hideEditTextBox()}),this.mindMap.on("before_node_active",()=>{this.hideEditTextBox()}),this.mindMap.on("mousewheel",()=>{this.mindMap.opt.mousewheelAction===J.MOUSE_WHEEL_ACTION.MOVE&&this.hideEditTextBox()}),this.mindMap.keyCommand.addShortcut("F2",()=>{this.renderer.activeNodeList.length<=0||this.show({node:this.renderer.activeNodeList[0]})}),this.mindMap.on("scale",this.onScale),this.mindMap.opt.enableAutoEnterTextEditWhenKeydown&&window.addEventListener("keydown",this.onKeydown),this.mindMap.on("beforeDestroy",()=>{this.unBindEvent()}),this.mindMap.on("after_update_config",(e,t)=>{e.openRealtimeRenderOnNodeTextEdit!==t.openRealtimeRenderOnNodeTextEdit&&(this.mindMap.richText?this.mindMap.richText.onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e.openRealtimeRenderOnNodeTextEdit):this.onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e.openRealtimeRenderOnNodeTextEdit)),e.enableAutoEnterTextEditWhenKeydown!==t.enableAutoEnterTextEditWhenKeydown&&window[e.enableAutoEnterTextEditWhenKeydown?"addEventListener":"removeEventListener"]("keydown",this.onKeydown)}),this.mindMap.on("afterExecCommand",()=>{this.isShowTextEdit()&&(this.isNeedUpdateTextEditNode=!0)}),this.mindMap.on("node_tree_render_end",()=>{this.isShowTextEdit()&&this.isNeedUpdateTextEditNode&&(this.isNeedUpdateTextEditNode=!1,this.updateTextEditNode())})}unBindEvent(){window.removeEventListener("keydown",this.onKeydown)}onKeydown(e){if(e.target!==document.body)return;let t=this.mindMap.renderer.activeNodeList;if(t.length<=0||t.length>1)return;let i=t[0];i&&this.checkIsAutoEnterTextEditKey(e)&&(e.preventDefault(),this.show({node:i,e,isInserting:!1,isFromKeyDown:!0}))}checkIsAutoEnterTextEditKey(e){let t=e.keyCode;return(t===229||t>=65&&t<=90||t>=48&&t<=57)&&!this.mindMap.keyCommand.hasCombinationKey(e)}registerTmpShortcut(){this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.mindMap.keyCommand.addShortcut("Tab",()=>{this.hideEditTextBox()})}isShowTextEdit(){return this.mindMap.richText?this.mindMap.richText.showTextEdit:this.showTextEdit}setIsShowTextEdit(e){this.showTextEdit=e,e?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}async show({node:e,isInserting:t=!1,isFromKeyDown:i=!1,isFromScale:n=!1}){if(e.isUseCustomNodeContent())return;this.getCurrentEditNode()&&this.hideEditTextBox();let{beforeTextEdit:a,openRealtimeRenderOnNodeTextEdit:o}=this.mindMap.opt;if(typeof a=="function"){let f=!1;try{f=await a(e,t)}catch(m){f=!1,this.mindMap.opt.errorHandler(Wn.BEFORE_TEXT_EDIT_ERROR,m)}if(!f)return}let{offsetLeft:l,offsetTop:h}=g9(this.mindMap,e);this.mindMap.view.translateXY(l,h);let c=e._textData.node;o&&c.show();let u=c.node.getBoundingClientRect();o&&c.hide();let d={node:e,rect:u,isInserting:t,isFromKeyDown:i,isFromScale:n};if(this.mindMap.richText){this.mindMap.richText.showEditText(d);return}this.currentNode=e,this.showEditTextBox(d)}onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e){this.textEditNode&&(this.textEditNode.style.background=e?"transparent":this.currentNode?this.getBackground(this.currentNode):"",this.textEditNode.style.boxShadow=e?"none":"0 0 20px rgba(0,0,0,.5)")}onScale(){let e=this.getCurrentEditNode();e&&(this.mindMap.richText?(this.mindMap.richText.cacheEditingText=this.mindMap.richText.getEditText(),this.mindMap.richText.showTextEdit=!1):(this.cacheEditingText=this.getEditText(),this.setIsShowTextEdit(!1)),this.show({node:e,isFromScale:!0}))}showEditTextBox({node:e,rect:t,isInserting:i,isFromKeyDown:n,isFromScale:s}){if(this.showTextEdit)return;let{nodeTextEditZIndex:a,textAutoWrapWidth:o,selectTextOnEnterEditText:l,openRealtimeRenderOnNodeTextEdit:h,autoEmptyTextWhenKeydownEnterEdit:c}=this.mindMap.opt;s||this.mindMap.emit("before_show_text_edit"),this.registerTmpShortcut(),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.classList.add(Y9),this.textEditNode.style.cssText=` + position: fixed; + box-sizing: border-box; + ${h?"":"box-shadow: 0 0 20px rgba(0,0,0,.5);"} + padding: ${this.textNodePaddingY}px ${this.textNodePaddingX}px; + margin-left: -${this.textNodePaddingX}px; + margin-top: -${this.textNodePaddingY}px; + outline: none; + word-break: break-all; + line-break: anywhere; + `,this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",v=>{v.stopPropagation()}),this.textEditNode.addEventListener("click",v=>{v.stopPropagation()}),this.textEditNode.addEventListener("mousedown",v=>{v.stopPropagation()}),this.textEditNode.addEventListener("keydown",v=>{this.checkIsAutoEnterTextEditKey(v)&&v.stopPropagation()}),this.textEditNode.addEventListener("paste",v=>{let y=v.clipboardData.getData("text"),{isSmm:A,data:b}=Rl(y);A&&b[0]&&b[0].data?o6(v,cn(b[0].data.text)):o6(v),this.emitTextChangeEvent()}),this.textEditNode.addEventListener("input",()=>{this.emitTextChangeEvent()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let u=this.mindMap.view.scale,d=e.style.merge("fontSize"),f=(this.cacheEditingText||e.getData("text")).split(/\n/gim).map(g=>Dn(g)),m=e._textData.node.attr("data-ismultiLine")==="true";e.style.domText(this.textEditNode,u),h||(this.textEditNode.style.background=this.getBackground(e)),this.textEditNode.style.zIndex=a,n&&c?this.textEditNode.innerHTML="":this.textEditNode.innerHTML=f.join("
"),this.textEditNode.style.minWidth=t.width+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=t.height+"px",this.textEditNode.style.left=Math.floor(t.left)+"px",this.textEditNode.style.top=Math.floor(t.top)+"px",this.textEditNode.style.display="block",this.textEditNode.style.maxWidth=o*u+"px",m?(this.textEditNode.style.lineHeight=j0,this.textEditNode.style.transform=`translateY(${(j0-1)*d/2*u}px)`):this.textEditNode.style.lineHeight="normal",this.setIsShowTextEdit(!0),i||l&&!n?ah(this.textEditNode):sh(this.textEditNode),this.cacheEditingText=""}emitTextChangeEvent(){this.mindMap.emit("node_text_edit_change",{node:this.currentNode,text:this.getEditText(),richText:!1})}updateTextEditNode(){if(this.mindMap.richText){this.mindMap.richText.updateTextEditNode();return}if(!this.showTextEdit||!this.currentNode)return;let e=this.currentNode._textData.node.node.getBoundingClientRect();this.textEditNode.style.minWidth=e.width+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=e.height+this.textNodePaddingY*2+"px",this.textEditNode.style.left=Math.floor(e.left)+"px",this.textEditNode.style.top=Math.floor(e.top)+"px"}getBackground(e){if(e.style.merge("gradientStyle")){let i=e.style.merge("startColor"),n=e.style.merge("endColor");return`linear-gradient(to right, ${i}, ${n})`}else{let i=e.style.merge("fillColor"),n=e.style.merge("color");return i==="transparent"?wu(n)?Ff(this.mindMap.themeConfig):"#fff":i}}removeTextEditEl(){if(this.mindMap.richText){this.mindMap.richText.removeTextEditEl();return}if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}getEditText(){return nh(this.textEditNode.innerHTML)}hideEditTextBox(){if(this.mindMap.richText)return this.mindMap.richText.hideEditText();if(!this.showTextEdit)return;let e=this.currentNode,t=this.getEditText();this.currentNode=null,this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.textEditNode.style.fontFamily="inherit",this.textEditNode.style.fontSize="inherit",this.textEditNode.style.fontWeight="normal",this.textEditNode.style.transform="translateY(0)",this.setIsShowTextEdit(!1),this.mindMap.execCommand("SET_NODE_TEXT",e,t),this.mindMap.render(),this.mindMap.emit("hide_text_edit",this.textEditNode,this.renderer.activeNodeList,e)}getCurrentEditNode(){return this.mindMap.richText?this.mindMap.richText.node:this.currentNode}};var V9={[J.LAYOUT.LOGICAL_STRUCTURE]:E6,[J.LAYOUT.LOGICAL_STRUCTURE_LEFT]:E6,[J.LAYOUT.MIND_MAP]:j9,[J.LAYOUT.CATALOG_ORGANIZATION]:G9,[J.LAYOUT.ORGANIZATION_STRUCTURE]:W9,[J.LAYOUT.TIMELINE]:k6,[J.LAYOUT.TIMELINE2]:k6,[J.LAYOUT.VERTICAL_TIMELINE]:Of,[J.LAYOUT.VERTICAL_TIMELINE2]:Of,[J.LAYOUT.VERTICAL_TIMELINE3]:Of,[J.LAYOUT.FISHBONE]:F6,[J.LAYOUT.FISHBONE2]:F6},I6=class{constructor(e={}){this.opt=e,this.mindMap=e.mindMap,this.themeConfig=this.mindMap.themeConfig,this.renderTree=this.mindMap.opt.data?(0,K9.default)({},this.mindMap.opt.data):null,this.reRender=!1,this.isRendering=!1,this.hasWaitRendering=!1,this.nodeCache={},this.lastNodeCache={},this.renderSourceList=[],this.renderCallbackList=[],this.activeNodeList=[],this.emitNodeActiveEventTimer=null,this.renderTimer=null,this.root=null,this.textEdit=new Du(this),this.beingCopyData=null,this.highlightBoxNode=null,this.highlightBoxNodeStyle=null,this.lastActiveNodeList=[],this.setLayout(),this.bindEvent(),this.registerCommands(),this.registerShortcutKeys()}setLayout(){this.layout&&this.layout.beforeChange&&this.layout.beforeChange();let{layout:e}=this.mindMap.opt,t=V9[e]||this.mindMap[e];t||(t=V9[J.LAYOUT.LOGICAL_STRUCTURE],this.mindMap.opt.layout=J.LAYOUT.LOGICAL_STRUCTURE),this.layout=new t(this,e)}setData(e){this.renderTree=e||null}bindEvent(){let{openPerformance:e,performanceConfig:t,openRealtimeRenderOnNodeTextEdit:i}=this.mindMap.opt;this.mindMap.on("draw_click",s=>{this.clearActiveNodeListOnDrawClick(s,"click")}),this.mindMap.on("contextmenu",s=>{this.clearActiveNodeListOnDrawClick(s,"contextmenu")}),this.mindMap.svg.on("dblclick",()=>{this.mindMap.opt.enableDblclickBackToRootNode&&this.setRootNodeCenter()});let n=Rs(()=>{this.renderTree&&this.root&&(this.mindMap.emit("node_tree_render_start"),this.root.render(()=>{this.mindMap.emit("node_tree_render_end")},!1,!0))},t.time);e&&this.mindMap.on("view_data_change",n),this.onNodeTextEditChange=m9(this.onNodeTextEditChange,100,this),i&&this.mindMap.on("node_text_edit_change",this.onNodeTextEditChange),this.mindMap.on("after_update_config",(s,a)=>{s.openPerformance!==a.openPerformance&&(this.mindMap[s.openPerformance?"on":"off"]("view_data_change",n),this.forceLoadNode()),s.openRealtimeRenderOnNodeTextEdit!==a.openRealtimeRenderOnNodeTextEdit&&this.mindMap[s.openRealtimeRenderOnNodeTextEdit?"on":"off"]("node_text_edit_change",this.onNodeTextEditChange)})}onNodeTextEditChange({node:e,text:t}){e._textData=e.createTextNode(t);let{width:i,height:n}=e.getNodeRect();e.width=i,e.height=n,e.layout(),this.mindMap.render(()=>{this.textEdit.updateTextEditNode()})}forceLoadNode(e){e=e||this.root,e&&(this.mindMap.emit("node_tree_render_start"),e.render(()=>{this.mindMap.emit("node_tree_render_end")},!0))}registerCommands(){this.selectAll=this.selectAll.bind(this),this.mindMap.command.add("SELECT_ALL",this.selectAll),this.back=this.back.bind(this),this.mindMap.command.add("BACK",this.back),this.forward=this.forward.bind(this),this.mindMap.command.add("FORWARD",this.forward),this.insertNode=this.insertNode.bind(this),this.mindMap.command.add("INSERT_NODE",this.insertNode),this.insertMultiNode=this.insertMultiNode.bind(this),this.mindMap.command.add("INSERT_MULTI_NODE",this.insertMultiNode),this.insertChildNode=this.insertChildNode.bind(this),this.mindMap.command.add("INSERT_CHILD_NODE",this.insertChildNode),this.insertMultiChildNode=this.insertMultiChildNode.bind(this),this.mindMap.command.add("INSERT_MULTI_CHILD_NODE",this.insertMultiChildNode),this.insertParentNode=this.insertParentNode.bind(this),this.mindMap.command.add("INSERT_PARENT_NODE",this.insertParentNode),this.upNode=this.upNode.bind(this),this.mindMap.command.add("UP_NODE",this.upNode),this.downNode=this.downNode.bind(this),this.mindMap.command.add("DOWN_NODE",this.downNode),this.moveUpOneLevel=this.moveUpOneLevel.bind(this),this.mindMap.command.add("MOVE_UP_ONE_LEVEL",this.moveUpOneLevel),this.insertAfter=this.insertAfter.bind(this),this.mindMap.command.add("INSERT_AFTER",this.insertAfter),this.insertBefore=this.insertBefore.bind(this),this.mindMap.command.add("INSERT_BEFORE",this.insertBefore),this.moveNodeTo=this.moveNodeTo.bind(this),this.mindMap.command.add("MOVE_NODE_TO",this.moveNodeTo),this.removeNode=this.removeNode.bind(this),this.mindMap.command.add("REMOVE_NODE",this.removeNode),this.removeCurrentNode=this.removeCurrentNode.bind(this),this.mindMap.command.add("REMOVE_CURRENT_NODE",this.removeCurrentNode),this.pasteNode=this.pasteNode.bind(this),this.mindMap.command.add("PASTE_NODE",this.pasteNode),this.cutNode=this.cutNode.bind(this),this.mindMap.command.add("CUT_NODE",this.cutNode),this.setNodeStyle=this.setNodeStyle.bind(this),this.mindMap.command.add("SET_NODE_STYLE",this.setNodeStyle),this.setNodeStyles=this.setNodeStyles.bind(this),this.mindMap.command.add("SET_NODE_STYLES",this.setNodeStyles),this.setNodeActive=this.setNodeActive.bind(this),this.mindMap.command.add("SET_NODE_ACTIVE",this.setNodeActive),this.clearActiveNode=this.clearActiveNode.bind(this),this.mindMap.command.add("CLEAR_ACTIVE_NODE",this.clearActiveNode),this.setNodeExpand=this.setNodeExpand.bind(this),this.mindMap.command.add("SET_NODE_EXPAND",this.setNodeExpand),this.expandAllNode=this.expandAllNode.bind(this),this.mindMap.command.add("EXPAND_ALL",this.expandAllNode),this.unexpandAllNode=this.unexpandAllNode.bind(this),this.mindMap.command.add("UNEXPAND_ALL",this.unexpandAllNode),this.expandToLevel=this.expandToLevel.bind(this),this.mindMap.command.add("UNEXPAND_TO_LEVEL",this.expandToLevel),this.setNodeData=this.setNodeData.bind(this),this.mindMap.command.add("SET_NODE_DATA",this.setNodeData),this.setNodeText=this.setNodeText.bind(this),this.mindMap.command.add("SET_NODE_TEXT",this.setNodeText),this.setNodeImage=this.setNodeImage.bind(this),this.mindMap.command.add("SET_NODE_IMAGE",this.setNodeImage),this.setNodeIcon=this.setNodeIcon.bind(this),this.mindMap.command.add("SET_NODE_ICON",this.setNodeIcon),this.setNodeHyperlink=this.setNodeHyperlink.bind(this),this.mindMap.command.add("SET_NODE_HYPERLINK",this.setNodeHyperlink),this.setNodeNote=this.setNodeNote.bind(this),this.mindMap.command.add("SET_NODE_NOTE",this.setNodeNote),this.setNodeAttachment=this.setNodeAttachment.bind(this),this.mindMap.command.add("SET_NODE_ATTACHMENT",this.setNodeAttachment),this.setNodeTag=this.setNodeTag.bind(this),this.mindMap.command.add("SET_NODE_TAG",this.setNodeTag),this.insertFormula=this.insertFormula.bind(this),this.mindMap.command.add("INSERT_FORMULA",this.insertFormula),this.addGeneralization=this.addGeneralization.bind(this),this.mindMap.command.add("ADD_GENERALIZATION",this.addGeneralization),this.removeGeneralization=this.removeGeneralization.bind(this),this.mindMap.command.add("REMOVE_GENERALIZATION",this.removeGeneralization),this.setNodeCustomPosition=this.setNodeCustomPosition.bind(this),this.mindMap.command.add("SET_NODE_CUSTOM_POSITION",this.setNodeCustomPosition),this.resetLayout=this.resetLayout.bind(this),this.mindMap.command.add("RESET_LAYOUT",this.resetLayout),this.setNodeShape=this.setNodeShape.bind(this),this.mindMap.command.add("SET_NODE_SHAPE",this.setNodeShape),this.goTargetNode=this.goTargetNode.bind(this),this.mindMap.command.add("GO_TARGET_NODE",this.goTargetNode),this.removeCustomStyles=this.removeCustomStyles.bind(this),this.mindMap.command.add("REMOVE_CUSTOM_STYLES",this.removeCustomStyles),this.removeAllNodeCustomStyles=this.removeAllNodeCustomStyles.bind(this),this.mindMap.command.add("REMOVE_ALL_NODE_CUSTOM_STYLES",this.removeAllNodeCustomStyles)}registerShortcutKeys(){this.mindMap.keyCommand.addShortcut("Tab",()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")}),this.mindMap.keyCommand.addShortcut("Insert",()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")}),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.mindMap.execCommand("INSERT_NODE")}),this.mindMap.keyCommand.addShortcut("Shift+Tab",()=>{this.mindMap.execCommand("INSERT_PARENT_NODE")}),this.mindMap.keyCommand.addShortcut("Control+g",()=>{this.mindMap.execCommand("ADD_GENERALIZATION")}),this.toggleActiveExpand=this.toggleActiveExpand.bind(this),this.mindMap.keyCommand.addShortcut("/",this.toggleActiveExpand),this.mindMap.keyCommand.addShortcut("Del|Backspace",()=>{this.mindMap.execCommand("REMOVE_NODE")}),this.mindMap.keyCommand.addShortcut("Shift+Backspace",()=>{this.mindMap.execCommand("REMOVE_CURRENT_NODE")}),this.mindMap.on("before_show_text_edit",()=>{this.startTextEdit()}),this.mindMap.on("hide_text_edit",()=>{this.endTextEdit()}),this.mindMap.keyCommand.addShortcut("Control+a",()=>{this.mindMap.execCommand("SELECT_ALL")}),this.mindMap.keyCommand.addShortcut("Control+l",()=>{this.mindMap.execCommand("RESET_LAYOUT")}),this.mindMap.keyCommand.addShortcut("Control+Up",()=>{this.mindMap.execCommand("UP_NODE")}),this.mindMap.keyCommand.addShortcut("Control+Down",()=>{this.mindMap.execCommand("DOWN_NODE")}),this.mindMap.keyCommand.addShortcut("Control+c",()=>{this.copy()}),this.mindMap.keyCommand.addShortcut("Control+x",()=>{this.cut()}),this.mindMap.keyCommand.addShortcut("Control+v",()=>{this.paste()}),this.mindMap.keyCommand.addShortcut("Control+Enter",()=>{this.setRootNodeCenter()})}emitNodeActiveEvent(e=null,t=[...this.activeNodeList]){N9(this.lastActiveNodeList,t)||(this.lastActiveNodeList=[...t],clearTimeout(this.emitNodeActiveEventTimer),this.emitNodeActiveEventTimer=setTimeout(()=>{this.mindMap.emit("node_active",e,t)},0))}clearActiveNodeListOnDrawClick(e,t){if(this.activeNodeList.length<=0)return;let i=!0,{useLeftKeySelectionRightKeyDrag:n}=this.mindMap.opt;if(t==="contextmenu"?!n:n){let s=this.mindMap.event.mousedownPos;i=Math.abs(e.clientX-s.x)<=5&&Math.abs(e.clientY-s.y)<=5}i&&this.mindMap.execCommand("CLEAR_ACTIVE_NODE")}startTextEdit(){this.mindMap.keyCommand.save()}endTextEdit(){this.mindMap.keyCommand.restore()}clearCache(){this.layout.lru.clear(),this.nodeCache={},this.lastNodeCache={}}addRenderParams(e,t){e&&this.renderCallbackList.findIndex(n=>n===e)===-1&&this.renderCallbackList.push(e),t&&this.renderSourceList.findIndex(n=>n===t)===-1&&this.renderSourceList.push(t)}checkHasRenderSource(e){e=Array.isArray(e)?e:[e];for(let t=0;t{e()}),this.isRendering=!1,this.reRender=!1,this.renderCallbackList=[],this.renderSourceList=[],this.mindMap.emit("node_tree_render_end")}render(e,t){this.addRenderParams(e,t),clearTimeout(this.renderTimer),this.renderTimer=setTimeout(()=>{this._render()},0)}_render(){if(this.checkHasRenderSource(J.CHANGE_THEME)&&this.resetUnExpandNodeStyle(),this.isRendering){this.hasWaitRendering=!0;return}if(this.isRendering=!0,this.lastNodeCache=this.nodeCache,this.nodeCache={},this.reRender&&this.clearActiveNodeList(),!this.renderTree){this.onRenderEnd();return}this.mindMap.emit("node_tree_render_start"),this.root=null,this.layout.doLayout(e=>{Object.keys(this.lastNodeCache).forEach(t=>{this.nodeCache[t]||(this.removeNodeFromActiveList(this.lastNodeCache[t]),this.emitNodeActiveEvent(),this.lastNodeCache[t].destroy())}),this.root=e,this.root.render(()=>{if(this.isRendering=!1,this.hasWaitRendering){this.hasWaitRendering=!1,this.render();return}this.onRenderEnd()})}),this.emitNodeActiveEvent()}resetUnExpandNodeStyle(){this.renderTree&&it(this.renderTree,null,e=>{if(!e.data.expand)return it(e,null,t=>{t.data.needUpdate=!0}),!0})}clearActiveNode(){this.activeNodeList.length<=0||(this.clearActiveNodeList(),this.emitNodeActiveEvent(null,[]))}clearActiveNodeList(){this.activeNodeList.forEach(e=>{this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1)}),this.activeNodeList=[]}addNodeToActiveList(e,t=!1){if(this.mindMap.opt.onlyOneEnableActiveNodeOnCooperate&&e.userList.length>0)return;this.findActiveNodeIndex(e)===-1&&(t||this.mindMap.emit("before_node_active",e,this.activeNodeList),this.mindMap.execCommand("SET_NODE_ACTIVE",e,!0),this.activeNodeList.push(e))}removeNodeFromActiveList(e){let t=this.findActiveNodeIndex(e);t!==-1&&(this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1),this.activeNodeList.splice(t,1))}activeMultiNode(e=[]){e.forEach(t=>{this.mindMap.emit("before_node_active",t,this.activeNodeList),this.addNodeToActiveList(t,!0),this.emitNodeActiveEvent(t)})}cancelActiveMultiNode(e=[]){e.forEach(t=>{this.removeNodeFromActiveList(t),this.emitNodeActiveEvent(null)})}findActiveNodeIndex(e){return nr(e,this.activeNodeList)}selectAll(){this.mindMap.opt.readonly||(it(this.root,null,e=>{e.getData("isActive")||this.addNodeToActiveList(e),e._generalizationList&&e._generalizationList.length>0&&e._generalizationList.forEach(t=>{let i=t.generalizationNode;i.getData("isActive")||this.addNodeToActiveList(i)})},null,!0,0,0),this.emitNodeActiveEvent())}back(e){this.backForward("back",e)}forward(e){this.backForward("forward",e)}backForward(e,t){this.mindMap.execCommand("CLEAR_ACTIVE_NODE");let i=this.mindMap.command[e](t);i&&(this.renderTree=i,this.mindMap.render()),this.mindMap.emit("data_change",i)}getNewNodeBehavior(e=!1,t=!1){let{createNewNodeBehavior:i}=this.mindMap.opt,n=!1,s=!1;switch(i){case J.CREATE_NEW_NODE_BEHAVIOR.DEFAULT:n=t||!e,s=t?!1:e;break;case J.CREATE_NEW_NODE_BEHAVIOR.NOT_ACTIVE:n=!1,s=!1;break;case J.CREATE_NEW_NODE_BEHAVIOR.ACTIVE_ONLY:n=!0,s=!1;break;default:break}return{focusNewNode:n,inserting:s}}insertNode(e=!0,t=[],i=null,n=[]){if(t=Ui(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:s,defaultInsertBelowSecondLevelNodeText:a}=this.mindMap.opt,o=t.length>0?t:this.activeNodeList,l=o.length>1,h=this.hasRichTextPlugin(),{focusNewNode:c,inserting:u}=this.getNewNodeBehavior(e,l),d={expand:!0,richText:h,isActive:c};h&&(d.resetRichText=!0),n=Au(n,d);let f=i&&i.richText,m=!1;o.forEach(g=>{if(g.isGeneralization||g.isRoot)return;n=ln(n);let v=g.parent,A=g.layerIndex===1?s:a,b=mo(g);f&&d.resetRichText&&delete d.resetRichText;let C={inserting:u,data:{text:A,...d,uid:$r(),...i||{}},children:[...Bl(n,m)]};m=!0,v.nodeData.children.splice(b+1,0,C)}),c&&this.clearActiveNodeList(),this.mindMap.render()}insertMultiNode(e,t){if(!t||t.length<=0||(e=Ui(e),this.activeNodeList.length<=0&&e.length<=0))return;this.textEdit.hideEditTextBox();let i=e.length>0?e:this.activeNodeList,n=this.hasRichTextPlugin(),{focusNewNode:s}=this.getNewNodeBehavior(!1,!0),a={expand:!0,richText:n,isActive:s};n&&(a.resetRichText=!0),t=Au(t,a);let o=!1;i.forEach(l=>{if(l.isGeneralization||l.isRoot)return;t=ln(t);let h=l.parent,c=mo(l),u=Bl(t,o);o=!0,h.nodeData.children.splice(c+1,0,...u)}),s&&this.clearActiveNodeList(),this.mindMap.render()}insertChildNode(e=!0,t=[],i=null,n=[]){if(t=Ui(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:s,defaultInsertBelowSecondLevelNodeText:a}=this.mindMap.opt,o=t.length>0?t:this.activeNodeList,l=o.length>1,h=this.hasRichTextPlugin(),{focusNewNode:c,inserting:u}=this.getNewNodeBehavior(e,l),d={expand:!0,richText:h,isActive:c};h&&(d.resetRichText=!0),n=Au(n,d);let f=i&&i.richText,m=!1;o.forEach(g=>{if(g.isGeneralization)return;n=ln(n),g.nodeData.children||(g.nodeData.children=[]);let v=g.isRoot?s:a;f&&d.resetRichText&&delete d.resetRichText;let y={inserting:u,data:{text:v,uid:$r(),...d,...i||{}},children:[...Bl(n,m)]};m=!0,g.nodeData.children.push(y),g.setData({expand:!0})}),c&&this.clearActiveNodeList(),this.mindMap.render()}insertMultiChildNode(e,t){if(!t||t.length<=0||(e=Ui(e),this.activeNodeList.length<=0&&e.length<=0))return;this.textEdit.hideEditTextBox();let i=e.length>0?e:this.activeNodeList,n=this.hasRichTextPlugin(),{focusNewNode:s}=this.getNewNodeBehavior(!1,!0),a={expand:!0,richText:n,isActive:s};n&&(a.resetRichText=!0),t=Au(t,a);let o=!1;i.forEach(l=>{l.isGeneralization||(t=ln(t),l.nodeData.children||(l.nodeData.children=[]),t=Bl(t,o),o=!0,l.nodeData.children.push(...t),l.setData({expand:!0}))}),s&&this.clearActiveNodeList(),this.mindMap.render()}insertParentNode(e=!0,t,i){if(t=Ui(t),this.activeNodeList.length<=0&&t.length<=0)return;this.textEdit.hideEditTextBox();let{defaultInsertSecondLevelNodeText:n,defaultInsertBelowSecondLevelNodeText:s}=this.mindMap.opt,a=t.length>0?t:this.activeNodeList,o=a.length>1,l=this.hasRichTextPlugin(),{focusNewNode:h,inserting:c}=this.getNewNodeBehavior(e,o),u={expand:!0,richText:l,isActive:h};l&&(u.resetRichText=!0);let d=i&&i.richText;a.forEach(f=>{if(f.isGeneralization||f.isRoot)return;let m=f.layerIndex===1?n:s;d&&u.resetRichText&&delete u.resetRichText;let g={inserting:c,data:{text:m,uid:$r(),...u,...i||{}},children:[f.nodeData]},v=f.parent,y=mo(f);v.nodeData.children.splice(y,1,g)}),h&&this.clearActiveNodeList(),this.mindMap.render()}upNode(e){if(this.activeNodeList.length<=0&&!e)return;let i=(e?[e]:this.activeNodeList)[0];if(i.isRoot)return;let n=i.parent,s=n.children,a=nr(i,s);if(a===-1||a===0)return;let o=a-1;s.splice(a,1),s.splice(o,0,i),n.nodeData.children.splice(a,1),n.nodeData.children.splice(o,0,i.nodeData),this.mindMap.render()}downNode(e){if(this.activeNodeList.length<=0&&!e)return;let i=(e?[e]:this.activeNodeList)[0];if(i.isRoot)return;let n=i.parent,s=n.children,a=nr(i,s);if(a===-1||a===s.length-1)return;let o=a+1;s.splice(a,1),s.splice(o,0,i),n.nodeData.children.splice(a,1),n.nodeData.children.splice(o,0,i.nodeData),this.mindMap.render()}moveUpOneLevel(e){if(e=e||this.activeNodeList[0],!e||e.isRoot||e.layerIndex<=1)return;let t=e.parent,i=t.parent,n=nr(e,t.children),s=nr(t,i.children);t.nodeData.children.splice(n,1),i.nodeData.children.splice(s+1,0,e.nodeData),this.mindMap.render()}_handleRemoveCustomStyles(e){let t=!1;return Object.keys(e).forEach(i=>{Ll(i)&&(t=!0,delete e[i])}),this.hasRichTextPlugin()&&(t=!0,e.resetRichText=!0),t}removeCustomStyles(e){if(e=e||this.activeNodeList[0],!e)return;this._handleRemoveCustomStyles(e.getData())&&this.reRenderNodeCheckChange(e)}removeAllNodeCustomStyles(e){e=Ui(e);let t=!1;if(e.length>0)e.forEach(i=>{this._handleRemoveCustomStyles(i.getData())&&(t=!0)});else{if(!this.renderTree)return;it(this.renderTree,null,i=>{this._handleRemoveCustomStyles(i.data)&&(t=!0);let s=Hi(i.data);s.length>0&&s.forEach(a=>{this._handleRemoveCustomStyles(a)&&(t=!0)})})}t&&this.mindMap.reRender()}copy(){this.beingCopyData=this.copyNode(),this.beingCopyData&&(this.mindMap.opt.disabledClipboard||s6(a6(this.beingCopyData)))}cut(){this.mindMap.execCommand("CUT_NODE",e=>{this.beingCopyData=e,this.mindMap.opt.disabledClipboard||s6(a6(e))})}handlePaste(e){let{disabledClipboard:t}=this.mindMap.opt;if(t)return;let i=e.clipboardData||e.originalEvent.clipboardData,n=i.items,s=null,a="";Array.from(n).forEach(o=>{o.type.indexOf("image")>-1&&(s=o.getAsFile()),o.type.indexOf("text")>-1&&(a=i.getData("text"))}),this.paste()}async paste(){let{errorHandler:e,handleIsSplitByWrapOnPasteCreateNewNode:t,handleNodePasteImg:i,disabledClipboard:n,onlyPasteTextWhenHasImgAndText:s}=this.mindMap.opt;if(!n&&n6())try{let a=await k9(),o=a.text||"",l=a.img||null;if(o){let h=null,c=!0;if(this.mindMap.opt.customHandleClipboardText)try{let u=await this.mindMap.opt.customHandleClipboardText(o);if(!ei(u)){c=!1;let d=Rl(u);d.isSmm?h=d.data:o=d.data}}catch(u){e(Wn.CUSTOM_HANDLE_CLIPBOARD_TEXT_ERROR,u)}if(c){let u=Rl(o);u.isSmm?h=u.data:o=u.data}if(h)this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],Array.isArray(h)?h:[h]);else{this.hasRichTextPlugin()&&(o=Dn(o));let u=o.split(new RegExp(`\r? +|(?!!d);u.length>1&&t?t().then(()=>{this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],u.map(d=>({data:{text:d},children:[]})))}).catch(()=>{this.mindMap.execCommand("INSERT_CHILD_NODE",!1,[],{text:o})}):this.mindMap.execCommand("INSERT_CHILD_NODE",!1,[],{text:o})}}if(l&&(!o||!s))try{let h=null;i&&typeof i=="function"?h=await i(l):h=await v9(l),this.activeNodeList.length>0&&this.activeNodeList.forEach(c=>{this.mindMap.execCommand("SET_NODE_IMAGE",c,{url:h.url,title:"",width:h.size.width,height:h.size.height})})}catch(h){e(Wn.LOAD_CLIPBOARD_IMAGE_ERROR,h)}}catch(a){e(Wn.READ_CLIPBOARD_ERROR,a)}else this.beingCopyData&&this.mindMap.execCommand("PASTE_NODE",this.beingCopyData)}insertBefore(e,t){this.insertTo(e,t,"before")}insertAfter(e,t){this.insertTo(e,t,"after")}insertTo(e,t,i="before"){let n=Ui(e);n=n.filter(s=>!s.isRoot),i==="after"&&n.reverse(),n.forEach(s=>{let a=s.parent,o=a.children,l=nr(s,o);if(l===-1)return;o.splice(l,1),a.nodeData.children.splice(l,1);let h=t.parent,c=h.children,u=nr(t,c);u!==-1&&(i==="after"&&u++,c.splice(u,0,s),h.nodeData.children.splice(u,0,s.nodeData))}),this.mindMap.render()}removeNode(e=[]){if(e=Ui(e),this.activeNodeList.length<=0&&e.length<=0)return;let t=null,i=e.length>0,n=i?e:this.activeNodeList,s=n.find(a=>a.isRoot);if(s)this.clearActiveNodeList(),s.children=[],s.nodeData.children=[];else{t=this.getNextActiveNode(n);for(let a=0;a0?e:this.activeNodeList;i=i.filter(s=>!s.isRoot);let n=this.getNextActiveNode(i);for(let s=0;s0?t=n[s-1]:t=i.parent}return t}copyNode(){if(this.activeNodeList.length<=0)return null;let e=Ol(this.activeNodeList);return e=Eu(e),e.map(t=>zl({},t,!0))}cutNode(e){if(this.activeNodeList.length<=0)return;let t=Ol(this.activeNodeList).filter(n=>!n.isRoot);t=Eu(t);let i=t.map(n=>zl({},n,!0));t.forEach(n=>{zf(n)}),this.clearActiveNodeList(),this.mindMap.render(),e&&typeof e=="function"&&e(i)}moveNodeTo(e,t){let i=Ui(e);i=i.filter(n=>!n.isRoot),i.forEach(n=>{this.removeNodeFromActiveList(n),zf(n),t.setData({expand:!0}),t.nodeData.children.push(n.nodeData)}),this.emitNodeActiveEvent(),this.mindMap.render()}pasteNode(e){e=Ui(e),this.mindMap.execCommand("INSERT_MULTI_CHILD_NODE",[],e)}setNodeStyle(e,t,i){let n={[t]:i};this.setNodeDataRender(e,n),yu.includes(t)&&(e.parent||e).renderLine(!0)}setNodeStyles(e,t){let i={...t};this.setNodeDataRender(e,i);let n=Object.keys(t),s=!1;n.forEach(a=>{yu.includes(a)&&(s=!0)}),s&&(e.parent||e).renderLine(!0)}setNodeActive(e,t){this.mindMap.execCommand("SET_NODE_DATA",e,{isActive:t}),e.updateNodeByActive(t)}setNodeExpand(e,t){this.mindMap.execCommand("SET_NODE_DATA",e,{expand:t}),this.mindMap.render()}expandAllNode(e=""){if(!this.renderTree)return;let t=(i,n)=>{!n&&i.data.uid===e&&(n=!0),n&&!i.data.expand&&(i.data.expand=!0),i.children&&i.children.length>0&&i.children.forEach(s=>{t(s,n)})};t(this.renderTree,!e),this.mindMap.render()}unexpandAllNode(e=!0,t=""){if(!this.renderTree)return;let i=(n,s,a)=>{!a&&n.data.uid===t&&(a=!0),a&&!s&&n.children&&n.children.length>0&&(n.data.expand=!1),n.children&&n.children.length>0&&n.children.forEach(o=>{i(o,!1,a)})};i(this.renderTree,!0,!t),this.mindMap.render(()=>{e&&this.setRootNodeCenter()})}expandToLevel(e){this.renderTree&&(it(this.renderTree,null,(t,i,n,s)=>{s0&&(t.data.expand=!1)},null,!0,0,0),this.mindMap.render())}toggleActiveExpand(){this.activeNodeList.forEach(e=>{e.nodeData.children.length<=0||e.isRoot||this.toggleNodeExpand(e)})}toggleNodeExpand(e){this.mindMap.execCommand("SET_NODE_EXPAND",e,!e.getData("expand"))}setNodeText(e,t,i,n){i=i===void 0?e.getData("richText"):i,this.setNodeDataRender(e,{text:t,richText:i,resetRichText:n})}setNodeImage(e,t){let{url:i,title:n,width:s,height:a,custom:o=!1}=t||{url:"",title:"",width:0,height:0,custom:!1};this.setNodeDataRender(e,{image:i,imageTitle:n||"",imageSize:{width:s,height:a,custom:o}})}setNodeIcon(e,t){this.setNodeDataRender(e,{icon:t})}setNodeHyperlink(e,t,i=""){this.setNodeDataRender(e,{hyperlink:t,hyperlinkTitle:i})}setNodeNote(e,t){this.setNodeDataRender(e,{note:t})}setNodeAttachment(e,t,i=""){this.setNodeDataRender(e,{attachmentUrl:t,attachmentName:i})}setNodeTag(e,t){this.setNodeDataRender(e,{tag:t})}insertFormula(e,t=[]){if(!this.hasRichTextPlugin()||!this.mindMap.formula)return;t=Ui(t),(t.length>0?t:this.activeNodeList).forEach(n=>{this.mindMap.formula.insertFormulaToNode(n,e)})}addGeneralization(e,t=!0){if(this.activeNodeList.length<=0)return;let i=this.activeNodeList.filter(c=>!c.isRoot&&!c.isGeneralization&&!c.checkHasSelfGeneralization()),n=T9(i);if(n.length<=0)return;let s=this.hasRichTextPlugin(),{focusNewNode:a,inserting:o}=this.getNewNodeBehavior(t,n.length>1),l=!1,h=e&&e.richText;n.forEach(c=>{let u={inserting:o,...e||{text:this.mindMap.opt.defaultGeneralizationText},range:c.range||null,uid:$r(),richText:s,isActive:a};s&&!h&&(u.resetRichText=s);let d=c.node.getData("generalization");if(d=d?Array.isArray(d)?d:[d]:[],c.range){if(!!d.find(m=>m.range&&m.range[0]===c.range[0]&&m.range[1]===c.range[1]))return;d.push(u)}else d.push(u);l=!0,this.mindMap.execCommand("SET_NODE_DATA",c.node,{generalization:d}),c.node.setData({expand:!0})}),l&&(a&&this.clearActiveNodeList(),this.mindMap.render(()=>{this.mindMap.render()}))}removeGeneralization(){this.activeNodeList.length<=0||(this.activeNodeList.forEach(e=>{e.checkHasGeneralization()&&this.mindMap.execCommand("SET_NODE_DATA",e,{generalization:null})}),this.mindMap.render(),this.closeHighlightNode())}setNodeCustomPosition(e,t=void 0,i=void 0){[e].forEach(s=>{this.mindMap.execCommand("SET_NODE_DATA",s,{customLeft:t,customTop:i})})}resetLayout(){it(this.root,null,e=>{e.customLeft=void 0,e.customTop=void 0,this.mindMap.execCommand("SET_NODE_DATA",e,{customLeft:void 0,customTop:void 0}),this.mindMap.render()},null,!0,0,0)}setNodeShape(e,t){if(!t||!q9.includes(t))return;[e].forEach(n=>{this.setNodeStyle(n,"shape",t)})}goTargetNode(e,t=()=>{}){let i=typeof e=="string"?e:e.getData("uid");i&&this.expandToNodeUid(i,()=>{let n=this.findNodeByUid(i);n&&(n.active(),this.moveNodeToCenter(n),t(n))})}setNodeData(e,t){Object.keys(t).forEach(i=>{e.nodeData.data[i]=t[i]})}setNodeDataRender(e,t,i=!1){if(this.mindMap.execCommand("SET_NODE_DATA",e,t),C9(t)){this.mindMap.emit("node_tree_render_end");return}this.reRenderNodeCheckChange(e,i)}reRenderNodeCheckChange(e,t){e.reRender()?t||this.mindMap.render():this.mindMap.emit("node_tree_render_end")}moveNodeToCenter(e,t){let{resetScaleOnMoveNodeToCenter:i}=this.mindMap.opt;t!==void 0&&(i=t);let{transform:n,state:s}=this.mindMap.view.getTransformData(),{left:a,top:o,width:l,height:h}=e;i||(a*=n.scaleX,o*=n.scaleY,l*=n.scaleX,h*=n.scaleY);let c=this.mindMap.width/2,u=this.mindMap.height/2,d=a+l/2,f=o+h/2,m=c-s.x,g=u-s.y,v=m-d,y=g-f;this.mindMap.view.translateX(v),this.mindMap.view.translateY(y),i&&this.mindMap.view.setScale(1)}setRootNodeCenter(){this.moveNodeToCenter(this.root)}expandToNodeUid(e,t=()=>{}){if(!this.renderTree){t();return}let i=[],n=!1,s={};on(this.renderTree,(o,l)=>{if(o.data.uid===e)return i=l?[...s[l.data.uid],l]:[],"stop";if(Hi(o.data).forEach(c=>{c.uid===e&&(i=l?[...s[l.data.uid],l,o]:[],n=!0)}),n)return"stop";s[o.data.uid]=l?[...s[l.data.uid],l]:[]});let a=!1;if(i.forEach(o=>{o.data.expand||(a=!0,o.data.expand=!0)}),n){let o=i[i.length-1];o&&it(o,null,l=>{l.data.expand||(a=!0,l.data.expand=!0)})}a?this.mindMap.render(t):t()}findNodeByUid(e){if(!this.root)return;let t=null;return it(this.root,null,i=>{if(i.getData("uid")===e)return t=i,!0;let n=!1;if((i._generalizationList||[]).forEach(s=>{s.generalizationNode.getData("uid")===e&&(t=s.generalizationNode,n=!0)}),n)return!0}),t}highlightNode(e,t,i){if(this.isRendering)return;i={stroke:"rgb(94, 200, 248)",fill:"transparent",...i||{}},this.highlightBoxNode?this.highlightBoxNodeStyle&&(this.highlightBoxNodeStyle.stroke!==i.stroke||this.highlightBoxNodeStyle.fill!==i.fill)&&this.highlightBoxNode.stroke({color:i.stroke||"transparent"}).fill({color:i.fill||"transparent"}):this.highlightBoxNode=new vs().stroke({color:i.stroke||"transparent"}).fill({color:i.fill||"transparent"}),this.highlightBoxNodeStyle={...i};let n=1/0,s=1/0,a=-1/0,o=-1/0;t?e.children.slice(t[0],t[1]+1).forEach(h=>{h.lefta&&(a=c),u>o&&(o=u)}):(n=e.left,s=e.top,a=e.left+e.width,o=e.top+e.height),this.highlightBoxNode.plot([[n,s],[a,s],[a,o],[n,o]]),this.mindMap.otherDraw.add(this.highlightBoxNode)}closeHighlightNode(){this.highlightBoxNode&&this.highlightBoxNode.remove()}hasRichTextPlugin(){return!!this.mindMap.richText}},Q9=I6;var R6=mr($c());var yo={default:Ef};var z6={Backspace:8,Tab:9,Enter:13,Shift:16,Control:17,Alt:18,CapsLock:20,Esc:27,Spacebar:32,PageUp:33,PageDown:34,End:35,Home:36,Insert:45,Left:37,Up:38,Right:39,Down:40,Del:46,NumLock:144,Cmd:91,CmdFF:224,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,"`":192,"=":187,"-":189,"/":191,".":190};for(let r=0;r<=9;r++)z6[r]=r+48;"abcdefghijklmnopqrstuvwxyz".split("").forEach((r,e)=>{z6[r]=e+65});var Nn=z6;var Nu=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.shortcutMap={},this.shortcutMapCache={},this.isPause=!1,this.isInSvg=!1,this.isStopCheckInSvg=!1,this.defaultEnableCheck=this.defaultEnableCheck.bind(this),this.bindEvent()}extendKeyMap(e,t){Nn[e]=t}removeKeyMap(e){typeof Nn[e]!="undefined"&&delete Nn[e]}pause(){this.isPause=!0}recovery(){this.isPause=!1}save(){Object.keys(this.shortcutMapCache).length>0||(this.shortcutMapCache=this.shortcutMap,this.shortcutMap={})}restore(){Object.keys(this.shortcutMapCache).length<=0||(this.shortcutMap=this.shortcutMapCache,this.shortcutMapCache={})}stopCheckInSvg(){let{enableShortcutOnlyWhenMouseInSvg:e}=this.mindMap.opt;e&&(this.isStopCheckInSvg=!0)}recoveryCheckInSvg(){let{enableShortcutOnlyWhenMouseInSvg:e}=this.mindMap.opt;e&&(this.isStopCheckInSvg=!0)}bindEvent(){this.onKeydown=this.onKeydown.bind(this),this.mindMap.on("svg_mouseenter",()=>{this.isInSvg=!0}),this.mindMap.on("svg_mouseleave",()=>{this.isInSvg=!1}),window.addEventListener("keydown",this.onKeydown),this.mindMap.on("beforeDestroy",()=>{this.unBindEvent()})}unBindEvent(){window.removeEventListener("keydown",this.onKeydown)}defaultEnableCheck(e){let t=e.target;if(t===document.body)return!0;for(let i=0;i{if(this.checkKey(e,a)){if(this.checkKey(e,"Control+v")||(e.stopPropagation(),e.preventDefault()),typeof i=="function"&&i(a,[...this.mindMap.renderer.activeNodeList]))return;this.shortcutMap[a].forEach(o=>{o()})}}))}checkKey(e,t){let i=this.getOriginEventCodeArr(e),n=this.getKeyCodeArr(t);if(i.length!==n.length)return!1;for(let s=0;so===i[s]);if(a===-1)return!1;n.splice(a,1)}return!0}getOriginEventCodeArr(e){let t=[];return(e.ctrlKey||e.metaKey)&&t.push(Nn.Control),e.altKey&&t.push(Nn.Alt),e.shiftKey&&t.push(Nn.Shift),t.includes(e.keyCode)||t.push(e.keyCode),t}hasCombinationKey(e){return e.ctrlKey||e.metaKey||e.altKey||e.shiftKey}getKeyCodeArr(e){let t=e.split(/\s*\+\s*/),i=[];return t.forEach(n=>{i.push(Nn[n])}),i}addShortcut(e,t){e.split(/\s*\|\s*/).forEach(i=>{this.shortcutMap[i]?this.shortcutMap[i].push(t):this.shortcutMap[i]=[t]})}removeShortcut(e,t){e.split(/\s*\|\s*/).forEach(i=>{if(this.shortcutMap[i])if(t){let n=this.shortcutMap[i].findIndex(s=>s===t);n!==-1&&this.shortcutMap[i].splice(n,1)}else this.shortcutMap[i]=[],delete this.shortcutMap[i]})}getShortcutFn(e){let t=[];return e.split(/\s*\|\s*/).forEach(i=>{t=this.shortcutMap[i]||[]}),t}};var X9={name:"simple-mind-map",version:"0.14.0-fix.1",description:"\u4E00\u4E2A\u7B80\u5355\u7684web\u5728\u7EBF\u601D\u7EF4\u5BFC\u56FE",authors:[{name:"\u8857\u89D2\u5C0F\u6797",email:"1013335014@qq.com"},{name:"\u7406\u60F3\u9752\u5E74\u5B9E\u9A8C\u5BA4",url:"http://lxqnsys.com/"}],types:"./types/index.d.ts",typings:"./types/index.d.ts",license:"MIT",repository:{type:"git",url:"https://github.com/wanglin2/mind-map"},scripts:{lint:"eslint src/",format:"prettier --write .",types:"npx -p typescript tsc index.js --declaration --allowJs --emitDeclarationOnly --outDir types --target es2017 --skipLibCheck & node ./bin/createPluginsTypeFiles.js",wsServe:"node ./bin/wsServer.mjs"},module:"index.js",main:"./dist/simpleMindMap.umd.min.js",dependencies:{"@svgdotjs/svg.js":"3.2.0",deepmerge:"^1.5.2",eventemitter3:"^4.0.7",jszip:"^3.10.1",katex:"^0.16.8","mdast-util-from-markdown":"^1.3.0","pdf-lib":"^1.17.1",quill:"^2.0.3",tern:"^0.24.3",uuid:"^9.0.0",ws:"^7.5.9","xml-js":"^1.6.11","y-webrtc":"^10.2.5",yjs:"^13.6.8"},keywords:["javascript","svg","mind-map","mindMap","MindMap"],devDependencies:{eslint:"^8.25.0",prettier:"^2.7.1"}};var L6=class{constructor(e={}){this.opt=e,this.mindMap=e.mindMap,this.commands={},this.history=[],this.activeHistoryIndex=0,this.registerShortcutKeys(),this.originAddHistory=this.addHistory.bind(this),this.addHistory=Rs(this.addHistory,this.mindMap.opt.addHistoryTime,this),this.isPause=!1}pause(){this.isPause=!0}recovery(){this.isPause=!1}clearHistory(){this.history=[],this.activeHistoryIndex=0,this.mindMap.emit("back_forward",0,0)}registerShortcutKeys(){this.mindMap.keyCommand.addShortcut("Control+z",()=>{this.mindMap.execCommand("BACK")}),this.mindMap.keyCommand.addShortcut("Control+y",()=>{this.mindMap.execCommand("FORWARD")})}exec(e,...t){if(this.commands[e]){if(this.commands[e].forEach(i=>{i(...t)}),this.mindMap.emit("afterExecCommand",e,...t),["BACK","FORWARD","SET_NODE_ACTIVE","CLEAR_ACTIVE_NODE"].includes(e))return;this.addHistory()}}add(e,t){this.commands[e]?this.commands[e].push(t):this.commands[e]=[t]}remove(e,t){if(this.commands[e])if(!t)this.commands[e]=[],delete this.commands[e];else{let i=this.commands[e].find(n=>n===t);i!==-1&&this.commands[e].splice(i,1)}}addHistory(){if(this.mindMap.opt.readonly||this.isPause)return;this.mindMap.emit("beforeAddHistory");let e=this.history.length>0?this.history[this.activeHistoryIndex]:null,t=this.getCopyData(),i=JSON.stringify(t);e&&e===i||(this.emitDataUpdatesEvent(e,i),this.history=this.history.slice(0,this.activeHistoryIndex+1),this.history.push(i),this.history.length>this.mindMap.opt.maxHistoryCount&&this.history.shift(),this.activeHistoryIndex=this.history.length-1,this.mindMap.emit("data_change",t),this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length))}back(e=1){if(!this.mindMap.opt.readonly&&this.activeHistoryIndex-e>=0){let t=this.history[this.activeHistoryIndex];this.activeHistoryIndex-=e,this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length);let i=this.history[this.activeHistoryIndex],n=JSON.parse(i);return this.emitDataUpdatesEvent(t,i),n}}forward(e=1){if(this.mindMap.opt.readonly)return;let t=this.history.length;if(this.activeHistoryIndex+e<=t-1){let i=this.history[this.activeHistoryIndex];this.activeHistoryIndex+=e,this.mindMap.emit("back_forward",this.activeHistoryIndex,this.history.length);let n=this.history[this.activeHistoryIndex],s=JSON.parse(n);return this.emitDataUpdatesEvent(i,n),s}}getCopyData(){if(!this.mindMap.renderer.renderTree)return null;let e=t6({},this.mindMap.renderer.renderTree,!0);return e.smmVersion=X9.version,e}removeDataUid(e){e=ln(e);let t=i=>{delete i.data.uid,i.children&&i.children.length>0&&i.children.forEach(n=>{t(n)})};return t(e),e}emitDataUpdatesEvent(e,t){try{let i="data_change_detail";if(this.mindMap.event.listenerCount(i)>0&&e&&t){let s=JSON.parse(e),a=JSON.parse(t),o=ln(l6(s)),l=ln(l6(a)),h=[],c=(u,d)=>(u.children&&u.children.length>0&&u.children.forEach((f,m)=>{u.children[m]=typeof f=="string"?d[f]:d[f.data.uid],c(u.children[m],d)}),u);Object.keys(l).forEach(u=>{o[u]?kf(o[u],l[u])||h.push({action:"update",oldData:c(o[u],o),data:c(l[u],l)}):h.push({action:"create",data:c(l[u],l)})}),Object.keys(o).forEach(u=>{l[u]||h.push({action:"delete",data:c(o[u],o)})}),this.mindMap.emit(i,h)}}catch(i){this.mindMap.opt.errorHandler(Wn.DATA_CHANGE_DETAIL_EVENT_ERROR,i)}}},Z9=L6;var O6=class{constructor(){this.has={},this.queue=[],this.nextTick=p9(this.flush,this)}push(e,t){if(this.has[e]){this.replaceTask(e,t);return}this.has[e]=!0,this.queue.push({name:e,fn:t}),this.nextTick()}replaceTask(e,t){let i=this.queue.findIndex(n=>n.name===e);i!==-1&&(this.queue[i]={name:e,fn:t})}flush(){let e=this.queue.slice(0);this.queue=[],e.forEach(({name:t,fn:i})=>{this.has[t]=!1,i()})}},J9=O6;var B6={el:null,data:null,viewData:null,readonly:!1,layout:J.LAYOUT.LOGICAL_STRUCTURE,fishboneDeg:45,theme:"default",themeConfig:{},scaleRatio:.2,translateRatio:1,minZoomRatio:20,maxZoomRatio:400,customCheckIsTouchPad:null,mouseScaleCenterUseMousePosition:!0,maxTag:5,expandBtnSize:20,imgTextMargin:5,textContentMargin:2,customNoteContentShow:null,textAutoWrapWidth:500,customHandleMousewheel:null,mousewheelAction:J.MOUSE_WHEEL_ACTION.MOVE,mousewheelMoveStep:100,mousewheelZoomActionReverse:!0,defaultInsertSecondLevelNodeText:"\u4E8C\u7EA7\u8282\u70B9",defaultInsertBelowSecondLevelNodeText:"\u5206\u652F\u4E3B\u9898",expandBtnStyle:{color:"#808080",fill:"#fff",fontSize:13,strokeColor:"#333333"},expandBtnIcon:{open:"",close:""},expandBtnNumHandler:null,isShowExpandNum:!0,enableShortcutOnlyWhenMouseInSvg:!0,customCheckEnableShortcut:null,initRootNodePosition:null,nodeTextEditZIndex:3e3,nodeNoteTooltipZIndex:3e3,isEndNodeTextEditOnClickOuter:!0,maxHistoryCount:500,alwaysShowExpandBtn:!1,notShowExpandBtn:!1,iconList:[],maxNodeCacheCount:1e3,fitPadding:50,enableCtrlKeyNodeSelection:!0,useLeftKeySelectionRightKeyDrag:!1,beforeTextEdit:null,isUseCustomNodeContent:!1,customCreateNodeContent:null,customInnerElsAppendTo:null,enableAutoEnterTextEditWhenKeydown:!1,autoEmptyTextWhenKeydownEnterEdit:!1,customHandleClipboardText:null,disableMouseWheelZoom:!1,errorHandler:(r,e)=>{console.error(r,e)},enableDblclickBackToRootNode:!1,hoverRectColor:"rgb(94, 200, 248)",hoverRectPadding:2,selectTextOnEnterEditText:!1,deleteNodeActive:!0,fit:!1,tagsColorMap:{},cooperateStyle:{avatarSize:22,fontSize:12},onlyOneEnableActiveNodeOnCooperate:!1,defaultGeneralizationText:"\u6982\u8981",handleIsSplitByWrapOnPasteCreateNewNode:null,addHistoryTime:100,isDisableDrag:!1,createNewNodeBehavior:J.CREATE_NEW_NODE_BEHAVIOR.DEFAULT,defaultNodeImage:"",isLimitMindMapInCanvas:!1,handleNodePasteImg:null,customCreateNodePath:null,customCreateNodePolygon:null,customTransformNodeLinePath:null,beforeShortcutRun:null,resetScaleOnMoveNodeToCenter:!1,createNodePrefixContent:null,createNodePostfixContent:null,disabledClipboard:!1,customHyperlinkJump:null,openPerformance:!1,performanceConfig:{time:250,padding:100,removeNodeWhenOutCanvas:!0},emptyTextMeasureHeightText:"abc123\u6211\u548C\u4F60",openRealtimeRenderOnNodeTextEdit:!1,mousedownEventPreventDefault:!1,onlyPasteTextWhenHasImgAndText:!0,enableDragModifyNodeWidth:!0,minNodeTextModifyWidth:20,maxNodeTextModifyWidth:-1,customHandleLine:null,addHistoryOnInit:!0,noteIcon:{icon:"",style:{}},hyperlinkIcon:{icon:"",style:{}},attachmentIcon:{icon:"",style:{}},isShowCreateChildBtnIcon:!0,quickCreateChildBtnIcon:{icon:"",style:{}},customQuickCreateChildBtnClick:null,addCustomContentToNode:null,enableInheritAncestorLineStyle:!0,selectTranslateStep:3,selectTranslateLimit:20,enableFreeDrag:!1,autoMoveWhenMouseInEdgeOnDrag:!0,dragMultiNodeRectConfig:{width:40,height:20,fill:"rgb(94, 200, 248)"},dragPlaceholderRectFill:"rgb(94, 200, 248)",dragPlaceholderLineConfig:{color:"rgb(94, 200, 248)",width:2},dragOpacityConfig:{cloneNodeOpacity:.5,beingDragNodeOpacity:.3},handleDragCloneNode:null,beforeDragEnd:null,beforeDragStart:null,watermarkConfig:{onlyExport:!1,text:"",lineSpacing:100,textSpacing:100,angle:30,textStyle:{color:"#999",opacity:.5,fontSize:14},belowNode:!1},exportPaddingX:10,exportPaddingY:10,resetCss:` + * { + margin: 0; + padding: 0; + box-sizing: border-box; + } + `,minExportImgCanvasScale:2,addContentToHeader:null,addContentToFooter:null,handleBeingExportSvg:null,maxCanvasSize:16384,defaultAssociativeLineText:"\u5173\u8054",associativeLineIsAlwaysAboveNode:!0,associativeLineInitPointsPosition:{from:"",to:""},enableAdjustAssociativeLinePoints:!0,beforeAssociativeLineConnection:null,disableTouchZoom:!1,minTouchZoomScale:20,maxTouchZoomScale:-1,isLimitMindMapInCanvasWhenHasScrollbar:!0,isOnlySearchCurrentRenderNodes:!1,beforeCooperateUpdate:null,rainbowLinesConfig:{open:!1,colorsList:[]},demonstrateConfig:null,enableEditFormulaInRichTextEdit:!0,katexFontPath:"https://unpkg.com/katex@0.16.11/dist/",getKatexOutputType:null,transformRichTextOnEnterEdit:null,beforeHideRichTextEdit:null,outerFramePaddingX:10,outerFramePaddingY:10,defaultOuterFrameText:"\u5916\u6846",onlyPainterNodeCustomStyles:!1,beforeDeleteNodeImg:null,imgResizeBtnSize:25,minImgResizeWidth:50,minImgResizeHeight:50,maxImgResizeWidthInheritTheme:!1,maxImgResizeWidth:1/0,maxImgResizeHeight:1/0,customDeleteBtnInnerHTML:"",customResizeBtnInnerHTML:""};var hr=class{constructor(e={}){if(hr.instanceCount++,this.opt=this.handleOpt((0,R6.default)(B6,e)),this.opt.data=this.handleData(this.opt.data),this.el=this.opt.el,!this.el)throw new Error("\u7F3A\u5C11\u5BB9\u5668\u5143\u7D20el");this.getElRectInfo(),this.initWidth=this.width,this.initHeight=this.height,this.cssEl=null,this.cssTextMap={},this.nodeInnerPrefixList=[],this.nodeInnerPostfixList=[],this.editNodeClassList=[],this.extendShapeList=[],this.initContainer(),this.initTheme(),this.initCache(),hr.pluginList.filter(t=>t.preload).forEach(t=>{this.initPlugin(t)}),this.event=new kv({mindMap:this}),this.keyCommand=new Nu({mindMap:this}),this.command=new Z9({mindMap:this}),this.renderer=new Q9({mindMap:this}),this.view=new Cv({mindMap:this}),this.batchExecution=new J9,hr.pluginList.filter(t=>!t.preload).forEach(t=>{this.initPlugin(t)}),this.addCss(),this.render(this.opt.fit?()=>this.view.fit():()=>{}),this.opt.addHistoryOnInit&&this.opt.data&&this.command.addHistory()}handleOpt(e){return Mp.includes(e.layout)||(e.layout=J.LAYOUT.LOGICAL_STRUCTURE),e.theme=e.theme&&yo[e.theme]?e.theme:"default",e}handleData(e){return ei(e)||Object.keys(e).length<=0?null:(e=ln(e||{}),e.data&&!e.data.expand&&(e.data.expand=!0),Bl([e],!1,null,!0),e)}initContainer(){let{associativeLineIsAlwaysAboveNode:e}=this.opt;this.el.classList.add("smm-mind-map-container");let t=()=>{this.associativeLineDraw=this.draw.group(),this.associativeLineDraw.addClass("smm-associative-line-container")};this.svg=Jt().addTo(this.el).size(this.width,this.height),this.draw=this.svg.group(),this.draw.addClass("smm-container"),this.lineDraw=this.draw.group(),this.lineDraw.addClass("smm-line-container"),e||t(),this.nodeDraw=this.draw.group(),this.nodeDraw.addClass("smm-node-container"),e&&t(),this.otherDraw=this.draw.group(),this.otherDraw.addClass("smm-other-container")}clearDraw(){this.lineDraw.clear(),this.associativeLineDraw.clear(),this.nodeDraw.clear(),this.otherDraw.clear()}appendCss(e,t){this.cssTextMap[e]=t,this.removeCss(),this.addCss()}removeAppendCss(e){this.cssTextMap[e]&&(delete this.cssTextMap[e],this.removeCss(),this.addCss())}joinCss(){return Av+Object.keys(this.cssTextMap).map(e=>this.cssTextMap[e]).join(` +`)}addCss(){this.cssEl=document.createElement("style"),this.cssEl.type="text/css",this.cssEl.innerHTML=this.joinCss(),document.head.appendChild(this.cssEl)}removeCss(){this.cssEl&&document.head.removeChild(this.cssEl)}checkEditNodeClassIndex(e){return this.editNodeClassList.findIndex(t=>t===e)}addEditNodeClass(e){this.checkEditNodeClassIndex(e)===-1&&this.editNodeClassList.push(e)}deleteEditNodeClass(e){let t=this.checkEditNodeClassIndex(e);t!==-1&&this.editNodeClassList.splice(t,1)}render(e,t=""){this.initTheme(),this.renderer.render(e,t)}reRender(e,t=""){this.renderer.reRender=!0,this.renderer.clearCache(),this.clearDraw(),this.render(e,t)}getElRectInfo(){if(this.elRect=this.el.getBoundingClientRect(),this.width=this.elRect.width,this.height=this.elRect.height,this.width<=0||this.height<=0)throw new Error("\u5BB9\u5668\u5143\u7D20el\u7684\u5BBD\u9AD8\u4E0D\u80FD\u4E3A0")}resize(){let e=this.width,t=this.height;this.getElRectInfo(),this.svg.size(this.width,this.height),(e!==this.width||t!==this.height)&&(this.demonstrate?this.demonstrate.isInDemonstrate||this.render():this.render()),this.emit("resize")}on(e,t){this.event.on(e,t)}emit(e,...t){this.event.emit(e,...t)}off(e,t){this.event.off(e,t)}initCache(){this.commonCaches={measureCustomNodeContentSizeEl:null,measureRichtextNodeTextSizeEl:null}}initTheme(){this.themeConfig=c6(yo[this.opt.theme]||yo.default,this.opt.themeConfig),Cu.setBackgroundStyle(this.el,this.themeConfig)}setTheme(e,t=!1){this.execCommand("CLEAR_ACTIVE_NODE"),this.opt.theme=e,t||this.render(null,J.CHANGE_THEME),this.emit("view_theme_change",e)}getTheme(){return this.opt.theme}setThemeConfig(e,t=!1){let i=E9(this.themeConfig,e);if(this.opt.themeConfig=e,!t){let n=h9(i);this.render(null,n?"":J.CHANGE_THEME)}}getCustomThemeConfig(){return this.opt.themeConfig}getThemeConfig(e){return e===void 0?this.themeConfig:this.themeConfig[e]}getConfig(e){return e===void 0?this.opt:this.opt[e]}updateConfig(e={}){this.emit("before_update_config",this.opt);let t={...this.opt};this.opt=this.handleOpt(R6.default.all([B6,this.opt,e])),this.emit("after_update_config",this.opt,t)}getLayout(){return this.opt.layout}setLayout(e,t=!1){Mp.includes(e)||(e=J.LAYOUT.LOGICAL_STRUCTURE),this.opt.layout=e,this.view.reset(),this.renderer.setLayout(),t||this.render(null,J.CHANGE_LAYOUT),this.emit("layout_change",e)}execCommand(...e){this.command.exec(...e)}updateData(e){e=this.handleData(e),this.emit("before_update_data",e),this.renderer.setData(e),this.render(),this.command.addHistory(),this.emit("update_data",e)}setData(e){e=this.handleData(e),this.emit("before_set_data",e),this.opt.data=e,this.execCommand("CLEAR_ACTIVE_NODE"),this.command.clearHistory(),this.command.addHistory(),this.renderer.setData(e),this.reRender(),this.emit("set_data",e)}setFullData(e){e.root&&this.setData(e.root),e.layout&&this.setLayout(e.layout),e.theme&&(e.theme.template&&this.setTheme(e.theme.template),e.theme.config&&this.setThemeConfig(e.theme.config)),e.view&&this.view.setTransformData(e.view)}getData(e){let t=this.command.getCopyData(),i={};return e?i={layout:this.getLayout(),root:t,theme:{template:this.getTheme(),config:this.getCustomThemeConfig()},view:this.view.getTransformData()}:i=t,ln(i)}async export(...e){try{if(!this.doExport)throw new Error("\u8BF7\u6CE8\u518CExport\u63D2\u4EF6\uFF01");return await this.doExport.export(...e)}catch(t){this.opt.errorHandler(Wn.EXPORT_ERROR,t)}}toPos(e,t){return{x:e-this.elRect.left,y:t-this.elRect.top}}setMode(e){if(![J.MODE.READONLY,J.MODE.EDIT].includes(e))return;let t=e===J.MODE.READONLY;t!==this.opt.readonly&&(t&&(this.renderer.textEdit.isShowTextEdit()&&(this.renderer.textEdit.hideEditTextBox(),this.command.originAddHistory()),this.execCommand("CLEAR_ACTIVE_NODE")),this.opt.readonly=t,!t&&this.command.history.length<=0&&this.command.originAddHistory(),this.emit("mode_change",e))}getSvgData({paddingX:e=0,paddingY:t=0,ignoreWatermark:i=!1,addContentToHeader:n,addContentToFooter:s,node:a}={}){let{watermarkConfig:o,openPerformance:l}=this.opt;l&&this.renderer.forceLoadNode(a);let{cssTextList:h,header:c,headerHeight:u,footer:d,footerHeight:f}=L9({addContentToHeader:n,addContentToFooter:s}),m=this.svg,g=this.draw,v=m.width(),y=m.height(),A=g.transform(),b=this.elRect;g.scale(1/A.scaleX,1/A.scaleY);let C=g.rbox(),M=null;a&&(M=oh(a,C.x,C.y,e,t));let D=0;C.width+=e*2,C.height+=t*2+D+u+f,g.translate(e,t),m.size(C.width,C.height),g.translate(-C.x+b.left,-C.y+b.top);let L=m.clone(),k=this.watermark&&this.watermark.hasWatermark();if(!i&&k){this.watermark.isInExport=!0;let{onlyExport:_}=o;C.width>v||C.height>y?(this.width=C.width,this.height=C.height,this.watermark.onResize(),L=m.clone(),this.width=v,this.height=y,this.watermark.onResize()):_&&(this.watermark.onResize(),L=m.clone()),_&&this.watermark.clear(),this.watermark.isInExport=!1}[this.joinCss(),...h].forEach(_=>{L.add(Jt(``))}),c&&u>0&&(L.findOne(".smm-container").translate(0,u),c.width(C.width),c.y(t),L.add(c,0)),d&&f>0&&(d.width(C.width),d.y(C.height-t-f),L.add(d));let V=m.find("defs"),B=L.find("defs");return V.forEach((_,S)=>{let G=B[S];if(!G)return;let Q=_.children(),Y=G.children();for(let ne=0;nei.name===e.name)||this.extendShapeList.push(e)}removeShape(e){let t=this.extendShapeList.findIndex(i=>i.name===e);t!==-1&&this.extendShapeList.splice(t,1)}getSvgObjects(){return{SVG:Jt,G:Qt,Rect:Tr}}addPlugin(e,t){hr.hasPlugin(e)===-1&&hr.usePlugin(e,t),this.initPlugin(e)}removePlugin(e){let t=hr.hasPlugin(e);t!==-1&&(hr.pluginList.splice(t,1),this[e.instanceName]&&(this[e.instanceName].beforePluginRemove&&this[e.instanceName].beforePluginRemove(),delete this[e.instanceName]))}initPlugin(e){this[e.instanceName]||(this[e.instanceName]=new e({mindMap:this,pluginOpt:e.pluginOpt}))}destroy(){this.emit("beforeDestroy"),this.renderer.textEdit.hideEditTextBox(),this.renderer.textEdit.removeTextEditEl(),[...hr.pluginList].forEach(e=>{this[e.instanceName]&&this[e.instanceName].beforePluginDestroy&&this[e.instanceName].beforePluginDestroy(),this[e.instanceName]=null}),this.event.unbind(),this.svg.remove(),Cu.removeBackgroundStyle(this.el),this.el.classList.remove("smm-mind-map-container"),this.el.innerHTML="",this.el=null,this.removeCss(),hr.instanceCount--}},P6=[];hr.extendNodeDataNoStylePropList=(r=[])=>{P6.push(...r),H0.push(...r)};hr.resetNodeDataNoStylePropList=()=>{P6.forEach(r=>{let e=H0.findIndex(t=>t===r);e!==-1&&H0.splice(e,1)}),P6=[]};hr.pluginList=[];hr.usePlugin=(r,e={})=>(hr.hasPlugin(r)!==-1||(r.pluginOpt=e,hr.pluginList.push(r)),hr);hr.hasPlugin=r=>hr.pluginList.findIndex(e=>e===r);hr.instanceCount=0;hr.defineTheme=(r,e={})=>{if(yo[r])return new Error("\u8BE5\u4E3B\u9898\u540D\u79F0\u5DF2\u5B58\u5728");yo[r]=c6(Ef,e)};hr.removeTheme=r=>{yo[r]&&(yo[r]=null)};var wr=hr;var _6=class{constructor(e){this.mindMap=e,this.autoMoveTimer=null}onMove(e,t,i=()=>{},n=()=>{}){i();let s=this.mindMap.opt.selectTranslateStep,a=this.mindMap.opt.selectTranslateLimit,o=0;e<=this.mindMap.elRect.left+a&&(n("left",s),this.mindMap.view.translateX(s),o++),e>=this.mindMap.elRect.right-a&&(n("right",s),this.mindMap.view.translateX(-s),o++),t<=this.mindMap.elRect.top+a&&(n("top",s),this.mindMap.view.translateY(s),o++),t>=this.mindMap.elRect.bottom-a&&(n("bottom",s),this.mindMap.view.translateY(-s),o++),o>0&&this.startAutoMove(e,t,i,n)}startAutoMove(e,t,i,n){this.autoMoveTimer=setTimeout(()=>{this.onMove(e,t,i,n)},20)}clearAutoMoveTimer(){clearTimeout(this.autoMoveTimer)}},Bf=_6;var Rf=class extends wi{constructor({mindMap:e}){super(e.renderer),this.mindMap=e,this.autoMove=new Bf(e),this.reset(),this.bindEvent()}reset(){this.isDragging=!1,this.mousedownNode=null,this.beingDragNodeList=[],this.nodeList=[],this.overlapNode=null,this.prevNode=null,this.nextNode=null,this.drawTransform=null,this.clone=null,this.placeholder=null,this.placeholderWidth=50,this.placeholderHeight=10,this.placeHolderLine=null,this.placeHolderExtraLines=[],this.offsetX=0,this.offsetY=0,this.isMousedown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseMoveX=0,this.mouseMoveY=0,this.checkDragOffset=10,this.minOffset=10}bindEvent(){this.onNodeMousedown=this.onNodeMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.checkOverlapNode=Rs(this.checkOverlapNode,300,this),this.mindMap.on("node_mousedown",this.onNodeMousedown),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("node_mouseup",this.onMouseup),this.mindMap.on("mouseup",this.onMouseup)}unBindEvent(){this.mindMap.off("node_mousedown",this.onNodeMousedown),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("node_mouseup",this.onMouseup),this.mindMap.off("mouseup",this.onMouseup)}onNodeMousedown(e,t){if(this.mindMap.opt.readonly||t.which!==1||e.isGeneralization||e.isRoot)return;this.isMousedown=!0,this.mousedownNode=e;let{x:i,y:n}=this.mindMap.toPos(t.clientX,t.clientY);this.mouseDownX=i,this.mouseDownY=n}onMousemove(e){if(this.mindMap.opt.readonly||!this.isMousedown)return;e.preventDefault();let{x:t,y:i}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseMoveX=t,this.mouseMoveY=i,!(!this.isDragging&&Math.abs(t-this.mouseDownX)<=this.checkDragOffset&&Math.abs(i-this.mouseDownY)<=this.checkDragOffset)&&(this.mindMap.emit("node_dragging",this.mousedownNode),this.handleStartMove(),this.onMove(t,i,e))}async onMouseup(e){if(!this.isMousedown)return;let{autoMoveWhenMouseInEdgeOnDrag:t,enableFreeDrag:i,beforeDragEnd:n}=this.mindMap.opt;t&&this.mindMap.select&&this.autoMove.clearAutoMoveTimer(),this.isMousedown=!1,this.beingDragNodeList.forEach(l=>{l.setOpacity(1),l.showChildren(),l.endDrag()}),this.removeCloneNode();let s=this.overlapNode?this.overlapNode.getData("uid"):"",a=this.prevNode?this.prevNode.getData("uid"):"",o=this.nextNode?this.nextNode.getData("uid"):"";if(this.isDragging&&typeof n=="function"&&await n({overlapNodeUid:s,prevNodeUid:a,nextNodeUid:o,beingDragNodeList:[...this.beingDragNodeList]})){this.reset();return}if(this.overlapNode)this.removeNodeActive(this.overlapNode),this.mindMap.execCommand("MOVE_NODE_TO",this.beingDragNodeList,this.overlapNode);else if(this.prevNode)this.removeNodeActive(this.prevNode),this.mindMap.execCommand("INSERT_AFTER",this.beingDragNodeList,this.prevNode);else if(this.nextNode)this.removeNodeActive(this.nextNode),this.mindMap.execCommand("INSERT_BEFORE",this.beingDragNodeList,this.nextNode);else if(this.clone&&i&&this.beingDragNodeList.length===1){let{x:l,y:h}=this.mindMap.toPos(e.clientX-this.offsetX,e.clientY-this.offsetY),{scaleX:c,scaleY:u,translateX:d,translateY:f}=this.drawTransform;l=(l-d)/c,h=(h-f)/u,this.mousedownNode.left=l,this.mousedownNode.top=h,this.mousedownNode.customLeft=l,this.mousedownNode.customTop=h,this.mindMap.execCommand("SET_NODE_CUSTOM_POSITION",this.mousedownNode,l,h),this.mindMap.render()}this.isDragging&&this.mindMap.emit("node_dragend",{overlapNodeUid:s,prevNodeUid:a,nextNodeUid:o}),this.reset()}removeNodeActive(e){e.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",e,!1)}onMove(e,t,i){if(!this.isMousedown||!this.isDragging)return;let{scaleX:n,scaleY:s,translateX:a,translateY:o}=this.drawTransform,l=e-this.offsetX,h=t-this.offsetY;e=(l-a)/n,t=(h-o)/s;let c=this.clone.transform();this.clone.translate(e-c.translateX,t-c.translateY),this.checkOverlapNode(),this.drawTransform=this.mindMap.draw.transform(),this.autoMove.clearAutoMoveTimer(),this.autoMove.onMove(i.clientX,i.clientY)}async handleStartMove(){if(!this.isDragging){let e=this.mousedownNode;this.drawTransform=this.mindMap.draw.transform();let{scaleX:t,scaleY:i,translateX:n,translateY:s}=this.drawTransform;this.offsetX=this.mouseDownX-(e.left*t+n),this.offsetY=this.mouseDownY-(e.top*i+s),e.getData("isActive")?this.beingDragNodeList=Eu(Ol(this.mindMap.renderer.activeNodeList.filter(o=>!o.isRoot&&!o.isGeneralization))):this.beingDragNodeList=[e];let{beforeDragStart:a}=this.mindMap.opt;if(typeof a=="function"&&await a([...this.beingDragNodeList]))return;this.nodeTreeToList(),this.createCloneNode(),this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.isDragging=!0}}nodeTreeToList(){let e=[];on(this.mindMap.renderer.root,t=>{this.checkIsInBeingDragNodeList(t)||(e[t.layerIndex]||(e[t.layerIndex]=[]),e[t.layerIndex].push(t))}),this.nodeList=e.reduceRight((t,i)=>[...t,...i],[])}createCloneNode(){if(!this.clone){let{dragMultiNodeRectConfig:e,dragPlaceholderRectFill:t,dragPlaceholderLineConfig:i,dragOpacityConfig:n,handleDragCloneNode:s}=this.mindMap.opt,{width:a,height:o,fill:l}=e,h=this.beingDragNodeList[0],c=h.style.merge("lineColor",!0);if(this.beingDragNodeList.length>1)this.clone=this.mindMap.otherDraw.rect().size(a,o).radius(o/2).fill({color:l||c}),this.offsetX=a/2,this.offsetY=o/2;else{this.clone=h.group.clone();let u=this.clone.findOne(".smm-expand-btn");u&&u.remove(),this.mindMap.otherDraw.add(this.clone),typeof s=="function"&&s(this.clone)}this.clone.opacity(n.cloneNodeOpacity),this.clone.css("z-index",99999),this.placeholder=this.mindMap.otherDraw.rect().fill({color:t||c}).radius(5),this.placeHolderLine=this.mindMap.otherDraw.path().stroke({color:i.color||c,width:i.width}).fill({color:"none"}),this.beingDragNodeList.forEach(u=>{u.setOpacity(n.beingDragNodeOpacity),u.hideChildren(),u.startDrag()})}}removeCloneNode(){this.clone&&(this.clone.remove(),this.placeholder.remove(),this.placeHolderLine.remove(),this.removeExtraLines())}removeExtraLines(){this.placeHolderExtraLines.forEach(e=>{e.remove()}),this.placeHolderExtraLines=[]}checkOverlapNode(){if(!this.drawTransform||!this.placeholder)return;let{LOGICAL_STRUCTURE:e,LOGICAL_STRUCTURE_LEFT:t,MIND_MAP:i,ORGANIZATION_STRUCTURE:n,CATALOG_ORGANIZATION:s,TIMELINE:a,TIMELINE2:o,VERTICAL_TIMELINE:l,VERTICAL_TIMELINE2:h,VERTICAL_TIMELINE3:c,FISHBONE:u,FISHBONE2:d,RIGHT_FISHBONE:f,RIGHT_FISHBONE2:m}=J.LAYOUT;this.overlapNode=null,this.prevNode=null,this.nextNode=null,this.placeholder.size(0,0),this.placeHolderLine.hide(),this.removeExtraLines(),this.nodeList.forEach(g=>{if(g.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",g,!1),!(this.overlapNode||this.prevNode&&this.nextNode))switch(this.mindMap.opt.layout){case e:case t:this.handleLogicalStructure(g);break;case i:this.handleMindMap(g);break;case n:this.handleOrganizationStructure(g);break;case s:this.handleCatalogOrganization(g);break;case a:this.handleTimeLine(g);break;case o:this.handleTimeLine2(g);break;case l:case h:case c:this.handleLogicalStructure(g);break;case u:case d:case f:case m:this.handleFishbone(g);break;default:this.handleLogicalStructure(g)}}),this.overlapNode&&this.handleOverlapNode()}handleOverlapNode(){let{LOGICAL_STRUCTURE:e,LOGICAL_STRUCTURE_LEFT:t,MIND_MAP:i,ORGANIZATION_STRUCTURE:n,CATALOG_ORGANIZATION:s,TIMELINE:a,TIMELINE2:o,VERTICAL_TIMELINE:l,VERTICAL_TIMELINE2:h,VERTICAL_TIMELINE3:c,FISHBONE:u,FISHBONE2:d,RIGHT_FISHBONE:f,RIGHT_FISHBONE2:m}=J.LAYOUT,{LEFT:g,TOP:v,RIGHT:y,BOTTOM:A}=J.LAYOUT_GROW_DIR,b=this.overlapNode.layerIndex,C=this.overlapNode.children,M=this.mindMap.renderer.layout.getMarginX(b+1),D=this.mindMap.renderer.layout.getMarginY(b+1),L=this.placeholderWidth/2,k=this.placeholderHeight/2,V="",B="",_="",S=!1,G=!1;if(C.length>0){let Q=C[C.length-1],Y=this.getNodeRect(Q);switch(V=this.getNewChildNodeDir(Q),this.mindMap.opt.layout){case e:case i:B=V===g?Y.originRight-this.placeholderWidth:Y.originLeft,_=Y.originBottom+this.minOffset-k;break;case t:B=Y.originRight-this.placeholderWidth,_=Y.originBottom+this.minOffset-k;break;case n:S=!0,B=Y.originRight+this.minOffset-k,_=Y.originTop;break;case s:b===0?(S=!0,B=Y.originRight+this.minOffset-k,_=Y.originTop):(B=Y.originLeft,_=Y.originBottom+this.minOffset-k);break;case a:b===0?(S=!0,B=Y.originRight+this.minOffset-k,_=Y.originTop+Y.originHeight/2-L):(B=Y.originLeft,_=Y.originBottom+this.minOffset-k);break;case o:b===0?(S=!0,B=Y.originRight+this.minOffset-k,_=Y.originTop+Y.originHeight/2-L):(B=Y.originLeft,b===1?_=V===v?Y.originTop-this.placeholderHeight-this.minOffset+k:Y.originBottom+this.minOffset-k:_=Y.originBottom+this.minOffset-k);break;case l:case h:case c:b===0?(B=Y.originLeft+Y.originWidth/2-L,_=Y.originBottom+this.minOffset-k):(B=V===y?Y.originLeft:Y.originRight-this.placeholderWidth,_=Y.originBottom+this.minOffset-k);break;case u:case d:case f:case m:b<=1?(G=!0,this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)):(B=Y.originLeft,_=V===v?Y.originBottom+this.minOffset-k:Y.originTop-this.placeholderHeight-this.minOffset+k);break;default:}}else{let Q=this.getNodeRect(this.overlapNode);switch(V=this.getNewChildNodeDir(this.overlapNode),this.mindMap.opt.layout){case e:case i:B=V===y?Q.originRight+M:Q.originLeft-this.placeholderWidth-M,_=Q.originTop+(Q.originHeight-this.placeholderHeight)/2;break;case t:B=Q.originLeft-this.placeholderWidth-M,_=Q.originTop+(Q.originHeight-this.placeholderHeight)/2;break;case n:S=!0,B=Q.originLeft+(Q.originWidth-this.placeholderHeight)/2,_=Q.originBottom+M;break;case s:b===0&&(S=!0),B=Q.originLeft+Q.originWidth*.5,_=Q.originBottom+M;break;case a:b===0&&(S=!0),B=Q.originLeft+Q.originWidth*.5,_=Q.originBottom+D;break;case o:b===0&&(S=!0),B=Q.originLeft+Q.originWidth*.5,b===1?_=V===v?Q.originTop-this.placeholderHeight-M:Q.originBottom+M:_=Q.originBottom+M;break;case l:case h:case c:b===0&&(S=!0),B=V===y?Q.originRight+M:Q.originLeft-this.placeholderWidth-M,_=Q.originTop+Q.originHeight/2-k;break;case u:case d:case f:case m:b<=1?(G=!0,this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)):(B=Q.originLeft+Q.originWidth*.5,_=V===A?Q.originTop-this.placeholderHeight-this.minOffset+k:Q.originBottom+this.minOffset-k);break;default:}}G||this.setPlaceholderRect({x:B,y:_,dir:V,rotate:S})}getNewChildNodeDir(e){let{LOGICAL_STRUCTURE:t,LOGICAL_STRUCTURE_LEFT:i,MIND_MAP:n,TIMELINE2:s,VERTICAL_TIMELINE:a,VERTICAL_TIMELINE2:o,VERTICAL_TIMELINE3:l,FISHBONE:h,FISHBONE2:c,RIGHT_FISHBONE:u,RIGHT_FISHBONE2:d}=J.LAYOUT;switch(this.mindMap.opt.layout){case t:return J.LAYOUT_GROW_DIR.RIGHT;case i:return J.LAYOUT_GROW_DIR.LEFT;case n:case s:case a:case o:case l:case h:case c:case u:case d:return e.dir;default:return""}}handleVerticalCheck(e,t,i=!1){let{layout:n}=this.mindMap.opt,{LAYOUT:s,LAYOUT_GROW_DIR:a}=J,{VERTICAL_TIMELINE:o,VERTICAL_TIMELINE2:l,VERTICAL_TIMELINE3:h,FISHBONE:c,FISHBONE2:u,RIGHT_FISHBONE:d,RIGHT_FISHBONE2:f}=s,{LEFT:m}=a,g=this.mouseMoveX,v=this.mouseMoveY,y=this.getNodeRect(e),A=this.getNewChildNodeDir(e),b=e.layerIndex;i&&(t=t.reverse());let C=y.originHeight/4,{prevBrotherOffset:M,nextBrotherOffset:D}=this.getNodeDistanceToSiblingNode(t,e,y,"v");if(y.left<=g&&y.right>=g){if(!this.overlapNode&&!this.prevNode&&!this.nextNode&&!e.isRoot){let L=D>0?v>y.bottom&&v<=y.bottom+D:v>=y.bottom-C&&v<=y.bottom,k=M>0?v=y.top-M:v>=y.top&&v<=y.top+C,{scaleY:V}=this.drawTransform,B=A===m?y.originRight-this.placeholderWidth:y.originLeft,_=!1;switch(n){case o:case l:case h:b===1&&(B=y.originLeft+y.originWidth/2-this.placeholderWidth/2);break;case d:case f:B=y.originLeft+y.originWidth-this.placeholderWidth;break;default:}if(L){i?this.nextNode=e:this.prevNode=e;let S=y.originBottom+D/V-this.placeholderHeight/2;switch(n){case c:case u:case d:case f:b===2&&(_=!0,S=y.originBottom+this.minOffset-this.placeholderHeight/2);break;default:}this.setPlaceholderRect({x:B,y:S,dir:A,notRenderLine:_})}else if(k){i?this.prevNode=e:this.nextNode=e;let S=y.originTop-this.placeholderHeight-M/V+this.placeholderHeight/2;switch(n){case c:case u:case d:case f:b===2&&(_=!0,S=y.originTop-this.placeholderHeight-this.minOffset+this.placeholderHeight/2);break;default:}this.setPlaceholderRect({x:B,y:S,dir:A,notRenderLine:_})}}this.checkIsOverlap({node:e,dir:"v",prevBrotherOffset:M,nextBrotherOffset:D,size:C,pos:v,nodeRect:y})}}handleHorizontalCheck(e,t){let{layout:i}=this.mindMap.opt,{LAYOUT:n}=J,{FISHBONE:s,FISHBONE2:a,RIGHT_FISHBONE:o,RIGHT_FISHBONE2:l,TIMELINE:h,TIMELINE2:c}=n,u=this.mouseMoveX,d=this.mouseMoveY,f=this.getNodeRect(e),m=f.originWidth/4,{prevBrotherOffset:g,nextBrotherOffset:v}=this.getNodeDistanceToSiblingNode(t,e,f,"h");if(f.top<=d&&f.bottom>=d){if(!this.overlapNode&&!this.prevNode&&!this.nextNode&&!e.isRoot){let y=v>0?u=f.right:u<=f.right&&u>=f.right-m,A=g>0?u>f.left-g&&u<=f.left:u<=f.left+m&&u>=f.left,{scaleX:b}=this.drawTransform,C=e.layerIndex,M=f.originTop,D=!1;switch(i){case h:case c:M=f.originTop+f.originHeight/2-this.placeholderWidth/2;break;case s:case a:case o:case l:C===1&&(D=!0,M=f.originTop+f.originHeight/2-this.placeholderWidth/2);break;default:}y?([o,l].includes(i)?this.nextNode=e:this.prevNode=e,this.setPlaceholderRect({x:f.originRight+v/b-this.placeholderHeight/2,y:M,rotate:!0,notRenderLine:D})):A&&([o,l].includes(i)?this.prevNode=e:this.nextNode=e,this.setPlaceholderRect({x:f.originLeft-this.placeholderHeight-g/b+this.placeholderHeight/2,y:M,rotate:!0,notRenderLine:D}))}this.checkIsOverlap({node:e,dir:"h",prevBrotherOffset:g,nextBrotherOffset:v,size:m,pos:u,nodeRect:f})}}getNodeDistanceToSiblingNode(e,t,i,n){let{TOP:s,LEFT:a,BOTTOM:o,RIGHT:l}=J.LAYOUT_GROW_DIR,{scaleX:h,scaleY:c}=this.drawTransform,u=n==="v"?s:a,d=n==="v"?o:l,f=n==="v"?c:h,m=this.minOffset*f,g=nr(t,e),v=null,y=null;g!==-1&&(g-1>=0&&(v=e[g-1]),g+1<=e.length-1&&(y=e[g+1]));let A=0;if(v){let C=this.getNodeRect(v);A=i[u]-C[d],A=A>=m?A/2:0}else A=m;let b=0;return y?(b=this.getNodeRect(y)[u]-i[d],b=b>=m?b/2:0):b=m,{prevBrother:v,prevBrotherOffset:A,nextBrother:y,nextBrotherOffset:b}}setPlaceholderRect({x:e,y:t,dir:i,rotate:n,notRenderLine:s}){let a=this.placeholderWidth,o=this.placeholderHeight;if(n){let d=a;a=o,o=d}if(this.placeholder.size(a,o).move(e,t),s)return;let{dragPlaceholderLineConfig:l}=this.mindMap.opt,h=null,c=null;this.overlapNode?(h=this.overlapNode,c=this.overlapNode):(h=this.prevNode||this.nextNode,c=h.parent),c=c.fakeClone(),h=h.fakeClone();let u=this.beingDragNodeList[0].fakeClone();u.dir=i,u.left=e,u.top=t,u.width=a,u.height=o,c.children=[u],c._lines=[],this.placeHolderLine.show(),this.mindMap.renderer.layout.renderLine(c,[this.placeHolderLine],(...d)=>{},h.style.getStyle("lineStyle",!0)),this.placeHolderExtraLines=[...c._lines],this.placeHolderExtraLines.forEach(d=>{this.mindMap.otherDraw.add(d),d.stroke({color:l.color,width:l.width}).fill({color:"none"})})}checkIsOverlap({node:e,dir:t,prevBrotherOffset:i,nextBrotherOffset:n,size:s,pos:a,nodeRect:o}){let{TOP:l,LEFT:h,BOTTOM:c,RIGHT:u}=J.LAYOUT_GROW_DIR,d=t==="v"?l:h,f=t==="v"?c:u;!this.overlapNode&&!this.prevNode&&!this.nextNode&&o[d]+(i>0?0:s)<=a&&o[f]-(n>0?0:s)>=a&&(this.overlapNode=e)}handleLogicalStructure(e){let t=this.commonGetNodeCheckList(e);this.handleVerticalCheck(e,t)}handleMindMap(e){let t=e.parent?e.parent.children.filter(i=>{let n=!0;return e.layerIndex===1&&(n=i.dir===e.dir),n&&!this.checkIsInBeingDragNodeList(i)}):[];this.handleVerticalCheck(e,t)}handleOrganizationStructure(e){let t=this.commonGetNodeCheckList(e);this.handleHorizontalCheck(e,t)}handleCatalogOrganization(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):this.handleVerticalCheck(e,t)}handleTimeLine(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):this.handleVerticalCheck(e,t)}handleTimeLine2(e){let t=this.commonGetNodeCheckList(e);e.layerIndex===1?this.handleHorizontalCheck(e,t):e.dir===J.LAYOUT_GROW_DIR.TOP&&e.layerIndex===2?this.handleVerticalCheck(e,t,!0):this.handleVerticalCheck(e,t)}handleFishbone(e){let t=e.parent?e.parent.children.filter(i=>i.layerIndex>1&&!this.checkIsInBeingDragNodeList(i)):[];if(e.layerIndex===1)this.handleHorizontalCheck(e,t);else{let i=e.dir===J.LAYOUT_GROW_DIR.TOP&&e.layerIndex===2,n=e.dir===J.LAYOUT_GROW_DIR.BOTTOM&&e.layerIndex>=3;i||n?this.handleVerticalCheck(e,t,!0):this.handleVerticalCheck(e,t)}}commonGetNodeCheckList(e){return e.parent?[...e.parent.children].filter(t=>!this.checkIsInBeingDragNodeList(t)):[]}getNodeRect(e){let{scaleX:t,scaleY:i,translateX:n,translateY:s}=this.drawTransform,{left:a,top:o,width:l,height:h}=e,c=l,u=h,d=a,f=o,m=o+h,g=a+l,v=(a+l)*t+n,y=(o+h)*i+s;return a=a*t+n,o=o*i+s,{left:a,top:o,right:v,bottom:y,originWidth:c,originHeight:u,originLeft:d,originTop:f,originBottom:m,originRight:g}}checkIsInBeingDragNodeList(e){return!!this.beingDragNodeList.find(t=>t.uid===e.uid||t.isAncestor(e))}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};Rf.instanceName="drag";var $9=Rf;var Pf=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.addShortcut()}addShortcut(){this.onLeftKeyUp=this.onLeftKeyUp.bind(this),this.onUpKeyUp=this.onUpKeyUp.bind(this),this.onRightKeyUp=this.onRightKeyUp.bind(this),this.onDownKeyUp=this.onDownKeyUp.bind(this),this.mindMap.keyCommand.addShortcut(J.KEY_DIR.LEFT,this.onLeftKeyUp),this.mindMap.keyCommand.addShortcut(J.KEY_DIR.UP,this.onUpKeyUp),this.mindMap.keyCommand.addShortcut(J.KEY_DIR.RIGHT,this.onRightKeyUp),this.mindMap.keyCommand.addShortcut(J.KEY_DIR.DOWN,this.onDownKeyUp)}removeShortcut(){this.mindMap.keyCommand.removeShortcut(J.KEY_DIR.LEFT,this.onLeftKeyUp),this.mindMap.keyCommand.removeShortcut(J.KEY_DIR.UP,this.onUpKeyUp),this.mindMap.keyCommand.removeShortcut(J.KEY_DIR.RIGHT,this.onRightKeyUp),this.mindMap.keyCommand.removeShortcut(J.KEY_DIR.DOWN,this.onDownKeyUp)}onLeftKeyUp(){this.onKeyup(J.KEY_DIR.LEFT)}onUpKeyUp(){this.onKeyup(J.KEY_DIR.UP)}onRightKeyUp(){this.onKeyup(J.KEY_DIR.RIGHT)}onDownKeyUp(){this.onKeyup(J.KEY_DIR.DOWN)}onKeyup(e){if(this.mindMap.renderer.activeNodeList.length>0)this.focus(e);else{let t=this.mindMap.renderer.root;this.mindMap.execCommand("GO_TARGET_NODE",t)}}focus(e){let t=this.mindMap.renderer.activeNodeList[0],i=this.getNodeRect(t),n=null,s=1/0,a=(o,l)=>{let h=this.getDistance(i,o);h{if(s.uid===e.uid)return;let a=this.getNodeRect(s),{left:o,top:l,right:h,bottom:c}=a,u=!1;i===J.KEY_DIR.LEFT?u=h<=t.left:i===J.KEY_DIR.RIGHT?u=o>=t.right:i===J.KEY_DIR.UP?u=c<=t.top:i===J.KEY_DIR.DOWN&&(u=l>=t.bottom),u&&n(a,s)})}getFocusNodeByShadowAlgorithm({currentActiveNode:e,currentActiveNodeRect:t,dir:i,checkNodeDis:n}){on(this.mindMap.renderer.root,s=>{if(s.uid===e.uid)return;let a=this.getNodeRect(s),{left:o,top:l,right:h,bottom:c}=a,u=!1;i===J.KEY_DIR.LEFT?u=ot.top:i===J.KEY_DIR.RIGHT?u=h>t.right&&lt.top:i===J.KEY_DIR.UP?u=lt.left:i===J.KEY_DIR.DOWN&&(u=c>t.bottom&&ot.left),u&&n(a,s)})}getFocusNodeByAreaAlgorithm({currentActiveNode:e,currentActiveNodeRect:t,dir:i,checkNodeDis:n}){let s=(t.right+t.left)/2,a=(t.bottom+t.top)/2;on(this.mindMap.renderer.root,o=>{if(o.uid===e.uid)return;let l=this.getNodeRect(o),{left:h,top:c,right:u,bottom:d}=l,f=(u+h)/2,m=(d+c)/2,g=f-s,v=m-a;if(g===0&&v===0)return;let y=!1;i===J.KEY_DIR.LEFT?y=g<=0&&g<=v&&g<=-v:i===J.KEY_DIR.RIGHT?y=g>0&&g>=-v&&g>=v:i===J.KEY_DIR.UP?y=v<=0&&v0&&-vg),y&&n(l,o)})}getNodeRect(e){let{scaleX:t,scaleY:i,translateX:n,translateY:s}=this.mindMap.draw.transform(),{left:a,top:o,width:l,height:h}=e;return{right:(a+l)*t+n,bottom:(o+h)*i+s,left:a*t+n,top:o*i+s}}getDistance(e,t){let i=this.getCenter(e),n=this.getCenter(t);return Math.sqrt(Math.pow(i.x-n.x,2)+Math.pow(i.y-n.y,2))}getCenter({left:e,right:t,top:i,bottom:n}){return{x:(e+t)/2,y:(i+n)/2}}beforePluginRemove(){this.removeShortcut()}beforePluginDestroy(){this.removeShortcut()}};Pf.instanceName="keyboardNavigation";var ey=Pf;var _f=class{constructor({mindMap:e}){this.mindMap=e,this.rect=null,this.isMousedown=!1,this.mouseDownX=0,this.mouseDownY=0,this.mouseMoveX=0,this.mouseMoveY=0,this.isSelecting=!1,this.cacheActiveList=[],this.autoMove=new Bf(e),this.bindEvent()}bindEvent(){this.onMousedown=this.onMousedown.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.checkInNodes=Rs(this.checkInNodes,300,this),this.mindMap.on("mousedown",this.onMousedown),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("mouseup",this.onMouseup),this.mindMap.on("node_mouseup",this.onMouseup)}unBindEvent(){this.mindMap.off("mousedown",this.onMousedown),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("mouseup",this.onMouseup),this.mindMap.off("node_mouseup",this.onMouseup)}onMousedown(e){let{readonly:t,mousedownEventPreventDefault:i}=this.mindMap.opt;if(t)return;let{useLeftKeySelectionRightKeyDrag:n}=this.mindMap.opt;if(!(e.ctrlKey||e.metaKey)&&(n?e.which!==1:e.which!==3))return;i&&e.preventDefault(),this.isMousedown=!0,this.cacheActiveList=[...this.mindMap.renderer.activeNodeList];let{x:s,y:a}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseDownX=s,this.mouseDownY=a,this.createRect(s,a)}onMousemove(e){if(this.mindMap.opt.readonly||!this.isMousedown)return;let{x:t,y:i}=this.mindMap.toPos(e.clientX,e.clientY);this.mouseMoveX=t,this.mouseMoveY=i,!(Math.abs(t-this.mouseDownX)<=10&&Math.abs(i-this.mouseDownY)<=10)&&(this.autoMove.clearAutoMoveTimer(),this.autoMove.onMove(e.clientX,e.clientY,()=>{this.isSelecting=!0,this.rect&&this.rect.plot([[this.mouseDownX,this.mouseDownY],[this.mouseMoveX,this.mouseDownY],[this.mouseMoveX,this.mouseMoveY],[this.mouseDownX,this.mouseMoveY]]),this.checkInNodes()},(n,s)=>{switch(n){case"left":this.mouseDownX+=s;break;case"top":this.mouseDownY+=s;break;case"right":this.mouseDownX-=s;break;case"bottom":this.mouseDownY-=s;break;default:break}}))}onMouseup(){this.mindMap.opt.readonly||this.isMousedown&&(this.checkTriggerNodeActiveEvent(),this.autoMove.clearAutoMoveTimer(),this.isMousedown=!1,this.cacheActiveList=[],this.rect&&this.rect.remove(),this.rect=null,setTimeout(()=>{this.isSelecting=!1},0))}checkTriggerNodeActiveEvent(){let e=this.cacheActiveList.length!==this.mindMap.renderer.activeNodeList.length,t=!1;if(!e)for(let i=0;is.getData("uid")===n.getData("uid"))){t=!0;break}}(e||t)&&this.mindMap.renderer.emitNodeActiveEvent()}createRect(e,t){this.rect&&this.rect.remove(),this.rect=this.mindMap.svg.polygon().stroke({color:"#0984e3"}).fill({color:"rgba(9,132,227,0.3)"}).plot([[e,t]])}checkInNodes(){let{scaleX:e,scaleY:t,translateX:i,translateY:n}=this.mindMap.draw.transform(),s=Math.min(this.mouseDownX,this.mouseMoveX),a=Math.min(this.mouseDownY,this.mouseMoveY),o=Math.max(this.mouseDownX,this.mouseMoveX),l=Math.max(this.mouseDownY,this.mouseMoveY),h=c=>{let{left:u,top:d,width:f,height:m}=c,g=(u+f)*e+i,v=(d+m)*t+n;if(u=u*e+i,d=d*t+n,M9(s,o,a,l,u,g,d,v)){if(c.getData("isActive"))return;this.mindMap.renderer.addNodeToActiveList(c),this.mindMap.renderer.emitNodeActiveEvent()}else if(c.getData("isActive")){if(!c.getData("isActive"))return;this.mindMap.renderer.removeNodeFromActiveList(c),this.mindMap.renderer.emitNodeActiveEvent()}};on(this.mindMap.renderer.root,c=>{h(c),c._generalizationList&&c._generalizationList.length>0&&c._generalizationList.forEach(u=>{h(u.generalizationNode)})})}hasSelectRange(){return this.isSelecting}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};_f.instanceName="select";var ty=_f;var Fu=(r,e)=>r.getData("associativeLineTargets").findIndex(t=>t===e.getData("uid")),Iu=(r,e,t,i)=>{let s=r+(t-r)/2,a=e,o=s,l=i;return Math.abs(r-t)<=5&&(s=r+(i-e)/2,o=s),Math.abs(e-i)<=5&&(s=r,a=e-(t-r)/2,o=t,l=a),[{x:s,y:a},{x:o,y:l}]},qf=(r,e,t,i)=>`M ${r.x},${r.y} C ${t.x},${t.y} ${i.x},${i.y} ${e.x},${e.y}`,ry=r=>{let{left:e,top:t,width:i,height:n}=r;return{right:e+i,bottom:t+n,left:e,top:t,width:i,height:n}},iy=(r,e,t,i)=>{let n=Iu(r,e,t,i);return qf({x:r,y:e},{x:t,y:i},n[0],n[1])},B_=(r,e)=>{let{left:t,top:i,translateLeft:n,translateTop:s,width:a,height:o}=r,l=e.clientX,h=e.clientY,c=n+a/2,u=s+o/2,d=t+a/2,f=i+o/2,m=Math.atan(o/a),g=l-c,v=u-h,y=Math.atan2(v,g),A=t+a,b=i+o;if(y=-m){let D=y*(a/2);return(y=0||y>=-m&&y<0)&&(b=f-D),{x:A,y:b,dir:"right",range:D}}else if(y>=m&&y=m){let L=o/2/y;D=-L,A=d+L}else if(y>=Math.PI/2-m&&y=m-Math.PI){let D=0;if(y>=m-Math.PI/2&&y<-m){let L=o/2/y;D=L,A=d-L}else if(y=m-Math.PI){let L=(c-l)/(u-h),k=o/2*L;D=-k,A=d+k}return{x:A,y:b,dir:"bottom",range:D}}A=t;let M=(u-h)/(c-l)*(a/2);return(y>=-Math.PI&&y=Math.PI-m)&&(b=f-M),{x:A,y:b,dir:"left",range:M}},Sa=(r,e="right",t=0,i=null)=>{let{left:n,top:s,width:a,height:o}=r;if(i)return B_(r,i);switch(e){case"left":return{x:n,y:s+o/2-t,dir:e};case"right":return{x:n+a,y:s+o/2-t,dir:e};case"top":return{x:n+a/2-t,y:s,dir:e};case"bottom":return{x:n+a/2-t,y:s+o,dir:e};default:break}},q6=(r,e)=>{let t=ry(r),i=ry(e),n="",s="";switch(z9({x:t.left,y:t.top,width:t.width,height:t.height},{x:i.left,y:i.top,width:i.width,height:i.height})){case"left-top":n="right",s="top";break;case"right-top":n="left",s="top";break;case"right-bottom":n="left",s="bottom";break;case"left-bottom":n="right",s="bottom";break;case"left":n="right",s="left";break;case"right":n="left",s="right";break;case"top":n="right",s="right";break;case"bottom":n="left",s="left";break;case"overlap":n="right",s="right";break;default:break}return[Sa(r,n),Sa(e,s)]},ny=(r,e,t,i)=>{let n=Fu(t,i),s=[],a=t.getData("associativeLineTargetControlOffsets");if(a&&a[n]){let o=a[n];s=[{x:r.x+o[0].x,y:r.y+o[0].y},{x:e.x+o[1].x,y:e.y+o[1].y}]}else s=Iu(r.x,r.y,e.x,e.y);return{path:qf(r,e,s[0],s[1]),controlPoints:s}},U6=(r,e)=>{let t=Iu(r.x,r.y,e.x,e.y);return[{x:t[0].x-r.x,y:t[0].y-r.y},{x:t[1].x-e.x,y:t[1].y-e.y}]};function R_(r,e){let{associativeLineActiveColor:t}=this.getStyleConfig(r,e);this.controlLine1=this.associativeLineDraw.line().stroke({color:t,width:2}),this.controlLine2=this.associativeLineDraw.line().stroke({color:t,width:2}),this.controlPoint1=this.createOneControlNode("controlPoint1",r,e),this.controlPoint2=this.createOneControlNode("controlPoint2",r,e)}function P_(r,e,t){let{associativeLineActiveColor:i}=this.getStyleConfig(e,t);return this.associativeLineDraw.circle(this.controlPointDiameter).stroke({color:i}).fill({color:"#fff"}).click(n=>{n.stopPropagation()}).mousedown(n=>{this.onControlPointMousedown(n,r)})}function __(r,e){r.stopPropagation(),r.preventDefault(),this.isControlPointMousedown=!0,this.mousedownControlPointKey=e}function q_(r){if(!this.isControlPointMousedown||!this.mousedownControlPointKey||!this[this.mousedownControlPointKey])return;r.stopPropagation(),r.preventDefault();let e=this.controlPointDiameter/2,{x:t,y:i}=this.getTransformedEventPos(r);this.controlPointMousemoveState.pos={x:t,y:i},this[this.mousedownControlPointKey].x(t-e).y(i-e);let[,,,n,s]=this.activeLine,a=Fu(n,s),{associativeLinePoint:o,associativeLineTargetControlOffsets:l}=n.getData();o=o||[];let h=this.getNodePos(n),c=this.getNodePos(s),[u,d]=this.updateAllLinesPos(n,s,o[a]);this.controlPointMousemoveState.startPoint=u,this.controlPointMousemoveState.endPoint=d,this.controlPointMousemoveState.targetIndex=a;let f=[];l?f=l[a]:f=U6(u,d);let m=null,g=null,{x:v,y}=this.mindMap.toPos(r.clientX,r.clientY),A={clientX:v,clientY:y};this.mousedownControlPointKey==="controlPoint1"?(u=Sa(h,"",0,A),m={x:t,y:i},g={x:d.x+f[1].x,y:d.y+f[1].y},u&&(this.controlPointMousemoveState.startPoint=u,this.controlLine1.plot(u.x,u.y,m.x,m.y))):(d=Sa(c,"",0,A),m={x:u.x+f[0].x,y:u.y+f[0].y},g={x:t,y:i},d&&(this.controlPointMousemoveState.endPoint=d,this.controlLine2.plot(d.x,d.y,g.x,g.y))),this.updataAassociativeLine(u,d,m,g,this.activeLine)}function U_(r,e,t,i,n){let[s,a,o]=n,l=qf(r,e,t,i);s.plot(l),a.plot(l),this.updateTextPos(s,o),this.updateTextEditBoxPos(o)}function H_(r){if(!this.isControlPointMousedown)return;r.stopPropagation(),r.preventDefault();let{pos:e,startPoint:t,endPoint:i,targetIndex:n}=this.controlPointMousemoveState,[,,,s]=this.activeLine,a=[],{associativeLinePoint:o,associativeLineTargetControlOffsets:l}=s.getData();o||(o=[]),o[n]=o[n]||{startPoint:t,endPoint:i},l?a=l:a[n]=U6(t,i);let h=null,c=null;this.mousedownControlPointKey==="controlPoint1"?(h={x:e.x-t.x,y:e.y-t.y},c=a[n][1],o[n].startPoint=t):(h=a[n][0],c={x:e.x-i.x,y:e.y-i.y},o[n].endPoint=i),a[n]=[h,c],this.mindMap.execCommand("SET_NODE_DATA",s,{associativeLineTargetControlOffsets:a,associativeLinePoint:o}),this.isNotRenderAllLines=!0,setTimeout(()=>{this.resetControlPoint()},0)}function j_(){this.isControlPointMousedown=!1,this.mousedownControlPointKey="",this.controlPointMousemoveState={pos:null,startPoint:null,endPoint:null,targetIndex:""}}function G_(r,e,t,i,n,s){if(!this.mindMap.opt.enableAdjustAssociativeLinePoints)return;this.controlLine1||this.createControlNodes(n,s);let a=this.controlPointDiameter/2;this.controlLine1.plot(r.x,r.y,t.x,t.y),this.controlLine2.plot(e.x,e.y,i.x,i.y),this.controlPoint1.x(t.x-a).y(t.y-a),this.controlPoint2.x(i.x-a).y(i.y-a)}function W_(){this.controlLine1&&([this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(r=>{r.remove()}),this.controlLine1=null,this.controlLine2=null,this.controlPoint1=null,this.controlPoint2=null)}function Y_(){this.controlLine1&&[this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(r=>{r.hide()})}function V_(){this.controlLine1&&[this.controlLine1,this.controlLine2,this.controlPoint1,this.controlPoint2].forEach(r=>{r.show()})}var H6={createControlNodes:R_,createOneControlNode:P_,onControlPointMousedown:__,onControlPointMousemove:q_,onControlPointMouseup:H_,resetControlPoint:j_,renderControls:G_,removeControls:W_,hideControls:Y_,showControls:V_,updataAassociativeLine:U_};var K_="associative-line-text-edit-warp";function Q_(r){let e=this.associativeLineDraw.group(),t=()=>{(!this.activeLine||this.activeLine[3]!==r.node||this.activeLine[4]!==r.toNode)&&this.setActiveLine({...r,text:e})};return e.click(i=>{i.stopPropagation(),t()}),e.on("dblclick",i=>{i.stopPropagation(),t(),this.activeLine&&this.showEditTextBox(e)}),e}function X_(r){this.mindMap.emit("before_show_text_edit"),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.className=K_,this.textEditNode.style.cssText="position:fixed;box-sizing: border-box;background-color:#fff;box-shadow: 0 0 20px rgba(0,0,0,.5);padding: 3px 5px;margin-left: -5px;margin-top: -3px;outline: none; word-break: break-all;",this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",d=>{d.stopPropagation()}),this.textEditNode.addEventListener("click",d=>{d.stopPropagation()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let[,,,e,t]=this.activeLine,{associativeLineTextFontSize:i,associativeLineTextFontFamily:n,associativeLineTextLineHeight:s}=this.getStyleConfig(e,t),{defaultAssociativeLineText:a,nodeTextEditZIndex:o}=this.mindMap.opt,l=this.mindMap.view.scale,h=this.getText(e,t),c=(h||a).split(/\n/gim);this.textEditNode.style.fontFamily=n,this.textEditNode.style.fontSize=i*l+"px",this.textEditNode.style.lineHeight=c.length>1?s:"normal",this.textEditNode.style.zIndex=o,this.textEditNode.innerHTML=c.join("
"),this.textEditNode.style.display="block",this.updateTextEditBoxPos(r),this.setIsShowTextEdit(!0),h===""||h===a?ah(this.textEditNode):sh(this.textEditNode)}function Z_(r){this.showTextEdit=r,r?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}function J_(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}function $_(){this.hideEditTextBox()}function eq(r){let e=r.node.getBoundingClientRect();this.textEditNode&&(this.textEditNode.style.minWidth=`${e.width+10}px`,this.textEditNode.style.minHeight=`${e.height+6}px`,this.textEditNode.style.left=`${e.left}px`,this.textEditNode.style.top=`${e.top}px`)}function tq(){if(!this.showTextEdit)return;let[r,,e,t,i]=this.activeLine,n=nh(this.textEditNode.innerHTML);n=n===this.mindMap.opt.defaultAssociativeLineText?"":n,this.mindMap.execCommand("SET_NODE_DATA",t,{associativeLineText:{...t.getData("associativeLineText")||{},[i.getData("uid")]:n}}),this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.setIsShowTextEdit(!1),this.renderText(n,r,e,t,i),this.mindMap.emit("hide_text_edit")}function rq(r,e){let t=r.getData("associativeLineText");return t&&t[e.getData("uid")]||""}function iq(r,e,t,i,n){if(!r)return;let{associativeLineTextFontSize:s,associativeLineTextLineHeight:a}=this.getStyleConfig(i,n);t.clear(),r.replace(/\n$/g,"").split(/\n/gim).forEach((l,h)=>{l===""&&(l="\uFEFF");let c=new Zt().text(l);c.y(s*a*h),this.styleText(c,i,n),t.add(c)}),sy(e,t)}function nq(r,e,t){let{associativeLineTextColor:i,associativeLineTextFontSize:n,associativeLineTextFontFamily:s}=this.getStyleConfig(e,t);r.fill({color:i}).css({"font-family":s,"font-size":n+"px"})}function sy(r,e){let t=r.length(),i=r.pointAt(t/2),{width:n,height:s}=e.bbox();e.x(i.x-n/2),e.y(i.y-s/2)}var j6={getText:rq,createText:Q_,styleText:nq,onScale:$_,showEditTextBox:X_,setIsShowTextEdit:Z_,removeTextEditEl:J_,hideEditTextBox:tq,updateTextEditBoxPos:eq,renderText:iq,updateTextPos:sy};var sq=["associativeLineWidth","associativeLineColor","associativeLineActiveWidth","associativeLineActiveColor","associativeLineDasharray","associativeLineTextColor","associativeLineTextFontSize","associativeLineTextLineHeight","associativeLineTextFontFamily"],G6="associative-line-text-edit-warp",Uf=class{constructor(e={}){this.mindMap=e.mindMap,this.associativeLineDraw=this.mindMap.associativeLineDraw,this.isNotRenderAllLines=!1,this.lineList=[],this.activeLine=null,this.isCreatingLine=!1,this.creatingStartNode=null,this.creatingLine=null,this.overlapNode=null,this.isNodeDragging=!1,this.controlLine1=null,this.controlLine2=null,this.controlPoint1=null,this.controlPoint2=null,this.controlPointDiameter=10,this.isControlPointMousedown=!1,this.mousedownControlPointKey="",this.controlPointMousemoveState={pos:null,startPoint:null,endPoint:null,targetIndex:""},this.checkOverlapNode=Rs(this.checkOverlapNode,100,this),Object.keys(H6).forEach(t=>{this[t]=H6[t].bind(this)}),this.showTextEdit=!1,Object.keys(j6).forEach(t=>{this[t]=j6[t].bind(this)}),this.mindMap.addEditNodeClass(G6),this.bindEvent()}bindEvent(){this.renderAllLines=this.renderAllLines.bind(this),this.onDrawClick=this.onDrawClick.bind(this),this.onNodeClick=this.onNodeClick.bind(this),this.removeLine=this.removeLine.bind(this),this.addLine=this.addLine.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onNodeDragging=this.onNodeDragging.bind(this),this.onNodeDragend=this.onNodeDragend.bind(this),this.onControlPointMouseup=this.onControlPointMouseup.bind(this),this.onBeforeDestroy=this.onBeforeDestroy.bind(this),this.mindMap.on("node_tree_render_end",this.renderAllLines),this.mindMap.on("data_change",this.renderAllLines),this.mindMap.on("draw_click",this.onDrawClick),this.mindMap.on("node_click",this.onNodeClick),this.mindMap.on("contextmenu",this.onDrawClick),this.mindMap.keyCommand.addShortcut("Del|Backspace",this.removeLine),this.mindMap.command.add("ADD_ASSOCIATIVE_LINE",this.addLine),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("node_dragging",this.onNodeDragging),this.mindMap.on("node_dragend",this.onNodeDragend),this.mindMap.on("mouseup",this.onControlPointMouseup),this.mindMap.on("scale",this.onScale),this.mindMap.on("beforeDestroy",this.onBeforeDestroy)}unBindEvent(){this.mindMap.off("node_tree_render_end",this.renderAllLines),this.mindMap.off("data_change",this.renderAllLines),this.mindMap.off("draw_click",this.onDrawClick),this.mindMap.off("node_click",this.onNodeClick),this.mindMap.off("contextmenu",this.onDrawClick),this.mindMap.keyCommand.removeShortcut("Del|Backspace",this.removeLine),this.mindMap.command.remove("ADD_ASSOCIATIVE_LINE",this.addLine),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("node_dragging",this.onNodeDragging),this.mindMap.off("node_dragend",this.onNodeDragend),this.mindMap.off("mouseup",this.onControlPointMouseup),this.mindMap.off("scale",this.onScale),this.mindMap.off("beforeDestroy",this.onBeforeDestroy)}getStyleConfig(e,t){let i={};t&&(i=(e.getData("associativeLineStyle")||{})[t.getData("uid")]||{});let n={};return sq.forEach(s=>{typeof i[s]!="undefined"?n[s]=i[s]:n[s]=e.getStyle(s)}),n}onBeforeDestroy(){this.hideEditTextBox(),this.removeTextEditEl()}onDrawClick(){this.isCreatingLine&&this.cancelCreateLine(),this.isControlPointMousedown||(this.clearActiveLine(),this.renderAllLines())}onNodeClick(e){this.isCreatingLine?this.completeCreateLine(e):(this.clearActiveLine(),this.renderAllLines())}createMarker(e=()=>{}){return this.associativeLineDraw.marker(20,20,t=>{t.ref(12,5),t.size(10,10),t.attr("orient","auto-start-reverse"),e(t.path("M0,0 L2,5 L0,10 L10,5 Z"))})}updateAllLinesPos(e,t,i){i=i||{};let[n,s]=q6(e,t),a=0,o="",l=0,h="";return i.startPoint&&(a=i.startPoint.range||0,o=i.startPoint.dir||"right",n=Sa(e,o,a)),i.endPoint&&(l=i.endPoint.range||0,h=i.endPoint.dir||"right",s=Sa(t,h,l)),[n,s]}renderAllLines(){if(this.isNotRenderAllLines){this.isNotRenderAllLines=!1;return}this.removeAllLines(),this.removeControls(),this.clearActiveLine();let e=this.mindMap.renderer.root;if(!e)return;let t=new Map,i=new Map;it(e,null,n=>{if(!n)return;let s=n.getData();s.associativeLineTargets&&s.associativeLineTargets.length>0&&i.set(n,s.associativeLineTargets),s.uid&&t.set(s.uid,n)},()=>{},!0,0),i.forEach((n,s)=>{n.forEach((a,o)=>{let l=t.get(a);if(!s||!l)return;let h=(s.getData("associativeLinePoint")||[])[o],[c,u]=this.updateAllLinesPos(s,l,h);this.drawLine(c,u,s,l)})})}drawLine(e,t,i,n){let{associativeLineWidth:s,associativeLineColor:a,associativeLineActiveWidth:o,associativeLineDasharray:l}=this.getStyleConfig(i,n),h=null,c=this.createMarker(v=>{h=v});h.stroke({color:a}).fill({color:a});let{path:u,controlPoints:d}=ny(e,t,i,n),f=this.associativeLineDraw.path();f.stroke({width:s,color:a,dasharray:l||"6,4"}).fill({color:"none"}),f.plot(u),f.marker("end",c);let m=this.associativeLineDraw.path();m.stroke({width:o,color:"transparent"}).fill({color:"none"}),m.plot(u);let g=this.createText({path:f,clickPath:m,markerPath:h,node:i,toNode:n,startPoint:e,endPoint:t,controlPoints:d});m.click(v=>{v.stopPropagation(),this.setActiveLine({path:f,clickPath:m,markerPath:h,text:g,node:i,toNode:n,startPoint:e,endPoint:t,controlPoints:d})}),m.dblclick(()=>{this.activeLine&&this.showEditTextBox(g)}),this.renderText(this.getText(i,n),f,g,i,n),this.lineList.push([f,m,g,i,n])}updateActiveLineStyle(){if(!this.activeLine)return;this.isNotRenderAllLines=!0;let[e,t,i,n,s,a]=this.activeLine,{associativeLineWidth:o,associativeLineColor:l,associativeLineDasharray:h,associativeLineActiveWidth:c,associativeLineActiveColor:u,associativeLineTextColor:d,associativeLineTextFontFamily:f,associativeLineTextFontSize:m}=this.getStyleConfig(n,s);e.stroke({width:o,color:l,dasharray:h||"6,4"}).fill({color:"none"}),t.stroke({width:c,color:u}).fill({color:"none"}),a.stroke({color:l}).fill({color:l}),i.find("text").forEach(g=>{g.fill({color:d}).css({"font-family":f,"font-size":m+"px"})}),this.controlLine1&&this.controlLine1.stroke({color:u}),this.controlLine2&&this.controlLine2.stroke({color:u}),this.controlPoint1&&this.controlPoint1.stroke({color:u}),this.controlPoint2&&this.controlPoint2.stroke({color:u}),this.updateTextPos(e,i)}setActiveLine({path:e,clickPath:t,markerPath:i,text:n,node:s,toNode:a,startPoint:o,endPoint:l,controlPoints:h}){let{associativeLineActiveColor:c}=this.getStyleConfig(s,a);this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.clearActiveLine(),this.activeLine=[e,t,n,s,a,i],t.stroke({color:c}),this.getText(s,a)||this.renderText(this.mindMap.opt.defaultAssociativeLineText,e,n,s,a),this.renderControls(o,l,h[0],h[1],s,a),this.mindMap.emit("associative_line_click",e,t,s,a),this.front()}removeAllLines(){this.lineList.forEach(e=>{e[0].remove(),e[1].remove(),e[2].remove()}),this.lineList=[]}createLineFromActiveNode(){if(this.mindMap.renderer.activeNodeList.length<=0)return;let e=this.mindMap.renderer.activeNodeList[0];this.createLine(e)}createLine(e){let{associativeLineWidth:t,associativeLineColor:i,associativeLineDasharray:n}=this.getStyleConfig(e);if(this.isCreatingLine||!e)return;this.front(),this.isCreatingLine=!0,this.creatingStartNode=e,this.creatingLine=this.associativeLineDraw.path(),this.creatingLine.stroke({width:t,color:i,dasharray:n||"6,4"}).fill({color:"none"});let s=null,a=this.createMarker(o=>{s=o});s.stroke({color:i}).fill({color:i}),this.creatingLine.marker("end",a)}cancelCreateLine(){this.isCreatingLine=!1,this.creatingStartNode=null,this.creatingLine.remove(),this.creatingLine=null,this.overlapNode=null,this.back()}onMousemove(e){this.onControlPointMousemove(e),this.updateCreatingLine(e)}updateCreatingLine(e){if(!this.isCreatingLine)return;let{x:t,y:i}=this.getTransformedEventPos(e),n=Sa(this.creatingStartNode),s=t>n.x?-10:10,a=iy(n.x,n.y,t+s,i);this.creatingLine.plot(a),this.checkOverlapNode(t,i)}getTransformedEventPos(e){let{x:t,y:i}=this.mindMap.toPos(e.clientX,e.clientY),{scaleX:n,scaleY:s,translateX:a,translateY:o}=this.mindMap.draw.transform();return{x:(t-a)/n,y:(i-o)/s}}getNodePos(e){let{scaleX:t,scaleY:i,translateX:n,translateY:s}=this.mindMap.draw.transform(),{left:a,top:o,width:l,height:h}=e,c=a*t+n,u=o*i+s;return{left:a,top:o,translateLeft:c,translateTop:u,width:l,height:h}}checkOverlapNode(e,t){this.overlapNode=null,on(this.mindMap.renderer.root,i=>{if(i.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",i,!1),i.uid===this.creatingStartNode.uid||this.overlapNode)return;let{left:n,top:s,width:a,height:o}=i,l=n+a,h=s+o;e>=n&&e<=l&&t>=s&&t<=h&&(this.overlapNode=i)}),this.overlapNode&&!this.overlapNode.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!0)}completeCreateLine(e){if(this.creatingStartNode.uid===e.uid)return;let{beforeAssociativeLineConnection:t}=this.mindMap.opt,i=!1;typeof t=="function"&&(i=t(e)),!i&&(this.addLine(this.creatingStartNode,e),this.overlapNode&&this.overlapNode.getData("isActive")&&this.mindMap.execCommand("SET_NODE_ACTIVE",this.overlapNode,!1),this.cancelCreateLine())}addLine(e,t){if(!e||!t)return;let i=t.getData("uid");i||(i=eu(),this.mindMap.execCommand("SET_NODE_DATA",t,{uid:i}));let n=e.getData("associativeLineTargets")||[];if(n.some(d=>d===i))return;n.push(i);let[a,o]=q6(e,t),l=Iu(a.x,a.y,o.x,o.y),{associativeLineInitPointsPosition:h}=this.mindMap.opt;if(h){let{from:d,to:f}=h;d&&(a.dir=d),f&&(o.dir=f)}let c=e.getData("associativeLineTargetControlOffsets")||[];c[n.length-1]=[{x:l[0].x-a.x,y:l[0].y-a.y},{x:l[1].x-o.x,y:l[1].y-o.y}];let u=e.getData("associativeLinePoint")||[];u[n.length-1]={startPoint:a,endPoint:o},this.mindMap.execCommand("SET_NODE_DATA",e,{associativeLineTargets:n,associativeLineTargetControlOffsets:c,associativeLinePoint:u})}removeLine(){if(!this.activeLine)return;let[,,,e,t]=this.activeLine;this.removeControls();let{associativeLineTargets:i,associativeLinePoint:n,associativeLineTargetControlOffsets:s,associativeLineText:a,associativeLineStyle:o}=e.getData();n=n||[];let l=Fu(e,t),h={};a&&Object.keys(a).forEach(u=>{u!==t.getData("uid")&&(h[u]=a[u])});let c={};o&&Object.keys(o).forEach(u=>{u!==t.getData("uid")&&(c[u]=o[u])}),this.mindMap.execCommand("SET_NODE_DATA",e,{associativeLineTargets:i.filter((u,d)=>d!==l),associativeLinePoint:n.filter((u,d)=>d!==l),associativeLineTargetControlOffsets:s?s.filter((u,d)=>d!==l):[],associativeLineText:h,associativeLineStyle:c})}clearActiveLine(){if(this.activeLine){let[,e,t,i,n]=this.activeLine;e.stroke({color:"transparent"}),this.hideEditTextBox(),this.getText(i,n)||t.clear(),this.activeLine=null,this.removeControls(),this.back(),this.mindMap.emit("associative_line_deactivate")}}onNodeDragging(){this.isNodeDragging||(this.isNodeDragging=!0,this.lineList.forEach(e=>{e[0].hide(),e[1].hide(),e[2].hide()}),this.hideControls())}onNodeDragend(){this.isNodeDragging&&(this.lineList.forEach(e=>{e[0].show(),e[1].show(),e[2].show()}),this.showControls(),this.isNodeDragging=!1)}front(){this.mindMap.opt.associativeLineIsAlwaysAboveNode||this.associativeLineDraw.front()}back(){this.mindMap.opt.associativeLineIsAlwaysAboveNode||(this.associativeLineDraw.back(),this.associativeLineDraw.forward())}beforePluginRemove(){this.mindMap.deleteEditNodeClass(G6),this.unBindEvent()}beforePluginDestroy(){this.mindMap.deleteEditNodeClass(G6),this.unBindEvent()}};Uf.instanceName="associativeLine";var ay=Uf;var oy={backgroundColor:"rgb(17, 17, 84)",lineColor:"rgb(255, 0, 214)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 181, 0)",associativeLineColor:"rgb(255, 255, 255)",associativeLineTextColor:"rgb(255, 255, 255)",root:{fillColor:"rgb(251, 233, 248)",color:"rgb(208, 5, 176)",borderColor:"rgb(255, 0, 214)",borderWidth:3,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"transparent",color:"rgb(248, 177, 237)",borderColor:"",borderWidth:3,fontSize:18},node:{fontSize:14,color:"#fff"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"rgb(255, 181, 0)",borderWidth:2,color:"rgb(17, 17, 84)"}};var ly={backgroundColor:"rgb(0, 21, 21)",lineColor:"rgb(0, 139, 146)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgba(2, 167, 240, 0.5)",associativeLineColor:"rgb(255, 255, 255)",associativeLineTextColor:"rgb(255, 255, 255)",root:{fillColor:"rgb(0, 243, 255)",color:"rgb(0, 21, 21)",borderColor:"#fff",borderWidth:3,fontSize:24,shape:"parallelogram"},second:{fillColor:"rgb(0, 21, 21)",color:"#fff",borderColor:"#fff",borderWidth:3,fontSize:18,shape:"diamond"},node:{fontSize:14,color:"#fff"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"rgb(0, 117, 255)",borderWidth:2,color:"rgb(0, 21, 21)"}};var hy={backgroundColor:"rgb(0, 0, 0)",lineColor:"rgb(172, 172, 172)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(172, 172, 172)",associativeLineColor:"rgb(57, 130, 252)",associativeLineTextColor:"rgb(68, 68, 68)",root:{fillColor:"#fff",color:"rgb(241, 79, 81)",borderColor:"",borderWidth:0,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"rgb(241, 79, 81)",color:"#fff",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"#fff"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"",borderWidth:0,color:"rgb(241, 79, 81)"}};var cy={backgroundColor:"rgb(32, 34, 43)",lineColor:"rgb(90, 136, 116)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(90, 136, 116)",associativeLineColor:"rgb(57, 130, 252)",associativeLineTextColor:"rgb(68, 68, 68)",root:{fillColor:"rgb(1, 192, 116)",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(48, 51, 63)",color:"#fff",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"#fff"},generalization:{fontSize:14,fillColor:"rgb(1, 192, 116)",borderColor:"",borderWidth:0,color:"#fff"}};var uy={lineColor:"rgb(75, 81, 78)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 119, 34)",backgroundColor:"rgb(27, 31, 34)",root:{fillColor:"rgb(36, 179, 96)",color:"#fff",borderColor:"",borderWidth:0},second:{fillColor:"rgb(254, 199, 13)",color:"rgb(0, 0, 0)",borderColor:"",borderWidth:0,fontSize:14},node:{fontSize:12,color:"rgb(204, 204, 204)"},generalization:{fillColor:"transparent",borderColor:"rgb(255, 119, 34)",borderWidth:2,color:"rgb(204, 204, 204)"}};var dy={lineColor:"rgb(17, 68, 23)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#fff",backgroundColor:"rgb(15, 16, 17)",root:{fillColor:"rgb(28, 178, 43)",color:"#fff",fontSize:24,borderRadius:10},second:{fillColor:"rgb(55, 56, 58)",color:"rgb(147,148,149)",fontSize:18,borderRadius:10,borderWidth:0},node:{fontSize:14,color:"rgb(147, 148, 149)"},generalization:{fillColor:"#fff",borderColor:"transparent",color:"#333"}};var fy={lineColor:"#fff",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"#fff",backgroundColor:"rgb(58, 65, 68)",backgroundImage:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAIAAAACDbGyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDowQzg5QTQ0NDhENzgxMUUzOENGREE4QTg0RDgzRTZDNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDowQzg5QTQ0NThENzgxMUUzOENGREE4QTg0RDgzRTZDNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwOEQ1NDRGOEQ3NzExRTM4Q0ZEQThBODREODNFNkM3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkMwOEQ1NDUwOEQ3NzExRTM4Q0ZEQThBODREODNFNkM3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+e9P33AAAACVJREFUeNpisXJ0YUACTAyoAMr/+eM7EGGRZ4FQ7BycEAZAgAEAHbEGtkoQm/wAAAAASUVORK5CYII=",backgroundRepeat:"repeat",backgroundSize:"auto",root:{fillColor:"rgb(233, 223, 152)",color:"#333",fontSize:24,borderRadius:21},second:{fillColor:"rgb(164, 197, 192)",borderColor:"transparent",color:"#333",fontSize:16,borderRadius:10},node:{fontSize:12,color:"#fff",fontWeight:"bold"},generalization:{fillColor:"#fff",borderColor:"transparent",color:"#333"}};var my={backgroundColor:"rgb(27, 31, 34)",lineColor:"rgb(75, 81, 78)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 119, 34)",root:{fillColor:"rgb(36, 179, 96)",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(254, 199, 13)",color:"rgb(0, 0, 0)",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"rgb(204, 204, 204)"},generalization:{fontSize:14,fillColor:"rgb(27, 31, 34)",borderColor:"rgb(255, 119, 34)",borderWidth:2,color:"rgb(204, 204, 204)"}};var py={backgroundColor:"rgb(32, 37, 49)",lineColor:"rgb(137, 167, 196)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 119, 34)",root:{fillColor:"rgb(23, 153, 243)",color:"rgb(255, 255, 255)",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(70, 78, 94)",color:"rgb(209, 210, 210)",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"rgb(204, 204, 204)"},generalization:{fontSize:14,fillColor:"rgb(255, 119, 34)",borderColor:"",borderWidth:2,color:"#fff"}};var gy={backgroundColor:"rgb(18, 20, 20)",lineColor:"rgb(205, 186, 156)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(245, 224, 191)",root:{fillColor:"rgb(255, 208, 124)",color:"rgb(111, 61, 6)",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(66, 57, 46)",color:"rgb(225, 201, 158)",borderColor:"rgb(245, 224, 191)",borderWidth:2,fontSize:18},node:{fontSize:14,color:"rgb(231, 203, 155)"},generalization:{fontSize:14,fillColor:"rgb(56, 45, 34)",borderColor:"rgb(104, 84, 61)",borderWidth:2,color:"rgb(242, 216, 176)"}};var vy={backgroundColor:"#070616",lineColor:"#fff",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"#fff",root:{fillColor:"#ff6811",color:"#110501",borderColor:"#ff6811",borderWidth:0,fontSize:24},second:{fillColor:"#070616",color:"#a9a4a9",borderColor:"#ff6811",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#a9a4a9"},generalization:{fontSize:14,fillColor:"",borderColor:"#ff6811",borderWidth:2,color:"#a9a4a9"}};var yy={backgroundColor:"#16181d",lineColor:"#7da578",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#7da578",associativeLineColor:"#7da578",associativeLineTextColor:"#9ce81d",associativeLineActiveColor:"#9ce81d",root:{fillColor:"#9ce81d",color:"#15521b",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#24272f",color:"#97b65e",borderColor:"#80a97a",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#789e73"},generalization:{fontSize:14,fillColor:"#9ce81d",borderColor:"",borderWidth:0,color:"#13501b"}};var xy={backgroundColor:"#051422",lineColor:"#55dff3",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#55dff3",associativeLineColor:"#55dff3",associativeLineTextColor:"#78b3ff",associativeLineActiveColor:"#78b3ff",root:{fillColor:"#55dff3",color:"#0f4956",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#0b1632",color:"#fff",borderColor:"#78b3ff",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#78b3ff"},generalization:{fontSize:14,fillColor:"#55dff3",borderColor:"",borderWidth:0,color:"#0f4956"}};var by={backgroundColor:"#192b3b",lineColor:"#4986bc",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#4986bc",associativeLineColor:"#4986bc",associativeLineTextColor:"#679fba",associativeLineActiveColor:"#679fba",root:{fillColor:"#3462b0",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#679fba",color:"#fff",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"#679fba"},generalization:{fontSize:14,fillColor:"#3462b0",borderColor:"",borderWidth:0,color:"#fff"}};var W6=[{name:"\u8111\u56FE\u7ECF\u5178",value:"classic",theme:fy},{name:"\u9ED1\u8272\u5E7D\u9ED8",value:"blackHumour",theme:my},{name:"\u6DF1\u591C\u529E\u516C\u5BA4",value:"lateNightOffice",theme:py},{name:"\u9ED1\u91D1",value:"blackGold",theme:gy},{name:"\u6A59\u6C41",value:"orangeJuice",theme:vy},{name:"\u9713\u8679\u706F",value:"neonLamp",theme:oy},{name:"\u6697\u591C\u51B0\u5203",value:"darkNightLceBlade",theme:ly},{name:"\u6697\u8272",value:"dark",theme:dy},{name:"\u6697\u82722",value:"dark2",theme:uy},{name:"\u6697\u82723",value:"dark3",theme:hy},{name:"\u6697\u82724",value:"dark4",theme:cy},{name:"\u6697\u82725",value:"dark5",theme:yy},{name:"\u6697\u82726",value:"dark6",theme:xy},{name:"\u6697\u82727",value:"dark7",theme:by}].map(r=>({...r,dark:!0}));var wy={lineColor:"rgb(51, 51, 51)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(51, 51, 51)",root:{fillColor:"rgb(22, 22, 22)",color:"#fff",borderColor:"rgb(22, 22, 22)",borderWidth:3,fontSize:24},second:{fillColor:"rgb(244, 246, 253)",color:"rgb(0, 0, 0)",borderColor:"",borderWidth:3,fontSize:18,shape:"roundedRectangle"},node:{fontSize:14,color:"rgb(0, 0, 0)"},generalization:{fontSize:14,fillColor:"transparent",borderColor:"rgb(34, 34, 34)",borderWidth:2,color:"rgb(34, 34, 34)"}};var Ay={backgroundColor:"rgb(187, 241, 250)",lineColor:"rgb(74, 139, 170)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 168, 101)",root:{fillColor:"rgb(51, 149, 255)",color:"#fff",borderColor:"rgb(51, 149, 255)",borderWidth:3,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"rgb(74, 139, 170)",color:"#fff",borderColor:"",borderWidth:3,fontSize:18},node:{fontSize:14,color:"rgb(0, 0, 0)"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"rgb(255, 168, 101)",borderWidth:2,color:"#000"}};var Ey={backgroundColor:"rgb(236, 254, 255)",lineColor:"rgb(51, 51, 51)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(51, 51, 51)",root:{fillColor:"rgb(39, 222, 232)",color:"rgb(26, 26, 26)",borderColor:"rgb(26, 26, 26)",borderWidth:3,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"rgb(235, 255, 187)",color:"rgb(0, 0, 0)",borderColor:"rgb(51, 51, 51)",borderWidth:3,fontSize:18,shape:"roundedRectangle"},node:{fontSize:14,color:"rgb(0, 0, 0)"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"rgb(26, 26, 26)",borderWidth:2,color:"rgb(26, 26, 26)"}};var Cy={backgroundColor:"rgb(255, 251, 231)",lineColor:"rgb(110, 165, 79)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(136, 100, 0)",root:{fillColor:"rgb(254, 92, 92)",color:"#fff",borderColor:"rgb(18, 187, 55)",borderWidth:3,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"rgb(209, 237, 176)",color:"rgb(85, 136, 55)",borderColor:"",borderWidth:3,fontSize:18,shape:"roundedRectangle"},node:{fontSize:14,color:"rgb(26, 26, 26)"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"rgb(136, 100, 0)",borderWidth:2,color:"rgb(136, 100, 0)"}};var Sy={backgroundColor:"rgb(231, 245, 255)",lineColor:"rgb(96, 189, 255)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(0, 155, 255)",root:{fillColor:"rgb(96, 189, 255)",color:"#fff",borderColor:"#fff",borderWidth:3,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"#fff",color:"rgb(0, 149, 255)",borderColor:"",borderWidth:3,fontSize:18,shape:"roundedRectangle"},node:{fontSize:14,color:"rgb(0, 66, 157)"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"rgb(0, 155, 255)",borderWidth:2,color:"rgb(0, 155, 255)"}};var Ty={backgroundColor:"rgb(252, 245, 241)",lineColor:"rgb(144, 114, 110)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(128, 154, 151)",associativeLineColor:"rgb(166, 124, 106)",associativeLineTextColor:"rgb(166, 124, 106)",root:{fillColor:"rgb(207, 121, 105)",color:"#fff",borderColor:"rgb(207, 121, 105)",borderWidth:3,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"rgb(239, 210, 207)",color:"rgb(144, 79, 68)",borderColor:"rgb(222, 186, 183)",borderWidth:3,fontSize:18,shape:"roundedRectangle"},node:{fontSize:14,color:"rgb(131, 90, 64)"},generalization:{fontSize:14,fillColor:"rgb(172, 202, 199)",borderColor:"rgb(172, 202, 199)",borderWidth:2,color:"rgb(91, 102, 97)"}};var My={backgroundColor:"rgb(233, 245, 241)",lineColor:"rgb(34, 34, 34)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(34, 34, 34)",associativeLineColor:"rgb(56, 44, 116)",associativeLineTextColor:"rgb(68, 68, 68)",root:{fillColor:"rgb(56, 44, 116)",color:"#fff",borderColor:"rgb(56, 44, 116)",borderWidth:0,fontSize:24},second:{fillColor:"rgb(161, 213, 188)",color:"rgb(0, 0, 0)",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"rgb(0, 0, 0)"},generalization:{fontSize:14,fillColor:"rgb(56, 44, 116)",borderColor:"",borderWidth:0,color:"#fff"}};var ky={backgroundColor:"rgb(255, 255, 255)",lineColor:"rgb(0, 0, 0)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(0, 0, 0)",associativeLineColor:"rgb(152, 162, 171)",associativeLineTextColor:"rgb(68, 68, 68)",root:{fillColor:"rgb(237, 182, 72)",color:"rgb(0, 0, 0)",borderColor:"rgb(0, 0, 0)",borderWidth:2,fontSize:24},second:{fillColor:"rgb(114, 158, 28)",color:"#fff",borderColor:"rgb(0, 0, 0)",borderWidth:2,fontSize:18},node:{fontSize:14,color:"rgb(10, 2, 2)"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"",borderWidth:0,color:"rgb(10, 2, 2)"}};var Dy={backgroundColor:"rgb(255, 255, 255)",lineColor:"rgb(237, 185, 81)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(226, 90, 64)",associativeLineColor:"rgb(152, 162, 171)",associativeLineTextColor:"rgb(68, 68, 68)",root:{fillColor:"rgb(226, 90, 64)",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(43, 118, 239)",color:"#fff",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"rgb(43, 118, 239)"},generalization:{fontSize:14,fillColor:"#fff",borderColor:"",borderWidth:0,color:"rgb(43, 118, 239)"}};var Ny={backgroundColor:"rgb(219, 255, 211)",lineColor:"rgb(51, 51, 51)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 127, 71)",associativeLineColor:"rgb(160, 220, 63)",associativeLineTextColor:"rgb(160, 220, 63)",root:{fillColor:"rgb(15, 198, 113)",color:"#fff",borderColor:"",borderWidth:0,fontSize:24,shape:"roundedRectangle"},second:{fillColor:"#fff",color:"rgb(26, 26, 26)",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"rgb(0, 0, 0)"},generalization:{fontSize:14,fillColor:"rgb(255, 127, 71)",borderColor:"",borderWidth:0,color:"#fff"}};var Fy={lineColor:"#fff",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"#fff",backgroundColor:"rgb(80, 156, 170)",root:{fillColor:"#fff",borderColor:"",borderWidth:0,color:"rgb(65, 89, 158)"},second:{fillColor:"rgb(251, 227, 188)",color:"rgb(65, 89, 158)",borderColor:"",borderWidth:0,fontSize:14},node:{fontSize:12,color:"rgb(65, 89, 158)"},generalization:{fillColor:"#fff",borderColor:"transparent",color:"rgb(65, 89, 158)"}};var Iy={lineColor:"rgb(51, 51, 51)",lineWidth:2,generalizationLineWidth:3,generalizationLineColor:"rgb(51, 51, 51)",backgroundColor:"#fff",root:{fillColor:"rgb(18, 187, 55)",color:"#fff",fontSize:24,borderRadius:10},second:{fillColor:"rgb(241, 242, 241)",borderColor:"transparent",color:"#1a1a1a",fontSize:18,borderRadius:10},node:{fontSize:14,color:"#1a1a1a"},generalization:{fillColor:"#fff",borderColor:"rgb(51, 51, 51)",borderWidth:2,color:"#1a1a1a"}};var zy={lineColor:"rgb(94, 202, 110)",lineWidth:2,generalizationLineWidth:3,generalizationLineColor:"#1a1a1a",backgroundColor:"rgb(241, 241, 241)",root:{fillColor:"rgb(255, 245, 214)",color:"#1a1a1a",fontSize:24,borderRadius:10,borderColor:"rgb(249, 199, 84)",borderWidth:1},second:{fillColor:"rgb(255, 245, 214)",borderColor:"rgb(249, 199, 84)",borderWidth:1,color:"#1a1a1a",fontSize:18,borderRadius:10},node:{fontSize:14,color:"#1a1a1a"},generalization:{fillColor:"#fff",borderColor:"#1a1a1a",color:"#1a1a1a",borderWidth:2}};var Ly={lineColor:"rgb(123, 199, 120)",backgroundColor:"rgb(236, 245, 231)",generalizationLineWidth:2,generalizationLineColor:"rgb(123, 199, 120)",root:{fillColor:"rgb(253, 244, 217)",color:"#222"},second:{fillColor:"rgb(253, 244, 217)",color:"#222",borderColor:"rgb(242, 200, 104)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"rgb(123, 199, 120)",borderColor:"transparent",borderWidth:2,color:"#fff"}};var Oy={lineColor:"rgb(51, 51, 51)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(51, 51, 51)",backgroundColor:"rgb(239, 248, 250)",root:{fillColor:"rgb(255, 255, 255)",color:"#222"},second:{fillColor:"rgb(255, 255, 255)",color:"#222",borderColor:"rgb(255, 255, 255)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"#fff",borderColor:"rgb(51, 51, 51)",color:"#333"}};var By={lineColor:"rgb(115, 161, 191)",backgroundColor:"rgb(251, 251, 251)",generalizationLineWidth:1,generalizationLineColor:"#333",root:{fillColor:"rgb(115, 161, 191)"},second:{fillColor:"rgb(238, 243, 246)",color:"#333",borderColor:"rgb(115, 161, 191)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"#fff",borderColor:"#333",color:"#333"}};var Ry={lineColor:"rgb(191, 115, 148)",backgroundColor:"rgb(251, 251, 251)",generalizationLineWidth:1,generalizationLineColor:"#333",root:{fillColor:"rgb(191, 115, 148)"},second:{fillColor:"rgb(246, 238, 242)",color:"#333",borderColor:"rgb(191, 115, 148)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"#fff",borderColor:"#333",color:"#333"}};var Py={lineColor:"rgb(191, 147, 115)",backgroundColor:"rgb(251, 251, 251)",generalizationLineWidth:1,generalizationLineColor:"#333",root:{fillColor:"rgb(191, 147, 115)"},second:{fillColor:"rgb(246, 242, 238)",color:"#333",borderColor:"rgb(191, 147, 115)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"#fff",borderColor:"#333",color:"#333"}};var _y={lineColor:"#333",backgroundColor:"#d1f6ec",generalizationLineWidth:1,generalizationLineColor:"#333",root:{fillColor:"#1fb27d"},second:{fillColor:"#fff",color:"#565656",borderColor:"transparent",borderWidth:0},generalization:{fillColor:"#fff",borderColor:"#333",color:"#333"}};var qy={lineColor:"rgb(191, 115, 115)",backgroundColor:"rgb(251, 251, 251)",generalizationLineWidth:1,generalizationLineColor:"#333",root:{fillColor:"rgb(191, 115, 115)"},second:{fillColor:"rgb(246, 238, 238)",color:"#333",borderColor:"rgb(191, 115, 115)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"#fff",borderColor:"#333",color:"#333"}};var Uy={lineColor:"rgb(123, 115, 191)",backgroundColor:"rgb(251, 251, 251)",generalizationLineWidth:1,generalizationLineColor:"#333",root:{fillColor:"rgb(123, 115, 191)"},second:{fillColor:"rgb(239, 238, 246)",color:"#333",borderColor:"rgb(123, 115, 191)",borderWidth:1,fontSize:14},node:{fontSize:12,color:"#333"},generalization:{fillColor:"#fff",borderColor:"#333",color:"#333"}};var Hy={lineColor:"rgb(166, 101, 106)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"#fff",backgroundColor:"rgb(255, 208, 211)",root:{fillColor:"rgb(139, 109, 225)",borderColor:"",borderWidth:0},second:{fillColor:"rgb(243, 104, 138)",color:"#fff",borderColor:"",borderWidth:0,fontSize:14},node:{fontSize:12,color:"#222"},generalization:{fillColor:"#fff",borderColor:"transparent",color:"#222"}};var jy={lineColor:"rgb(104, 204, 202)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(90, 206, 241)",backgroundColor:"rgb(239, 255, 255)",root:{fillColor:"rgb(0, 192, 184)",borderColor:"",borderWidth:0},second:{fillColor:"#fff",color:"#222",borderColor:"rgb(184, 235, 233)",borderWidth:2,fontSize:14},node:{fontSize:12,color:"#222"},generalization:{fillColor:"rgb(90, 206, 241)",borderColor:"transparent",color:"#fff"}};var Gy={lineColor:"rgb(51, 56, 62)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(127, 93, 64)",backgroundColor:"#fff",root:{fillColor:"rgb(51, 56, 62)",color:"rgb(247, 208, 160)",borderColor:"",borderWidth:0},second:{fillColor:"rgb(239, 209, 176)",color:"rgb(81, 58, 42)",borderColor:"",borderWidth:0,fontSize:14},node:{fontSize:12,color:"#222"},generalization:{fillColor:"rgb(127, 93, 64)",borderColor:"transparent",color:"rgb(255, 214, 175)"}};var Wy={lineColor:"rgb(254, 146, 0)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(255, 222, 69)",backgroundColor:"rgb(255, 246, 243)",root:{fillColor:"rgb(255, 112, 52)",color:"#fff",borderColor:"",borderWidth:0},second:{fillColor:"#fff",color:"rgb(51, 51, 51)",borderColor:"",borderWidth:0,fontSize:14},node:{fontSize:12,color:"#222"},generalization:{fillColor:"rgb(255, 222, 69)",borderColor:"transparent",color:"rgb(51, 51, 51)"}};var Yy={lineColor:"rgb(40, 193, 84)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(251, 158, 0)",backgroundColor:"rgb(238, 255, 243)",root:{fillColor:"rgb(25, 193, 73)",color:"#fff",borderColor:"",borderWidth:0},second:{fillColor:"#fff",color:"rgb(69, 149, 96)",borderColor:"",borderWidth:0,fontSize:14},node:{fontSize:12,color:"#222"},generalization:{fillColor:"#fff",borderColor:"rgb(251, 158, 0)",borderWidth:2,color:"rgb(51, 51, 51)"}};var Vy={lineColor:"rgb(30, 53, 86)",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"rgb(56, 123, 233)",backgroundColor:"rgb(241, 241, 241)",root:{fillColor:"rgb(30, 53, 86)",color:"#fff",fontSize:24,borderRadius:10,borderColor:"rgb(189, 197, 201)",borderWidth:2},second:{fillColor:"rgb(169, 218, 218)",borderColor:"rgb(30, 53, 86)",borderWidth:2,color:"#fff",fontSize:18,borderRadius:10},node:{fontSize:14,color:"rgb(30, 53, 86)",borderColor:"rgb(30, 53, 86)",borderWidth:1,marginY:20},generalization:{fillColor:"rgb(56, 123, 233)",borderColor:"rgb(56, 123, 233)",color:"#fff",borderWidth:0}};var Ky={lineColor:"rgb(51, 51, 51)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"#222",backgroundColor:"rgb(248, 215, 49)",root:{fillColor:"rgb(55, 165, 255)",borderColor:"rgb(51, 51, 51)",borderWidth:3},second:{fillColor:"rgb(255, 160, 36)",color:"#222",borderColor:"rgb(51, 51, 51)",borderWidth:3,fontSize:14},node:{fontSize:12,color:"#222"},generalization:{borderColor:"#222",borderWidth:3,color:"#222"}};var Qy={lineColor:"rgb(34, 34, 34)",lineWidth:4,generalizationLineWidth:4,generalizationLineColor:"rgb(34, 34, 34)",root:{fillColor:"#fff",color:"rgb(34, 34, 34)",borderColor:"rgb(34, 34, 34)",borderWidth:3,fontSize:24},second:{fillColor:"rgb(241, 246, 248)",color:"rgb(34, 34, 34)",borderColor:"rgb(34, 34, 34)",borderWidth:3,fontSize:18},node:{fontSize:14,color:"rgb(34, 34, 34)"},generalization:{fontSize:14,fillColor:"transparent",borderColor:"rgb(34, 34, 34)",borderWidth:2,color:"rgb(34, 34, 34)"}};var Xy={lineColor:"rgb(113, 195, 169)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(113, 195, 169)",root:{fillColor:"rgb(16, 160, 121)",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(240, 252, 249)",color:"rgb(50, 113, 96)",borderColor:"rgb(113, 195, 169)",borderWidth:2,fontSize:18},node:{fontSize:14,color:"rgb(10, 59, 43)"},generalization:{fontSize:14,fillColor:"rgb(246, 238, 211)",borderColor:"",borderWidth:0,color:"rgb(173, 91, 12)"}};var Zy={lineColor:"rgb(173, 123, 91)",lineWidth:4,generalizationLineWidth:4,generalizationLineColor:"rgb(173, 123, 91)",root:{fillColor:"rgb(202, 117, 79)",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(245, 231, 216)",color:"rgb(125, 86, 42)",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"rgb(96, 71, 47)"},generalization:{fontSize:14,fillColor:"rgb(255, 249, 239)",borderColor:"rgb(173, 123, 91)",borderWidth:2,color:"rgb(122, 83, 44)"}};var Jy={backgroundColor:"rgb(255, 238, 228)",lineColor:"rgb(230, 138, 131)",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"rgb(222, 101, 85)",root:{fillColor:"rgb(207, 44, 44)",color:"rgb(255, 233, 157)",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"rgb(255, 255, 255)",color:"rgb(211, 58, 21)",borderColor:"rgb(222, 101, 85)",borderWidth:2,fontSize:18},node:{fontSize:14,color:"rgb(144, 71, 43)"},generalization:{fontSize:14,fillColor:"rgb(255, 247, 211)",borderColor:"rgb(255, 202, 162)",borderWidth:2,color:"rgb(187, 101, 69)"}};var $y={backgroundColor:"#e6f1de",lineColor:"#f5ffad",lineWidth:4,generalizationLineWidth:3,generalizationLineColor:"#749336",root:{fillColor:"#94c143",color:"#fff",borderColor:"#94c143",borderWidth:0,fontSize:24},second:{fillColor:"#cee498",color:"#749336",borderColor:"#aec668",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#749336"},generalization:{fontSize:14,fillColor:"#cee498",borderColor:"#aec668",borderWidth:2,color:"#749336"}};var ex={backgroundColor:"#fff2df",lineColor:"#b0bc47",lineWidth:3,generalizationLineWidth:3,generalizationLineColor:"#b0bc47",root:{fillColor:"#e68112",color:"#fff",borderColor:"#e68112",borderWidth:0,fontSize:24},second:{fillColor:"#ffd683",color:"#8c5416",borderColor:"#b0bc47",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#8c5416"},generalization:{fontSize:14,fillColor:"#ffd683",borderColor:"#b0bc47",borderWidth:2,color:"#8c5416"}};var tx={backgroundColor:"#fff",lineColor:"#36aaa9",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#36aaa9",associativeLineColor:"#3e58ea",associativeLineTextColor:"#679fba",associativeLineActiveColor:"#50a4b4",root:{fillColor:"#3e58ea",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#e3fbff",color:"#58aabc",borderColor:"#50a4b4",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#50a4b4"},generalization:{fontSize:14,fillColor:"#3e58ea",borderColor:"",borderWidth:0,color:"#fff"}};var rx={backgroundColor:"#fffcf2",lineColor:"#333333",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#ffda60",associativeLineColor:"#ffda60",associativeLineTextColor:"#333333",associativeLineActiveColor:"#333333",root:{fillColor:"#ffda60",color:"#3b3a37",borderColor:"#343334",borderWidth:2,fontSize:24},second:{fillColor:"#fff",color:"#131312",borderColor:"",borderWidth:0,fontSize:18},node:{fontSize:14,color:"#131312"},generalization:{fontSize:14,fillColor:"#ffda60",borderColor:"",borderWidth:0,color:"#464339"}};var ix={backgroundColor:"#fffef6",lineColor:"#273d62",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#273d62",associativeLineColor:"#9edeee",associativeLineTextColor:"#395c85",associativeLineActiveColor:"#273d62",root:{fillColor:"#273d62",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#9edeee",color:"#406080",borderColor:"#395c85",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#395c85"},generalization:{fontSize:14,fillColor:"#273d62",borderColor:"",borderWidth:0,color:"#fff"}};var nx={backgroundColor:"#ffffff",lineColor:"#333333",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#2176ef",associativeLineColor:"#2176ef",associativeLineTextColor:"#343433",associativeLineActiveColor:"#343433",root:{fillColor:"#2176ef",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#fff9e4",color:"#4c4b46",borderColor:"#343433",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#343433"},generalization:{fontSize:14,fillColor:"#2176ef",borderColor:"",borderWidth:0,color:"#fff"}};var sx={backgroundColor:"#ffffff",lineColor:"#35b398",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#21c384",associativeLineColor:"#21c384",associativeLineTextColor:"#4d754b",associativeLineActiveColor:"#f5ffe6",root:{fillColor:"#21c384",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#f5ffe6",color:"#386437",borderColor:"#35b398",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#326032"},generalization:{fontSize:14,fillColor:"#21c384",borderColor:"",borderWidth:0,color:"#fff"}};var ax={backgroundColor:"#ffffff",lineColor:"#333333",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#ffd613",associativeLineColor:"#ffd613",associativeLineTextColor:"#2d2b23",associativeLineActiveColor:"#d1ebf8",root:{fillColor:"#ffd613",color:"#2d2b23",borderColor:"#1f2021",borderWidth:2,fontSize:24},second:{fillColor:"#d1ebf8",color:"#717b80",borderColor:"#333333",borderWidth:2,fontSize:18,borderRadius:5},node:{fontSize:14,color:"#333333"},generalization:{fontSize:14,fillColor:"#ffd613",borderColor:"",borderWidth:0,color:"#2d2b23"}};var ox={backgroundColor:"#ffeed2",lineColor:"#976a43",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#19807e",associativeLineColor:"#19807e",associativeLineTextColor:"#764014",associativeLineActiveColor:"#976a43",root:{fillColor:"#19807e",color:"#f3f0b8",borderColor:"",borderWidth:0,fontSize:24,shape:"circle"},second:{fillColor:"#eacdb3",color:"#7f4d1f",borderColor:"#764014",borderWidth:2,fontSize:18,shape:"roundedRectangle"},node:{fontSize:14,color:"#764014"},generalization:{fontSize:14,fillColor:"#19807e",borderColor:"",borderWidth:0,color:"#f3f0b8"}};var lx={backgroundColor:"#c8e4ea",lineColor:"#3e416c",lineWidth:2,generalizationLineWidth:2,generalizationLineColor:"#3e416c",associativeLineColor:"#ffdb9c",associativeLineTextColor:"#383b70",associativeLineActiveColor:"#3e416c",root:{fillColor:"#383b70",color:"#fff",borderColor:"",borderWidth:0,fontSize:24},second:{fillColor:"#ffdb9c",color:"#5e5c76",borderColor:"#3e416c",borderWidth:2,fontSize:18},node:{fontSize:14,color:"#3e416c"},generalization:{fontSize:14,fillColor:"#383b70",borderColor:"",borderWidth:0,color:"#fff"}};var Y6=[{name:"\u5929\u6E05\u7EFF",value:"skyGreen",theme:Fy},{name:"\u7ECF\u5178\u7EFF",value:"classicGreen",theme:Ly},{name:"\u7ECF\u5178\u84DD",value:"classicBlue",theme:Oy},{name:"\u5929\u7A7A\u84DD",value:"blueSky",theme:By},{name:"\u8111\u6B8B\u7C89",value:"brainImpairedPink",theme:Ry},{name:"\u6CE5\u571F\u9EC4",value:"earthYellow",theme:Py},{name:"\u6E05\u65B0\u7EFF",value:"freshGreen",theme:_y},{name:"\u6E05\u65B0\u7EA2",value:"freshRed",theme:qy},{name:"\u6D6A\u6F2B\u7D2B",value:"romanticPurple",theme:Uy},{name:"\u7C89\u7EA2\u8461\u8404",value:"pinkGrape",theme:Hy},{name:"\u8584\u8377",value:"mint",theme:jy},{name:"\u91D1\u8272vip",value:"gold",theme:Gy},{name:"\u6D3B\u529B\u6A59",value:"vitalityOrange",theme:Wy},{name:"\u7EFF\u53F6",value:"greenLeaf",theme:Yy},{name:"\u5C0F\u9EC4\u4EBA",value:"minions",theme:Ky},{name:"\u7B80\u7EA6\u9ED1",value:"simpleBlack",theme:Qy},{name:"\u8BFE\u7A0B\u7EFF",value:"courseGreen",theme:Xy},{name:"\u5496\u5561",value:"coffee",theme:Zy},{name:"\u7EA2\u8272\u7CBE\u795E",value:"redSpirit",theme:Jy},{name:"\u725B\u6CB9\u679C",value:"avocado",theme:$y},{name:"\u79CB\u5929",value:"autumn",theme:ex},{name:"\u5965\u5229\u5965",value:"oreo",theme:wy},{name:"\u6D45\u6D77",value:"shallowSea",theme:Ay},{name:"\u67E0\u6AAC\u6C14\u6CE1",value:"lemonBubbles",theme:Ey},{name:"\u73AB\u7470",value:"rose",theme:Cy},{name:"\u6D77\u84DD\u7EBF",value:"seaBlueLine",theme:Sy},{name:"\u83AB\u5170\u8FEA",value:"morandi",theme:Ty},{name:"\u4ED9\u4EBA\u638C",value:"cactus",theme:Ny},{name:"\u8111\u56FE\u7ECF\u51782",value:"classic2",theme:Iy},{name:"\u8111\u56FE\u7ECF\u51783",value:"classic3",theme:zy},{name:"\u8111\u56FE\u7ECF\u51784",value:"classic4",theme:Vy},{name:"\u8111\u56FE\u7ECF\u51785",value:"classic5",theme:My},{name:"\u8111\u56FE\u7ECF\u51786",value:"classic6",theme:ky},{name:"\u8111\u56FE\u7ECF\u51787",value:"classic7",theme:Dy},{name:"\u8111\u56FE\u7ECF\u51788",value:"classic8",theme:tx},{name:"\u8111\u56FE\u7ECF\u51789",value:"classic9",theme:rx},{name:"\u8111\u56FE\u7ECF\u517810",value:"classic10",theme:ix},{name:"\u8111\u56FE\u7ECF\u517811",value:"classic11",theme:nx},{name:"\u8111\u56FE\u7ECF\u517812",value:"classic12",theme:sx},{name:"\u8111\u56FE\u7ECF\u517813",value:"classic13",theme:ax},{name:"\u8111\u56FE\u7ECF\u517814",value:"classic14",theme:ox},{name:"\u8111\u56FE\u7ECF\u517815",value:"classic15",theme:lx}].map(r=>({...r,dark:!1}));var hx=[...W6,...Y6],aq={darkList:W6,lightList:Y6,init(r){hx.forEach(e=>{r.defineTheme(e.value,e.theme)})},remove(r){hx.forEach(e=>{r.removeTheme(e.value)})}},cx=aq;var Hf=class{constructor({mindMap:e}){this.mindMap=e,this.isSearching=!1,this.searchText="",this.matchNodeList=[],this.currentIndex=-1,this.notResetSearchText=!1,this.isJumpNext=!1,this.bindEvent()}bindEvent(){this.onDataChange=this.onDataChange.bind(this),this.onModeChange=this.onModeChange.bind(this),this.mindMap.on("data_change",this.onDataChange),this.mindMap.on("mode_change",this.onModeChange)}unBindEvent(){this.mindMap.off("data_change",this.onDataChange),this.mindMap.off("mode_change",this.onModeChange)}onDataChange(){if(this.isJumpNext){this.isJumpNext=!1,this.search(this.searchText);return}if(this.notResetSearchText){this.notResetSearchText=!1;return}this.searchText=""}onModeChange(e){!(e===J.MODE.READONLY)&&this.isSearching&&this.matchNodeList[this.currentIndex]&&this.matchNodeList[this.currentIndex].closeHighlight()}search(e,t=()=>{}){if(ei(e))return this.endSearch();e=String(e),this.isSearching=!0,this.searchText===e?this.searchNext(t):(this.searchText=e,this.doSearch(),this.searchNext(t)),this.emitEvent()}updateMatchNodeList(e){this.matchNodeList=e,this.mindMap.emit("search_match_node_list_change",e)}endSearch(){this.isSearching&&(this.mindMap.opt.readonly&&this.matchNodeList[this.currentIndex]&&this.matchNodeList[this.currentIndex].closeHighlight(),this.searchText="",this.updateMatchNodeList([]),this.currentIndex=-1,this.notResetSearchText=!1,this.isSearching=!1,this.emitEvent())}doSearch(){this.clearHighlightOnReadonly(),this.updateMatchNodeList([]),this.currentIndex=-1;let{isOnlySearchCurrentRenderNodes:e}=this.mindMap.opt,t=e?this.mindMap.renderer.root:this.mindMap.renderer.renderTree;if(!t)return;let i=[];on(t,n=>{let{richText:s,text:a,generalization:o}=e?n.getData():n.data;s&&(a=cn(a)),a.includes(this.searchText)&&i.push(n),Hi({generalization:o}).forEach(h=>{let{richText:c,text:u,uid:d}=h;e&&!this.mindMap.renderer.findNodeByUid(d)||(c&&(u=cn(u)),u.includes(this.searchText)&&i.push({data:h}))})}),this.updateMatchNodeList(i)}isNodeInstance(e){return e instanceof go}searchNext(e,t){if(!this.isSearching||this.matchNodeList.length<=0)return;t!==void 0&&Number.isInteger(t)&&t>=0&&t{this.isNodeInstance(n)||(this.matchNodeList[this.currentIndex]=o,this.updateMatchNodeList(this.matchNodeList)),e(),i&&o.highlight(),a&&(this.notResetSearchText=!1)})}clearHighlightOnReadonly(){let{readonly:e}=this.mindMap.opt;e&&this.matchNodeList.forEach(t=>{this.isNodeInstance(t)&&t.closeHighlight()})}jump(e,t=()=>{}){this.searchNext(t,e)}replace(e,t=!1){if(e==null||!this.isSearching||this.matchNodeList.length<=0)return;this.isJumpNext=t,e=String(e);let i=this.matchNodeList[this.currentIndex];if(!i)return;let n=e.includes(this.searchText),s=this.getReplacedText(i,this.searchText,e);if(this.notResetSearchText=!0,i.setText(s,i.getData("richText")),n){this.updateMatchNodeList(this.matchNodeList);return}let a=this.matchNodeList.filter(o=>i!==o);this.updateMatchNodeList(a),this.currentIndex>this.matchNodeList.length-1?this.currentIndex=-1:this.currentIndex--,this.emitEvent()}replaceAll(e){if(e==null||!this.isSearching||this.matchNodeList.length<=0)return;e=String(e);let t=e.includes(this.searchText);this.notResetSearchText=!0,this.matchNodeList.forEach(i=>{let n=this.getReplacedText(i,this.searchText,e);if(this.isNodeInstance(i)){let s={text:n};this.mindMap.renderer.setNodeDataRender(i,s,!0)}else i.data.text=n}),this.mindMap.render(),this.mindMap.command.addHistory(),t?this.updateMatchNodeList(this.matchNodeList):this.endSearch()}getReplacedText(e,t,i){let{richText:n,text:s}=this.isNodeInstance(e)?e.getData():e.data;return n?b9(s,t,i):s.replace(new RegExp(t,"g"),i)}emitEvent(){this.mindMap.emit("search_info_change",{currentIndex:this.currentIndex,total:this.matchNodeList.length})}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};Hf.instanceName="search";var ux=Hf;var K6=r=>String(r).split(/\s+/).map(t=>{if(/^[\d.]+/.test(t)){let i=/^([\d.]+)(.*)$/.exec(t);return[Number(i[1]),i[2]]}else return t}),jf=(r,e)=>r*e,V6=(r,e)=>e/r,dx={left:0,top:0,center:50,bottom:100,right:100},oq=({backgroundSize:r,drawOpt:e,imageRatio:t,canvasWidth:i,canvasHeight:n,canvasRatio:s})=>{if(r){let a=K6(r);if(a[0]==="auto"&&a[1]==="auto")return;if(a[0]==="cover"){t>s?(e.height=n,e.width=jf(t,n)):(e.width=i,e.height=V6(t,i));return}if(a[0]==="contain"){t>s?(e.width=i,e.height=V6(t,i)):(e.height=n,e.width=jf(t,n));return}let o=-1;a[0]&&(Array.isArray(a[0])?a[0][1]==="%"?(e.width=a[0][0]/100*i,o=e.width):(e.width=a[0][0],o=a[0][0]):a[0]==="auto"&&a[1]&&(a[1][1]==="%"?e.width=jf(t,a[1][0]/100*n):e.width=jf(t,a[1][0]))),a[1]&&Array.isArray(a[1])?a[1][1]==="%"?e.height=a[1][0]/100*n:e.height=a[1][0]:o!==-1&&(e.height=V6(t,o))}},lq=({backgroundPosition:r,drawOpt:e,imgWidth:t,imgHeight:i,canvasWidth:n,canvasHeight:s})=>{if(r){let a=K6(r);if(a=a.map(o=>typeof o=="string"&&dx[o]!==void 0?[dx[o],"%"]:o),Array.isArray(a[0])){if(a.length===1&&a.push([50,"%"]),a[0][1]==="%"){let o=a[0][0]/100*n,l=a[0][0]/100*t;e.x=o-l}else e.x=a[0][0];if(a[1][1]==="%"){let o=a[1][0]/100*s,l=a[1][0]/100*i;e.y=o-l}else e.y=a[1][0]}}},hq=({ctx:r,image:e,backgroundRepeat:t,drawOpt:i,imgWidth:n,imgHeight:s,canvasWidth:a,canvasHeight:o})=>{if(t){let l=i.x,h=i.y,c=Math.ceil(l/n),u=Math.ceil(h/s),d=l-c*n,f=h-u*s,m=K6(t);if(m[0]==="no-repeat"||n>=a&&s>=o)return;if(m[0]==="repeat-x"&&a>n){let g=d;for(;gs){let g=f;for(;gs){let v=f;for(;v{r.drawImage(e,t.sx,t.sy,t.swidth,t.sheight,t.x,t.y,t.width,t.height)},cq=(r,e,t,i,{backgroundSize:n,backgroundPosition:s,backgroundRepeat:a},o=()=>{})=>{let l=e/t,h=new Image;h.src=i,h.onload=()=>{let c=h.width,u=h.height,d=c/u,f={sx:0,sy:0,swidth:c,sheight:u,x:0,y:0,width:c,height:u};oq({backgroundSize:n,drawOpt:f,imageRatio:d,canvasWidth:e,canvasHeight:t,canvasRatio:l}),lq({backgroundPosition:s,drawOpt:f,imgWidth:f.width,imgHeight:f.height,imageRatio:d,canvasWidth:e,canvasHeight:t,canvasRatio:l}),hq({ctx:r,image:h,backgroundRepeat:a,drawOpt:f,imgWidth:f.width,imgHeight:f.height,imageRatio:d,canvasWidth:e,canvasHeight:t,canvasRatio:l})||Gf(r,h,f),o()},h.onerror=c=>{o(c)}},fx=cq;var Q6=r=>r.richText?fo(r.text):r.text,uq=r=>new Array(r).fill("#").join(""),dq=r=>new Array(r-6).fill(" ").join("")+"*",Wf=r=>{let e="";return it(r,null,(t,i,n,s)=>{let a=s+1;a<=6?e+=uq(a):e+=dq(a),e+=" "+Q6(t.data);let o=t.data.generalization;if(Array.isArray(o))e+=o.map(l=>` [${Q6(l)}]`);else if(o&&o.text){let l=Q6(o);e+=` [${l}]`}e+=` + +`,t.data.note&&(e+=t.data.note+` + +`)},()=>{},!0),e};var X6=r=>r.richText?fo(r.text):r.text,fq=r=>new Array(r).fill(" ").join(""),mx=r=>{let e="";return it(r,null,(t,i,n,s)=>{e+=fq(s),e+=" "+X6(t.data);let a=t.data.generalization;Array.isArray(a)?e+=a.map(o=>` [${X6(o)}]`):a&&a.text&&(e+=` [${X6(a)}]`),e+=` + +`},()=>{},!0),e};var Yf=class{constructor(e){this.mindMap=e.mindMap}async export(e,t=!0,i="\u601D\u7EF4\u5BFC\u56FE",...n){if(this[e]){let s=await this[e](i,...n);return t&&f9(s,i+"."+e),s}else return null}createTransformImgTaskList(e,t,i,n){return e.find(t).map(async a=>{let o=n(a);if(/^data:/.test(o)||o==="none")return;let l=await bu(o);a.attr(i,l)})}async getSvgData(e){let{exportPaddingX:t,exportPaddingY:i,errorHandler:n,resetCss:s,addContentToHeader:a,addContentToFooter:o,handleBeingExportSvg:l}=this.mindMap.opt,{svg:h,svgHTML:c,clipData:u}=this.mindMap.getSvgData({paddingX:t,paddingY:i,addContentToHeader:a,addContentToFooter:o,node:e});u&&(u.paddingX=t,u.paddingY=i);let d=!1,f=this.createTransformImgTaskList(h,"image","href",v=>v.attr("href")||v.attr("xlink:href")),m=this.createTransformImgTaskList(h,"img","src",v=>v.attr("src")),g=[...f,...m];try{await Promise.all(g)}catch(v){n(Wn.EXPORT_LOAD_IMAGE_ERROR,v)}if(this.mindMap.richText){let v=h.find("foreignObject");if(v.length>0&&(v[0].add(Jt(``)),d=!0),this.mindMap.formula&&h.find(".ql-formula").length>0){let A=this.mindMap.formula.getStyleText();if(A){let b=document.createElement("style");b.innerHTML=A,Ps(b),v[0].add(b),d=!0}}}return typeof l=="function"&&(d=!0,h=l(h)),(g.length>0||d)&&(c=h.svg()),{node:h,str:c,clipData:u}}svgToPng(e,t,i=null,n=!1,s="image/png"){let{maxCanvasSize:a,minExportImgCanvasScale:o}=this.mindMap.opt;return new Promise((l,h)=>{let c=new Image;c.setAttribute("crossOrigin","anonymous"),c.onload=async()=>{try{let u=document.createElement("canvas"),d=Math.max(window.devicePixelRatio,o),f=c.width,m=c.height,g=0,v=0;i&&(g=i.paddingX,v=i.paddingY,f=i.width+g*2,m=i.height+v*2);let y=0,A=0,{backgroundImage:b}=this.mindMap.themeConfig;if(n&&b&&!t){let G=await new Promise(Q=>{let Y=new Image;Y.onload=()=>{Q([Y.width,Y.height])},Y.onerror=()=>{Q(null)},Y.src=b});if(G){let Q=f/m,Y=G[0]/G[1];Q>Y?(y=f,A=f/Y):(A=m,y=m*Y)}}let C=1,M=1,D=(y||f)*d,L=(A||m)*d;if(D>a||L>a){let G=null,Q=null;D>a?G=a:L>a&&(Q=a);let Y=Df(D,L,G,Q);C=Y[0]/D,M=Y[1]/L,D=Y[0],L=Y[1]}u.width=D,u.height=L;let k=D/d,V=L/d;u.style.width=k+"px",u.style.height=V+"px";let B=u.getContext("2d");B.scale(d,d),t||await this.drawBackgroundToCanvas(B,k,V);let _=(y>0?(y-f)/2:0)*C,S=(A>0?(A-m)/2:0)*M;i?B.drawImage(c,i.left,i.top,i.width,i.height,g*C+_,v*M+S,i.width*C,i.height*M):B.drawImage(c,_,S,f*C,m*M),l(u.toDataURL(s))}catch(u){h(u)}},c.onerror=u=>{h(u)},c.src=e})}drawBackgroundToCanvas(e,t,i){return new Promise((n,s)=>{let{backgroundColor:a="#fff",backgroundImage:o,backgroundRepeat:l="no-repeat",backgroundPosition:h="center center",backgroundSize:c="cover"}=this.mindMap.themeConfig;e.save(),e.rect(0,0,t,i),e.fillStyle=a,e.fill(),e.restore(),o&&o!=="none"?(e.save(),fx(e,t,i,o,{backgroundRepeat:l,backgroundPosition:h,backgroundSize:c},u=>{u?s(u):n(),e.restore()})):n()})}drawBackgroundToSvg(e){return new Promise(async t=>{let{backgroundColor:i="#fff",backgroundImage:n,backgroundRepeat:s="repeat"}=this.mindMap.themeConfig;if(e.css("background-color",i),n&&n!=="none"){let a=await bu(n);e.css("background-image",`url(${a})`),e.css("background-repeat",s),t()}else t()})}async _image(e,t,i=!1,n=null,s=!1){this.mindMap.renderer.textEdit.hideEditTextBox(),this.handleNodeExport(n);let{str:a,clipData:o}=await this.getSvgData(n),l=await this.fixSvgStrAndToBlob(a);return await this.svgToPng(l,i,o,s,e)}async png(...e){return await this._image("image/png",...e)}async jpg(...e){return await this._image("image/jpg",...e)}handleNodeExport(e){if(e&&e.getData("isActive")){e.deactivate();let{alwaysShowExpandBtn:t,notShowExpandBtn:i}=this.mindMap.opt;!t&&!i&&e.getData("expand")&&e.removeExpandBtn()}}async pdf(e,t=!1,i=!1){if(!this.mindMap.doExportPDF)throw new Error("\u8BF7\u6CE8\u518CExportPDF\u63D2\u4EF6");let n=await this.png(e,t,null,i);return await this.mindMap.doExportPDF.pdf(n)}async xmind(e){if(!this.mindMap.doExportXMind)throw new Error("\u8BF7\u6CE8\u518CExportXMind\u63D2\u4EF6");let t=this.mindMap.getData(),i=await this.mindMap.doExportXMind.xmind(t,e);return await uo(i)}async svg(e){this.mindMap.renderer.textEdit.hideEditTextBox();let{node:t}=await this.getSvgData();t.first().before(Jt(`${e}`)),await this.drawBackgroundToSvg(t);let i=t.svg();return await this.fixSvgStrAndToBlob(i)}async fixSvgStrAndToBlob(e){e=y9(e),e=D9(e);let t=new Blob([e],{type:"image/svg+xml"});return await uo(t)}async json(e,t=!0){let i=this.mindMap.getData(t),n=JSON.stringify(i),s=new Blob([n]);return await uo(s)}async smm(e,t){return await this.json(e,t)}async md(){let e=this.mindMap.getData(),t=Wf(e),i=new Blob([t]);return await uo(i)}async txt(){let e=this.mindMap.getData(),t=mx(e),i=new Blob([t]);return await uo(i)}};Yf.instanceName="doExport";var px=Yf;var gx=r=>{r=Ol(r);let e={},t={};r.forEach(n=>{let s=n.parent;if(s){let a=s.uid;t[a]=s;let o=n.getIndexInBrothers(),l={node:n,index:o};e[a]?e[a].find(h=>h.index===l.index)||e[a].push(l):e[a]=[l]}});let i=[];return Object.keys(e).forEach(n=>{let s=e[n],a=t[n];if(s.length>1){let o=s.map(d=>d.index).sort((d,f)=>d-f),l=o[0],h=o[o.length-1],c=-1,u=-1;for(let d=l;d<=h;d++)o.includes(d)?(c===-1&&(c=d),u=d):(c!==-1&&u!==-1&&i.push({node:a,range:[c,u]}),c=-1,u=-1);c!==-1&&u!==-1&&i.push({node:a,range:[c,u]})}else i.push({node:a,range:[s[0].index,s[0].index]})}),i},vx=r=>{let e=r.children;if(!e||e.length<=0)return;let t=[],i={};return e.forEach((n,s)=>{let a=n.getData("outerFrame");if(!a)return;let o=a.groupId;o?(i[o]||(i[o]=[]),i[o].push({node:n,index:s})):t.push({nodeList:[n],range:[s,s]})}),Object.keys(i).forEach(n=>{let s=i[n];t.push({nodeList:s.map(a=>a.node),range:[s[0].index,s[s.length-1].index]})}),t};var mq="outer-frame-text-edit-warp";function pq(r,e,t){let i=this.draw.group(),n=()=>{(!this.activeOuterFrame||this.activeOuterFrame.el!==r)&&this.setActiveOuterFrame(r,e,t,i)};return i.click(s=>{s.stopPropagation(),n()}),i.on("dblclick",s=>{s.stopPropagation(),n(),this.showEditTextBox(i)}),i}function gq(r){this.mindMap.emit("before_show_text_edit"),this.mindMap.keyCommand.addShortcut("Enter",()=>{this.hideEditTextBox()}),this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.className=mq,this.textEditNode.style.cssText=` + position: fixed; + box-sizing: border-box; + background-color: #fff; + box-shadow: 0 0 20px rgba(0,0,0,.5); + outline: none; + word-break: break-all; + `,this.textEditNode.setAttribute("contenteditable",!0),this.textEditNode.addEventListener("keyup",m=>{m.stopPropagation()}),this.textEditNode.addEventListener("click",m=>{m.stopPropagation()}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.textEditNode));let{node:e,range:t}=this.activeOuterFrame,i=this.getStyle(this.getNodeRangeFirstNode(e,t)),[n,s,a,o]=i.textFillPadding,{defaultOuterFrameText:l,nodeTextEditZIndex:h}=this.mindMap.opt,c=this.mindMap.view.scale,u=this.getText(this.getNodeRangeFirstNode(e,t)),d=(u||l).split(/\n/gim);this.textEditNode.style.padding=`${n}px ${s}px ${a}px ${o}px`,this.textEditNode.style.fontFamily=i.fontFamily,this.textEditNode.style.fontSize=i.fontSize*c+"px",this.textEditNode.style.fontWeight=i.fontWeight,this.textEditNode.style.fontStyle=i.fontStyle,this.textEditNode.style.lineHeight=d.length>1?i.lineHeight:"normal",this.textEditNode.style.zIndex=h,this.textEditNode.innerHTML=d.join("
"),this.textEditNode.style.display="block",this.updateTextEditBoxPos(r),this.setIsShowTextEdit(!0),u===""||u===l?ah(this.textEditNode):sh(this.textEditNode)}function vq(r){this.showTextEdit=r,r?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}function yq(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}function xq(){this.hideEditTextBox()}function bq(r){let e=r.node.getBoundingClientRect();this.textEditNode&&(this.textEditNode.style.minWidth=`${e.width}px`,this.textEditNode.style.minHeight=`${e.height}px`,this.textEditNode.style.left=`${e.left}px`,this.textEditNode.style.top=`${e.top}px`)}function wq(){if(!this.showTextEdit)return;let{el:r,textNode:e,node:t,range:i}=this.activeOuterFrame,n=nh(this.textEditNode.innerHTML);n=n===this.mindMap.opt.defaultOuterFrameText?"":n,this.updateActiveOuterFrame({text:n}),this.textEditNode.style.display="none",this.textEditNode.innerHTML="",this.setIsShowTextEdit(!1),this.renderText(n,r,e,t,i),this.mindMap.emit("hide_text_edit")}function Aq(r,e,t,i,n){if(!r)return;t.clear();let s=new Tr;t.add(s);let a=this.getStyle(this.getNodeRangeFirstNode(i,n)),[o,l,h,c]=a.textFillPadding,u=r.replace(/\n$/g,"").split(/\n/gim),d=new Qt;u.forEach((b,C)=>{b===""&&(b="\uFEFF");let M=new Zt().text(b);M.y(a.fontSize*a.lineHeight*C),this.styleText(M,a),d.add(M)}),t.add(d);let{width:f,height:m}=t.bbox(),g=f+o+h,v=m+l+c;s.size(g,v).x(0).dy(0),this.styleTextShape(s,a);let y=0;switch(a.textAlign){case"left":y=e.x();break;case"center":y=e.x()+e.width()/2-g/2;break;case"right":y=e.x()+e.width()-g;break;default:break}let A=e.y()-v;s.x(y),s.y(A),d.x(y+o),d.y(A+l)}function Eq(r,e){r.fill({color:e.textFill}).radius(e.textFillRadius)}function Cq(r,e){r.fill({color:e.color}).css({"font-family":e.fontFamily,"font-size":e.fontSize+"px","font-weight":e.fontWeight,"font-style":e.fontStyle})}function Sq(r){let e=r.getData("outerFrame");return e&&e.text?e.text:""}var Z6={getText:Sq,createText:pq,styleTextShape:Eq,styleText:Cq,onScale:xq,showEditTextBox:gq,setIsShowTextEdit:vq,removeTextEditEl:yq,hideEditTextBox:wq,updateTextEditBoxPos:bq,renderText:Aq};var $6={radius:5,strokeWidth:2,strokeColor:"#0984e3",strokeDasharray:"5,5",fill:"rgba(9,132,227,0.05)",fontSize:14,fontFamily:"\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei",fontWeight:"normal",fontStyle:"normal",color:"#fff",lineHeight:1.2,textFill:"#0984e3",textFillRadius:5,textFillPadding:[5,5,5,5],textAlign:"left"},J6="outer-frame-text-edit-warp",zu=class{constructor(e={}){this.mindMap=e.mindMap,this.draw=null,this.createDrawContainer(),this.isNotRenderOuterFrames=!1,this.textNodeList=[],this.outerFrameElList=[],this.activeOuterFrame=null,this.textEditNode=null,this.showTextEdit=!1,Object.keys(Z6).forEach(t=>{this[t]=Z6[t].bind(this)}),this.mindMap.addEditNodeClass(J6),this.bindEvent()}createDrawContainer(){this.draw=this.mindMap.draw.group(),this.draw.addClass("smm-outer-frame-container"),this.draw.back(),this.draw.forward()}bindEvent(){this.renderOuterFrames=this.renderOuterFrames.bind(this),this.mindMap.on("node_tree_render_end",this.renderOuterFrames),this.mindMap.on("data_change",this.renderOuterFrames),this.clearActiveOuterFrame=this.clearActiveOuterFrame.bind(this),this.mindMap.on("draw_click",this.clearActiveOuterFrame),this.mindMap.on("node_click",this.clearActiveOuterFrame),this.mindMap.on("scale",this.onScale),this.onBeforeDestroy=this.onBeforeDestroy.bind(this),this.mindMap.on("beforeDestroy",this.onBeforeDestroy),this.addOuterFrame=this.addOuterFrame.bind(this),this.mindMap.command.add("ADD_OUTER_FRAME",this.addOuterFrame),this.removeActiveOuterFrame=this.removeActiveOuterFrame.bind(this),this.mindMap.keyCommand.addShortcut("Del|Backspace",this.removeActiveOuterFrame)}unBindEvent(){this.mindMap.off("node_tree_render_end",this.renderOuterFrames),this.mindMap.off("data_change",this.renderOuterFrames),this.mindMap.off("draw_click",this.clearActiveOuterFrame),this.mindMap.off("node_click",this.clearActiveOuterFrame),this.mindMap.off("scale",this.onScale),this.mindMap.off("beforeDestroy",this.onBeforeDestroy),this.mindMap.command.remove("ADD_OUTER_FRAME",this.addOuterFrame),this.mindMap.keyCommand.removeShortcut("Del|Backspace",this.removeActiveOuterFrame)}onBeforeDestroy(){this.hideEditTextBox(),this.removeTextEditEl()}addOuterFrame(e,t={}){e=Ui(e);let i=this.mindMap.renderer.activeNodeList;if(i.length<=0&&e.length<=0)return;let n=e.length>0?e:i;n=n.filter(a=>!a.isRoot&&!a.isGeneralization),gx(n).forEach(({node:a,range:o})=>{let l=a.children.slice(o[0],o[1]+1),h=$r();l.forEach(c=>{let u=c.getData("outerFrame");u?u={...u,...t,groupId:h}:u={...t,groupId:h},this.mindMap.execCommand("SET_NODE_DATA",c,{outerFrame:u})})})}getActiveOuterFrame(){return this.activeOuterFrame?{...this.activeOuterFrame}:null}removeActiveOuterFrame(){if(!this.activeOuterFrame)return;let{node:e,range:t}=this.activeOuterFrame;this.getRangeNodeList(e,t).forEach(i=>{this.mindMap.execCommand("SET_NODE_DATA",i,{outerFrame:null})}),this.mindMap.emit("outer_frame_delete")}removeActiveOuterFrameText(){this.updateActiveOuterFrame({text:""})}updateActiveOuterFrame(e={}){if(!this.activeOuterFrame)return;this.isNotRenderOuterFrames=!0;let{el:t,node:i,range:n}=this.activeOuterFrame,s="";this.getRangeNodeList(i,n).forEach(a=>{let l={...a.getData("outerFrame"),...e};s=l.strokeDasharray,this.mindMap.execCommand("SET_NODE_DATA",a,{outerFrame:l})}),t.cacheStyle={dasharray:s},this.updateOuterFrameStyle()}updateOuterFrameStyle(){let{el:e,node:t,range:i,textNode:n}=this.activeOuterFrame,s=this.getNodeRangeFirstNode(t,i),a=this.getStyle(s);this.styleOuterFrame(e,{...a,strokeDasharray:"none"});let o=this.getText(s);this.renderText(o,e,n,t,i)}getRangeNodeList(e,t){return e.children.slice(t[0],t[1]+1).filter(i=>i.getData("outerFrame"))}getNodeRangeFirstNode(e,t){return e.children[t[0]]}renderOuterFrames(){if(this.isNotRenderOuterFrames){this.isNotRenderOuterFrames=!1;return}this.clearActiveOuterFrame(),this.clearTextNodes(),this.clearOuterFrameElList();let e=this.mindMap.renderer.root;if(!e)return;let t=this.mindMap.draw.transform(),{outerFramePaddingX:i,outerFramePaddingY:n}=this.mindMap.opt;it(e,null,s=>{if(!s)return;let a=vx(s);a&&a.length>0&&a.forEach(({nodeList:o,range:l})=>{if(l[0]===-1||l[1]===-1)return;let{left:h,top:c,width:u,height:d}=O9(o);if(!Number.isFinite(h)||!Number.isFinite(c)||!Number.isFinite(u)||!Number.isFinite(d))return;let f=this.createOuterFrameEl((h-i-this.mindMap.elRect.left-t.translateX)/t.scaleX,(c-n-this.mindMap.elRect.top-t.translateY)/t.scaleY,(u+i*2)/t.scaleX,(d+n*2)/t.scaleY,this.getStyle(o[0])),m=this.createText(f,s,l);this.textNodeList.push(m),this.renderText(this.getText(o[0]),f,m,s,l),f.on("click",g=>{g.stopPropagation(),this.setActiveOuterFrame(f,s,l,m)})})},()=>{},!0,0)}setActiveOuterFrame(e,t,i,n){this.mindMap.execCommand("CLEAR_ACTIVE_NODE"),this.clearActiveOuterFrame(),this.activeOuterFrame={el:e,node:t,range:i,textNode:n},e.stroke({dasharray:"none"}),this.getText(this.getNodeRangeFirstNode(t,i))||this.renderText(this.mindMap.opt.defaultOuterFrameText,e,n,t,i),this.mindMap.emit("outer_frame_active",e,t,i)}clearActiveOuterFrame(){if(!this.activeOuterFrame)return;let{el:e,textNode:t,node:i,range:n}=this.activeOuterFrame;e.stroke({dasharray:e.cacheStyle.dasharray||$6.strokeDasharray}),this.hideEditTextBox(),this.getText(this.getNodeRangeFirstNode(i,n))||t.clear(),this.activeOuterFrame=null,this.mindMap.emit("outer_frame_deactivate")}getStyle(e){return{...$6,...e.getData("outerFrame")||{}}}createOuterFrameEl(e,t,i,n,s={}){let a=this.draw.rect().size(i,n).x(e).y(t);return this.styleOuterFrame(a,s),a.cacheStyle={dasharray:s.strokeDasharray},this.outerFrameElList.push(a),a}styleOuterFrame(e,t){e.radius(t.radius).stroke({width:t.strokeWidth,color:t.strokeColor,dasharray:t.strokeDasharray}).fill({color:t.fill})}clearTextNodes(){this.textNodeList.forEach(e=>{e.remove()})}clearOuterFrameElList(){this.outerFrameElList.forEach(e=>{e.remove()}),this.outerFrameElList=[],this.activeOuterFrame=null}beforePluginRemove(){this.mindMap.deleteEditNodeClass(J6),this.unBindEvent()}beforePluginDestroy(){this.mindMap.deleteEditNodeClass(J6),this.unBindEvent()}};zu.instanceName="outerFrame";zu.defaultStyle=$6;var yx=zu;var Vf=class{constructor(e){this.mindMap=e.mindMap,this.isMousedown=!1,this.mousedownPos={x:0,y:0},this.startViewPos={x:0,y:0},this.currentState=null}calculationMiniMap(e,t){let{svg:i,rect:n,origWidth:s,origHeight:a,scaleX:o,scaleY:l}=this.mindMap.getSvgData({ignoreWatermark:!0}),h=this.mindMap.elRect;n.x-=h.left,n.x2-=h.left,n.y-=h.top,n.y2-=h.top;let c=e/t,u=0,d=0;c>n.ratio?(d=t,u=n.ratio*d):(u=e,d=u/n.ratio);let f=u/n.width,m=(e-u)/2,g=(t-d)/2,v=n.width*o,y=n.height*l,A=(v-n.width)/2,b=(y-n.height)/2,C=n.x-A,M=n.x2+A,D=n.y-b,L=n.y2+b,k={left:0,top:0,right:0,bottom:0};k.left=Math.max(0,-C/v*u)+m,k.right=Math.max(0,(M-s)/v*u)+m,k.top=Math.max(0,-D/y*d)+g,k.bottom=Math.max(0,(L-a)/y*d)+g,k.top>g+d&&(k.top=g+d),k.left>m+u&&(k.left=m+u),Object.keys(k).forEach(B=>{k[B]=k[B]+"px"}),this.removeNodeContent(i);let V=i.svg();return this.currentState={viewBoxStyle:{...k},miniMapBoxScale:f,miniMapBoxLeft:m,miniMapBoxTop:g},{getImgUrl:async B=>{let _=await this.mindMap.doExport.fixSvgStrAndToBlob(V);B(_)},svgHTML:V,viewBoxStyle:k,miniMapBoxScale:f,miniMapBoxLeft:m,miniMapBoxTop:g}}removeNodeContent(e){if(e.hasClass("smm-node")){let i=e.findOne(".smm-node-shape"),n=i.attr("fill");(wu(n)||i6(n))&&i.attr("fill",Ff(this.mindMap.themeConfig)),e.clear(),e.add(i);return}let t=e.children();t&&t.length>0&&t.forEach(i=>{this.removeNodeContent(i)})}onMousedown(e){this.isMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let t=this.mindMap.view.getTransformData();this.startViewPos={x:t.state.x,y:t.state.y}}onMousemove(e,t=5){if(!this.isMousedown||this.isViewBoxMousedown)return;let i=e.clientX-this.mousedownPos.x,n=e.clientY-this.mousedownPos.y;this.mindMap.view.translateXTo(i*t+this.startViewPos.x),this.mindMap.view.translateYTo(n*t+this.startViewPos.y)}onMouseup(){this.isMousedown=!1,this.isViewBoxMousedown=!1}onViewBoxMousedown(e){this.isViewBoxMousedown=!0,this.mousedownPos={x:e.clientX,y:e.clientY};let t=this.mindMap.view.getTransformData();this.startViewPos={x:t.state.x,y:t.state.y}}onViewBoxMousemove(e){if(!this.isViewBoxMousedown||!this.currentState||this.isMousedown)return;let t=e.clientX-this.mousedownPos.x,i=e.clientY-this.mousedownPos.y,{viewBoxStyle:n,miniMapBoxScale:s,miniMapBoxLeft:a,miniMapBoxTop:o}=this.currentState,l=Math.max(a,Number.parseFloat(n.left)+t),h=Math.max(a,Number.parseFloat(n.right)-t),c=Math.max(o,Number.parseFloat(n.top)+i),u=Math.max(o,Number.parseFloat(n.bottom)-i);this.mindMap.emit("mini_map_view_box_position_change",{left:l+"px",right:h+"px",top:c+"px",bottom:u+"px"}),this.mindMap.view.translateXTo(-t/s+this.startViewPos.x),this.mindMap.view.translateYTo(-i/s+this.startViewPos.y)}};Vf.instanceName="miniMap";var xx=Vf;var $e="https://mindmap.ethanliang.top/dist/img/",bx=` + + + + +
\u7ECF\u5178\u4E3B\u9898
+
+
+
+
+
\u8111\u56FE\u7ECF\u517815
+
\u84DD\u7070\u8272\u914D\u8272\u7ECF\u5178
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u517814
+
\u5706\u5F62\u8282\u70B9\u3001\u9EC4\u8272\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u517813
+
\u9EC4\u84DD\u767D\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u517812
+
\u7EFF\u767D\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u517811
+
\u84DD\u9EC4\u767D\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u517810
+
\u7070\u9EC4\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51789
+
\u9EC4\u8272\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51788
+
\u84DD\u7EFF\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51787
+
\u7EA2\u84DD\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51786
+
\u9ED1\u9EC4\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51785
+
\u7D2B\u7EFF\u4E3B\u9898
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51784
+
\u7070\u7EFF\u4E3B\u9898
+
+
+
+
+
+
\u4ED9\u4EBA\u638C
+
\u7EFF\u8272\u53EF\u7231
+
+
+
+
+
+
\u83AB\u5170\u8FEA
+
\u7EA2\u9152\u7EA2\u8272
+
+
+
+
+
+
\u6D77\u84DD\u7EBF
+
\u5927\u6D77\u6211\u6765\u4E86
+
+
+
+
+
+
\u73AB\u7470
+
\u7231\u7684\u70ED\u70C8
+
+
+
+
+
+
\u67E0\u6AAC\u6C14\u6CE1
+
\u5C0F\u6E05\u65B0
+
+
+
+
+
+
\u6D45\u6D77
+
\u53EF\u60DC\u6CA1\u6709\u6C99\u6EE9
+
+
+
+
+
+
\u5965\u5229\u5965
+
\u626D\u4E00\u626D\uFF0C\u6CE1\u4E00\u6CE1
+
+
+
+
+
+
\u79CB\u5929
+
\u53C8\u662F\u4E00\u5E74\u79CB\u51C9\uFF0C\u4EBA\u751F\u51E0\u5EA6\u660F\u9EC4
+
+
+
+
+
+
\u725B\u6CB9\u679C
+
\u6CA1\u5403\u8FC7\u3001\u597D\u50CF\u5F88\u8D35
+
+
+
+
+
+
\u7EA2\u8272\u7CBE\u795E
+
\u6211\u4EEC\u90FD\u662F\u5171\u4EA7\u4E3B\u4E49\u63A5\u73ED\u4EBA
+
+
+
+
+
+
\u5496\u5561
+
\u5496\u5561\u6E10\u6E10\u53D8\u6D53\uFF0C\u4F60\u53C8\u8FF7\u4EBA\u53C8\u7F8E
+
+
+
+
+
+
\u8BFE\u7A0B\u7EFF
+
\u6211\u4E5F\u4E0D\u77E5\u9053\u4E3A\u4EC0\u4E48\u53EB\u8FD9
+
+
+
+
+
+
\u7B80\u7EA6\u9ED1
+
\u9ED1\u8272\u5E84\u91CD\u4E14\u4F18\u96C5
+
+
+
+
+
+
\u5C0F\u9EC4\u4EBA
+
\u5976\u7238\uFF0C\u662F\u4F60\u5417\u5976\u7238
+
+
+
+
+
+
\u6E05\u65B0\u7EFF\u53F6
+
\u6625\u5929\u5230\u4E86
+
+
+
+
+
+
\u6D3B\u529B\u6A59
+
\u6BCF\u5929\u90FD\u8981\u52A0\u6CB9\u6211
+
+
+
+
+
+
\u91D1\u8272vip
+
\u55EF\uFF0C\u6715\u8BB8\u4E86
+
+
+
+ + +
\u6DF1\u8272\u4E3B\u9898
+
+
+
+
+
\u6697\u82727
+
\u6697\u82727\u4E3B\u9898\uFF0C\u5E26\u6765\u795E\u79D8\u6DF1\u6C89\u7684\u89C6\u89C9\u611F\u53D7\u3002
+
+
+
+
+
+
\u6697\u82726
+
\u6697\u82726\u4E3B\u9898\uFF0C\u5C55\u73B0\u4F4E\u8C03\u800C\u4F18\u96C5\u7684\u6C1B\u56F4\u3002
+
+
+
+
+
+
\u6697\u82725
+
\u6697\u82725\u4E3B\u9898\uFF0C\u8425\u9020\u51FA\u9759\u8C27\u800C\u6DF1\u9083\u7684\u73AF\u5883\u3002
+
+
+
+
+
+
\u6697\u82724
+
\u6697\u82724\u4E3B\u9898\uFF0C\u4F20\u9012\u51FA\u6C89\u7A33\u800C\u5185\u655B\u7684\u683C\u8C03\u3002
+
+
+
+
+
+
\u6697\u82723
+
\u6697\u82723\u4E3B\u9898\uFF0C\u51F8\u663E\u51FA\u72EC\u7279\u7684\u6697\u9ED1\u9B45\u529B\u3002
+
+
+
+
+
+
\u6697\u82722
+
\u6697\u82722\u4E3B\u9898\uFF0C\u6253\u9020\u51FA\u7B80\u6D01\u800C\u51B7\u5CFB\u7684\u89C6\u89C9\u6548\u679C\u3002
+
+
+
+
+
+
\u6697\u8272
+
\u6697\u8272\u4E3B\u9898\uFF0C\u8BE0\u91CA\u7EAF\u7CB9\u7684\u9ED1\u6697\u7F8E\u5B66\u3002
+
+
+
+
+
+
\u6697\u591C\u51B0\u5203
+
\u6697\u591C\u51B0\u5203\u4E3B\u9898\uFF0C\u4EFF\u4F5B\u80FD\u611F\u53D7\u5230\u4E1D\u4E1D\u5BD2\u610F\u7684\u51CC\u5389\u98CE\u683C\u3002
+
+
+
+
+
+
\u9713\u8679\u706F
+
\u9713\u8679\u706F\u4E3B\u9898\uFF0C\u5145\u6EE1\u79D1\u6280\u611F\u548C\u65F6\u5C1A\u7684\u9713\u8679\u706F\u5149\u6548\u679C\u3002
+
+
+
+
+
\u6A59\u6C41
+
\u6A59\u6C41\u4E3B\u9898\uFF0C\u6D0B\u6EA2\u7740\u6D3B\u529B\u548C\u6E05\u65B0\u7684\u6A59\u8272\u8C03\u3002
+
+
+
+
+
\u9ED1\u91D1
+
\u9ED1\u91D1\u4E3B\u9898\uFF0C\u5F70\u663E\u5962\u534E\u4E0E\u9AD8\u8D35\u7684\u8D28\u611F\u3002
+
+
+
+
+
+
\u6DF1\u591C\u529E\u516C\u5BA4
+
\u6DF1\u591C\u529E\u516C\u5BA4\u4E3B\u9898\uFF0C\u5C55\u73B0\u5B89\u9759\u4E13\u6CE8\u7684\u529E\u516C\u6C1B\u56F4\u3002
+
+
+
+
+
+
\u9ED1\u8272\u5E7D\u9ED8
+
\u9ED1\u8272\u5E7D\u9ED8\u4E3B\u9898\uFF0C\u5E26\u6709\u4E9B\u8BB8\u8BD9\u8C10\u7684\u6697\u9ED1\u98CE\u683C\u3002
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u5178
+
\u8111\u56FE\u7ECF\u5178\u4E3B\u9898\uFF0C\u7ECF\u5178\u7684\u98CE\u683C\u9002\u7528\u4E8E\u9AD8\u6548\u7684\u601D\u7EF4\u5BFC\u56FE\u573A\u666F\u3002
+
+
+
+ + +
\u6734\u7D20\u4E3B\u9898
+
+
+
+
+
\u8111\u56FE\u7ECF\u51783
+
\u8111\u56FE\u7ECF\u51783\u4E3B\u9898\uFF0C\u72EC\u7279\u7684\u98CE\u683C\u4E3A\u601D\u7EF4\u5BFC\u56FE\u589E\u6DFB\u65B0\u7684\u89C6\u89C9\u4F53\u9A8C\u3002
+
+
+
+
+
+
\u8111\u56FE\u7ECF\u51782
+
\u8111\u56FE\u7ECF\u51782\u4E3B\u9898\uFF0C\u7B80\u6D01\u7684\u8BBE\u8BA1\u8BA9\u601D\u7EF4\u5BFC\u56FE\u66F4\u6613\u9605\u8BFB\u548C\u7406\u89E3\u3002
+
+
+
+
+
+
\u8584\u8377
+
\u8584\u8377\u4E3B\u9898\uFF0C\u6E05\u65B0\u7684\u8272\u8C03\u4E3A\u601D\u7EF4\u5BFC\u56FE\u5E26\u6765\u51C9\u723D\u7684\u611F\u89C9\u3002
+
+
+
+
+
+
\u7C89\u7EA2\u8461\u8404
+
\u7C89\u7EA2\u8461\u8404\u4E3B\u9898\uFF0C\u751C\u7F8E\u7684\u8272\u8C03\u4F7F\u601D\u7EF4\u5BFC\u56FE\u5145\u6EE1\u6D3B\u529B\u3002
+
+
+
+
+
+
\u6D6A\u6F2B\u7D2B
+
\u6D6A\u6F2B\u7D2B\u4E3B\u9898\uFF0C\u4F18\u96C5\u7684\u7D2B\u8272\u8C03\u8425\u9020\u51FA\u6D6A\u6F2B\u7684\u601D\u7EF4\u5BFC\u56FE\u6C1B\u56F4\u3002
+
+
+
+
+
+
\u6E05\u65B0\u7EA2
+
\u6E05\u65B0\u7EA2\u4E3B\u9898\uFF0C\u660E\u4EAE\u7684\u7EA2\u8272\u8BA9\u601D\u7EF4\u5BFC\u56FE\u66F4\u9192\u76EE\u3002
+
+
+
+
+
+
\u6E05\u65B0\u7EFF
+
\u6E05\u65B0\u7EFF\u4E3B\u9898\uFF0C\u5145\u6EE1\u751F\u673A\u7684\u7EFF\u8272\u8C03\u4F7F\u601D\u7EF4\u5BFC\u56FE\u5BCC\u6709\u6D3B\u529B\u3002
+
+
+
+
+
+
\u6CE5\u571F\u9EC4
+
\u6CE5\u571F\u9EC4\u4E3B\u9898\uFF0C\u6E29\u6696\u7684\u9EC4\u8272\u8C03\u4E3A\u601D\u7EF4\u5BFC\u56FE\u5E26\u6765\u8D28\u6734\u7684\u611F\u89C9\u3002
+
+
+
+
+
+
\u8111\u6B8B\u7C89
+
\u8111\u6B8B\u7C89\u4E3B\u9898\uFF0C\u72EC\u7279\u7684\u7C89\u8272\u8C03\u8BA9\u601D\u7EF4\u5BFC\u56FE\u522B\u5177\u4E00\u683C\u3002
+
+
+
+
+
+
\u5929\u7A7A\u84DD
+
\u5929\u7A7A\u84DD\u4E3B\u9898\uFF0C\u7EAF\u51C0\u7684\u84DD\u8272\u8C03\u8BA9\u601D\u7EF4\u5BFC\u56FE\u4EFF\u4F5B\u7F6E\u8EAB\u4E8E\u84DD\u5929\u4E4B\u4E0B\u3002
+
+
+
+
+
+
\u7ECF\u5178\u84DD
+
\u7ECF\u5178\u84DD\u4E3B\u9898\uFF0C\u6C89\u7A33\u7684\u84DD\u8272\u4F7F\u601D\u7EF4\u5BFC\u56FE\u66F4\u5177\u4E13\u4E1A\u611F\u3002
+
+
+
+
+
+
\u7ECF\u5178\u7EFF
+
\u7ECF\u5178\u7EFF\u4E3B\u9898\uFF0C\u7ECF\u5178\u7684\u7EFF\u8272\u8C03\u8D4B\u4E88\u601D\u7EF4\u5BFC\u56FE\u81EA\u7136\u7684\u6C14\u606F\u3002
+
+
+
+
+
+
\u5929\u6E05\u7EFF
+
\u5929\u6E05\u7EFF\u4E3B\u9898\uFF0C\u6E05\u65B0\u7684\u7EFF\u8272\u8425\u9020\u51FA\u5B81\u9759\u7684\u601D\u7EF4\u5BFC\u56FE\u73AF\u5883\u3002
+
+
+
+
+
+
\u9ED8\u8BA4\u4E3B\u9898
+
\u9ED8\u8BA4\u4E3B\u9898\uFF0C\u7B80\u6D01\u901A\u7528\u7684\u98CE\u683C\u9002\u5408\u5404\u79CD\u601D\u7EF4\u5BFC\u56FE\u573A\u666F\u3002
+
+
+
+ +`;var un="https://mindmap.ethanliang.top/dist/img/",wx=` +
\u7ED3\u6784\u56FE\u7247
+ +
+ +
+
+
+
\u903B\u8F91\u56FE\uFF08\u53F3\u8FB9\uFF09
+
\u6700\u5E38\u7528\u7684\u7ED3\u6784
+
+
+ + +
+
+
+
\u903B\u8F91\u56FE\uFF08\u5DE6\u8FB9\uFF09
+
\u671D\u5DE6\u7684\u903B\u8F91\u56FE
+
+
+
+
+
+
\u601D\u7EF4\u5BFC\u56FE
+
\u53D1\u6563\u5F0F\u601D\u7EF4
+
+
+ +
+
+
+
\u7EC4\u7EC7\u7ED3\u6784\u56FE
+
\u5C55\u793A\u7EC4\u7EC7\u7ED3\u6784
+
+
+ +
+
+
+
\u76EE\u5F55\u7ED3\u6784\u56FE
+
\u5C55\u793A\u76EE\u5F55\u7ED3\u6784
+
+
+
+
+
+
\u65F6\u95F4\u8F74\u56FE
+
\u5C55\u793A\u65F6\u95F4\u8F74
+
+
+
+
+
+
\u65F6\u95F4\u8F74\u56FE
+
\u5C55\u793A\u65F6\u95F4\u8F74
+
+
+
+
+
+
\u65F6\u95F4\u8F74\u56FE
+
\u5C55\u793A\u65F6\u95F4\u8F74
+
+
+
+
+
+
\u65F6\u95F4\u8F74\u56FE
+
\u5C55\u793A\u65F6\u95F4\u8F74
+
+
+
+
+
+
\u65F6\u95F4\u8F74\u56FE
+
\u5C55\u793A\u65F6\u95F4\u8F74
+
+
+
+
+
+
\u9C7C\u9AA8\u56FE
+
\u50CF\u9C7C\u9AA8\u5934\u4E00\u6837\u6392\u5217
+
+
+
+
+
+
\u9C7C\u9AA8\u56FE
+
\u50CF\u9C7C\u9AA8\u5934\u4E00\u6837\u6392\u5217
+
+
+ +
+`;var Ax=` + + +
+
\u6587\u5B57
+
+
+ + +
+ +
+ +
+
+ + +
+
+ + +
+
+ + + + +
+
+
+ + +
+
\u8FB9\u6846
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
\u80CC\u666F
+
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+
\u5F62\u72B6
+
+
+ + +
+ + + + + + + +
+
+ + +
+
\u7EBF\u6761
+
+
+ + +
+
+ + +
+
+ + +
+ + + + + + + + + +
+
+ + +
+
\u8282\u70B9\u5185\u8FB9\u8DDD
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ +`;var Ex=` + +
+

\u80CC\u666F

+
+
    +
  • \u989C\u8272
  • +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+
+
+ + +
+

\u8FDE\u7EBF

+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ +
+ + +
+
+

\u5F69\u8679\u7EBF\u6761

+
+ +
+
+ + +
+

\u6982\u8981\u7684\u8FDE\u7EBF

+
+
+ + +
+
+ + +
+
+
+ + +
+

\u5173\u8054\u7EBF

+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+

\u5173\u8054\u7EBF\u6587\u5B57

+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+

\u8282\u70B9\u8FB9\u6846\u98CE\u683C

+
+ + +
+
+ + +
+

\u8282\u70B9\u5185\u8FB9\u8DDD

+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + +
+

\u56FE\u6807

+
+ +
+ +
+
+
+ + +
+

\u8282\u70B9\u5916\u8FB9\u8DDD

+
    +
  • \u4E8C\u7EA7\u8282\u70B9
  • +
  • \u4E09\u7EA7\u53CA\u4EE5\u4E0B\u8282\u70B9
  • +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + +`;var Cx=` +
\u56FE\u7247\u4E0A\u4F20
+ +
+ +
+
+
\u70B9\u51FB\u4E0A\u4F20\u56FE\u7247\u6216\u62D6\u653E\u81F3\u6B64\u5904
+
+ + +
+
+
\u70B9\u51FB\u6B64\u5904\uFF0C\u7136\u540ECtrl+V
+
+ + +
+ + +
+ + +
+ \u56FE\u7247\u9884\u89C8 +
\u56FE\u7247\u5C06\u663E\u793A\u5728\u8FD9\u91CC
+
+ + +
+
URL
+ +
+ + +
+ + + +
+
+`;var Sx=` +

\u8BBE\u7F6E

+
+ + +
+`;var Tx=` +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + +
+ ${Ax} +
+ + + + + +
+ + +`;var Mx=` +
+ +
+ + + + + + + + + + +
+ + + + + + +
+ + +
+ + +
+ + + +
+
+ + +
+
+ +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + \u6253\u5F00\u4FA7\u8FB9\u680F +
+
+ + \u5F00\u542F\u7985\u6A21\u5F0F +
+
+
+ + \u5C55\u5F00\u6240\u6709\u8282\u70B9 +
+
+ + \u6536\u8D77\u6240\u6709\u8282\u70B9 +
+
+
+ + \u5C55\u5F00\u5230\u4E00\u7EA7\u4E3B\u9898 +
+
+ + \u5C55\u5F00\u5230\u4E8C\u7EA7\u4E3B\u9898 +
+
+ + \u5C55\u5F00\u5230\u4E09\u7EA7\u4E3B\u9898 +
+
+
+ + \u9002\u5E94\u753B\u5E03 +
+
+ + +
+
+
+ + \u590D\u5236 +
+
+ + \u7C98\u8D34 +
+
+ + \u526A\u5207 +
+
+
+ + \u4E0A\u79FB\u8282\u70B9 +
+
+ + \u4E0B\u79FB\u8282\u70B9 +
+
+ + \u589E\u52A0\u5144\u5F1F\u8282\u70B9 +
+
+ + \u589E\u52A0\u5B50\u8282\u70B9 +
+
+ + \u589E\u52A0\u7236\u8282\u70B9 +
+
+ + \u5220\u9664\u8282\u70B9 +
+
+
+ + \u5220\u9664\u56FE\u6807 +
+ +
+ + + + + +
+ + + + + + + +
+ + +
+
\u5B8B\u4F53, SimSun, Songti SC
+
\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei
+
\u6977\u4F53, \u6977\u4F53_GB2312, SimKai, STKaiti
+
\u9ED1\u4F53, SimHei, Heiti SC
+
\u96B6\u4E66, SimLi
+
andale mono
+
arial, helvetica, sans-serif
+
arial black, avant garde
+
comic sans ms
+
impact, chicago
+
times new roman
+
sans-serif
+
serif
+
+
+ + +
+ + +
+
12
+
14
+
16
+
18
+
24
+
32
+
48
+
+
+ + + + + +
+`;var kx=[{name:"\u4F18\u5148\u7EA7\u56FE\u6807",type:"priority",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''}]},{name:"\u8FDB\u5EA6\u56FE\u6807",type:"progress",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''}]},{name:"\u8868\u60C5\u56FE\u6807",type:"expression",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''}]},{name:"\u6807\u8BB0\u56FE\u6807",type:"sign",list:[{name:"1",icon:''},{name:"2",icon:''},{name:"3",icon:''},{name:"4",icon:''},{name:"5",icon:''},{name:"6",icon:''},{name:"7",icon:''},{name:"8",icon:''},{name:"9",icon:''},{name:"10",icon:''},{name:"11",icon:''},{name:"12",icon:''},{name:"13",icon:''},{name:"14",icon:''},{name:"15",icon:''},{name:"16",icon:''},{name:"17",icon:''},{name:"18",icon:''},{name:"19",icon:''},{name:"20",icon:''},{name:"21",icon:''},{name:"22",icon:''},{name:"23",icon:''}]}];var Kf=class{constructor({mindMap:e}){this.mindMap=e,this.handleEl=null,this.isShowHandleEl=!1,this.node=null,this.img=null,this.rect=null,this.isMousedown=!1,this.mousedownDrawTransform=null,this.mousedownOffset={x:0,y:0},this.currentImgWidth=0,this.currentImgHeight=0,this.isAdjusted=!1,this.bindEvent()}bindEvent(){this.onNodeImgMouseleave=this.onNodeImgMouseleave.bind(this),this.onNodeImgMousemove=this.onNodeImgMousemove.bind(this),this.onMousemove=this.onMousemove.bind(this),this.onMouseup=this.onMouseup.bind(this),this.onRenderEnd=this.onRenderEnd.bind(this),this.onScale=this.onScale.bind(this),this.mindMap.on("node_img_mouseleave",this.onNodeImgMouseleave),this.mindMap.on("node_img_mousemove",this.onNodeImgMousemove),this.mindMap.on("mousemove",this.onMousemove),this.mindMap.on("mouseup",this.onMouseup),this.mindMap.on("node_mouseup",this.onMouseup),this.mindMap.on("node_tree_render_end",this.onRenderEnd),this.mindMap.on("scale",this.onScale)}unBindEvent(){this.mindMap.off("node_img_mouseleave",this.onNodeImgMouseleave),this.mindMap.off("node_img_mousemove",this.onNodeImgMousemove),this.mindMap.off("mousemove",this.onMousemove),this.mindMap.off("mouseup",this.onMouseup),this.mindMap.off("node_mouseup",this.onMouseup),this.mindMap.off("node_tree_render_end",this.onRenderEnd),this.mindMap.off("scale",this.onScale)}onScale(){this.node&&this.img&&this.isShowHandleEl&&(this.rect=this.img.rbox(),this.setHandleElRect())}onNodeImgMousemove(e,t){this.isMousedown||this.isAdjusted||this.mindMap.opt.readonly||this.node&&this.node.uid===e.uid&&this.isShowHandleEl||(this.node=e,this.img=t,this.rect=this.img.rbox(),this.showHandleEl())}onNodeImgMouseleave(){this.isMousedown||this.hideHandleEl()}hideNodeImage(){this.img&&this.img.hide()}showNodeImage(){this.img&&this.img.show()}showHandleEl(){this.isShowHandleEl||(this.handleEl||this.createResizeBtnEl(),this.setHandleElRect(),this.handleEl.style.display="block",this.isShowHandleEl=!0)}hideHandleEl(){this.isShowHandleEl&&(this.isShowHandleEl=!1,this.handleEl.style.display="none",this.handleEl.style.backgroundImage="",this.handleEl.style.width=0,this.handleEl.style.height=0,this.handleEl.style.left=0,this.handleEl.style.top=0)}setHandleElRect(){let{width:e,height:t,x:i,y:n}=this.rect;this.handleEl.style.left=`${i}px`,this.handleEl.style.top=`${n}px`,this.currentImgWidth=e,this.currentImgHeight=t,this.updateHandleElSize()}updateHandleElSize(){this.handleEl.style.width=`${this.currentImgWidth}px`,this.handleEl.style.height=`${this.currentImgHeight}px`}createResizeBtnEl(){let{imgResizeBtnSize:e,customResizeBtnInnerHTML:t,customDeleteBtnInnerHTML:i}=this.mindMap.opt;this.handleEl=document.createElement("div"),this.handleEl.style.cssText=` + pointer-events: none; + position: fixed; + display:none; + background-size: cover; + `,this.handleEl.className="node-img-handle";let n=document.createElement("div");n.innerHTML=t||vo.imgAdjust,n.style.cssText=` + position: absolute; + right: 0; + bottom: 0; + pointer-events: auto; + background-color: rgba(0, 0, 0, 0.3); + width: ${e}px; + height: ${e}px; + display: flex; + justify-content: center; + align-items: center; + cursor: nwse-resize; + `,n.className="node-image-resize",n.addEventListener("mouseenter",()=>{this.showHandleEl()}),n.addEventListener("mouseleave",()=>{this.isMousedown||this.hideHandleEl()}),n.addEventListener("mousedown",o=>{o.stopPropagation(),o.preventDefault(),this.onMousedown(o)}),n.addEventListener("mouseup",o=>{setTimeout(()=>{this.hideHandleEl(),this.isAdjusted=!1},0)}),n.addEventListener("click",o=>{o.stopPropagation()}),this.handleEl.appendChild(n);let s=document.createElement("div");this.handleEl.prepend(s),s.className="node-image-remove",s.innerHTML=i||vo.remove,s.style.cssText=` + position: absolute; + right: 0;top:0;color:#fff; + pointer-events: auto; + background-color: rgba(0, 0, 0, 0.3); + width: ${e}px; + height: ${e}px; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + `,s.addEventListener("mouseenter",o=>{this.showHandleEl()}),s.addEventListener("mouseleave",o=>{this.isMousedown||this.hideHandleEl()}),s.addEventListener("click",async o=>{let l=!1;typeof this.mindMap.opt.beforeDeleteNodeImg=="function"&&(l=await this.mindMap.opt.beforeDeleteNodeImg(this.node)),l||(this.mindMap.execCommand("SET_NODE_IMAGE",this.node,{url:null}),this.mindMap.emit("delete_node_img_from_delete_btn",this.node))}),(this.mindMap.opt.customInnerElsAppendTo||document.body).appendChild(this.handleEl)}onMousedown(e){this.mindMap.emit("node_img_adjust_btn_mousedown",this.node),this.isMousedown=!0,this.mousedownDrawTransform=this.mindMap.draw.transform(),this.hideNodeImage(),this.mousedownOffset.x=e.clientX-this.rect.x2,this.mousedownOffset.y=e.clientY-this.rect.y2,this.handleEl.style.backgroundImage=`url(${this.node.getData("image")})`}onMousemove(e){if(!this.isMousedown)return;e.preventDefault();let{scaleX:t,scaleY:i}=this.mousedownDrawTransform,{width:n,height:s}=this.node.getData("imageSize"),{minImgResizeWidth:a,minImgResizeHeight:o,maxImgResizeWidthInheritTheme:l,maxImgResizeWidth:h,maxImgResizeHeight:c}=this.mindMap.opt,u=a/o,d=n/s;u>d?o=a/d:a=o*d;let f,m;l?(f=this.mindMap.getThemeConfig("imgMaxWidth"),m=this.mindMap.getThemeConfig("imgMaxHeight")):(f=h,m=c),f=f*t,m=m*i;let g=Math.abs(e.clientX-this.rect.x-this.mousedownOffset.x),v=Math.abs(e.clientY-this.rect.y-this.mousedownOffset.y);gf&&(g=f),v>m&&(v=m);let[y,A]=u9(n,s,g,v);this.currentImgWidth=y,this.currentImgHeight=A,this.updateHandleElSize()}onMouseup(){if(!this.isMousedown)return;this.showNodeImage(),this.hideHandleEl();let{image:e,imageTitle:t}=this.node.getData(),{scaleX:i,scaleY:n}=this.mousedownDrawTransform,s=this.currentImgWidth/i,a=this.currentImgHeight/n;(Math.abs(s-this.rect.width)>1||Math.abs(a-this.rect.height)>1)&&(this.mindMap.execCommand("SET_NODE_IMAGE",this.node,{url:e,title:t,width:s,height:a,custom:!0}),this.isAdjusted=!0),this.isMousedown=!1,this.mousedownDrawTransform=null,this.mousedownOffset.x=0,this.mousedownOffset.y=0}onRenderEnd(){if(!this.isAdjusted){this.hideHandleEl();return}this.isAdjusted=!1}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};Kf.instanceName="nodeImgAdjust";var Dx=Kf;var Qf=class{constructor({mindMap:e}){this.mindMap=e,this.touchesNum=0,this.singleTouchstartEvent=null,this.clickNum=0,this.touchStartScaleView=null,this.lastTouchStartPosition=null,this.lastTouchStartDistance=0,this.bindEvent()}bindEvent(){this.onTouchstart=this.onTouchstart.bind(this),this.onTouchmove=this.onTouchmove.bind(this),this.onTouchcancel=this.onTouchcancel.bind(this),this.onTouchend=this.onTouchend.bind(this),window.addEventListener("touchstart",this.onTouchstart,{capture:!0,passive:!1}),window.addEventListener("touchmove",this.onTouchmove,{capture:!0,passive:!1}),window.addEventListener("touchcancel",this.onTouchcancel,{capture:!0,passive:!1}),window.addEventListener("touchend",this.onTouchend,{capture:!0,passive:!1})}unBindEvent(){window.removeEventListener("touchstart",this.onTouchstart),window.removeEventListener("touchmove",this.onTouchmove),window.removeEventListener("touchcancel",this.onTouchcancel),window.removeEventListener("touchend",this.onTouchend)}onTouchstart(e){if(this.touchesNum=e.touches.length,this.touchStartScaleView=null,this.touchesNum===1){let t=e.touches[0];this.lastTouchStartPosition&&(this.lastTouchStartDistance=I9(this.lastTouchStartPosition.x,this.lastTouchStartPosition.y,t.clientX,t.clientY)),this.lastTouchStartPosition={x:t.clientX,y:t.clientY},this.singleTouchstartEvent=t,this.dispatchMouseEvent("mousedown",t.target,t)}}onTouchmove(e){if(e.target.parentNode.classList.contains("ob-simple-mindMapContainer")){e.stopPropagation(),e.preventDefault();let i=e.touches.length;if(i===1){let n=e.touches[0];this.dispatchMouseEvent("mousemove",n.target,n)}else if(i===2){let{disableTouchZoom:n,minTouchZoomScale:s,maxTouchZoomScale:a}=this.mindMap.opt;if(n)return;s=s===-1?-1/0:s/100,a=a===-1?1/0:a/100;let o=e.touches[0],l=e.touches[1],h=o.clientX-l.clientX,c=o.clientY-l.clientY,u=Math.sqrt(Math.pow(h,2)+Math.pow(c,2)),{x:d,y:f}=this.mindMap.toPos(o.clientX,o.clientY),{x:m,y:g}=this.mindMap.toPos(l.clientX,l.clientY),v=(d+m)/2,y=(f+g)/2,A=this.mindMap.view;if(!this.touchStartScaleView){this.touchStartScaleView={distance:u,scale:A.scale,x:A.x,y:A.y,cx:v,cy:y};return}let b=this.touchStartScaleView,C=b.scale*(u/b.distance);Math.abs(u-b.distance)<=10&&(C=b.scale),C=Ca?a:C;let M=1-C/b.scale;A.scale=C,A.x=b.x+(v-b.x)*M+(v-b.cx)*C,A.y=b.y+(y-b.y)*M+(y-b.cy)*C,A.transform(),this.mindMap.emit("scale",C)}else{let n=e.touches.length;if(n===1){let s=e.touches[0];this.dispatchMouseEvent("mousemove",s.target,s)}else if(n===2){let{disableTouchZoom:s,minTouchZoomScale:a,maxTouchZoomScale:o}=this.mindMap.opt;if(s)return;a=a===-1?-1/0:a/100,o=o===-1?1/0:o/100;let l=e.touches[0],h=e.touches[1],c=l.clientX-h.clientX,u=l.clientY-h.clientY,d=Math.sqrt(Math.pow(c,2)+Math.pow(u,2)),{x:f,y:m}=this.mindMap.toPos(l.clientX,l.clientY),{x:g,y:v}=this.mindMap.toPos(h.clientX,h.clientY),y=(f+g)/2,A=(m+v)/2,b=this.mindMap.view;if(!this.touchStartScaleView){this.touchStartScaleView={distance:d,scale:b.scale,x:b.x,y:b.y,cx:y,cy:A};return}let C=this.touchStartScaleView,M=C.scale*(d/C.distance);Math.abs(d-C.distance)<=10&&(M=C.scale),M=Mo?o:M;let D=1-M/C.scale;b.scale=M,b.x=C.x+(y-C.x)*D+(y-C.cx)*M,b.y=C.y+(A-C.y)*D+(A-C.cy)*M,b.transform(),this.mindMap.emit("scale",M)}}}}onTouchcancel(e){}onTouchend(e){if(this.dispatchMouseEvent("mouseup",e.target),this.touchesNum===1){this.clickNum++,setTimeout(()=>{this.clickNum=0,this.lastTouchStartPosition=null,this.lastTouchStartDistance=0},300);let t=this.singleTouchstartEvent;this.clickNum>1&&this.lastTouchStartDistance<=5&&(this.clickNum=0,this.dispatchMouseEvent("dblclick",t.target,t))}this.touchesNum=0,this.singleTouchstartEvent=null,this.touchStartScaleView=null}dispatchMouseEvent(e,t,i){let n={};i&&(n={screenX:i.screenX,screenY:i.screenY,clientX:i.clientX,clientY:i.clientY,which:1});let s=new MouseEvent(e,{view:document.defaultView,bubbles:!0,cancelable:!0,...n});t.dispatchEvent(s)}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};Qf.instanceName="touchEvent";var Nx=Qf;var ji=class{constructor(e,t,i){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=e,this.start=t,this.end=i}static range(e,t){return t?!e||!e.loc||!t.loc||e.loc.lexer!==t.loc.lexer?null:new ji(e.loc.lexer,e.loc.start,t.loc.end):e&&e.loc}},fn=class{constructor(e,t){this.text=void 0,this.loc=void 0,this.noexpand=void 0,this.treatAsRelax=void 0,this.text=e,this.loc=t}range(e,t){return new fn(t,ji.range(this,e))}},Me=class{constructor(e,t){this.name=void 0,this.position=void 0,this.length=void 0,this.rawMessage=void 0;var i="KaTeX parse error: "+e,n,s,a=t&&t.loc;if(a&&a.start<=a.end){var o=a.lexer.input;n=a.start,s=a.end,n===o.length?i+=" at end of input: ":i+=" at position "+(n+1)+": ";var l=o.slice(n,s).replace(/[^]/g,"$&\u0332"),h;n>15?h="\u2026"+o.slice(n-15,n):h=o.slice(0,n);var c;s+15":">","<":"<",'"':""","'":"'"},Fq=/[&><"']/g;function Iq(r){return String(r).replace(Fq,e=>Nq[e])}var lb=function r(e){return e.type==="ordgroup"||e.type==="color"?e.body.length===1?r(e.body[0]):e:e.type==="font"?r(e.body):e},zq=function(e){var t=lb(e);return t.type==="mathord"||t.type==="textord"||t.type==="atom"},Lq=function(e){if(!e)throw new Error("Expected non-null, but got "+String(e));return e},Oq=function(e){var t=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(e);return t?t[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(t[1])?null:t[1].toLowerCase():"_relative"},rt={contains:Tq,deflt:Mq,escape:Iq,hyphenate:Dq,getBaseElem:lb,isCharacterBox:zq,protocolFromUrl:Oq},om={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:r=>"#"+r},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(r,e)=>(e.push(r),e)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:r=>Math.max(0,r),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:r=>Math.max(0,r),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:r=>Math.max(0,r),cli:"-e, --max-expand ",cliProcessor:r=>r==="Infinity"?1/0:parseInt(r)},globalGroup:{type:"boolean",cli:!1}};function Bq(r){if(r.default)return r.default;var e=r.type,t=Array.isArray(e)?e[0]:e;if(typeof t!="string")return t.enum[0];switch(t){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}var Pu=class{constructor(e){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,e=e||{};for(var t in om)if(om.hasOwnProperty(t)){var i=om[t];this[t]=e[t]!==void 0?i.processor?i.processor(e[t]):e[t]:Bq(i)}}reportNonstrict(e,t,i){var n=this.strict;if(typeof n=="function"&&(n=n(e,t,i)),!(!n||n==="ignore")){if(n===!0||n==="error")throw new Me("LaTeX-incompatible input and strict mode is set to 'error': "+(t+" ["+e+"]"),i);n==="warn"?typeof console!="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")):typeof console!="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]"))}}useStrictBehavior(e,t,i){var n=this.strict;if(typeof n=="function")try{n=n(e,t,i)}catch(s){n="error"}return!n||n==="ignore"?!1:n===!0||n==="error"?!0:n==="warn"?(typeof console!="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(t+" ["+e+"]")),!1):(typeof console!="undefined"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+n+"': "+t+" ["+e+"]")),!1)}isTrusted(e){if(e.url&&!e.protocol){var t=rt.protocolFromUrl(e.url);if(t==null)return!1;e.protocol=t}var i=typeof this.trust=="function"?this.trust(e):this.trust;return Boolean(i)}},_s=class{constructor(e,t,i){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=e,this.size=t,this.cramped=i}sup(){return qs[Rq[this.id]]}sub(){return qs[Pq[this.id]]}fracNum(){return qs[_q[this.id]]}fracDen(){return qs[qq[this.id]]}cramp(){return qs[Uq[this.id]]}text(){return qs[Hq[this.id]]}isTight(){return this.size>=2}},S4=0,hm=1,hh=2,ka=3,_u=4,Qn=5,ch=6,Wi=7,qs=[new _s(S4,0,!1),new _s(hm,0,!0),new _s(hh,1,!1),new _s(ka,1,!0),new _s(_u,2,!1),new _s(Qn,2,!0),new _s(ch,3,!1),new _s(Wi,3,!0)],Rq=[_u,Qn,_u,Qn,ch,Wi,ch,Wi],Pq=[Qn,Qn,Qn,Qn,Wi,Wi,Wi,Wi],_q=[hh,ka,_u,Qn,ch,Wi,ch,Wi],qq=[ka,ka,Qn,Qn,Wi,Wi,Wi,Wi],Uq=[hm,hm,ka,ka,Qn,Qn,Wi,Wi],Hq=[S4,hm,hh,ka,hh,ka,hh,ka],st={DISPLAY:qs[S4],TEXT:qs[hh],SCRIPT:qs[_u],SCRIPTSCRIPT:qs[ch]},f4=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function jq(r){for(var e=0;e=n[0]&&r<=n[1])return t.name}return null}var lm=[];f4.forEach(r=>r.blocks.forEach(e=>lm.push(...e)));function hb(r){for(var e=0;e=lm[e]&&r<=lm[e+1])return!0;return!1}var lh=80,Gq=function(e,t){return"M95,"+(622+e+t)+` +c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 +c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 +c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 +s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 +c69,-144,104.5,-217.7,106.5,-221 +l`+e/2.075+" -"+e+` +c5.3,-9.3,12,-14,20,-14 +H400000v`+(40+e)+`H845.2724 +s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 +c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z +M`+(834+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Wq=function(e,t){return"M263,"+(601+e+t)+`c0.7,0,18,39.7,52,119 +c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 +c340,-704.7,510.7,-1060.3,512,-1067 +l`+e/2.084+" -"+e+` +c4.7,-7.3,11,-11,19,-11 +H40000v`+(40+e)+`H1012.3 +s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 +c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 +s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 +c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Yq=function(e,t){return"M983 "+(10+e+t)+` +l`+e/3.13+" -"+e+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+e)+` +H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 +s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 +c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 +c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 +c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 +c53.7,-170.3,84.5,-266.8,92.5,-289.5z +M`+(1001+e)+" "+t+"h400000v"+(40+e)+"h-400000z"},Vq=function(e,t){return"M424,"+(2398+e+t)+` +c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 +c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 +s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 +s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 +l`+e/4.223+" -"+e+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+e)+`H1014.6 +s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 +c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2z M`+(1001+e)+" "+t+` +h400000v`+(40+e)+"h-400000z"},Kq=function(e,t){return"M473,"+(2713+e+t)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+e/5.298+" -"+e+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+e)+`H1017.7 +s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 +c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 +c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 +s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, +606zM`+(1001+e)+" "+t+"h400000v"+(40+e)+"H1017.7z"},Qq=function(e){var t=e/2;return"M400000 "+e+" H0 L"+t+" 0 l65 45 L145 "+(e-80)+" H400000z"},Xq=function(e,t,i){var n=i-54-t-e;return"M702 "+(e+t)+"H400000"+(40+e)+` +H742v`+n+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 +c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 +219 661 l218 661zM702 `+t+"H400000v"+(40+e)+"H742z"},Zq=function(e,t,i){t=1e3*t;var n="";switch(e){case"sqrtMain":n=Gq(t,lh);break;case"sqrtSize1":n=Wq(t,lh);break;case"sqrtSize2":n=Yq(t,lh);break;case"sqrtSize3":n=Vq(t,lh);break;case"sqrtSize4":n=Kq(t,lh);break;case"sqrtTall":n=Xq(t,lh,i)}return n},Jq=function(e,t){switch(e){case"\u239C":return"M291 0 H417 V"+t+" H291z M291 0 H417 V"+t+" H291z";case"\u2223":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z";case"\u2225":return"M145 0 H188 V"+t+" H145z M145 0 H188 V"+t+" H145z"+("M367 0 H410 V"+t+" H367z M367 0 H410 V"+t+" H367z");case"\u239F":return"M457 0 H583 V"+t+" H457z M457 0 H583 V"+t+" H457z";case"\u23A2":return"M319 0 H403 V"+t+" H319z M319 0 H403 V"+t+" H319z";case"\u23A5":return"M263 0 H347 V"+t+" H263z M263 0 H347 V"+t+" H263z";case"\u23AA":return"M384 0 H504 V"+t+" H384z M384 0 H504 V"+t+" H384z";case"\u23D0":return"M312 0 H355 V"+t+" H312z M312 0 H355 V"+t+" H312z";case"\u2016":return"M257 0 H300 V"+t+" H257z M257 0 H300 V"+t+" H257z"+("M478 0 H521 V"+t+" H478z M478 0 H521 V"+t+" H478z");default:return""}},Fx={doubleleftarrow:`M262 157 +l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 + 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 + 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 +c2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5 + 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87 +-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7 +-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z +m8 0v40h399730v-40zm0 194v40h399730v-40z`,doublerightarrow:`M399738 392l +-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5 + 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88 +-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68 +-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18 +-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782 +c-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3 +-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z`,leftarrow:`M400000 241H110l3-3c68.7-52.7 113.7-120 + 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8 +-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247 +c-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208 + 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3 + 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202 + l-3-3h399890zM100 241v40h399900v-40z`,leftbrace:`M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117 +-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7 + 5-6 9-10 13-.7 1-7.3 1-20 1H6z`,leftbraceunder:`M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13 + 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688 + 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7 +-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z`,leftgroup:`M400000 80 +H435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0 + 435 0h399565z`,leftgroupunder:`M400000 262 +H435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219 + 435 219h399565z`,leftharpoon:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3 +-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5 +-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7 +-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z`,leftharpoonplus:`M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5 + 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3 +-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7 +-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z +m0 0v40h400000v-40z`,leftharpoondown:`M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333 + 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5 + 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667 +-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z`,leftharpoondownplus:`M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12 + 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7 +-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0 +v40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z`,lefthook:`M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5 +-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3 +-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21 + 71.5 23h399859zM103 281v-40h399897v40z`,leftlinesegment:`M40 281 V428 H0 V94 H40 V241 H400000 v40z +M40 281 V428 H0 V94 H40 V241 H400000 v40z`,leftmapsto:`M40 281 V448H0V74H40V241H400000v40z +M40 281 V448H0V74H40V241H400000v40z`,leftToFrom:`M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23 +-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8 +c28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3 + 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z`,longequal:`M0 50 h400000 v40H0z m0 194h40000v40H0z +M0 50 h400000 v40H0z m0 194h40000v40H0z`,midbrace:`M200428 334 +c-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14 +-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7 + 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11 + 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z`,midbraceunder:`M199572 214 +c100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14 + 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3 + 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0 +-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z`,oiintSize1:`M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6 +-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z +m368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8 +60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z`,oiintSize2:`M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8 +-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z +m502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2 +c0 110 84 276 504 276s502.4-166 502.4-276z`,oiiintSize1:`M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6 +-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z +m525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0 +85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z`,oiiintSize2:`M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8 +-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z +m770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1 +c0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z`,rightarrow:`M0 241v40h399891c-47.3 35.3-84 78-110 128 +-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 + 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 + 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85 +-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 + 151.7 139 205zm0 0v40h399900v-40z`,rightbrace:`M400000 542l +-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5 +s-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1 +c124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z`,rightbraceunder:`M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3 + 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237 +-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z`,rightgroup:`M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0 + 3-1 3-3v-38c-76-158-257-219-435-219H0z`,rightgroupunder:`M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18 + 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z`,rightharpoon:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3 +-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2 +-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 + 69.2 92 94.5zm0 0v40h399900v-40z`,rightharpoonplus:`M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11 +-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7 + 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z +m0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z`,rightharpoondown:`M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8 + 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5 +-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95 +-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z`,rightharpoondownplus:`M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8 + 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 + 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3 +-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z +m0-194v40h400000v-40zm0 0v40h400000v-40z`,righthook:`M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3 + 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0 +-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21 + 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z`,rightlinesegment:`M399960 241 V94 h40 V428 h-40 V281 H0 v-40z +M399960 241 V94 h40 V428 h-40 V281 H0 v-40z`,rightToFrom:`M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23 + 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32 +-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142 +-167z M100 147v40h399900v-40zM0 341v40h399900v-40z`,twoheadleftarrow:`M0 167c68 40 + 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69 +-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3 +-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19 +-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101 + 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z`,twoheadrightarrow:`M400000 167 +c-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3 + 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42 + 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333 +-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70 + 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z`,tilde1:`M200 55.538c-77 0-168 73.953-177 73.953-3 0-7 +-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0 + 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0 + 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128 +-68.267.847-113-73.952-191-73.952z`,tilde2:`M344 55.266c-142 0-300.638 81.316-311.5 86.418 +-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9 + 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114 +c1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751 + 181.476 676 181.476c-149 0-189-126.21-332-126.21z`,tilde3:`M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457 +-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0 + 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697 + 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696 + -338 0-409-156.573-744-156.573z`,tilde4:`M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345 +-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409 + 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9 + 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409 + -175.236-744-175.236z`,vec:`M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5 +3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11 +10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63 +-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1 +-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59 +H213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359 +c-16-25.333-24-45-24-59z`,widehat1:`M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22 +c-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z`,widehat2:`M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat3:`M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widehat4:`M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10 +-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z`,widecheck1:`M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1, +-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z`,widecheck2:`M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck3:`M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,widecheck4:`M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10, +-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z`,baraboveleftarrow:`M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202 +c4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5 +c-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130 +s-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47 +121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6 +s2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11 +c0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z +M100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z`,rightarrowabovebar:`M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32 +-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0 +13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39 +-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5 +-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5 +-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67 +151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z`,baraboveshortleftharpoon:`M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17 +c2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21 +c-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40 +c-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z +M0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z`,rightharpoonaboveshortbar:`M0,241 l0,40c399126,0,399993,0,399993,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z`,shortbaraboveleftharpoon:`M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11 +c1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9, +1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7, +-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z +M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z`,shortrightharpoonabovebar:`M53,241l0,40c398570,0,399437,0,399437,0 +c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, +-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 +c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},$q=function(e,t){switch(e){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+t+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+t+" v1759 h84z";case"vert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+" v585 h43z";case"doublevert":return"M145 15 v585 v"+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+t+` v585 h43z +M367 15 v585 v`+t+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-t+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+t+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+t+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+t+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+t+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+t+` v602 h84z +M403 1759 V0 H319 V1759 v`+t+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+t+` v602 h84z +M347 1759 V0 h-84 V1759 v`+t+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, +-36,557 l0,`+(t+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 +c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, +-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 +l0,-`+(t+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, +63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(t+9)+` +c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 +c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 +c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 +c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 +l0,-`+(t+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}},_l=class{constructor(e){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=e,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(e){return rt.contains(this.classes,e)}toNode(){for(var e=document.createDocumentFragment(),t=0;tt.toText();return this.children.map(e).join("")}},Us={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},Xf={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Ix={\u00C5:"A",\u00D0:"D",\u00DE:"o",\u00E5:"a",\u00F0:"d",\u00FE:"o",\u0410:"A",\u0411:"B",\u0412:"B",\u0413:"F",\u0414:"A",\u0415:"E",\u0416:"K",\u0417:"3",\u0418:"N",\u0419:"N",\u041A:"K",\u041B:"N",\u041C:"M",\u041D:"H",\u041E:"O",\u041F:"N",\u0420:"P",\u0421:"C",\u0422:"T",\u0423:"y",\u0424:"O",\u0425:"X",\u0426:"U",\u0427:"h",\u0428:"W",\u0429:"W",\u042A:"B",\u042B:"X",\u042C:"B",\u042D:"3",\u042E:"X",\u042F:"R",\u0430:"a",\u0431:"b",\u0432:"a",\u0433:"r",\u0434:"y",\u0435:"e",\u0436:"m",\u0437:"e",\u0438:"n",\u0439:"n",\u043A:"n",\u043B:"n",\u043C:"m",\u043D:"n",\u043E:"o",\u043F:"n",\u0440:"p",\u0441:"c",\u0442:"o",\u0443:"y",\u0444:"b",\u0445:"x",\u0446:"n",\u0447:"n",\u0448:"w",\u0449:"w",\u044A:"a",\u044B:"m",\u044C:"a",\u044D:"e",\u044E:"m",\u044F:"r"};function eU(r,e){Us[r]=e}function T4(r,e,t){if(!Us[e])throw new Error("Font metrics not found for font: "+e+".");var i=r.charCodeAt(0),n=Us[e][i];if(!n&&r[0]in Ix&&(i=Ix[r[0]].charCodeAt(0),n=Us[e][i]),!n&&t==="text"&&hb(i)&&(n=Us[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var e4={};function tU(r){var e;if(r>=5?e=0:r>=3?e=1:e=2,!e4[e]){var t=e4[e]={cssEmPerMu:Xf.quad[e]/18};for(var i in Xf)Xf.hasOwnProperty(i)&&(t[i]=Xf[i][e])}return e4[e]}var rU=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],zx=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],Lx=function(e,t){return t.size<2?e:rU[e-1][t.size-1]},As=class{constructor(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||As.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||"",this.fontFamily=e.fontFamily||"",this.fontWeight=e.fontWeight||"",this.fontShape=e.fontShape||"",this.sizeMultiplier=zx[this.size-1],this.maxSize=e.maxSize,this.minRuleThickness=e.minRuleThickness,this._fontMetrics=void 0}extend(e){var t={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return new As(t)}havingStyle(e){return this.style===e?this:this.extend({style:e,size:Lx(this.textSize,e)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(e){return this.size===e&&this.textSize===e?this:this.extend({style:this.style.text(),size:e,textSize:e,sizeMultiplier:zx[e-1]})}havingBaseStyle(e){e=e||this.style.text();var t=Lx(As.BASESIZE,e);return this.size===t&&this.textSize===As.BASESIZE&&this.style===e?this:this.extend({style:e,size:t})}havingBaseSizing(){var e;switch(this.style.id){case 4:case 5:e=3;break;case 6:case 7:e=1;break;default:e=6}return this.extend({style:this.style.text(),size:e})}withColor(e){return this.extend({color:e})}withPhantom(){return this.extend({phantom:!0})}withFont(e){return this.extend({font:e})}withTextFontFamily(e){return this.extend({fontFamily:e,font:""})}withTextFontWeight(e){return this.extend({fontWeight:e,font:""})}withTextFontShape(e){return this.extend({fontShape:e,font:""})}sizingClasses(e){return e.size!==this.size?["sizing","reset-size"+e.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==As.BASESIZE?["sizing","reset-size"+this.size,"size"+As.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=tU(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}};As.BASESIZE=6;var m4={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},iU={ex:!0,em:!0,mu:!0},cb=function(e){return typeof e!="string"&&(e=e.unit),e in m4||e in iU||e==="ex"},Dr=function(e,t){var i;if(e.unit in m4)i=m4[e.unit]/t.fontMetrics().ptPerEm/t.sizeMultiplier;else if(e.unit==="mu")i=t.fontMetrics().cssEmPerMu;else{var n;if(t.style.isTight()?n=t.havingStyle(t.style.text()):n=t,e.unit==="ex")i=n.fontMetrics().xHeight;else if(e.unit==="em")i=n.fontMetrics().quad;else throw new Me("Invalid unit: '"+e.unit+"'");n!==t&&(i*=n.sizeMultiplier/t.sizeMultiplier)}return Math.min(e.number*i,t.maxSize)},Ie=function(e){return+e.toFixed(4)+"em"},wo=function(e){return e.filter(t=>t).join(" ")},ub=function(e,t,i){if(this.classes=e||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=i||{},t){t.style.isTight()&&this.classes.push("mtight");var n=t.getColor();n&&(this.style.color=n)}},db=function(e){var t=document.createElement(e);t.className=wo(this.classes);for(var i in this.style)this.style.hasOwnProperty(i)&&(t.style[i]=this.style[i]);for(var n in this.attributes)this.attributes.hasOwnProperty(n)&&t.setAttribute(n,this.attributes[n]);for(var s=0;s/=\x00-\x1f]/,fb=function(e){var t="<"+e;this.classes.length&&(t+=' class="'+rt.escape(wo(this.classes))+'"');var i="";for(var n in this.style)this.style.hasOwnProperty(n)&&(i+=rt.hyphenate(n)+":"+this.style[n]+";");i&&(t+=' style="'+rt.escape(i)+'"');for(var s in this.attributes)if(this.attributes.hasOwnProperty(s)){if(nU.test(s))throw new Me("Invalid attribute name '"+s+"'");t+=" "+s+'="'+rt.escape(this.attributes[s])+'"'}t+=">";for(var a=0;a",t},ql=class{constructor(e,t,i,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,ub.call(this,e,i,n),this.children=t||[]}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return rt.contains(this.classes,e)}toNode(){return db.call(this,"span")}toMarkup(){return fb.call(this,"span")}},qu=class{constructor(e,t,i,n){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,ub.call(this,t,n),this.children=i||[],this.setAttribute("href",e)}setAttribute(e,t){this.attributes[e]=t}hasClass(e){return rt.contains(this.classes,e)}toNode(){return db.call(this,"a")}toMarkup(){return fb.call(this,"a")}},p4=class{constructor(e,t,i){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=t,this.src=e,this.classes=["mord"],this.style=i}hasClass(e){return rt.contains(this.classes,e)}toNode(){var e=document.createElement("img");e.src=this.src,e.alt=this.alt,e.className="mord";for(var t in this.style)this.style.hasOwnProperty(t)&&(e.style[t]=this.style[t]);return e}toMarkup(){var e=''+rt.escape(this.alt)+'0&&(t=document.createElement("span"),t.style.marginRight=Ie(this.italic)),this.classes.length>0&&(t=t||document.createElement("span"),t.className=wo(this.classes));for(var i in this.style)this.style.hasOwnProperty(i)&&(t=t||document.createElement("span"),t.style[i]=this.style[i]);return t?(t.appendChild(e),t):e}toMarkup(){var e=!1,t="0&&(i+="margin-right:"+this.italic+"em;");for(var n in this.style)this.style.hasOwnProperty(n)&&(i+=rt.hyphenate(n)+":"+this.style[n]+";");i&&(e=!0,t+=' style="'+rt.escape(i)+'"');var s=rt.escape(this.text);return e?(t+=">",t+=s,t+="",t):s}},Es=class{constructor(e,t){this.children=void 0,this.attributes=void 0,this.children=e||[],this.attributes=t||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"svg");for(var i in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,i)&&t.setAttribute(i,this.attributes[i]);for(var n=0;n':''}},Uu=class{constructor(e){this.attributes=void 0,this.attributes=e||{}}toNode(){var e="http://www.w3.org/2000/svg",t=document.createElementNS(e,"line");for(var i in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,i)&&t.setAttribute(i,this.attributes[i]);return t}toMarkup(){var e=" but got "+String(r)+".")}var oU={bin:1,close:1,inner:1,open:1,punct:1,rel:1},lU={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},cr={math:{},text:{}};function w(r,e,t,i,n,s){cr[r][n]={font:e,group:t,replace:i},s&&i&&(cr[r][i]=cr[r][n])}var T="math",Ae="text",z="main",X="ams",Ar="accent-token",Pe="bin",Yi="close",dh="inner",nt="mathord",Wr="op-token",Fn="open",pm="punct",Z="rel",Ia="spacing",re="textord";w(T,z,Z,"\u2261","\\equiv",!0);w(T,z,Z,"\u227A","\\prec",!0);w(T,z,Z,"\u227B","\\succ",!0);w(T,z,Z,"\u223C","\\sim",!0);w(T,z,Z,"\u22A5","\\perp");w(T,z,Z,"\u2AAF","\\preceq",!0);w(T,z,Z,"\u2AB0","\\succeq",!0);w(T,z,Z,"\u2243","\\simeq",!0);w(T,z,Z,"\u2223","\\mid",!0);w(T,z,Z,"\u226A","\\ll",!0);w(T,z,Z,"\u226B","\\gg",!0);w(T,z,Z,"\u224D","\\asymp",!0);w(T,z,Z,"\u2225","\\parallel");w(T,z,Z,"\u22C8","\\bowtie",!0);w(T,z,Z,"\u2323","\\smile",!0);w(T,z,Z,"\u2291","\\sqsubseteq",!0);w(T,z,Z,"\u2292","\\sqsupseteq",!0);w(T,z,Z,"\u2250","\\doteq",!0);w(T,z,Z,"\u2322","\\frown",!0);w(T,z,Z,"\u220B","\\ni",!0);w(T,z,Z,"\u221D","\\propto",!0);w(T,z,Z,"\u22A2","\\vdash",!0);w(T,z,Z,"\u22A3","\\dashv",!0);w(T,z,Z,"\u220B","\\owns");w(T,z,pm,".","\\ldotp");w(T,z,pm,"\u22C5","\\cdotp");w(T,z,re,"#","\\#");w(Ae,z,re,"#","\\#");w(T,z,re,"&","\\&");w(Ae,z,re,"&","\\&");w(T,z,re,"\u2135","\\aleph",!0);w(T,z,re,"\u2200","\\forall",!0);w(T,z,re,"\u210F","\\hbar",!0);w(T,z,re,"\u2203","\\exists",!0);w(T,z,re,"\u2207","\\nabla",!0);w(T,z,re,"\u266D","\\flat",!0);w(T,z,re,"\u2113","\\ell",!0);w(T,z,re,"\u266E","\\natural",!0);w(T,z,re,"\u2663","\\clubsuit",!0);w(T,z,re,"\u2118","\\wp",!0);w(T,z,re,"\u266F","\\sharp",!0);w(T,z,re,"\u2662","\\diamondsuit",!0);w(T,z,re,"\u211C","\\Re",!0);w(T,z,re,"\u2661","\\heartsuit",!0);w(T,z,re,"\u2111","\\Im",!0);w(T,z,re,"\u2660","\\spadesuit",!0);w(T,z,re,"\xA7","\\S",!0);w(Ae,z,re,"\xA7","\\S");w(T,z,re,"\xB6","\\P",!0);w(Ae,z,re,"\xB6","\\P");w(T,z,re,"\u2020","\\dag");w(Ae,z,re,"\u2020","\\dag");w(Ae,z,re,"\u2020","\\textdagger");w(T,z,re,"\u2021","\\ddag");w(Ae,z,re,"\u2021","\\ddag");w(Ae,z,re,"\u2021","\\textdaggerdbl");w(T,z,Yi,"\u23B1","\\rmoustache",!0);w(T,z,Fn,"\u23B0","\\lmoustache",!0);w(T,z,Yi,"\u27EF","\\rgroup",!0);w(T,z,Fn,"\u27EE","\\lgroup",!0);w(T,z,Pe,"\u2213","\\mp",!0);w(T,z,Pe,"\u2296","\\ominus",!0);w(T,z,Pe,"\u228E","\\uplus",!0);w(T,z,Pe,"\u2293","\\sqcap",!0);w(T,z,Pe,"\u2217","\\ast");w(T,z,Pe,"\u2294","\\sqcup",!0);w(T,z,Pe,"\u25EF","\\bigcirc",!0);w(T,z,Pe,"\u2219","\\bullet",!0);w(T,z,Pe,"\u2021","\\ddagger");w(T,z,Pe,"\u2240","\\wr",!0);w(T,z,Pe,"\u2A3F","\\amalg");w(T,z,Pe,"&","\\And");w(T,z,Z,"\u27F5","\\longleftarrow",!0);w(T,z,Z,"\u21D0","\\Leftarrow",!0);w(T,z,Z,"\u27F8","\\Longleftarrow",!0);w(T,z,Z,"\u27F6","\\longrightarrow",!0);w(T,z,Z,"\u21D2","\\Rightarrow",!0);w(T,z,Z,"\u27F9","\\Longrightarrow",!0);w(T,z,Z,"\u2194","\\leftrightarrow",!0);w(T,z,Z,"\u27F7","\\longleftrightarrow",!0);w(T,z,Z,"\u21D4","\\Leftrightarrow",!0);w(T,z,Z,"\u27FA","\\Longleftrightarrow",!0);w(T,z,Z,"\u21A6","\\mapsto",!0);w(T,z,Z,"\u27FC","\\longmapsto",!0);w(T,z,Z,"\u2197","\\nearrow",!0);w(T,z,Z,"\u21A9","\\hookleftarrow",!0);w(T,z,Z,"\u21AA","\\hookrightarrow",!0);w(T,z,Z,"\u2198","\\searrow",!0);w(T,z,Z,"\u21BC","\\leftharpoonup",!0);w(T,z,Z,"\u21C0","\\rightharpoonup",!0);w(T,z,Z,"\u2199","\\swarrow",!0);w(T,z,Z,"\u21BD","\\leftharpoondown",!0);w(T,z,Z,"\u21C1","\\rightharpoondown",!0);w(T,z,Z,"\u2196","\\nwarrow",!0);w(T,z,Z,"\u21CC","\\rightleftharpoons",!0);w(T,X,Z,"\u226E","\\nless",!0);w(T,X,Z,"\uE010","\\@nleqslant");w(T,X,Z,"\uE011","\\@nleqq");w(T,X,Z,"\u2A87","\\lneq",!0);w(T,X,Z,"\u2268","\\lneqq",!0);w(T,X,Z,"\uE00C","\\@lvertneqq");w(T,X,Z,"\u22E6","\\lnsim",!0);w(T,X,Z,"\u2A89","\\lnapprox",!0);w(T,X,Z,"\u2280","\\nprec",!0);w(T,X,Z,"\u22E0","\\npreceq",!0);w(T,X,Z,"\u22E8","\\precnsim",!0);w(T,X,Z,"\u2AB9","\\precnapprox",!0);w(T,X,Z,"\u2241","\\nsim",!0);w(T,X,Z,"\uE006","\\@nshortmid");w(T,X,Z,"\u2224","\\nmid",!0);w(T,X,Z,"\u22AC","\\nvdash",!0);w(T,X,Z,"\u22AD","\\nvDash",!0);w(T,X,Z,"\u22EA","\\ntriangleleft");w(T,X,Z,"\u22EC","\\ntrianglelefteq",!0);w(T,X,Z,"\u228A","\\subsetneq",!0);w(T,X,Z,"\uE01A","\\@varsubsetneq");w(T,X,Z,"\u2ACB","\\subsetneqq",!0);w(T,X,Z,"\uE017","\\@varsubsetneqq");w(T,X,Z,"\u226F","\\ngtr",!0);w(T,X,Z,"\uE00F","\\@ngeqslant");w(T,X,Z,"\uE00E","\\@ngeqq");w(T,X,Z,"\u2A88","\\gneq",!0);w(T,X,Z,"\u2269","\\gneqq",!0);w(T,X,Z,"\uE00D","\\@gvertneqq");w(T,X,Z,"\u22E7","\\gnsim",!0);w(T,X,Z,"\u2A8A","\\gnapprox",!0);w(T,X,Z,"\u2281","\\nsucc",!0);w(T,X,Z,"\u22E1","\\nsucceq",!0);w(T,X,Z,"\u22E9","\\succnsim",!0);w(T,X,Z,"\u2ABA","\\succnapprox",!0);w(T,X,Z,"\u2246","\\ncong",!0);w(T,X,Z,"\uE007","\\@nshortparallel");w(T,X,Z,"\u2226","\\nparallel",!0);w(T,X,Z,"\u22AF","\\nVDash",!0);w(T,X,Z,"\u22EB","\\ntriangleright");w(T,X,Z,"\u22ED","\\ntrianglerighteq",!0);w(T,X,Z,"\uE018","\\@nsupseteqq");w(T,X,Z,"\u228B","\\supsetneq",!0);w(T,X,Z,"\uE01B","\\@varsupsetneq");w(T,X,Z,"\u2ACC","\\supsetneqq",!0);w(T,X,Z,"\uE019","\\@varsupsetneqq");w(T,X,Z,"\u22AE","\\nVdash",!0);w(T,X,Z,"\u2AB5","\\precneqq",!0);w(T,X,Z,"\u2AB6","\\succneqq",!0);w(T,X,Z,"\uE016","\\@nsubseteqq");w(T,X,Pe,"\u22B4","\\unlhd");w(T,X,Pe,"\u22B5","\\unrhd");w(T,X,Z,"\u219A","\\nleftarrow",!0);w(T,X,Z,"\u219B","\\nrightarrow",!0);w(T,X,Z,"\u21CD","\\nLeftarrow",!0);w(T,X,Z,"\u21CF","\\nRightarrow",!0);w(T,X,Z,"\u21AE","\\nleftrightarrow",!0);w(T,X,Z,"\u21CE","\\nLeftrightarrow",!0);w(T,X,Z,"\u25B3","\\vartriangle");w(T,X,re,"\u210F","\\hslash");w(T,X,re,"\u25BD","\\triangledown");w(T,X,re,"\u25CA","\\lozenge");w(T,X,re,"\u24C8","\\circledS");w(T,X,re,"\xAE","\\circledR");w(Ae,X,re,"\xAE","\\circledR");w(T,X,re,"\u2221","\\measuredangle",!0);w(T,X,re,"\u2204","\\nexists");w(T,X,re,"\u2127","\\mho");w(T,X,re,"\u2132","\\Finv",!0);w(T,X,re,"\u2141","\\Game",!0);w(T,X,re,"\u2035","\\backprime");w(T,X,re,"\u25B2","\\blacktriangle");w(T,X,re,"\u25BC","\\blacktriangledown");w(T,X,re,"\u25A0","\\blacksquare");w(T,X,re,"\u29EB","\\blacklozenge");w(T,X,re,"\u2605","\\bigstar");w(T,X,re,"\u2222","\\sphericalangle",!0);w(T,X,re,"\u2201","\\complement",!0);w(T,X,re,"\xF0","\\eth",!0);w(Ae,z,re,"\xF0","\xF0");w(T,X,re,"\u2571","\\diagup");w(T,X,re,"\u2572","\\diagdown");w(T,X,re,"\u25A1","\\square");w(T,X,re,"\u25A1","\\Box");w(T,X,re,"\u25CA","\\Diamond");w(T,X,re,"\xA5","\\yen",!0);w(Ae,X,re,"\xA5","\\yen",!0);w(T,X,re,"\u2713","\\checkmark",!0);w(Ae,X,re,"\u2713","\\checkmark");w(T,X,re,"\u2136","\\beth",!0);w(T,X,re,"\u2138","\\daleth",!0);w(T,X,re,"\u2137","\\gimel",!0);w(T,X,re,"\u03DD","\\digamma",!0);w(T,X,re,"\u03F0","\\varkappa");w(T,X,Fn,"\u250C","\\@ulcorner",!0);w(T,X,Yi,"\u2510","\\@urcorner",!0);w(T,X,Fn,"\u2514","\\@llcorner",!0);w(T,X,Yi,"\u2518","\\@lrcorner",!0);w(T,X,Z,"\u2266","\\leqq",!0);w(T,X,Z,"\u2A7D","\\leqslant",!0);w(T,X,Z,"\u2A95","\\eqslantless",!0);w(T,X,Z,"\u2272","\\lesssim",!0);w(T,X,Z,"\u2A85","\\lessapprox",!0);w(T,X,Z,"\u224A","\\approxeq",!0);w(T,X,Pe,"\u22D6","\\lessdot");w(T,X,Z,"\u22D8","\\lll",!0);w(T,X,Z,"\u2276","\\lessgtr",!0);w(T,X,Z,"\u22DA","\\lesseqgtr",!0);w(T,X,Z,"\u2A8B","\\lesseqqgtr",!0);w(T,X,Z,"\u2251","\\doteqdot");w(T,X,Z,"\u2253","\\risingdotseq",!0);w(T,X,Z,"\u2252","\\fallingdotseq",!0);w(T,X,Z,"\u223D","\\backsim",!0);w(T,X,Z,"\u22CD","\\backsimeq",!0);w(T,X,Z,"\u2AC5","\\subseteqq",!0);w(T,X,Z,"\u22D0","\\Subset",!0);w(T,X,Z,"\u228F","\\sqsubset",!0);w(T,X,Z,"\u227C","\\preccurlyeq",!0);w(T,X,Z,"\u22DE","\\curlyeqprec",!0);w(T,X,Z,"\u227E","\\precsim",!0);w(T,X,Z,"\u2AB7","\\precapprox",!0);w(T,X,Z,"\u22B2","\\vartriangleleft");w(T,X,Z,"\u22B4","\\trianglelefteq");w(T,X,Z,"\u22A8","\\vDash",!0);w(T,X,Z,"\u22AA","\\Vvdash",!0);w(T,X,Z,"\u2323","\\smallsmile");w(T,X,Z,"\u2322","\\smallfrown");w(T,X,Z,"\u224F","\\bumpeq",!0);w(T,X,Z,"\u224E","\\Bumpeq",!0);w(T,X,Z,"\u2267","\\geqq",!0);w(T,X,Z,"\u2A7E","\\geqslant",!0);w(T,X,Z,"\u2A96","\\eqslantgtr",!0);w(T,X,Z,"\u2273","\\gtrsim",!0);w(T,X,Z,"\u2A86","\\gtrapprox",!0);w(T,X,Pe,"\u22D7","\\gtrdot");w(T,X,Z,"\u22D9","\\ggg",!0);w(T,X,Z,"\u2277","\\gtrless",!0);w(T,X,Z,"\u22DB","\\gtreqless",!0);w(T,X,Z,"\u2A8C","\\gtreqqless",!0);w(T,X,Z,"\u2256","\\eqcirc",!0);w(T,X,Z,"\u2257","\\circeq",!0);w(T,X,Z,"\u225C","\\triangleq",!0);w(T,X,Z,"\u223C","\\thicksim");w(T,X,Z,"\u2248","\\thickapprox");w(T,X,Z,"\u2AC6","\\supseteqq",!0);w(T,X,Z,"\u22D1","\\Supset",!0);w(T,X,Z,"\u2290","\\sqsupset",!0);w(T,X,Z,"\u227D","\\succcurlyeq",!0);w(T,X,Z,"\u22DF","\\curlyeqsucc",!0);w(T,X,Z,"\u227F","\\succsim",!0);w(T,X,Z,"\u2AB8","\\succapprox",!0);w(T,X,Z,"\u22B3","\\vartriangleright");w(T,X,Z,"\u22B5","\\trianglerighteq");w(T,X,Z,"\u22A9","\\Vdash",!0);w(T,X,Z,"\u2223","\\shortmid");w(T,X,Z,"\u2225","\\shortparallel");w(T,X,Z,"\u226C","\\between",!0);w(T,X,Z,"\u22D4","\\pitchfork",!0);w(T,X,Z,"\u221D","\\varpropto");w(T,X,Z,"\u25C0","\\blacktriangleleft");w(T,X,Z,"\u2234","\\therefore",!0);w(T,X,Z,"\u220D","\\backepsilon");w(T,X,Z,"\u25B6","\\blacktriangleright");w(T,X,Z,"\u2235","\\because",!0);w(T,X,Z,"\u22D8","\\llless");w(T,X,Z,"\u22D9","\\gggtr");w(T,X,Pe,"\u22B2","\\lhd");w(T,X,Pe,"\u22B3","\\rhd");w(T,X,Z,"\u2242","\\eqsim",!0);w(T,z,Z,"\u22C8","\\Join");w(T,X,Z,"\u2251","\\Doteq",!0);w(T,X,Pe,"\u2214","\\dotplus",!0);w(T,X,Pe,"\u2216","\\smallsetminus");w(T,X,Pe,"\u22D2","\\Cap",!0);w(T,X,Pe,"\u22D3","\\Cup",!0);w(T,X,Pe,"\u2A5E","\\doublebarwedge",!0);w(T,X,Pe,"\u229F","\\boxminus",!0);w(T,X,Pe,"\u229E","\\boxplus",!0);w(T,X,Pe,"\u22C7","\\divideontimes",!0);w(T,X,Pe,"\u22C9","\\ltimes",!0);w(T,X,Pe,"\u22CA","\\rtimes",!0);w(T,X,Pe,"\u22CB","\\leftthreetimes",!0);w(T,X,Pe,"\u22CC","\\rightthreetimes",!0);w(T,X,Pe,"\u22CF","\\curlywedge",!0);w(T,X,Pe,"\u22CE","\\curlyvee",!0);w(T,X,Pe,"\u229D","\\circleddash",!0);w(T,X,Pe,"\u229B","\\circledast",!0);w(T,X,Pe,"\u22C5","\\centerdot");w(T,X,Pe,"\u22BA","\\intercal",!0);w(T,X,Pe,"\u22D2","\\doublecap");w(T,X,Pe,"\u22D3","\\doublecup");w(T,X,Pe,"\u22A0","\\boxtimes",!0);w(T,X,Z,"\u21E2","\\dashrightarrow",!0);w(T,X,Z,"\u21E0","\\dashleftarrow",!0);w(T,X,Z,"\u21C7","\\leftleftarrows",!0);w(T,X,Z,"\u21C6","\\leftrightarrows",!0);w(T,X,Z,"\u21DA","\\Lleftarrow",!0);w(T,X,Z,"\u219E","\\twoheadleftarrow",!0);w(T,X,Z,"\u21A2","\\leftarrowtail",!0);w(T,X,Z,"\u21AB","\\looparrowleft",!0);w(T,X,Z,"\u21CB","\\leftrightharpoons",!0);w(T,X,Z,"\u21B6","\\curvearrowleft",!0);w(T,X,Z,"\u21BA","\\circlearrowleft",!0);w(T,X,Z,"\u21B0","\\Lsh",!0);w(T,X,Z,"\u21C8","\\upuparrows",!0);w(T,X,Z,"\u21BF","\\upharpoonleft",!0);w(T,X,Z,"\u21C3","\\downharpoonleft",!0);w(T,z,Z,"\u22B6","\\origof",!0);w(T,z,Z,"\u22B7","\\imageof",!0);w(T,X,Z,"\u22B8","\\multimap",!0);w(T,X,Z,"\u21AD","\\leftrightsquigarrow",!0);w(T,X,Z,"\u21C9","\\rightrightarrows",!0);w(T,X,Z,"\u21C4","\\rightleftarrows",!0);w(T,X,Z,"\u21A0","\\twoheadrightarrow",!0);w(T,X,Z,"\u21A3","\\rightarrowtail",!0);w(T,X,Z,"\u21AC","\\looparrowright",!0);w(T,X,Z,"\u21B7","\\curvearrowright",!0);w(T,X,Z,"\u21BB","\\circlearrowright",!0);w(T,X,Z,"\u21B1","\\Rsh",!0);w(T,X,Z,"\u21CA","\\downdownarrows",!0);w(T,X,Z,"\u21BE","\\upharpoonright",!0);w(T,X,Z,"\u21C2","\\downharpoonright",!0);w(T,X,Z,"\u21DD","\\rightsquigarrow",!0);w(T,X,Z,"\u21DD","\\leadsto");w(T,X,Z,"\u21DB","\\Rrightarrow",!0);w(T,X,Z,"\u21BE","\\restriction");w(T,z,re,"\u2018","`");w(T,z,re,"$","\\$");w(Ae,z,re,"$","\\$");w(Ae,z,re,"$","\\textdollar");w(T,z,re,"%","\\%");w(Ae,z,re,"%","\\%");w(T,z,re,"_","\\_");w(Ae,z,re,"_","\\_");w(Ae,z,re,"_","\\textunderscore");w(T,z,re,"\u2220","\\angle",!0);w(T,z,re,"\u221E","\\infty",!0);w(T,z,re,"\u2032","\\prime");w(T,z,re,"\u25B3","\\triangle");w(T,z,re,"\u0393","\\Gamma",!0);w(T,z,re,"\u0394","\\Delta",!0);w(T,z,re,"\u0398","\\Theta",!0);w(T,z,re,"\u039B","\\Lambda",!0);w(T,z,re,"\u039E","\\Xi",!0);w(T,z,re,"\u03A0","\\Pi",!0);w(T,z,re,"\u03A3","\\Sigma",!0);w(T,z,re,"\u03A5","\\Upsilon",!0);w(T,z,re,"\u03A6","\\Phi",!0);w(T,z,re,"\u03A8","\\Psi",!0);w(T,z,re,"\u03A9","\\Omega",!0);w(T,z,re,"A","\u0391");w(T,z,re,"B","\u0392");w(T,z,re,"E","\u0395");w(T,z,re,"Z","\u0396");w(T,z,re,"H","\u0397");w(T,z,re,"I","\u0399");w(T,z,re,"K","\u039A");w(T,z,re,"M","\u039C");w(T,z,re,"N","\u039D");w(T,z,re,"O","\u039F");w(T,z,re,"P","\u03A1");w(T,z,re,"T","\u03A4");w(T,z,re,"X","\u03A7");w(T,z,re,"\xAC","\\neg",!0);w(T,z,re,"\xAC","\\lnot");w(T,z,re,"\u22A4","\\top");w(T,z,re,"\u22A5","\\bot");w(T,z,re,"\u2205","\\emptyset");w(T,X,re,"\u2205","\\varnothing");w(T,z,nt,"\u03B1","\\alpha",!0);w(T,z,nt,"\u03B2","\\beta",!0);w(T,z,nt,"\u03B3","\\gamma",!0);w(T,z,nt,"\u03B4","\\delta",!0);w(T,z,nt,"\u03F5","\\epsilon",!0);w(T,z,nt,"\u03B6","\\zeta",!0);w(T,z,nt,"\u03B7","\\eta",!0);w(T,z,nt,"\u03B8","\\theta",!0);w(T,z,nt,"\u03B9","\\iota",!0);w(T,z,nt,"\u03BA","\\kappa",!0);w(T,z,nt,"\u03BB","\\lambda",!0);w(T,z,nt,"\u03BC","\\mu",!0);w(T,z,nt,"\u03BD","\\nu",!0);w(T,z,nt,"\u03BE","\\xi",!0);w(T,z,nt,"\u03BF","\\omicron",!0);w(T,z,nt,"\u03C0","\\pi",!0);w(T,z,nt,"\u03C1","\\rho",!0);w(T,z,nt,"\u03C3","\\sigma",!0);w(T,z,nt,"\u03C4","\\tau",!0);w(T,z,nt,"\u03C5","\\upsilon",!0);w(T,z,nt,"\u03D5","\\phi",!0);w(T,z,nt,"\u03C7","\\chi",!0);w(T,z,nt,"\u03C8","\\psi",!0);w(T,z,nt,"\u03C9","\\omega",!0);w(T,z,nt,"\u03B5","\\varepsilon",!0);w(T,z,nt,"\u03D1","\\vartheta",!0);w(T,z,nt,"\u03D6","\\varpi",!0);w(T,z,nt,"\u03F1","\\varrho",!0);w(T,z,nt,"\u03C2","\\varsigma",!0);w(T,z,nt,"\u03C6","\\varphi",!0);w(T,z,Pe,"\u2217","*",!0);w(T,z,Pe,"+","+");w(T,z,Pe,"\u2212","-",!0);w(T,z,Pe,"\u22C5","\\cdot",!0);w(T,z,Pe,"\u2218","\\circ",!0);w(T,z,Pe,"\xF7","\\div",!0);w(T,z,Pe,"\xB1","\\pm",!0);w(T,z,Pe,"\xD7","\\times",!0);w(T,z,Pe,"\u2229","\\cap",!0);w(T,z,Pe,"\u222A","\\cup",!0);w(T,z,Pe,"\u2216","\\setminus",!0);w(T,z,Pe,"\u2227","\\land");w(T,z,Pe,"\u2228","\\lor");w(T,z,Pe,"\u2227","\\wedge",!0);w(T,z,Pe,"\u2228","\\vee",!0);w(T,z,re,"\u221A","\\surd");w(T,z,Fn,"\u27E8","\\langle",!0);w(T,z,Fn,"\u2223","\\lvert");w(T,z,Fn,"\u2225","\\lVert");w(T,z,Yi,"?","?");w(T,z,Yi,"!","!");w(T,z,Yi,"\u27E9","\\rangle",!0);w(T,z,Yi,"\u2223","\\rvert");w(T,z,Yi,"\u2225","\\rVert");w(T,z,Z,"=","=");w(T,z,Z,":",":");w(T,z,Z,"\u2248","\\approx",!0);w(T,z,Z,"\u2245","\\cong",!0);w(T,z,Z,"\u2265","\\ge");w(T,z,Z,"\u2265","\\geq",!0);w(T,z,Z,"\u2190","\\gets");w(T,z,Z,">","\\gt",!0);w(T,z,Z,"\u2208","\\in",!0);w(T,z,Z,"\uE020","\\@not");w(T,z,Z,"\u2282","\\subset",!0);w(T,z,Z,"\u2283","\\supset",!0);w(T,z,Z,"\u2286","\\subseteq",!0);w(T,z,Z,"\u2287","\\supseteq",!0);w(T,X,Z,"\u2288","\\nsubseteq",!0);w(T,X,Z,"\u2289","\\nsupseteq",!0);w(T,z,Z,"\u22A8","\\models");w(T,z,Z,"\u2190","\\leftarrow",!0);w(T,z,Z,"\u2264","\\le");w(T,z,Z,"\u2264","\\leq",!0);w(T,z,Z,"<","\\lt",!0);w(T,z,Z,"\u2192","\\rightarrow",!0);w(T,z,Z,"\u2192","\\to");w(T,X,Z,"\u2271","\\ngeq",!0);w(T,X,Z,"\u2270","\\nleq",!0);w(T,z,Ia,"\xA0","\\ ");w(T,z,Ia,"\xA0","\\space");w(T,z,Ia,"\xA0","\\nobreakspace");w(Ae,z,Ia,"\xA0","\\ ");w(Ae,z,Ia,"\xA0"," ");w(Ae,z,Ia,"\xA0","\\space");w(Ae,z,Ia,"\xA0","\\nobreakspace");w(T,z,Ia,null,"\\nobreak");w(T,z,Ia,null,"\\allowbreak");w(T,z,pm,",",",");w(T,z,pm,";",";");w(T,X,Pe,"\u22BC","\\barwedge",!0);w(T,X,Pe,"\u22BB","\\veebar",!0);w(T,z,Pe,"\u2299","\\odot",!0);w(T,z,Pe,"\u2295","\\oplus",!0);w(T,z,Pe,"\u2297","\\otimes",!0);w(T,z,re,"\u2202","\\partial",!0);w(T,z,Pe,"\u2298","\\oslash",!0);w(T,X,Pe,"\u229A","\\circledcirc",!0);w(T,X,Pe,"\u22A1","\\boxdot",!0);w(T,z,Pe,"\u25B3","\\bigtriangleup");w(T,z,Pe,"\u25BD","\\bigtriangledown");w(T,z,Pe,"\u2020","\\dagger");w(T,z,Pe,"\u22C4","\\diamond");w(T,z,Pe,"\u22C6","\\star");w(T,z,Pe,"\u25C3","\\triangleleft");w(T,z,Pe,"\u25B9","\\triangleright");w(T,z,Fn,"{","\\{");w(Ae,z,re,"{","\\{");w(Ae,z,re,"{","\\textbraceleft");w(T,z,Yi,"}","\\}");w(Ae,z,re,"}","\\}");w(Ae,z,re,"}","\\textbraceright");w(T,z,Fn,"{","\\lbrace");w(T,z,Yi,"}","\\rbrace");w(T,z,Fn,"[","\\lbrack",!0);w(Ae,z,re,"[","\\lbrack",!0);w(T,z,Yi,"]","\\rbrack",!0);w(Ae,z,re,"]","\\rbrack",!0);w(T,z,Fn,"(","\\lparen",!0);w(T,z,Yi,")","\\rparen",!0);w(Ae,z,re,"<","\\textless",!0);w(Ae,z,re,">","\\textgreater",!0);w(T,z,Fn,"\u230A","\\lfloor",!0);w(T,z,Yi,"\u230B","\\rfloor",!0);w(T,z,Fn,"\u2308","\\lceil",!0);w(T,z,Yi,"\u2309","\\rceil",!0);w(T,z,re,"\\","\\backslash");w(T,z,re,"\u2223","|");w(T,z,re,"\u2223","\\vert");w(Ae,z,re,"|","\\textbar",!0);w(T,z,re,"\u2225","\\|");w(T,z,re,"\u2225","\\Vert");w(Ae,z,re,"\u2225","\\textbardbl");w(Ae,z,re,"~","\\textasciitilde");w(Ae,z,re,"\\","\\textbackslash");w(Ae,z,re,"^","\\textasciicircum");w(T,z,Z,"\u2191","\\uparrow",!0);w(T,z,Z,"\u21D1","\\Uparrow",!0);w(T,z,Z,"\u2193","\\downarrow",!0);w(T,z,Z,"\u21D3","\\Downarrow",!0);w(T,z,Z,"\u2195","\\updownarrow",!0);w(T,z,Z,"\u21D5","\\Updownarrow",!0);w(T,z,Wr,"\u2210","\\coprod");w(T,z,Wr,"\u22C1","\\bigvee");w(T,z,Wr,"\u22C0","\\bigwedge");w(T,z,Wr,"\u2A04","\\biguplus");w(T,z,Wr,"\u22C2","\\bigcap");w(T,z,Wr,"\u22C3","\\bigcup");w(T,z,Wr,"\u222B","\\int");w(T,z,Wr,"\u222B","\\intop");w(T,z,Wr,"\u222C","\\iint");w(T,z,Wr,"\u222D","\\iiint");w(T,z,Wr,"\u220F","\\prod");w(T,z,Wr,"\u2211","\\sum");w(T,z,Wr,"\u2A02","\\bigotimes");w(T,z,Wr,"\u2A01","\\bigoplus");w(T,z,Wr,"\u2A00","\\bigodot");w(T,z,Wr,"\u222E","\\oint");w(T,z,Wr,"\u222F","\\oiint");w(T,z,Wr,"\u2230","\\oiiint");w(T,z,Wr,"\u2A06","\\bigsqcup");w(T,z,Wr,"\u222B","\\smallint");w(Ae,z,dh,"\u2026","\\textellipsis");w(T,z,dh,"\u2026","\\mathellipsis");w(Ae,z,dh,"\u2026","\\ldots",!0);w(T,z,dh,"\u2026","\\ldots",!0);w(T,z,dh,"\u22EF","\\@cdots",!0);w(T,z,dh,"\u22F1","\\ddots",!0);w(T,z,re,"\u22EE","\\varvdots");w(Ae,z,re,"\u22EE","\\varvdots");w(T,z,Ar,"\u02CA","\\acute");w(T,z,Ar,"\u02CB","\\grave");w(T,z,Ar,"\xA8","\\ddot");w(T,z,Ar,"~","\\tilde");w(T,z,Ar,"\u02C9","\\bar");w(T,z,Ar,"\u02D8","\\breve");w(T,z,Ar,"\u02C7","\\check");w(T,z,Ar,"^","\\hat");w(T,z,Ar,"\u20D7","\\vec");w(T,z,Ar,"\u02D9","\\dot");w(T,z,Ar,"\u02DA","\\mathring");w(T,z,nt,"\uE131","\\@imath");w(T,z,nt,"\uE237","\\@jmath");w(T,z,re,"\u0131","\u0131");w(T,z,re,"\u0237","\u0237");w(Ae,z,re,"\u0131","\\i",!0);w(Ae,z,re,"\u0237","\\j",!0);w(Ae,z,re,"\xDF","\\ss",!0);w(Ae,z,re,"\xE6","\\ae",!0);w(Ae,z,re,"\u0153","\\oe",!0);w(Ae,z,re,"\xF8","\\o",!0);w(Ae,z,re,"\xC6","\\AE",!0);w(Ae,z,re,"\u0152","\\OE",!0);w(Ae,z,re,"\xD8","\\O",!0);w(Ae,z,Ar,"\u02CA","\\'");w(Ae,z,Ar,"\u02CB","\\`");w(Ae,z,Ar,"\u02C6","\\^");w(Ae,z,Ar,"\u02DC","\\~");w(Ae,z,Ar,"\u02C9","\\=");w(Ae,z,Ar,"\u02D8","\\u");w(Ae,z,Ar,"\u02D9","\\.");w(Ae,z,Ar,"\xB8","\\c");w(Ae,z,Ar,"\u02DA","\\r");w(Ae,z,Ar,"\u02C7","\\v");w(Ae,z,Ar,"\xA8",'\\"');w(Ae,z,Ar,"\u02DD","\\H");w(Ae,z,Ar,"\u25EF","\\textcircled");var mb={"--":!0,"---":!0,"``":!0,"''":!0};w(Ae,z,re,"\u2013","--",!0);w(Ae,z,re,"\u2013","\\textendash");w(Ae,z,re,"\u2014","---",!0);w(Ae,z,re,"\u2014","\\textemdash");w(Ae,z,re,"\u2018","`",!0);w(Ae,z,re,"\u2018","\\textquoteleft");w(Ae,z,re,"\u2019","'",!0);w(Ae,z,re,"\u2019","\\textquoteright");w(Ae,z,re,"\u201C","``",!0);w(Ae,z,re,"\u201C","\\textquotedblleft");w(Ae,z,re,"\u201D","''",!0);w(Ae,z,re,"\u201D","\\textquotedblright");w(T,z,re,"\xB0","\\degree",!0);w(Ae,z,re,"\xB0","\\degree");w(Ae,z,re,"\xB0","\\textdegree",!0);w(T,z,re,"\xA3","\\pounds");w(T,z,re,"\xA3","\\mathsterling",!0);w(Ae,z,re,"\xA3","\\pounds");w(Ae,z,re,"\xA3","\\textsterling",!0);w(T,X,re,"\u2720","\\maltese");w(Ae,X,re,"\u2720","\\maltese");var Bx='0123456789/@."';for(Zf=0;Zf0)return ws(s,h,n,t,a.concat(c));if(l){var u,d;if(l==="boldsymbol"){var f=uU(s,n,t,a,i);u=f.fontName,d=[f.fontClass]}else o?(u=vb[l].fontName,d=[l]):(u=rm(l,t.fontWeight,t.fontShape),d=[l,t.fontWeight,t.fontShape]);if(gm(s,u,n).metrics)return ws(s,u,n,t,a.concat(d));if(mb.hasOwnProperty(s)&&u.slice(0,10)==="Typewriter"){for(var m=[],g=0;g{if(wo(r.classes)!==wo(e.classes)||r.skew!==e.skew||r.maxFontSize!==e.maxFontSize)return!1;if(r.classes.length===1){var t=r.classes[0];if(t==="mbin"||t==="mord")return!1}for(var i in r.style)if(r.style.hasOwnProperty(i)&&r.style[i]!==e.style[i])return!1;for(var n in e.style)if(e.style.hasOwnProperty(n)&&r.style[n]!==e.style[n])return!1;return!0},mU=r=>{for(var e=0;et&&(t=a.height),a.depth>i&&(i=a.depth),a.maxFontSize>n&&(n=a.maxFontSize)}e.height=t,e.depth=i,e.maxFontSize=n},dn=function(e,t,i,n){var s=new ql(e,t,i,n);return M4(s),s},pb=(r,e,t,i)=>new ql(r,e,t,i),pU=function(e,t,i){var n=dn([e],[],t);return n.height=Math.max(i||t.fontMetrics().defaultRuleThickness,t.minRuleThickness),n.style.borderBottomWidth=Ie(n.height),n.maxFontSize=1,n},gU=function(e,t,i,n){var s=new qu(e,t,i,n);return M4(s),s},gb=function(e){var t=new _l(e);return M4(t),t},vU=function(e,t){return e instanceof _l?dn([],[e],t):e},yU=function(e){if(e.positionType==="individualShift"){for(var t=e.children,i=[t[0]],n=-t[0].shift-t[0].elem.depth,s=n,a=1;a{var t=dn(["mspace"],[],e),i=Dr(r,e);return t.style.marginRight=Ie(i),t},rm=function(e,t,i){var n="";switch(e){case"amsrm":n="AMS";break;case"textrm":n="Main";break;case"textsf":n="SansSerif";break;case"texttt":n="Typewriter";break;default:n=e}var s;return t==="textbf"&&i==="textit"?s="BoldItalic":t==="textbf"?s="Bold":t==="textit"?s="Italic":s="Regular",n+"-"+s},vb={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathsfit:{variant:"sans-serif-italic",fontName:"SansSerif-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},yb={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},wU=function(e,t){var[i,n,s]=yb[e],a=new Hs(i),o=new Es([a],{width:Ie(n),height:Ie(s),style:"width:"+Ie(n),viewBox:"0 0 "+1e3*n+" "+1e3*s,preserveAspectRatio:"xMinYMin"}),l=pb(["overlay"],[o],t);return l.height=s,l.style.height=Ie(s),l.style.width=Ie(n),l},he={fontMap:vb,makeSymbol:ws,mathsym:cU,makeSpan:dn,makeSvgSpan:pb,makeLineSpan:pU,makeAnchor:gU,makeFragment:gb,wrapFragment:vU,makeVList:xU,makeOrd:dU,makeGlue:bU,staticSvg:wU,svgData:yb,tryCombineChars:mU},kr={number:3,unit:"mu"},Pl={number:4,unit:"mu"},Ma={number:5,unit:"mu"},AU={mord:{mop:kr,mbin:Pl,mrel:Ma,minner:kr},mop:{mord:kr,mop:kr,mrel:Ma,minner:kr},mbin:{mord:Pl,mop:Pl,mopen:Pl,minner:Pl},mrel:{mord:Ma,mop:Ma,mopen:Ma,minner:Ma},mopen:{},mclose:{mop:kr,mbin:Pl,mrel:Ma,minner:kr},mpunct:{mord:kr,mop:kr,mrel:Ma,mopen:kr,mclose:kr,mpunct:kr,minner:kr},minner:{mord:kr,mop:kr,mbin:Pl,mrel:Ma,mopen:kr,mpunct:kr,minner:kr}},EU={mord:{mop:kr},mop:{mord:kr,mop:kr},mbin:{},mrel:{},mopen:{},mclose:{mop:kr},mpunct:{},minner:{mop:kr}},xb={},um={},dm={};function Le(r){for(var{type:e,names:t,props:i,handler:n,htmlBuilder:s,mathmlBuilder:a}=r,o={type:e,numArgs:i.numArgs,argTypes:i.argTypes,allowedInArgument:!!i.allowedInArgument,allowedInText:!!i.allowedInText,allowedInMath:i.allowedInMath===void 0?!0:i.allowedInMath,numOptionalArgs:i.numOptionalArgs||0,infix:!!i.infix,primitive:!!i.primitive,handler:n},l=0;l{var v=g.classes[0],y=m.classes[0];v==="mbin"&&rt.contains(SU,y)?g.classes[0]="mord":y==="mbin"&&rt.contains(CU,v)&&(m.classes[0]="mord")},{node:u},d,f),_x(s,(m,g)=>{var v=v4(g),y=v4(m),A=v&&y?m.hasClass("mtight")?EU[v][y]:AU[v][y]:null;if(A)return he.makeGlue(A,h)},{node:u},d,f),s},_x=function r(e,t,i,n,s){n&&e.push(n);for(var a=0;ad=>{e.splice(u+1,0,d),a++})(a)}n&&e.pop()},bb=function(e){return e instanceof _l||e instanceof qu||e instanceof ql&&e.hasClass("enclosing")?e:null},kU=function r(e,t){var i=bb(e);if(i){var n=i.children;if(n.length){if(t==="right")return r(n[n.length-1],"right");if(t==="left")return r(n[0],"left")}}return e},v4=function(e,t){return e?(t&&(e=kU(e,t)),MU[e.classes[0]]||null):null},Hu=function(e,t){var i=["nulldelimiter"].concat(e.baseSizingClasses());return Na(t.concat(i))},jt=function(e,t,i){if(!e)return Na();if(um[e.type]){var n=um[e.type](e,t);if(i&&t.size!==i.size){n=Na(t.sizingClasses(i),[n],t);var s=t.sizeMultiplier/i.sizeMultiplier;n.height*=s,n.depth*=s}return n}else throw new Me("Got group of unknown type: '"+e.type+"'")};function im(r,e){var t=Na(["base"],r,e),i=Na(["strut"]);return i.style.height=Ie(t.height+t.depth),t.depth&&(i.style.verticalAlign=Ie(-t.depth)),t.children.unshift(i),t}function y4(r,e){var t=null;r.length===1&&r[0].type==="tag"&&(t=r[0].tag,r=r[0].body);var i=ti(r,e,"root"),n;i.length===2&&i[1].hasClass("tag")&&(n=i.pop());for(var s=[],a=[],o=0;o0&&(s.push(im(a,e)),a=[]),s.push(i[o]));a.length>0&&s.push(im(a,e));var h;t?(h=im(ti(t,e,!0)),h.classes=["tag"],s.push(h)):n&&s.push(n);var c=Na(["katex-html"],s);if(c.setAttribute("aria-hidden","true"),h){var u=h.children[0];u.style.height=Ie(c.height+c.depth),c.depth&&(u.style.verticalAlign=Ie(-c.depth))}return c}function wb(r){return new _l(r)}var Gi=class{constructor(e,t,i){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=e,this.attributes={},this.children=t||[],this.classes=i||[]}setAttribute(e,t){this.attributes[e]=t}getAttribute(e){return this.attributes[e]}toNode(){var e=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var t in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,t)&&e.setAttribute(t,this.attributes[t]);this.classes.length>0&&(e.className=wo(this.classes));for(var i=0;i0&&(e+=' class ="'+rt.escape(wo(this.classes))+'"'),e+=">";for(var i=0;i",e}toText(){return this.children.map(e=>e.toText()).join("")}},Xn=class{constructor(e){this.text=void 0,this.text=e}toNode(){return document.createTextNode(this.text)}toMarkup(){return rt.escape(this.toText())}toText(){return this.text}},x4=class{constructor(e){this.width=void 0,this.character=void 0,this.width=e,e>=.05555&&e<=.05556?this.character="\u200A":e>=.1666&&e<=.1667?this.character="\u2009":e>=.2222&&e<=.2223?this.character="\u2005":e>=.2777&&e<=.2778?this.character="\u2005\u200A":e>=-.05556&&e<=-.05555?this.character="\u200A\u2063":e>=-.1667&&e<=-.1666?this.character="\u2009\u2063":e>=-.2223&&e<=-.2222?this.character="\u205F\u2063":e>=-.2778&&e<=-.2777?this.character="\u2005\u2063":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var e=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return e.setAttribute("width",Ie(this.width)),e}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}},Te={MathNode:Gi,TextNode:Xn,SpaceNode:x4,newDocumentFragment:wb},Zn=function(e,t,i){return cr[t][e]&&cr[t][e].replace&&e.charCodeAt(0)!==55349&&!(mb.hasOwnProperty(e)&&i&&(i.fontFamily&&i.fontFamily.slice(4,6)==="tt"||i.font&&i.font.slice(4,6)==="tt"))&&(e=cr[t][e].replace),new Te.TextNode(e)},k4=function(e){return e.length===1?e[0]:new Te.MathNode("mrow",e)},D4=function(e,t){if(t.fontFamily==="texttt")return"monospace";if(t.fontFamily==="textsf")return t.fontShape==="textit"&&t.fontWeight==="textbf"?"sans-serif-bold-italic":t.fontShape==="textit"?"sans-serif-italic":t.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(t.fontShape==="textit"&&t.fontWeight==="textbf")return"bold-italic";if(t.fontShape==="textit")return"italic";if(t.fontWeight==="textbf")return"bold";var i=t.font;if(!i||i==="mathnormal")return null;var n=e.mode;if(i==="mathit")return"italic";if(i==="boldsymbol")return e.type==="textord"?"bold":"bold-italic";if(i==="mathbf")return"bold";if(i==="mathbb")return"double-struck";if(i==="mathsfit")return"sans-serif-italic";if(i==="mathfrak")return"fraktur";if(i==="mathscr"||i==="mathcal")return"script";if(i==="mathsf")return"sans-serif";if(i==="mathtt")return"monospace";var s=e.text;if(rt.contains(["\\imath","\\jmath"],s))return null;cr[n][s]&&cr[n][s].replace&&(s=cr[n][s].replace);var a=he.fontMap[i].fontName;return T4(s,a,n)?he.fontMap[i].variant:null};function i4(r){if(!r)return!1;if(r.type==="mi"&&r.children.length===1){var e=r.children[0];return e instanceof Xn&&e.text==="."}else if(r.type==="mo"&&r.children.length===1&&r.getAttribute("separator")==="true"&&r.getAttribute("lspace")==="0em"&&r.getAttribute("rspace")==="0em"){var t=r.children[0];return t instanceof Xn&&t.text===","}else return!1}var pn=function(e,t,i){if(e.length===1){var n=sr(e[0],t);return i&&n instanceof Gi&&n.type==="mo"&&(n.setAttribute("lspace","0em"),n.setAttribute("rspace","0em")),[n]}for(var s=[],a,o=0;o=1&&(a.type==="mn"||i4(a))){var h=l.children[0];h instanceof Gi&&h.type==="mn"&&(h.children=[...a.children,...h.children],s.pop())}else if(a.type==="mi"&&a.children.length===1){var c=a.children[0];if(c instanceof Xn&&c.text==="\u0338"&&(l.type==="mo"||l.type==="mi"||l.type==="mn")){var u=l.children[0];u instanceof Xn&&u.text.length>0&&(u.text=u.text.slice(0,1)+"\u0338"+u.text.slice(1),s.pop())}}}s.push(l),a=l}return s},Ao=function(e,t,i){return k4(pn(e,t,i))},sr=function(e,t){if(!e)return new Te.MathNode("mrow");if(dm[e.type]){var i=dm[e.type](e,t);return i}else throw new Me("Got group of unknown type: '"+e.type+"'")};function qx(r,e,t,i,n){var s=pn(r,t),a;s.length===1&&s[0]instanceof Gi&&rt.contains(["mrow","mtable"],s[0].type)?a=s[0]:a=new Te.MathNode("mrow",s);var o=new Te.MathNode("annotation",[new Te.TextNode(e)]);o.setAttribute("encoding","application/x-tex");var l=new Te.MathNode("semantics",[a,o]),h=new Te.MathNode("math",[l]);h.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),i&&h.setAttribute("display","block");var c=n?"katex":"katex-mathml";return he.makeSpan([c],[h])}var Ab=function(e){return new As({style:e.displayMode?st.DISPLAY:st.TEXT,maxSize:e.maxSize,minRuleThickness:e.minRuleThickness})},Eb=function(e,t){if(t.displayMode){var i=["katex-display"];t.leqno&&i.push("leqno"),t.fleqn&&i.push("fleqn"),e=he.makeSpan(i,[e])}return e},DU=function(e,t,i){var n=Ab(i),s;if(i.output==="mathml")return qx(e,t,n,i.displayMode,!0);if(i.output==="html"){var a=y4(e,n);s=he.makeSpan(["katex"],[a])}else{var o=qx(e,t,n,i.displayMode,!1),l=y4(e,n);s=he.makeSpan(["katex"],[o,l])}return Eb(s,i)},NU=function(e,t,i){var n=Ab(i),s=y4(e,n),a=he.makeSpan(["katex"],[s]);return Eb(a,i)},FU={widehat:"^",widecheck:"\u02C7",widetilde:"~",utilde:"~",overleftarrow:"\u2190",underleftarrow:"\u2190",xleftarrow:"\u2190",overrightarrow:"\u2192",underrightarrow:"\u2192",xrightarrow:"\u2192",underbrace:"\u23DF",overbrace:"\u23DE",overgroup:"\u23E0",undergroup:"\u23E1",overleftrightarrow:"\u2194",underleftrightarrow:"\u2194",xleftrightarrow:"\u2194",Overrightarrow:"\u21D2",xRightarrow:"\u21D2",overleftharpoon:"\u21BC",xleftharpoonup:"\u21BC",overrightharpoon:"\u21C0",xrightharpoonup:"\u21C0",xLeftarrow:"\u21D0",xLeftrightarrow:"\u21D4",xhookleftarrow:"\u21A9",xhookrightarrow:"\u21AA",xmapsto:"\u21A6",xrightharpoondown:"\u21C1",xleftharpoondown:"\u21BD",xrightleftharpoons:"\u21CC",xleftrightharpoons:"\u21CB",xtwoheadleftarrow:"\u219E",xtwoheadrightarrow:"\u21A0",xlongequal:"=",xtofrom:"\u21C4",xrightleftarrows:"\u21C4",xrightequilibrium:"\u21CC",xleftequilibrium:"\u21CB","\\cdrightarrow":"\u2192","\\cdleftarrow":"\u2190","\\cdlongequal":"="},IU=function(e){var t=new Te.MathNode("mo",[new Te.TextNode(FU[e.replace(/^\\/,"")])]);return t.setAttribute("stretchy","true"),t},zU={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},LU=function(e){return e.type==="ordgroup"?e.body.length:1},OU=function(e,t){function i(){var o=4e5,l=e.label.slice(1);if(rt.contains(["widehat","widecheck","widetilde","utilde"],l)){var h=e,c=LU(h.base),u,d,f;if(c>5)l==="widehat"||l==="widecheck"?(u=420,o=2364,f=.42,d=l+"4"):(u=312,o=2340,f=.34,d="tilde4");else{var m=[1,1,2,2,3,3][c];l==="widehat"||l==="widecheck"?(o=[0,1062,2364,2364,2364][m],u=[0,239,300,360,420][m],f=[0,.24,.3,.3,.36,.42][m],d=l+m):(o=[0,600,1033,2339,2340][m],u=[0,260,286,306,312][m],f=[0,.26,.286,.3,.306,.34][m],d="tilde"+m)}var g=new Hs(d),v=new Es([g],{width:"100%",height:Ie(f),viewBox:"0 0 "+o+" "+u,preserveAspectRatio:"none"});return{span:he.makeSvgSpan([],[v],t),minWidth:0,height:f}}else{var y=[],A=zU[l],[b,C,M]=A,D=M/1e3,L=b.length,k,V;if(L===1){var B=A[3];k=["hide-tail"],V=[B]}else if(L===2)k=["halfarrow-left","halfarrow-right"],V=["xMinYMin","xMaxYMin"];else if(L===3)k=["brace-left","brace-center","brace-right"],V=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+L+" children.");for(var _=0;_0&&(n.style.minWidth=Ie(s)),n},BU=function(e,t,i,n,s){var a,o=e.height+e.depth+i+n;if(/fbox|color|angl/.test(t)){if(a=he.makeSpan(["stretchy",t],[],s),t==="fbox"){var l=s.color&&s.getColor();l&&(a.style.borderColor=l)}}else{var h=[];/^[bx]cancel$/.test(t)&&h.push(new Uu({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(t)&&h.push(new Uu({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var c=new Es(h,{width:"100%",height:Ie(o)});a=he.makeSvgSpan([],[c],s)}return a.height=o,a.style.height=Ie(o),a},Fa={encloseSpan:BU,mathMLnode:IU,svgSpan:OU};function Et(r,e){if(!r||r.type!==e)throw new Error("Expected node of type "+e+", but got "+(r?"node of type "+r.type:String(r)));return r}function N4(r){var e=vm(r);if(!e)throw new Error("Expected node of symbol group type, but got "+(r?"node of type "+r.type:String(r)));return e}function vm(r){return r&&(r.type==="atom"||lU.hasOwnProperty(r.type))?r:null}var F4=(r,e)=>{var t,i,n;r&&r.type==="supsub"?(i=Et(r.base,"accent"),t=i.base,r.base=t,n=aU(jt(r,e)),r.base=i):(i=Et(r,"accent"),t=i.base);var s=jt(t,e.havingCrampedStyle()),a=i.isShifty&&rt.isCharacterBox(t),o=0;if(a){var l=rt.getBaseElem(t),h=jt(l,e.havingCrampedStyle());o=Ox(h).skew}var c=i.label==="\\c",u=c?s.height+s.depth:Math.min(s.height,e.fontMetrics().xHeight),d;if(i.isStretchy)d=Fa.svgSpan(i,e),d=he.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"elem",elem:d,wrapperClasses:["svg-align"],wrapperStyle:o>0?{width:"calc(100% - "+Ie(2*o)+")",marginLeft:Ie(2*o)}:void 0}]},e);else{var f,m;i.label==="\\vec"?(f=he.staticSvg("vec",e),m=he.svgData.vec[1]):(f=he.makeOrd({mode:i.mode,text:i.label},e,"textord"),f=Ox(f),f.italic=0,m=f.width,c&&(u+=f.depth)),d=he.makeSpan(["accent-body"],[f]);var g=i.label==="\\textcircled";g&&(d.classes.push("accent-full"),u=s.height);var v=o;g||(v-=m/2),d.style.left=Ie(v),i.label==="\\textcircled"&&(d.style.top=".2em"),d=he.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:-u},{type:"elem",elem:d}]},e)}var y=he.makeSpan(["mord","accent"],[d],e);return n?(n.children[0]=y,n.height=Math.max(y.height,n.height),n.classes[0]="mord",n):y},Cb=(r,e)=>{var t=r.isStretchy?Fa.mathMLnode(r.label):new Te.MathNode("mo",[Zn(r.label,r.mode)]),i=new Te.MathNode("mover",[sr(r.base,e),t]);return i.setAttribute("accent","true"),i},RU=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(r=>"\\"+r).join("|"));Le({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(r,e)=>{var t=fm(e[0]),i=!RU.test(r.funcName),n=!i||r.funcName==="\\widehat"||r.funcName==="\\widetilde"||r.funcName==="\\widecheck";return{type:"accent",mode:r.parser.mode,label:r.funcName,isStretchy:i,isShifty:n,base:t}},htmlBuilder:F4,mathmlBuilder:Cb});Le({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(r,e)=>{var t=e[0],i=r.parser.mode;return i==="math"&&(r.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+r.funcName+" works only in text mode"),i="text"),{type:"accent",mode:i,label:r.funcName,isStretchy:!1,isShifty:!0,base:t}},htmlBuilder:F4,mathmlBuilder:Cb});Le({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=e[0];return{type:"accentUnder",mode:t.mode,label:i,base:n}},htmlBuilder:(r,e)=>{var t=jt(r.base,e),i=Fa.svgSpan(r,e),n=r.label==="\\utilde"?.12:0,s=he.makeVList({positionType:"top",positionData:t.height,children:[{type:"elem",elem:i,wrapperClasses:["svg-align"]},{type:"kern",size:n},{type:"elem",elem:t}]},e);return he.makeSpan(["mord","accentunder"],[s],e)},mathmlBuilder:(r,e)=>{var t=Fa.mathMLnode(r.label),i=new Te.MathNode("munder",[sr(r.base,e),t]);return i.setAttribute("accentunder","true"),i}});var nm=r=>{var e=new Te.MathNode("mpadded",r?[r]:[]);return e.setAttribute("width","+0.6em"),e.setAttribute("lspace","0.3em"),e};Le({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:i,funcName:n}=r;return{type:"xArrow",mode:i.mode,label:n,body:e[0],below:t[0]}},htmlBuilder(r,e){var t=e.style,i=e.havingStyle(t.sup()),n=he.wrapFragment(jt(r.body,i,e),e),s=r.label.slice(0,2)==="\\x"?"x":"cd";n.classes.push(s+"-arrow-pad");var a;r.below&&(i=e.havingStyle(t.sub()),a=he.wrapFragment(jt(r.below,i,e),e),a.classes.push(s+"-arrow-pad"));var o=Fa.svgSpan(r,e),l=-e.fontMetrics().axisHeight+.5*o.height,h=-e.fontMetrics().axisHeight-.5*o.height-.111;(n.depth>.25||r.label==="\\xleftequilibrium")&&(h-=n.depth);var c;if(a){var u=-e.fontMetrics().axisHeight+a.height+.5*o.height+.111;c=he.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:o,shift:l},{type:"elem",elem:a,shift:u}]},e)}else c=he.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:h},{type:"elem",elem:o,shift:l}]},e);return c.children[0].children[0].children[1].classes.push("svg-align"),he.makeSpan(["mrel","x-arrow"],[c],e)},mathmlBuilder(r,e){var t=Fa.mathMLnode(r.label);t.setAttribute("minsize",r.label.charAt(0)==="x"?"1.75em":"3.0em");var i;if(r.body){var n=nm(sr(r.body,e));if(r.below){var s=nm(sr(r.below,e));i=new Te.MathNode("munderover",[t,s,n])}else i=new Te.MathNode("mover",[t,n])}else if(r.below){var a=nm(sr(r.below,e));i=new Te.MathNode("munder",[t,a])}else i=nm(),i=new Te.MathNode("mover",[t,i]);return i}});var PU=he.makeSpan;function Sb(r,e){var t=ti(r.body,e,!0);return PU([r.mclass],t,e)}function Tb(r,e){var t,i=pn(r.body,e);return r.mclass==="minner"?t=new Te.MathNode("mpadded",i):r.mclass==="mord"?r.isCharacterBox?(t=i[0],t.type="mi"):t=new Te.MathNode("mi",i):(r.isCharacterBox?(t=i[0],t.type="mo"):t=new Te.MathNode("mo",i),r.mclass==="mbin"?(t.attributes.lspace="0.22em",t.attributes.rspace="0.22em"):r.mclass==="mpunct"?(t.attributes.lspace="0em",t.attributes.rspace="0.17em"):r.mclass==="mopen"||r.mclass==="mclose"?(t.attributes.lspace="0em",t.attributes.rspace="0em"):r.mclass==="minner"&&(t.attributes.lspace="0.0556em",t.attributes.width="+0.1111em")),t}Le({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(r,e){var{parser:t,funcName:i}=r,n=e[0];return{type:"mclass",mode:t.mode,mclass:"m"+i.slice(5),body:Pr(n),isCharacterBox:rt.isCharacterBox(n)}},htmlBuilder:Sb,mathmlBuilder:Tb});var ym=r=>{var e=r.type==="ordgroup"&&r.body.length?r.body[0]:r;return e.type==="atom"&&(e.family==="bin"||e.family==="rel")?"m"+e.family:"mord"};Le({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(r,e){var{parser:t}=r;return{type:"mclass",mode:t.mode,mclass:ym(e[0]),body:Pr(e[1]),isCharacterBox:rt.isCharacterBox(e[1])}}});Le({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(r,e){var{parser:t,funcName:i}=r,n=e[1],s=e[0],a;i!=="\\stackrel"?a=ym(n):a="mrel";var o={type:"op",mode:n.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:i!=="\\stackrel",body:Pr(n)},l={type:"supsub",mode:s.mode,base:o,sup:i==="\\underset"?null:s,sub:i==="\\underset"?s:null};return{type:"mclass",mode:t.mode,mclass:a,body:[l],isCharacterBox:rt.isCharacterBox(l)}},htmlBuilder:Sb,mathmlBuilder:Tb});Le({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"pmb",mode:t.mode,mclass:ym(e[0]),body:Pr(e[0])}},htmlBuilder(r,e){var t=ti(r.body,e,!0),i=he.makeSpan([r.mclass],t,e);return i.style.textShadow="0.02em 0.01em 0.04px",i},mathmlBuilder(r,e){var t=pn(r.body,e),i=new Te.MathNode("mstyle",t);return i.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),i}});var _U={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},Ux=()=>({type:"styling",body:[],mode:"math",style:"display"}),Hx=r=>r.type==="textord"&&r.text==="@",qU=(r,e)=>(r.type==="mathord"||r.type==="atom")&&r.text===e;function UU(r,e,t){var i=_U[r];switch(i){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return t.callFunction(i,[e[0]],[e[1]]);case"\\uparrow":case"\\downarrow":{var n=t.callFunction("\\\\cdleft",[e[0]],[]),s={type:"atom",text:i,mode:"math",family:"rel"},a=t.callFunction("\\Big",[s],[]),o=t.callFunction("\\\\cdright",[e[1]],[]),l={type:"ordgroup",mode:"math",body:[n,a,o]};return t.callFunction("\\\\cdparent",[l],[])}case"\\\\cdlongequal":return t.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var h={type:"textord",text:"\\Vert",mode:"math"};return t.callFunction("\\Big",[h],[])}default:return{type:"textord",text:" ",mode:"math"}}}function HU(r){var e=[];for(r.gullet.beginGroup(),r.gullet.macros.set("\\cr","\\\\\\relax"),r.gullet.beginGroup();;){e.push(r.parseExpression(!1,"\\\\")),r.gullet.endGroup(),r.gullet.beginGroup();var t=r.fetch().text;if(t==="&"||t==="\\\\")r.consume();else if(t==="\\end"){e[e.length-1].length===0&&e.pop();break}else throw new Me("Expected \\\\ or \\cr or \\end",r.nextToken)}for(var i=[],n=[i],s=0;s-1))if("<>AV".indexOf(h)>-1)for(var u=0;u<2;u++){for(var d=!0,f=l+1;fAV=|." after @',a[l]);var m=UU(h,c,r),g={type:"styling",body:[m],mode:"math",style:"display"};i.push(g),o=Ux()}s%2===0?i.push(o):i.shift(),i=[],n.push(i)}r.gullet.endGroup(),r.gullet.endGroup();var v=new Array(n[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:n,arraystretch:1,addJot:!0,rowGaps:[null],cols:v,colSeparationType:"CD",hLinesBeforeRow:new Array(n.length+1).fill([])}}Le({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:i}=r;return{type:"cdlabel",mode:t.mode,side:i.slice(4),label:e[0]}},htmlBuilder(r,e){var t=e.havingStyle(e.style.sup()),i=he.wrapFragment(jt(r.label,t,e),e);return i.classes.push("cd-label-"+r.side),i.style.bottom=Ie(.8-i.depth),i.height=0,i.depth=0,i},mathmlBuilder(r,e){var t=new Te.MathNode("mrow",[sr(r.label,e)]);return t=new Te.MathNode("mpadded",[t]),t.setAttribute("width","0"),r.side==="left"&&t.setAttribute("lspace","-1width"),t.setAttribute("voffset","0.7em"),t=new Te.MathNode("mstyle",[t]),t.setAttribute("displaystyle","false"),t.setAttribute("scriptlevel","1"),t}});Le({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(r,e){var{parser:t}=r;return{type:"cdlabelparent",mode:t.mode,fragment:e[0]}},htmlBuilder(r,e){var t=he.wrapFragment(jt(r.fragment,e),e);return t.classes.push("cd-vert-arrow"),t},mathmlBuilder(r,e){return new Te.MathNode("mrow",[sr(r.fragment,e)])}});Le({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(r,e){for(var{parser:t}=r,i=Et(e[0],"ordgroup"),n=i.body,s="",a=0;a=1114111)throw new Me("\\@char with invalid code point "+s);return l<=65535?h=String.fromCharCode(l):(l-=65536,h=String.fromCharCode((l>>10)+55296,(l&1023)+56320)),{type:"textord",mode:t.mode,text:h}}});var Mb=(r,e)=>{var t=ti(r.body,e.withColor(r.color),!1);return he.makeFragment(t)},kb=(r,e)=>{var t=pn(r.body,e.withColor(r.color)),i=new Te.MathNode("mstyle",t);return i.setAttribute("mathcolor",r.color),i};Le({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(r,e){var{parser:t}=r,i=Et(e[0],"color-token").color,n=e[1];return{type:"color",mode:t.mode,color:i,body:Pr(n)}},htmlBuilder:Mb,mathmlBuilder:kb});Le({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(r,e){var{parser:t,breakOnTokenText:i}=r,n=Et(e[0],"color-token").color;t.gullet.macros.set("\\current@color",n);var s=t.parseExpression(!0,i);return{type:"color",mode:t.mode,color:n,body:s}},htmlBuilder:Mb,mathmlBuilder:kb});Le({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(r,e,t){var{parser:i}=r,n=i.gullet.future().text==="["?i.parseSizeGroup(!0):null,s=!i.settings.displayMode||!i.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:i.mode,newLine:s,size:n&&Et(n,"size").value}},htmlBuilder(r,e){var t=he.makeSpan(["mspace"],[],e);return r.newLine&&(t.classes.push("newline"),r.size&&(t.style.marginTop=Ie(Dr(r.size,e)))),t},mathmlBuilder(r,e){var t=new Te.MathNode("mspace");return r.newLine&&(t.setAttribute("linebreak","newline"),r.size&&t.setAttribute("height",Ie(Dr(r.size,e)))),t}});var b4={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Db=r=>{var e=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new Me("Expected a control sequence",r);return e},jU=r=>{var e=r.gullet.popToken();return e.text==="="&&(e=r.gullet.popToken(),e.text===" "&&(e=r.gullet.popToken())),e},Nb=(r,e,t,i)=>{var n=r.gullet.macros.get(t.text);n==null&&(t.noexpand=!0,n={tokens:[t],numArgs:0,unexpandable:!r.gullet.isExpandable(t.text)}),r.gullet.macros.set(e,n,i)};Le({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(r){var{parser:e,funcName:t}=r;e.consumeSpaces();var i=e.fetch();if(b4[i.text])return(t==="\\global"||t==="\\\\globallong")&&(i.text=b4[i.text]),Et(e.parseFunction(),"internal");throw new Me("Invalid token after macro prefix",i)}});Le({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,i=e.gullet.popToken(),n=i.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(n))throw new Me("Expected a control sequence",i);for(var s=0,a,o=[[]];e.gullet.future().text!=="{";)if(i=e.gullet.popToken(),i.text==="#"){if(e.gullet.future().text==="{"){a=e.gullet.future(),o[s].push("{");break}if(i=e.gullet.popToken(),!/^[1-9]$/.test(i.text))throw new Me('Invalid argument number "'+i.text+'"');if(parseInt(i.text)!==s+1)throw new Me('Argument number "'+i.text+'" out of order');s++,o.push([])}else{if(i.text==="EOF")throw new Me("Expected a macro definition");o[s].push(i.text)}var{tokens:l}=e.gullet.consumeArg();return a&&l.unshift(a),(t==="\\edef"||t==="\\xdef")&&(l=e.gullet.expandTokens(l),l.reverse()),e.gullet.macros.set(n,{tokens:l,numArgs:s,delimiters:o},t===b4[t]),{type:"internal",mode:e.mode}}});Le({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,i=Db(e.gullet.popToken());e.gullet.consumeSpaces();var n=jU(e);return Nb(e,i,n,t==="\\\\globallet"),{type:"internal",mode:e.mode}}});Le({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r){var{parser:e,funcName:t}=r,i=Db(e.gullet.popToken()),n=e.gullet.popToken(),s=e.gullet.popToken();return Nb(e,i,s,t==="\\\\globalfuture"),e.gullet.pushToken(s),e.gullet.pushToken(n),{type:"internal",mode:e.mode}}});var Bu=function(e,t,i){var n=cr.math[e]&&cr.math[e].replace,s=T4(n||e,t,i);if(!s)throw new Error("Unsupported symbol "+e+" and font size "+t+".");return s},I4=function(e,t,i,n){var s=i.havingBaseStyle(t),a=he.makeSpan(n.concat(s.sizingClasses(i)),[e],i),o=s.sizeMultiplier/i.sizeMultiplier;return a.height*=o,a.depth*=o,a.maxFontSize=s.sizeMultiplier,a},Fb=function(e,t,i){var n=t.havingBaseStyle(i),s=(1-t.sizeMultiplier/n.sizeMultiplier)*t.fontMetrics().axisHeight;e.classes.push("delimcenter"),e.style.top=Ie(s),e.height-=s,e.depth+=s},GU=function(e,t,i,n,s,a){var o=he.makeSymbol(e,"Main-Regular",s,n),l=I4(o,t,n,a);return i&&Fb(l,n,t),l},WU=function(e,t,i,n){return he.makeSymbol(e,"Size"+t+"-Regular",i,n)},Ib=function(e,t,i,n,s,a){var o=WU(e,t,s,n),l=I4(he.makeSpan(["delimsizing","size"+t],[o],n),st.TEXT,n,a);return i&&Fb(l,n,st.TEXT),l},n4=function(e,t,i){var n;t==="Size1-Regular"?n="delim-size1":n="delim-size4";var s=he.makeSpan(["delimsizinginner",n],[he.makeSpan([],[he.makeSymbol(e,t,i)])]);return{type:"elem",elem:s}},s4=function(e,t,i){var n=Us["Size4-Regular"][e.charCodeAt(0)]?Us["Size4-Regular"][e.charCodeAt(0)][4]:Us["Size1-Regular"][e.charCodeAt(0)][4],s=new Hs("inner",Jq(e,Math.round(1e3*t))),a=new Es([s],{width:Ie(n),height:Ie(t),style:"width:"+Ie(n),viewBox:"0 0 "+1e3*n+" "+Math.round(1e3*t),preserveAspectRatio:"xMinYMin"}),o=he.makeSvgSpan([],[a],i);return o.height=t,o.style.height=Ie(t),o.style.width=Ie(n),{type:"elem",elem:o}},w4=.008,sm={type:"kern",size:-1*w4},YU=["|","\\lvert","\\rvert","\\vert"],VU=["\\|","\\lVert","\\rVert","\\Vert"],zb=function(e,t,i,n,s,a){var o,l,h,c,u="",d=0;o=h=c=e,l=null;var f="Size1-Regular";e==="\\uparrow"?h=c="\u23D0":e==="\\Uparrow"?h=c="\u2016":e==="\\downarrow"?o=h="\u23D0":e==="\\Downarrow"?o=h="\u2016":e==="\\updownarrow"?(o="\\uparrow",h="\u23D0",c="\\downarrow"):e==="\\Updownarrow"?(o="\\Uparrow",h="\u2016",c="\\Downarrow"):rt.contains(YU,e)?(h="\u2223",u="vert",d=333):rt.contains(VU,e)?(h="\u2225",u="doublevert",d=556):e==="["||e==="\\lbrack"?(o="\u23A1",h="\u23A2",c="\u23A3",f="Size4-Regular",u="lbrack",d=667):e==="]"||e==="\\rbrack"?(o="\u23A4",h="\u23A5",c="\u23A6",f="Size4-Regular",u="rbrack",d=667):e==="\\lfloor"||e==="\u230A"?(h=o="\u23A2",c="\u23A3",f="Size4-Regular",u="lfloor",d=667):e==="\\lceil"||e==="\u2308"?(o="\u23A1",h=c="\u23A2",f="Size4-Regular",u="lceil",d=667):e==="\\rfloor"||e==="\u230B"?(h=o="\u23A5",c="\u23A6",f="Size4-Regular",u="rfloor",d=667):e==="\\rceil"||e==="\u2309"?(o="\u23A4",h=c="\u23A5",f="Size4-Regular",u="rceil",d=667):e==="("||e==="\\lparen"?(o="\u239B",h="\u239C",c="\u239D",f="Size4-Regular",u="lparen",d=875):e===")"||e==="\\rparen"?(o="\u239E",h="\u239F",c="\u23A0",f="Size4-Regular",u="rparen",d=875):e==="\\{"||e==="\\lbrace"?(o="\u23A7",l="\u23A8",c="\u23A9",h="\u23AA",f="Size4-Regular"):e==="\\}"||e==="\\rbrace"?(o="\u23AB",l="\u23AC",c="\u23AD",h="\u23AA",f="Size4-Regular"):e==="\\lgroup"||e==="\u27EE"?(o="\u23A7",c="\u23A9",h="\u23AA",f="Size4-Regular"):e==="\\rgroup"||e==="\u27EF"?(o="\u23AB",c="\u23AD",h="\u23AA",f="Size4-Regular"):e==="\\lmoustache"||e==="\u23B0"?(o="\u23A7",c="\u23AD",h="\u23AA",f="Size4-Regular"):(e==="\\rmoustache"||e==="\u23B1")&&(o="\u23AB",c="\u23A9",h="\u23AA",f="Size4-Regular");var m=Bu(o,f,s),g=m.height+m.depth,v=Bu(h,f,s),y=v.height+v.depth,A=Bu(c,f,s),b=A.height+A.depth,C=0,M=1;if(l!==null){var D=Bu(l,f,s);C=D.height+D.depth,M=2}var L=g+b+C,k=Math.max(0,Math.ceil((t-L)/(M*y))),V=L+k*M*y,B=n.fontMetrics().axisHeight;i&&(B*=n.sizeMultiplier);var _=V/2-B,S=[];if(u.length>0){var G=V-g-b,Q=Math.round(V*1e3),Y=$q(u,Math.round(G*1e3)),ne=new Hs(u,Y),ee=(d/1e3).toFixed(3)+"em",be=(Q/1e3).toFixed(3)+"em",ae=new Es([ne],{width:ee,height:be,viewBox:"0 0 "+d+" "+Q}),O=he.makeSvgSpan([],[ae],n);O.height=Q/1e3,O.style.width=ee,O.style.height=be,S.push({type:"elem",elem:O})}else{if(S.push(n4(c,f,s)),S.push(sm),l===null){var Fe=V-g-b+2*w4;S.push(s4(h,Fe,n))}else{var we=(V-g-b-C)/2+2*w4;S.push(s4(h,we,n)),S.push(sm),S.push(n4(l,f,s)),S.push(sm),S.push(s4(h,we,n))}S.push(sm),S.push(n4(o,f,s))}var R=n.havingBaseStyle(st.TEXT),gt=he.makeVList({positionType:"bottom",positionData:_,children:S},R);return I4(he.makeSpan(["delimsizing","mult"],[gt],R),st.TEXT,n,a)},a4=80,o4=.08,l4=function(e,t,i,n,s){var a=Zq(e,n,i),o=new Hs(e,a),l=new Es([o],{width:"400em",height:Ie(t),viewBox:"0 0 400000 "+i,preserveAspectRatio:"xMinYMin slice"});return he.makeSvgSpan(["hide-tail"],[l],s)},KU=function(e,t){var i=t.havingBaseSizing(),n=Rb("\\surd",e*i.sizeMultiplier,Bb,i),s=i.sizeMultiplier,a=Math.max(0,t.minRuleThickness-t.fontMetrics().sqrtRuleThickness),o,l=0,h=0,c=0,u;return n.type==="small"?(c=1e3+1e3*a+a4,e<1?s=1:e<1.4&&(s=.7),l=(1+a+o4)/s,h=(1+a)/s,o=l4("sqrtMain",l,c,a,t),o.style.minWidth="0.853em",u=.833/s):n.type==="large"?(c=(1e3+a4)*Ru[n.size],h=(Ru[n.size]+a)/s,l=(Ru[n.size]+a+o4)/s,o=l4("sqrtSize"+n.size,l,c,a,t),o.style.minWidth="1.02em",u=1/s):(l=e+a+o4,h=e+a,c=Math.floor(1e3*e+a)+a4,o=l4("sqrtTall",l,c,a,t),o.style.minWidth="0.742em",u=1.056),o.height=h,o.style.height=Ie(l),{span:o,advanceWidth:u,ruleWidth:(t.fontMetrics().sqrtRuleThickness+a)*s}},Lb=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","\\surd"],QU=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1"],Ob=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Ru=[0,1.2,1.8,2.4,3],XU=function(e,t,i,n,s){if(e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle"),rt.contains(Lb,e)||rt.contains(Ob,e))return Ib(e,t,!1,i,n,s);if(rt.contains(QU,e))return zb(e,Ru[t],!1,i,n,s);throw new Me("Illegal delimiter: '"+e+"'")},ZU=[{type:"small",style:st.SCRIPTSCRIPT},{type:"small",style:st.SCRIPT},{type:"small",style:st.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],JU=[{type:"small",style:st.SCRIPTSCRIPT},{type:"small",style:st.SCRIPT},{type:"small",style:st.TEXT},{type:"stack"}],Bb=[{type:"small",style:st.SCRIPTSCRIPT},{type:"small",style:st.SCRIPT},{type:"small",style:st.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],$U=function(e){if(e.type==="small")return"Main-Regular";if(e.type==="large")return"Size"+e.size+"-Regular";if(e.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+e.type+"' here.")},Rb=function(e,t,i,n){for(var s=Math.min(2,3-n.style.size),a=s;at)return i[a]}return i[i.length-1]},Pb=function(e,t,i,n,s,a){e==="<"||e==="\\lt"||e==="\u27E8"?e="\\langle":(e===">"||e==="\\gt"||e==="\u27E9")&&(e="\\rangle");var o;rt.contains(Ob,e)?o=ZU:rt.contains(Lb,e)?o=Bb:o=JU;var l=Rb(e,t,o,n);return l.type==="small"?GU(e,l.style,i,n,s,a):l.type==="large"?Ib(e,l.size,i,n,s,a):zb(e,t,i,n,s,a)},eH=function(e,t,i,n,s,a){var o=n.fontMetrics().axisHeight*n.sizeMultiplier,l=901,h=5/n.fontMetrics().ptPerEm,c=Math.max(t-o,i+o),u=Math.max(c/500*l,2*c-h);return Pb(e,u,!0,n,s,a)},Da={sqrtImage:KU,sizedDelim:XU,sizeToMaxHeight:Ru,customSizedDelim:Pb,leftRightDelim:eH},jx={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},tH=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","\u230A","\u230B","\\lceil","\\rceil","\u2308","\u2309","<",">","\\langle","\u27E8","\\rangle","\u27E9","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","\u27EE","\u27EF","\\lmoustache","\\rmoustache","\u23B0","\u23B1","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function xm(r,e){var t=vm(r);if(t&&rt.contains(tH,t.text))return t;throw t?new Me("Invalid delimiter '"+t.text+"' after '"+e.funcName+"'",r):new Me("Invalid delimiter type '"+r.type+"'",r)}Le({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(r,e)=>{var t=xm(e[0],r);return{type:"delimsizing",mode:r.parser.mode,size:jx[r.funcName].size,mclass:jx[r.funcName].mclass,delim:t.text}},htmlBuilder:(r,e)=>r.delim==="."?he.makeSpan([r.mclass]):Da.sizedDelim(r.delim,r.size,e,r.mode,[r.mclass]),mathmlBuilder:r=>{var e=[];r.delim!=="."&&e.push(Zn(r.delim,r.mode));var t=new Te.MathNode("mo",e);r.mclass==="mopen"||r.mclass==="mclose"?t.setAttribute("fence","true"):t.setAttribute("fence","false"),t.setAttribute("stretchy","true");var i=Ie(Da.sizeToMaxHeight[r.size]);return t.setAttribute("minsize",i),t.setAttribute("maxsize",i),t}});function Gx(r){if(!r.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}Le({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=r.parser.gullet.macros.get("\\current@color");if(t&&typeof t!="string")throw new Me("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:r.parser.mode,delim:xm(e[0],r).text,color:t}}});Le({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=xm(e[0],r),i=r.parser;++i.leftrightDepth;var n=i.parseExpression(!1);--i.leftrightDepth,i.expect("\\right",!1);var s=Et(i.parseFunction(),"leftright-right");return{type:"leftright",mode:i.mode,body:n,left:t.text,right:s.delim,rightColor:s.color}},htmlBuilder:(r,e)=>{Gx(r);for(var t=ti(r.body,e,!0,["mopen","mclose"]),i=0,n=0,s=!1,a=0;a{Gx(r);var t=pn(r.body,e);if(r.left!=="."){var i=new Te.MathNode("mo",[Zn(r.left,r.mode)]);i.setAttribute("fence","true"),t.unshift(i)}if(r.right!=="."){var n=new Te.MathNode("mo",[Zn(r.right,r.mode)]);n.setAttribute("fence","true"),r.rightColor&&n.setAttribute("mathcolor",r.rightColor),t.push(n)}return k4(t)}});Le({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var t=xm(e[0],r);if(!r.parser.leftrightDepth)throw new Me("\\middle without preceding \\left",t);return{type:"middle",mode:r.parser.mode,delim:t.text}},htmlBuilder:(r,e)=>{var t;if(r.delim===".")t=Hu(e,[]);else{t=Da.sizedDelim(r.delim,1,e,r.mode,[]);var i={delim:r.delim,options:e};t.isMiddle=i}return t},mathmlBuilder:(r,e)=>{var t=r.delim==="\\vert"||r.delim==="|"?Zn("|","text"):Zn(r.delim,r.mode),i=new Te.MathNode("mo",[t]);return i.setAttribute("fence","true"),i.setAttribute("lspace","0.05em"),i.setAttribute("rspace","0.05em"),i}});var z4=(r,e)=>{var t=he.wrapFragment(jt(r.body,e),e),i=r.label.slice(1),n=e.sizeMultiplier,s,a=0,o=rt.isCharacterBox(r.body);if(i==="sout")s=he.makeSpan(["stretchy","sout"]),s.height=e.fontMetrics().defaultRuleThickness/n,a=-.5*e.fontMetrics().xHeight;else if(i==="phase"){var l=Dr({number:.6,unit:"pt"},e),h=Dr({number:.35,unit:"ex"},e),c=e.havingBaseSizing();n=n/c.sizeMultiplier;var u=t.height+t.depth+l+h;t.style.paddingLeft=Ie(u/2+l);var d=Math.floor(1e3*u*n),f=Qq(d),m=new Es([new Hs("phase",f)],{width:"400em",height:Ie(d/1e3),viewBox:"0 0 400000 "+d,preserveAspectRatio:"xMinYMin slice"});s=he.makeSvgSpan(["hide-tail"],[m],e),s.style.height=Ie(u),a=t.depth+l+h}else{/cancel/.test(i)?o||t.classes.push("cancel-pad"):i==="angl"?t.classes.push("anglpad"):t.classes.push("boxpad");var g=0,v=0,y=0;/box/.test(i)?(y=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness),g=e.fontMetrics().fboxsep+(i==="colorbox"?0:y),v=g):i==="angl"?(y=Math.max(e.fontMetrics().defaultRuleThickness,e.minRuleThickness),g=4*y,v=Math.max(0,.25-t.depth)):(g=o?.2:0,v=g),s=Fa.encloseSpan(t,i,g,v,e),/fbox|boxed|fcolorbox/.test(i)?(s.style.borderStyle="solid",s.style.borderWidth=Ie(y)):i==="angl"&&y!==.049&&(s.style.borderTopWidth=Ie(y),s.style.borderRightWidth=Ie(y)),a=t.depth+v,r.backgroundColor&&(s.style.backgroundColor=r.backgroundColor,r.borderColor&&(s.style.borderColor=r.borderColor))}var A;if(r.backgroundColor)A=he.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:a},{type:"elem",elem:t,shift:0}]},e);else{var b=/cancel|phase/.test(i)?["svg-align"]:[];A=he.makeVList({positionType:"individualShift",children:[{type:"elem",elem:t,shift:0},{type:"elem",elem:s,shift:a,wrapperClasses:b}]},e)}return/cancel/.test(i)&&(A.height=t.height,A.depth=t.depth),/cancel/.test(i)&&!o?he.makeSpan(["mord","cancel-lap"],[A],e):he.makeSpan(["mord"],[A],e)},L4=(r,e)=>{var t=0,i=new Te.MathNode(r.label.indexOf("colorbox")>-1?"mpadded":"menclose",[sr(r.body,e)]);switch(r.label){case"\\cancel":i.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":i.setAttribute("notation","downdiagonalstrike");break;case"\\phase":i.setAttribute("notation","phasorangle");break;case"\\sout":i.setAttribute("notation","horizontalstrike");break;case"\\fbox":i.setAttribute("notation","box");break;case"\\angl":i.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(t=e.fontMetrics().fboxsep*e.fontMetrics().ptPerEm,i.setAttribute("width","+"+2*t+"pt"),i.setAttribute("height","+"+2*t+"pt"),i.setAttribute("lspace",t+"pt"),i.setAttribute("voffset",t+"pt"),r.label==="\\fcolorbox"){var n=Math.max(e.fontMetrics().fboxrule,e.minRuleThickness);i.setAttribute("style","border: "+n+"em solid "+String(r.borderColor))}break;case"\\xcancel":i.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return r.backgroundColor&&i.setAttribute("mathbackground",r.backgroundColor),i};Le({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(r,e,t){var{parser:i,funcName:n}=r,s=Et(e[0],"color-token").color,a=e[1];return{type:"enclose",mode:i.mode,label:n,backgroundColor:s,body:a}},htmlBuilder:z4,mathmlBuilder:L4});Le({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(r,e,t){var{parser:i,funcName:n}=r,s=Et(e[0],"color-token").color,a=Et(e[1],"color-token").color,o=e[2];return{type:"enclose",mode:i.mode,label:n,backgroundColor:a,borderColor:s,body:o}},htmlBuilder:z4,mathmlBuilder:L4});Le({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\fbox",body:e[0]}}});Le({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:i}=r,n=e[0];return{type:"enclose",mode:t.mode,label:i,body:n}},htmlBuilder:z4,mathmlBuilder:L4});Le({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"enclose",mode:t.mode,label:"\\angl",body:e[0]}}});var _b={};function js(r){for(var{type:e,names:t,props:i,handler:n,htmlBuilder:s,mathmlBuilder:a}=r,o={type:e,numArgs:i.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:n},l=0;l{var e=r.parser.settings;if(!e.displayMode)throw new Me("{"+r.envName+"} can be used only in display mode.")};function O4(r){if(r.indexOf("ed")===-1)return r.indexOf("*")===-1}function Eo(r,e,t){var{hskipBeforeAndAfter:i,addJot:n,cols:s,arraystretch:a,colSeparationType:o,autoTag:l,singleRow:h,emptySingleRow:c,maxNumCols:u,leqno:d}=e;if(r.gullet.beginGroup(),h||r.gullet.macros.set("\\cr","\\\\\\relax"),!a){var f=r.gullet.expandMacroAsText("\\arraystretch");if(f==null)a=1;else if(a=parseFloat(f),!a||a<0)throw new Me("Invalid \\arraystretch: "+f)}r.gullet.beginGroup();var m=[],g=[m],v=[],y=[],A=l!=null?[]:void 0;function b(){l&&r.gullet.macros.set("\\@eqnsw","1",!0)}function C(){A&&(r.gullet.macros.get("\\df@tag")?(A.push(r.subparse([new fn("\\df@tag")])),r.gullet.macros.set("\\df@tag",void 0,!0)):A.push(Boolean(l)&&r.gullet.macros.get("\\@eqnsw")==="1"))}for(b(),y.push(Wx(r));;){var M=r.parseExpression(!1,h?"\\end":"\\\\");r.gullet.endGroup(),r.gullet.beginGroup(),M={type:"ordgroup",mode:r.mode,body:M},t&&(M={type:"styling",mode:r.mode,style:t,body:[M]}),m.push(M);var D=r.fetch().text;if(D==="&"){if(u&&m.length===u){if(h||o)throw new Me("Too many tab characters: &",r.nextToken);r.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}r.consume()}else if(D==="\\end"){C(),m.length===1&&M.type==="styling"&&M.body[0].body.length===0&&(g.length>1||!c)&&g.pop(),y.length0&&(b+=.25),h.push({pos:b,isDashed:ye[ve]})}for(C(a[0]),i=0;i0&&(_+=A,L<_&&(L=_),_=0)),e.addJot&&(L+=g),k.height=D,k.depth=L,b+=D,k.pos=b,b+=L+_,l[i]=k,C(a[i+1])}var S=b/2+t.fontMetrics().axisHeight,G=e.cols||[],Q=[],Y,ne,ee=[];if(e.tags&&e.tags.some(ye=>ye))for(i=0;i=o)){var I=void 0;(n>0||e.hskipBeforeAndAfter)&&(I=rt.deflt(we.pregap,d),I!==0&&(Y=he.makeSpan(["arraycolsep"],[]),Y.style.width=Ie(I),Q.push(Y)));var le=[];for(i=0;i0){for(var F=he.makeLineSpan("hline",t,c),de=he.makeLineSpan("hdashline",t,c),ce=[{type:"elem",elem:l,shift:0}];h.length>0;){var K=h.pop(),W=K.pos-S;K.isDashed?ce.push({type:"elem",elem:de,shift:W}):ce.push({type:"elem",elem:F,shift:W})}l=he.makeVList({positionType:"individualShift",children:ce},t)}if(ee.length===0)return he.makeSpan(["mord"],[l],t);var ie=he.makeVList({positionType:"individualShift",children:ee},t);return ie=he.makeSpan(["tag"],[ie],t),he.makeFragment([l,ie])},rH={c:"center ",l:"left ",r:"right "},Ws=function(e,t){for(var i=[],n=new Te.MathNode("mtd",[],["mtr-glue"]),s=new Te.MathNode("mtd",[],["mml-eqn-num"]),a=0;a0){var m=e.cols,g="",v=!1,y=0,A=m.length;m[0].type==="separator"&&(d+="top ",y=1),m[m.length-1].type==="separator"&&(d+="bottom ",A-=1);for(var b=y;b0?"left ":"",d+=k[k.length-1].length>0?"right ":"";for(var V=1;V-1?"alignat":"align",s=e.envName==="split",a=Eo(e.parser,{cols:i,addJot:!0,autoTag:s?void 0:O4(e.envName),emptySingleRow:!0,colSeparationType:n,maxNumCols:s?2:void 0,leqno:e.parser.settings.leqno},"display"),o,l=0,h={type:"ordgroup",mode:e.mode,body:[]};if(t[0]&&t[0].type==="ordgroup"){for(var c="",u=0;u0&&f&&(v=1),i[m]={type:"align",align:g,pregap:v,postgap:0}}return a.colSeparationType=f?"align":"alignat",a};js({type:"array",names:["array","darray"],props:{numArgs:1},handler(r,e){var t=vm(e[0]),i=t?[e[0]]:Et(e[0],"ordgroup").body,n=i.map(function(a){var o=N4(a),l=o.text;if("lcr".indexOf(l)!==-1)return{type:"align",align:l};if(l==="|")return{type:"separator",separator:"|"};if(l===":")return{type:"separator",separator:":"};throw new Me("Unknown column alignment: "+l,a)}),s={cols:n,hskipBeforeAndAfter:!0,maxNumCols:n.length};return Eo(r.parser,s,B4(r.envName))},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(r){var e={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[r.envName.replace("*","")],t="c",i={hskipBeforeAndAfter:!1,cols:[{type:"align",align:t}]};if(r.envName.charAt(r.envName.length-1)==="*"){var n=r.parser;if(n.consumeSpaces(),n.fetch().text==="["){if(n.consume(),n.consumeSpaces(),t=n.fetch().text,"lcr".indexOf(t)===-1)throw new Me("Expected l or c or r",n.nextToken);n.consume(),n.consumeSpaces(),n.expect("]"),n.consume(),i.cols=[{type:"align",align:t}]}}var s=Eo(r.parser,i,B4(r.envName)),a=Math.max(0,...s.body.map(o=>o.length));return s.cols=new Array(a).fill({type:"align",align:t}),e?{type:"leftright",mode:r.mode,body:[s],left:e[0],right:e[1],rightColor:void 0}:s},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(r){var e={arraystretch:.5},t=Eo(r.parser,e,"script");return t.colSeparationType="small",t},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["subarray"],props:{numArgs:1},handler(r,e){var t=vm(e[0]),i=t?[e[0]]:Et(e[0],"ordgroup").body,n=i.map(function(a){var o=N4(a),l=o.text;if("lc".indexOf(l)!==-1)return{type:"align",align:l};throw new Me("Unknown column alignment: "+l,a)});if(n.length>1)throw new Me("{subarray} can contain only one column");var s={cols:n,hskipBeforeAndAfter:!1,arraystretch:.5};if(s=Eo(r.parser,s,"script"),s.body.length>0&&s.body[0].length>1)throw new Me("{subarray} can contain only one column");return s},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(r){var e={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},t=Eo(r.parser,e,B4(r.envName));return{type:"leftright",mode:r.mode,body:[t],left:r.envName.indexOf("r")>-1?".":"\\{",right:r.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Ub,htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(r){rt.contains(["gather","gather*"],r.envName)&&bm(r);var e={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:O4(r.envName),emptySingleRow:!0,leqno:r.parser.settings.leqno};return Eo(r.parser,e,"display")},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Ub,htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(r){bm(r);var e={autoTag:O4(r.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:r.parser.settings.leqno};return Eo(r.parser,e,"display")},htmlBuilder:Gs,mathmlBuilder:Ws});js({type:"array",names:["CD"],props:{numArgs:0},handler(r){return bm(r),HU(r.parser)},htmlBuilder:Gs,mathmlBuilder:Ws});q("\\nonumber","\\gdef\\@eqnsw{0}");q("\\notag","\\nonumber");Le({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(r,e){throw new Me(r.funcName+" valid only within array environment")}});var Yx=_b;Le({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(r,e){var{parser:t,funcName:i}=r,n=e[0];if(n.type!=="ordgroup")throw new Me("Invalid environment name",n);for(var s="",a=0;a{var t=r.font,i=e.withFont(t);return jt(r.body,i)},jb=(r,e)=>{var t=r.font,i=e.withFont(t);return sr(r.body,i)},Vx={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};Le({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathsfit","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=fm(e[0]),s=i;return s in Vx&&(s=Vx[s]),{type:"font",mode:t.mode,font:s.slice(1),body:n}},htmlBuilder:Hb,mathmlBuilder:jb});Le({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(r,e)=>{var{parser:t}=r,i=e[0],n=rt.isCharacterBox(i);return{type:"mclass",mode:t.mode,mclass:ym(i),body:[{type:"font",mode:t.mode,font:"boldsymbol",body:i}],isCharacterBox:n}}});Le({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:i,breakOnTokenText:n}=r,{mode:s}=t,a=t.parseExpression(!0,n),o="math"+i.slice(1);return{type:"font",mode:s,font:o,body:{type:"ordgroup",mode:t.mode,body:a}}},htmlBuilder:Hb,mathmlBuilder:jb});var Gb=(r,e)=>{var t=e;return r==="display"?t=t.id>=st.SCRIPT.id?t.text():st.DISPLAY:r==="text"&&t.size===st.DISPLAY.size?t=st.TEXT:r==="script"?t=st.SCRIPT:r==="scriptscript"&&(t=st.SCRIPTSCRIPT),t},R4=(r,e)=>{var t=Gb(r.size,e.style),i=t.fracNum(),n=t.fracDen(),s;s=e.havingStyle(i);var a=jt(r.numer,s,e);if(r.continued){var o=8.5/e.fontMetrics().ptPerEm,l=3.5/e.fontMetrics().ptPerEm;a.height=a.height0?m=3*d:m=7*d,g=e.fontMetrics().denom1):(u>0?(f=e.fontMetrics().num2,m=d):(f=e.fontMetrics().num3,m=3*d),g=e.fontMetrics().denom2);var v;if(c){var A=e.fontMetrics().axisHeight;f-a.depth-(A+.5*u){var t=new Te.MathNode("mfrac",[sr(r.numer,e),sr(r.denom,e)]);if(!r.hasBarLine)t.setAttribute("linethickness","0px");else if(r.barSize){var i=Dr(r.barSize,e);t.setAttribute("linethickness",Ie(i))}var n=Gb(r.size,e.style);if(n.size!==e.style.size){t=new Te.MathNode("mstyle",[t]);var s=n.size===st.DISPLAY.size?"true":"false";t.setAttribute("displaystyle",s),t.setAttribute("scriptlevel","0")}if(r.leftDelim!=null||r.rightDelim!=null){var a=[];if(r.leftDelim!=null){var o=new Te.MathNode("mo",[new Te.TextNode(r.leftDelim.replace("\\",""))]);o.setAttribute("fence","true"),a.push(o)}if(a.push(t),r.rightDelim!=null){var l=new Te.MathNode("mo",[new Te.TextNode(r.rightDelim.replace("\\",""))]);l.setAttribute("fence","true"),a.push(l)}return k4(a)}return t};Le({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=e[0],s=e[1],a,o=null,l=null,h="auto";switch(i){case"\\dfrac":case"\\frac":case"\\tfrac":a=!0;break;case"\\\\atopfrac":a=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":a=!1,o="(",l=")";break;case"\\\\bracefrac":a=!1,o="\\{",l="\\}";break;case"\\\\brackfrac":a=!1,o="[",l="]";break;default:throw new Error("Unrecognized genfrac command")}switch(i){case"\\dfrac":case"\\dbinom":h="display";break;case"\\tfrac":case"\\tbinom":h="text";break}return{type:"genfrac",mode:t.mode,continued:!1,numer:n,denom:s,hasBarLine:a,leftDelim:o,rightDelim:l,size:h,barSize:null}},htmlBuilder:R4,mathmlBuilder:P4});Le({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=e[0],s=e[1];return{type:"genfrac",mode:t.mode,continued:!0,numer:n,denom:s,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});Le({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(r){var{parser:e,funcName:t,token:i}=r,n;switch(t){case"\\over":n="\\frac";break;case"\\choose":n="\\binom";break;case"\\atop":n="\\\\atopfrac";break;case"\\brace":n="\\\\bracefrac";break;case"\\brack":n="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:e.mode,replaceWith:n,token:i}}});var Kx=["display","text","script","scriptscript"],Qx=function(e){var t=null;return e.length>0&&(t=e,t=t==="."?null:t),t};Le({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(r,e){var{parser:t}=r,i=e[4],n=e[5],s=fm(e[0]),a=s.type==="atom"&&s.family==="open"?Qx(s.text):null,o=fm(e[1]),l=o.type==="atom"&&o.family==="close"?Qx(o.text):null,h=Et(e[2],"size"),c,u=null;h.isBlank?c=!0:(u=h.value,c=u.number>0);var d="auto",f=e[3];if(f.type==="ordgroup"){if(f.body.length>0){var m=Et(f.body[0],"textord");d=Kx[Number(m.text)]}}else f=Et(f,"textord"),d=Kx[Number(f.text)];return{type:"genfrac",mode:t.mode,numer:i,denom:n,continued:!1,hasBarLine:c,barSize:u,leftDelim:a,rightDelim:l,size:d}},htmlBuilder:R4,mathmlBuilder:P4});Le({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(r,e){var{parser:t,funcName:i,token:n}=r;return{type:"infix",mode:t.mode,replaceWith:"\\\\abovefrac",size:Et(e[0],"size").value,token:n}}});Le({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=e[0],s=Lq(Et(e[1],"infix").size),a=e[2],o=s.number>0;return{type:"genfrac",mode:t.mode,numer:n,denom:a,continued:!1,hasBarLine:o,barSize:s,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:R4,mathmlBuilder:P4});var Wb=(r,e)=>{var t=e.style,i,n;r.type==="supsub"?(i=r.sup?jt(r.sup,e.havingStyle(t.sup()),e):jt(r.sub,e.havingStyle(t.sub()),e),n=Et(r.base,"horizBrace")):n=Et(r,"horizBrace");var s=jt(n.base,e.havingBaseStyle(st.DISPLAY)),a=Fa.svgSpan(n,e),o;if(n.isOver?(o=he.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.1},{type:"elem",elem:a}]},e),o.children[0].children[0].children[1].classes.push("svg-align")):(o=he.makeVList({positionType:"bottom",positionData:s.depth+.1+a.height,children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:s}]},e),o.children[0].children[0].children[0].classes.push("svg-align")),i){var l=he.makeSpan(["mord",n.isOver?"mover":"munder"],[o],e);n.isOver?o=he.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:l},{type:"kern",size:.2},{type:"elem",elem:i}]},e):o=he.makeVList({positionType:"bottom",positionData:l.depth+.2+i.height+i.depth,children:[{type:"elem",elem:i},{type:"kern",size:.2},{type:"elem",elem:l}]},e)}return he.makeSpan(["mord",n.isOver?"mover":"munder"],[o],e)},iH=(r,e)=>{var t=Fa.mathMLnode(r.label);return new Te.MathNode(r.isOver?"mover":"munder",[sr(r.base,e),t])};Le({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(r,e){var{parser:t,funcName:i}=r;return{type:"horizBrace",mode:t.mode,label:i,isOver:/^\\over/.test(i),base:e[0]}},htmlBuilder:Wb,mathmlBuilder:iH});Le({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,i=e[1],n=Et(e[0],"url").url;return t.settings.isTrusted({command:"\\href",url:n})?{type:"href",mode:t.mode,href:n,body:Pr(i)}:t.formatUnsupportedCmd("\\href")},htmlBuilder:(r,e)=>{var t=ti(r.body,e,!1);return he.makeAnchor(r.href,[],t,e)},mathmlBuilder:(r,e)=>{var t=Ao(r.body,e);return t instanceof Gi||(t=new Gi("mrow",[t])),t.setAttribute("href",r.href),t}});Le({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,i=Et(e[0],"url").url;if(!t.settings.isTrusted({command:"\\url",url:i}))return t.formatUnsupportedCmd("\\url");for(var n=[],s=0;s{var{parser:t,funcName:i,token:n}=r,s=Et(e[0],"raw").string,a=e[1];t.settings.strict&&t.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var o,l={};switch(i){case"\\htmlClass":l.class=s,o={command:"\\htmlClass",class:s};break;case"\\htmlId":l.id=s,o={command:"\\htmlId",id:s};break;case"\\htmlStyle":l.style=s,o={command:"\\htmlStyle",style:s};break;case"\\htmlData":{for(var h=s.split(","),c=0;c{var t=ti(r.body,e,!1),i=["enclosing"];r.attributes.class&&i.push(...r.attributes.class.trim().split(/\s+/));var n=he.makeSpan(i,t,e);for(var s in r.attributes)s!=="class"&&r.attributes.hasOwnProperty(s)&&n.setAttribute(s,r.attributes[s]);return n},mathmlBuilder:(r,e)=>Ao(r.body,e)});Le({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"htmlmathml",mode:t.mode,html:Pr(e[0]),mathml:Pr(e[1])}},htmlBuilder:(r,e)=>{var t=ti(r.html,e,!1);return he.makeFragment(t)},mathmlBuilder:(r,e)=>Ao(r.mathml,e)});var h4=function(e){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(e))return{number:+e,unit:"bp"};var t=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(e);if(!t)throw new Me("Invalid size: '"+e+"' in \\includegraphics");var i={number:+(t[1]+t[2]),unit:t[3]};if(!cb(i))throw new Me("Invalid unit: '"+i.unit+"' in \\includegraphics.");return i};Le({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(r,e,t)=>{var{parser:i}=r,n={number:0,unit:"em"},s={number:.9,unit:"em"},a={number:0,unit:"em"},o="";if(t[0])for(var l=Et(t[0],"raw").string,h=l.split(","),c=0;c{var t=Dr(r.height,e),i=0;r.totalheight.number>0&&(i=Dr(r.totalheight,e)-t);var n=0;r.width.number>0&&(n=Dr(r.width,e));var s={height:Ie(t+i)};n>0&&(s.width=Ie(n)),i>0&&(s.verticalAlign=Ie(-i));var a=new p4(r.src,r.alt,s);return a.height=t,a.depth=i,a},mathmlBuilder:(r,e)=>{var t=new Te.MathNode("mglyph",[]);t.setAttribute("alt",r.alt);var i=Dr(r.height,e),n=0;if(r.totalheight.number>0&&(n=Dr(r.totalheight,e)-i,t.setAttribute("valign",Ie(-n))),t.setAttribute("height",Ie(i+n)),r.width.number>0){var s=Dr(r.width,e);t.setAttribute("width",Ie(s))}return t.setAttribute("src",r.src),t}});Le({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:i}=r,n=Et(e[0],"size");if(t.settings.strict){var s=i[1]==="m",a=n.value.unit==="mu";s?(a||t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+i+" supports only mu units, "+("not "+n.value.unit+" units")),t.mode!=="math"&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+i+" works only in math mode")):a&&t.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+i+" doesn't support mu units")}return{type:"kern",mode:t.mode,dimension:n.value}},htmlBuilder(r,e){return he.makeGlue(r.dimension,e)},mathmlBuilder(r,e){var t=Dr(r.dimension,e);return new Te.SpaceNode(t)}});Le({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=e[0];return{type:"lap",mode:t.mode,alignment:i.slice(5),body:n}},htmlBuilder:(r,e)=>{var t;r.alignment==="clap"?(t=he.makeSpan([],[jt(r.body,e)]),t=he.makeSpan(["inner"],[t],e)):t=he.makeSpan(["inner"],[jt(r.body,e)]);var i=he.makeSpan(["fix"],[]),n=he.makeSpan([r.alignment],[t,i],e),s=he.makeSpan(["strut"]);return s.style.height=Ie(n.height+n.depth),n.depth&&(s.style.verticalAlign=Ie(-n.depth)),n.children.unshift(s),n=he.makeSpan(["thinbox"],[n],e),he.makeSpan(["mord","vbox"],[n],e)},mathmlBuilder:(r,e)=>{var t=new Te.MathNode("mpadded",[sr(r.body,e)]);if(r.alignment!=="rlap"){var i=r.alignment==="llap"?"-1":"-0.5";t.setAttribute("lspace",i+"width")}return t.setAttribute("width","0px"),t}});Le({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){var{funcName:t,parser:i}=r,n=i.mode;i.switchMode("math");var s=t==="\\("?"\\)":"$",a=i.parseExpression(!1,s);return i.expect(s),i.switchMode(n),{type:"styling",mode:i.mode,style:"text",body:a}}});Le({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(r,e){throw new Me("Mismatched "+r.funcName)}});var Xx=(r,e)=>{switch(e.style.size){case st.DISPLAY.size:return r.display;case st.TEXT.size:return r.text;case st.SCRIPT.size:return r.script;case st.SCRIPTSCRIPT.size:return r.scriptscript;default:return r.text}};Le({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(r,e)=>{var{parser:t}=r;return{type:"mathchoice",mode:t.mode,display:Pr(e[0]),text:Pr(e[1]),script:Pr(e[2]),scriptscript:Pr(e[3])}},htmlBuilder:(r,e)=>{var t=Xx(r,e),i=ti(t,e,!1);return he.makeFragment(i)},mathmlBuilder:(r,e)=>{var t=Xx(r,e);return Ao(t,e)}});var Yb=(r,e,t,i,n,s,a)=>{r=he.makeSpan([],[r]);var o=t&&rt.isCharacterBox(t),l,h;if(e){var c=jt(e,i.havingStyle(n.sup()),i);h={elem:c,kern:Math.max(i.fontMetrics().bigOpSpacing1,i.fontMetrics().bigOpSpacing3-c.depth)}}if(t){var u=jt(t,i.havingStyle(n.sub()),i);l={elem:u,kern:Math.max(i.fontMetrics().bigOpSpacing2,i.fontMetrics().bigOpSpacing4-u.height)}}var d;if(h&&l){var f=i.fontMetrics().bigOpSpacing5+l.elem.height+l.elem.depth+l.kern+r.depth+a;d=he.makeVList({positionType:"bottom",positionData:f,children:[{type:"kern",size:i.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:Ie(-s)},{type:"kern",size:l.kern},{type:"elem",elem:r},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:Ie(s)},{type:"kern",size:i.fontMetrics().bigOpSpacing5}]},i)}else if(l){var m=r.height-a;d=he.makeVList({positionType:"top",positionData:m,children:[{type:"kern",size:i.fontMetrics().bigOpSpacing5},{type:"elem",elem:l.elem,marginLeft:Ie(-s)},{type:"kern",size:l.kern},{type:"elem",elem:r}]},i)}else if(h){var g=r.depth+a;d=he.makeVList({positionType:"bottom",positionData:g,children:[{type:"elem",elem:r},{type:"kern",size:h.kern},{type:"elem",elem:h.elem,marginLeft:Ie(s)},{type:"kern",size:i.fontMetrics().bigOpSpacing5}]},i)}else return r;var v=[d];if(l&&s!==0&&!o){var y=he.makeSpan(["mspace"],[],i);y.style.marginRight=Ie(s),v.unshift(y)}return he.makeSpan(["mop","op-limits"],v,i)},Vb=["\\smallint"],fh=(r,e)=>{var t,i,n=!1,s;r.type==="supsub"?(t=r.sup,i=r.sub,s=Et(r.base,"op"),n=!0):s=Et(r,"op");var a=e.style,o=!1;a.size===st.DISPLAY.size&&s.symbol&&!rt.contains(Vb,s.name)&&(o=!0);var l;if(s.symbol){var h=o?"Size2-Regular":"Size1-Regular",c="";if((s.name==="\\oiint"||s.name==="\\oiiint")&&(c=s.name.slice(1),s.name=c==="oiint"?"\\iint":"\\iiint"),l=he.makeSymbol(s.name,h,"math",e,["mop","op-symbol",o?"large-op":"small-op"]),c.length>0){var u=l.italic,d=he.staticSvg(c+"Size"+(o?"2":"1"),e);l=he.makeVList({positionType:"individualShift",children:[{type:"elem",elem:l,shift:0},{type:"elem",elem:d,shift:o?.08:0}]},e),s.name="\\"+c,l.classes.unshift("mop"),l.italic=u}}else if(s.body){var f=ti(s.body,e,!0);f.length===1&&f[0]instanceof mn?(l=f[0],l.classes[0]="mop"):l=he.makeSpan(["mop"],f,e)}else{for(var m=[],g=1;g{var t;if(r.symbol)t=new Gi("mo",[Zn(r.name,r.mode)]),rt.contains(Vb,r.name)&&t.setAttribute("largeop","false");else if(r.body)t=new Gi("mo",pn(r.body,e));else{t=new Gi("mi",[new Xn(r.name.slice(1))]);var i=new Gi("mo",[Zn("\u2061","text")]);r.parentIsSupSub?t=new Gi("mrow",[t,i]):t=wb([t,i])}return t},nH={"\u220F":"\\prod","\u2210":"\\coprod","\u2211":"\\sum","\u22C0":"\\bigwedge","\u22C1":"\\bigvee","\u22C2":"\\bigcap","\u22C3":"\\bigcup","\u2A00":"\\bigodot","\u2A01":"\\bigoplus","\u2A02":"\\bigotimes","\u2A04":"\\biguplus","\u2A06":"\\bigsqcup"};Le({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","\u220F","\u2210","\u2211","\u22C0","\u22C1","\u22C2","\u22C3","\u2A00","\u2A01","\u2A02","\u2A04","\u2A06"],props:{numArgs:0},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=i;return n.length===1&&(n=nH[n]),{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:n}},htmlBuilder:fh,mathmlBuilder:ju});Le({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(r,e)=>{var{parser:t}=r,i=e[0];return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Pr(i)}},htmlBuilder:fh,mathmlBuilder:ju});var sH={"\u222B":"\\int","\u222C":"\\iint","\u222D":"\\iiint","\u222E":"\\oint","\u222F":"\\oiint","\u2230":"\\oiiint"};Le({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:fh,mathmlBuilder:ju});Le({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r;return{type:"op",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:t}},htmlBuilder:fh,mathmlBuilder:ju});Le({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","\u222B","\u222C","\u222D","\u222E","\u222F","\u2230"],props:{numArgs:0},handler(r){var{parser:e,funcName:t}=r,i=t;return i.length===1&&(i=sH[i]),{type:"op",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:i}},htmlBuilder:fh,mathmlBuilder:ju});var Kb=(r,e)=>{var t,i,n=!1,s;r.type==="supsub"?(t=r.sup,i=r.sub,s=Et(r.base,"operatorname"),n=!0):s=Et(r,"operatorname");var a;if(s.body.length>0){for(var o=s.body.map(u=>{var d=u.text;return typeof d=="string"?{type:"textord",mode:u.mode,text:d}:u}),l=ti(o,e.withFont("mathrm"),!0),h=0;h{for(var t=pn(r.body,e.withFont("mathrm")),i=!0,n=0;nc.toText()).join("");t=[new Te.TextNode(o)]}var l=new Te.MathNode("mi",t);l.setAttribute("mathvariant","normal");var h=new Te.MathNode("mo",[Zn("\u2061","text")]);return r.parentIsSupSub?new Te.MathNode("mrow",[l,h]):Te.newDocumentFragment([l,h])};Le({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(r,e)=>{var{parser:t,funcName:i}=r,n=e[0];return{type:"operatorname",mode:t.mode,body:Pr(n),alwaysHandleSupSub:i==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Kb,mathmlBuilder:aH});q("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Ul({type:"ordgroup",htmlBuilder(r,e){return r.semisimple?he.makeFragment(ti(r.body,e,!1)):he.makeSpan(["mord"],ti(r.body,e,!0),e)},mathmlBuilder(r,e){return Ao(r.body,e,!0)}});Le({type:"overline",names:["\\overline"],props:{numArgs:1},handler(r,e){var{parser:t}=r,i=e[0];return{type:"overline",mode:t.mode,body:i}},htmlBuilder(r,e){var t=jt(r.body,e.havingCrampedStyle()),i=he.makeLineSpan("overline-line",e),n=e.fontMetrics().defaultRuleThickness,s=he.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t},{type:"kern",size:3*n},{type:"elem",elem:i},{type:"kern",size:n}]},e);return he.makeSpan(["mord","overline"],[s],e)},mathmlBuilder(r,e){var t=new Te.MathNode("mo",[new Te.TextNode("\u203E")]);t.setAttribute("stretchy","true");var i=new Te.MathNode("mover",[sr(r.body,e),t]);return i.setAttribute("accent","true"),i}});Le({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,i=e[0];return{type:"phantom",mode:t.mode,body:Pr(i)}},htmlBuilder:(r,e)=>{var t=ti(r.body,e.withPhantom(),!1);return he.makeFragment(t)},mathmlBuilder:(r,e)=>{var t=pn(r.body,e);return new Te.MathNode("mphantom",t)}});Le({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,i=e[0];return{type:"hphantom",mode:t.mode,body:i}},htmlBuilder:(r,e)=>{var t=he.makeSpan([],[jt(r.body,e.withPhantom())]);if(t.height=0,t.depth=0,t.children)for(var i=0;i{var t=pn(Pr(r.body),e),i=new Te.MathNode("mphantom",t),n=new Te.MathNode("mpadded",[i]);return n.setAttribute("height","0px"),n.setAttribute("depth","0px"),n}});Le({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(r,e)=>{var{parser:t}=r,i=e[0];return{type:"vphantom",mode:t.mode,body:i}},htmlBuilder:(r,e)=>{var t=he.makeSpan(["inner"],[jt(r.body,e.withPhantom())]),i=he.makeSpan(["fix"],[]);return he.makeSpan(["mord","rlap"],[t,i],e)},mathmlBuilder:(r,e)=>{var t=pn(Pr(r.body),e),i=new Te.MathNode("mphantom",t),n=new Te.MathNode("mpadded",[i]);return n.setAttribute("width","0px"),n}});Le({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(r,e){var{parser:t}=r,i=Et(e[0],"size").value,n=e[1];return{type:"raisebox",mode:t.mode,dy:i,body:n}},htmlBuilder(r,e){var t=jt(r.body,e),i=Dr(r.dy,e);return he.makeVList({positionType:"shift",positionData:-i,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){var t=new Te.MathNode("mpadded",[sr(r.body,e)]),i=r.dy.number+r.dy.unit;return t.setAttribute("voffset",i),t}});Le({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0,allowedInArgument:!0},handler(r){var{parser:e}=r;return{type:"internal",mode:e.mode}}});Le({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["size","size","size"]},handler(r,e,t){var{parser:i}=r,n=t[0],s=Et(e[0],"size"),a=Et(e[1],"size");return{type:"rule",mode:i.mode,shift:n&&Et(n,"size").value,width:s.value,height:a.value}},htmlBuilder(r,e){var t=he.makeSpan(["mord","rule"],[],e),i=Dr(r.width,e),n=Dr(r.height,e),s=r.shift?Dr(r.shift,e):0;return t.style.borderRightWidth=Ie(i),t.style.borderTopWidth=Ie(n),t.style.bottom=Ie(s),t.width=i,t.height=n+s,t.depth=-s,t.maxFontSize=n*1.125*e.sizeMultiplier,t},mathmlBuilder(r,e){var t=Dr(r.width,e),i=Dr(r.height,e),n=r.shift?Dr(r.shift,e):0,s=e.color&&e.getColor()||"black",a=new Te.MathNode("mspace");a.setAttribute("mathbackground",s),a.setAttribute("width",Ie(t)),a.setAttribute("height",Ie(i));var o=new Te.MathNode("mpadded",[a]);return n>=0?o.setAttribute("height",Ie(n)):(o.setAttribute("height",Ie(n)),o.setAttribute("depth",Ie(-n))),o.setAttribute("voffset",Ie(n)),o}});function Qb(r,e,t){for(var i=ti(r,e,!1),n=e.sizeMultiplier/t.sizeMultiplier,s=0;s{var t=e.havingSize(r.size);return Qb(r.body,t,e)};Le({type:"sizing",names:Zx,props:{numArgs:0,allowedInText:!0},handler:(r,e)=>{var{breakOnTokenText:t,funcName:i,parser:n}=r,s=n.parseExpression(!1,t);return{type:"sizing",mode:n.mode,size:Zx.indexOf(i)+1,body:s}},htmlBuilder:oH,mathmlBuilder:(r,e)=>{var t=e.havingSize(r.size),i=pn(r.body,t),n=new Te.MathNode("mstyle",i);return n.setAttribute("mathsize",Ie(t.sizeMultiplier)),n}});Le({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(r,e,t)=>{var{parser:i}=r,n=!1,s=!1,a=t[0]&&Et(t[0],"ordgroup");if(a)for(var o="",l=0;l{var t=he.makeSpan([],[jt(r.body,e)]);if(!r.smashHeight&&!r.smashDepth)return t;if(r.smashHeight&&(t.height=0,t.children))for(var i=0;i{var t=new Te.MathNode("mpadded",[sr(r.body,e)]);return r.smashHeight&&t.setAttribute("height","0px"),r.smashDepth&&t.setAttribute("depth","0px"),t}});Le({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(r,e,t){var{parser:i}=r,n=t[0],s=e[0];return{type:"sqrt",mode:i.mode,body:s,index:n}},htmlBuilder(r,e){var t=jt(r.body,e.havingCrampedStyle());t.height===0&&(t.height=e.fontMetrics().xHeight),t=he.wrapFragment(t,e);var i=e.fontMetrics(),n=i.defaultRuleThickness,s=n;e.style.idt.height+t.depth+a&&(a=(a+u-t.height-t.depth)/2);var d=l.height-t.height-a-h;t.style.paddingLeft=Ie(c);var f=he.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:t,wrapperClasses:["svg-align"]},{type:"kern",size:-(t.height+d)},{type:"elem",elem:l},{type:"kern",size:h}]},e);if(r.index){var m=e.havingStyle(st.SCRIPTSCRIPT),g=jt(r.index,m,e),v=.6*(f.height-f.depth),y=he.makeVList({positionType:"shift",positionData:-v,children:[{type:"elem",elem:g}]},e),A=he.makeSpan(["root"],[y]);return he.makeSpan(["mord","sqrt"],[A,f],e)}else return he.makeSpan(["mord","sqrt"],[f],e)},mathmlBuilder(r,e){var{body:t,index:i}=r;return i?new Te.MathNode("mroot",[sr(t,e),sr(i,e)]):new Te.MathNode("msqrt",[sr(t,e)])}});var Jx={display:st.DISPLAY,text:st.TEXT,script:st.SCRIPT,scriptscript:st.SCRIPTSCRIPT};Le({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(r,e){var{breakOnTokenText:t,funcName:i,parser:n}=r,s=n.parseExpression(!0,t),a=i.slice(1,i.length-5);return{type:"styling",mode:n.mode,style:a,body:s}},htmlBuilder(r,e){var t=Jx[r.style],i=e.havingStyle(t).withFont("");return Qb(r.body,i,e)},mathmlBuilder(r,e){var t=Jx[r.style],i=e.havingStyle(t),n=pn(r.body,i),s=new Te.MathNode("mstyle",n),a={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},o=a[r.style];return s.setAttribute("scriptlevel",o[0]),s.setAttribute("displaystyle",o[1]),s}});var lH=function(e,t){var i=e.base;if(i)if(i.type==="op"){var n=i.limits&&(t.style.size===st.DISPLAY.size||i.alwaysHandleSupSub);return n?fh:null}else if(i.type==="operatorname"){var s=i.alwaysHandleSupSub&&(t.style.size===st.DISPLAY.size||i.limits);return s?Kb:null}else{if(i.type==="accent")return rt.isCharacterBox(i.base)?F4:null;if(i.type==="horizBrace"){var a=!e.sub;return a===i.isOver?Wb:null}else return null}else return null};Ul({type:"supsub",htmlBuilder(r,e){var t=lH(r,e);if(t)return t(r,e);var{base:i,sup:n,sub:s}=r,a=jt(i,e),o,l,h=e.fontMetrics(),c=0,u=0,d=i&&rt.isCharacterBox(i);if(n){var f=e.havingStyle(e.style.sup());o=jt(n,f,e),d||(c=a.height-f.fontMetrics().supDrop*f.sizeMultiplier/e.sizeMultiplier)}if(s){var m=e.havingStyle(e.style.sub());l=jt(s,m,e),d||(u=a.depth+m.fontMetrics().subDrop*m.sizeMultiplier/e.sizeMultiplier)}var g;e.style===st.DISPLAY?g=h.sup1:e.style.cramped?g=h.sup3:g=h.sup2;var v=e.sizeMultiplier,y=Ie(.5/h.ptPerEm/v),A=null;if(l){var b=r.base&&r.base.type==="op"&&r.base.name&&(r.base.name==="\\oiint"||r.base.name==="\\oiiint");(a instanceof mn||b)&&(A=Ie(-a.italic))}var C;if(o&&l){c=Math.max(c,g,o.depth+.25*h.xHeight),u=Math.max(u,h.sub2);var M=h.defaultRuleThickness,D=4*M;if(c-o.depth-(l.height-u)0&&(c+=L,u-=L)}var k=[{type:"elem",elem:l,shift:u,marginRight:y,marginLeft:A},{type:"elem",elem:o,shift:-c,marginRight:y}];C=he.makeVList({positionType:"individualShift",children:k},e)}else if(l){u=Math.max(u,h.sub1,l.height-.8*h.xHeight);var V=[{type:"elem",elem:l,marginLeft:A,marginRight:y}];C=he.makeVList({positionType:"shift",positionData:u,children:V},e)}else if(o)c=Math.max(c,g,o.depth+.25*h.xHeight),C=he.makeVList({positionType:"shift",positionData:-c,children:[{type:"elem",elem:o,marginRight:y}]},e);else throw new Error("supsub must have either sup or sub.");var B=v4(a,"right")||"mord";return he.makeSpan([B],[a,he.makeSpan(["msupsub"],[C])],e)},mathmlBuilder(r,e){var t=!1,i,n;r.base&&r.base.type==="horizBrace"&&(n=!!r.sup,n===r.base.isOver&&(t=!0,i=r.base.isOver)),r.base&&(r.base.type==="op"||r.base.type==="operatorname")&&(r.base.parentIsSupSub=!0);var s=[sr(r.base,e)];r.sub&&s.push(sr(r.sub,e)),r.sup&&s.push(sr(r.sup,e));var a;if(t)a=i?"mover":"munder";else if(r.sub)if(r.sup){var h=r.base;h&&h.type==="op"&&h.limits&&e.style===st.DISPLAY||h&&h.type==="operatorname"&&h.alwaysHandleSupSub&&(e.style===st.DISPLAY||h.limits)?a="munderover":a="msubsup"}else{var l=r.base;l&&l.type==="op"&&l.limits&&(e.style===st.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||e.style===st.DISPLAY)?a="munder":a="msub"}else{var o=r.base;o&&o.type==="op"&&o.limits&&(e.style===st.DISPLAY||o.alwaysHandleSupSub)||o&&o.type==="operatorname"&&o.alwaysHandleSupSub&&(o.limits||e.style===st.DISPLAY)?a="mover":a="msup"}return new Te.MathNode(a,s)}});Ul({type:"atom",htmlBuilder(r,e){return he.mathsym(r.text,r.mode,e,["m"+r.family])},mathmlBuilder(r,e){var t=new Te.MathNode("mo",[Zn(r.text,r.mode)]);if(r.family==="bin"){var i=D4(r,e);i==="bold-italic"&&t.setAttribute("mathvariant",i)}else r.family==="punct"?t.setAttribute("separator","true"):(r.family==="open"||r.family==="close")&&t.setAttribute("stretchy","false");return t}});var Xb={mi:"italic",mn:"normal",mtext:"normal"};Ul({type:"mathord",htmlBuilder(r,e){return he.makeOrd(r,e,"mathord")},mathmlBuilder(r,e){var t=new Te.MathNode("mi",[Zn(r.text,r.mode,e)]),i=D4(r,e)||"italic";return i!==Xb[t.type]&&t.setAttribute("mathvariant",i),t}});Ul({type:"textord",htmlBuilder(r,e){return he.makeOrd(r,e,"textord")},mathmlBuilder(r,e){var t=Zn(r.text,r.mode,e),i=D4(r,e)||"normal",n;return r.mode==="text"?n=new Te.MathNode("mtext",[t]):/[0-9]/.test(r.text)?n=new Te.MathNode("mn",[t]):r.text==="\\prime"?n=new Te.MathNode("mo",[t]):n=new Te.MathNode("mi",[t]),i!==Xb[n.type]&&n.setAttribute("mathvariant",i),n}});var c4={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},u4={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Ul({type:"spacing",htmlBuilder(r,e){if(u4.hasOwnProperty(r.text)){var t=u4[r.text].className||"";if(r.mode==="text"){var i=he.makeOrd(r,e,"textord");return i.classes.push(t),i}else return he.makeSpan(["mspace",t],[he.mathsym(r.text,r.mode,e)],e)}else{if(c4.hasOwnProperty(r.text))return he.makeSpan(["mspace",c4[r.text]],[],e);throw new Me('Unknown type of space "'+r.text+'"')}},mathmlBuilder(r,e){var t;if(u4.hasOwnProperty(r.text))t=new Te.MathNode("mtext",[new Te.TextNode("\xA0")]);else{if(c4.hasOwnProperty(r.text))return new Te.MathNode("mspace");throw new Me('Unknown type of space "'+r.text+'"')}return t}});var $x=()=>{var r=new Te.MathNode("mtd",[]);return r.setAttribute("width","50%"),r};Ul({type:"tag",mathmlBuilder(r,e){var t=new Te.MathNode("mtable",[new Te.MathNode("mtr",[$x(),new Te.MathNode("mtd",[Ao(r.body,e)]),$x(),new Te.MathNode("mtd",[Ao(r.tag,e)])])]);return t.setAttribute("width","100%"),t}});var eb={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},tb={"\\textbf":"textbf","\\textmd":"textmd"},hH={"\\textit":"textit","\\textup":"textup"},rb=(r,e)=>{var t=r.font;if(t){if(eb[t])return e.withTextFontFamily(eb[t]);if(tb[t])return e.withTextFontWeight(tb[t]);if(t==="\\emph")return e.fontShape==="textit"?e.withTextFontShape("textup"):e.withTextFontShape("textit")}else return e;return e.withTextFontShape(hH[t])};Le({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup","\\emph"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(r,e){var{parser:t,funcName:i}=r,n=e[0];return{type:"text",mode:t.mode,body:Pr(n),font:i}},htmlBuilder(r,e){var t=rb(r,e),i=ti(r.body,t,!0);return he.makeSpan(["mord","text"],i,t)},mathmlBuilder(r,e){var t=rb(r,e);return Ao(r.body,t)}});Le({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(r,e){var{parser:t}=r;return{type:"underline",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=jt(r.body,e),i=he.makeLineSpan("underline-line",e),n=e.fontMetrics().defaultRuleThickness,s=he.makeVList({positionType:"top",positionData:t.height,children:[{type:"kern",size:n},{type:"elem",elem:i},{type:"kern",size:3*n},{type:"elem",elem:t}]},e);return he.makeSpan(["mord","underline"],[s],e)},mathmlBuilder(r,e){var t=new Te.MathNode("mo",[new Te.TextNode("\u203E")]);t.setAttribute("stretchy","true");var i=new Te.MathNode("munder",[sr(r.body,e),t]);return i.setAttribute("accentunder","true"),i}});Le({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(r,e){var{parser:t}=r;return{type:"vcenter",mode:t.mode,body:e[0]}},htmlBuilder(r,e){var t=jt(r.body,e),i=e.fontMetrics().axisHeight,n=.5*(t.height-i-(t.depth+i));return he.makeVList({positionType:"shift",positionData:n,children:[{type:"elem",elem:t}]},e)},mathmlBuilder(r,e){return new Te.MathNode("mpadded",[sr(r.body,e)],["vcenter"])}});Le({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(r,e,t){throw new Me("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(r,e){for(var t=ib(r),i=[],n=e.havingStyle(e.style.text()),s=0;sr.body.replace(/ /g,r.star?"\u2423":"\xA0"),bo=xb,Zb=`[ \r + ]`,cH="\\\\[a-zA-Z@]+",uH="\\\\[^\uD800-\uDFFF]",dH="("+cH+")"+Zb+"*",fH=`\\\\( +|[ \r ]+ +?)[ \r ]*`,A4="[\u0300-\u036F]",mH=new RegExp(A4+"+$"),pH="("+Zb+"+)|"+(fH+"|")+"([!-\\[\\]-\u2027\u202A-\uD7FF\uF900-\uFFFF]"+(A4+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(A4+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+dH)+("|"+uH+")"),mm=class{constructor(e,t){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=e,this.settings=t,this.tokenRegex=new RegExp(pH,"g"),this.catcodes={"%":14,"~":13}}setCatcode(e,t){this.catcodes[e]=t}lex(){var e=this.input,t=this.tokenRegex.lastIndex;if(t===e.length)return new fn("EOF",new ji(this,t,t));var i=this.tokenRegex.exec(e);if(i===null||i.index!==t)throw new Me("Unexpected character: '"+e[t]+"'",new fn(e[t],new ji(this,t,t+1)));var n=i[6]||i[3]||(i[2]?"\\ ":" ");if(this.catcodes[n]===14){var s=e.indexOf(` +`,this.tokenRegex.lastIndex);return s===-1?(this.tokenRegex.lastIndex=e.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=s+1,this.lex()}return new fn(n,new ji(this,t,this.tokenRegex.lastIndex))}},E4=class{constructor(e,t){e===void 0&&(e={}),t===void 0&&(t={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=t,this.builtins=e,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new Me("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var e=this.undefStack.pop();for(var t in e)e.hasOwnProperty(t)&&(e[t]==null?delete this.current[t]:this.current[t]=e[t])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(e){return this.current.hasOwnProperty(e)||this.builtins.hasOwnProperty(e)}get(e){return this.current.hasOwnProperty(e)?this.current[e]:this.builtins[e]}set(e,t,i){if(i===void 0&&(i=!1),i){for(var n=0;n0&&(this.undefStack[this.undefStack.length-1][e]=t)}else{var s=this.undefStack[this.undefStack.length-1];s&&!s.hasOwnProperty(e)&&(s[e]=this.current[e])}t==null?delete this.current[e]:this.current[e]=t}},gH=qb;q("\\noexpand",function(r){var e=r.popToken();return r.isExpandable(e.text)&&(e.noexpand=!0,e.treatAsRelax=!0),{tokens:[e],numArgs:0}});q("\\expandafter",function(r){var e=r.popToken();return r.expandOnce(!0),{tokens:[e],numArgs:0}});q("\\@firstoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[0],numArgs:0}});q("\\@secondoftwo",function(r){var e=r.consumeArgs(2);return{tokens:e[1],numArgs:0}});q("\\@ifnextchar",function(r){var e=r.consumeArgs(3);r.consumeSpaces();var t=r.future();return e[0].length===1&&e[0][0].text===t.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}});q("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");q("\\TextOrMath",function(r){var e=r.consumeArgs(2);return r.mode==="text"?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var nb={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};q("\\char",function(r){var e=r.popToken(),t,i="";if(e.text==="'")t=8,e=r.popToken();else if(e.text==='"')t=16,e=r.popToken();else if(e.text==="`")if(e=r.popToken(),e.text[0]==="\\")i=e.text.charCodeAt(1);else{if(e.text==="EOF")throw new Me("\\char` missing argument");i=e.text.charCodeAt(0)}else t=10;if(t){if(i=nb[e.text],i==null||i>=t)throw new Me("Invalid base-"+t+" digit "+e.text);for(var n;(n=nb[r.future().text])!=null&&n{var n=r.consumeArg().tokens;if(n.length!==1)throw new Me("\\newcommand's first argument must be a macro name");var s=n[0].text,a=r.isDefined(s);if(a&&!e)throw new Me("\\newcommand{"+s+"} attempting to redefine "+(s+"; use \\renewcommand"));if(!a&&!t)throw new Me("\\renewcommand{"+s+"} when command "+s+" does not yet exist; use \\newcommand");var o=0;if(n=r.consumeArg().tokens,n.length===1&&n[0].text==="["){for(var l="",h=r.expandNextToken();h.text!=="]"&&h.text!=="EOF";)l+=h.text,h=r.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new Me("Invalid number of arguments: "+l);o=parseInt(l),n=r.consumeArg().tokens}return a&&i||r.macros.set(s,{tokens:n,numArgs:o}),""};q("\\newcommand",r=>_4(r,!1,!0,!1));q("\\renewcommand",r=>_4(r,!0,!1,!1));q("\\providecommand",r=>_4(r,!0,!0,!0));q("\\message",r=>{var e=r.consumeArgs(1)[0];return console.log(e.reverse().map(t=>t.text).join("")),""});q("\\errmessage",r=>{var e=r.consumeArgs(1)[0];return console.error(e.reverse().map(t=>t.text).join("")),""});q("\\show",r=>{var e=r.popToken(),t=e.text;return console.log(e,r.macros.get(t),bo[t],cr.math[t],cr.text[t]),""});q("\\bgroup","{");q("\\egroup","}");q("~","\\nobreakspace");q("\\lq","`");q("\\rq","'");q("\\aa","\\r a");q("\\AA","\\r A");q("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`\xA9}");q("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");q("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`\xAE}");q("\u212C","\\mathscr{B}");q("\u2130","\\mathscr{E}");q("\u2131","\\mathscr{F}");q("\u210B","\\mathscr{H}");q("\u2110","\\mathscr{I}");q("\u2112","\\mathscr{L}");q("\u2133","\\mathscr{M}");q("\u211B","\\mathscr{R}");q("\u212D","\\mathfrak{C}");q("\u210C","\\mathfrak{H}");q("\u2128","\\mathfrak{Z}");q("\\Bbbk","\\Bbb{k}");q("\xB7","\\cdotp");q("\\llap","\\mathllap{\\textrm{#1}}");q("\\rlap","\\mathrlap{\\textrm{#1}}");q("\\clap","\\mathclap{\\textrm{#1}}");q("\\mathstrut","\\vphantom{(}");q("\\underbar","\\underline{\\text{#1}}");q("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');q("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`\u2260}}");q("\\ne","\\neq");q("\u2260","\\neq");q("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`\u2209}}");q("\u2209","\\notin");q("\u2258","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`\u2258}}");q("\u2259","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`\u2258}}");q("\u225A","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`\u225A}}");q("\u225B","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`\u225B}}");q("\u225D","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`\u225D}}");q("\u225E","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`\u225E}}");q("\u225F","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`\u225F}}");q("\u27C2","\\perp");q("\u203C","\\mathclose{!\\mkern-0.8mu!}");q("\u220C","\\notni");q("\u231C","\\ulcorner");q("\u231D","\\urcorner");q("\u231E","\\llcorner");q("\u231F","\\lrcorner");q("\xA9","\\copyright");q("\xAE","\\textregistered");q("\uFE0F","\\textregistered");q("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');q("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');q("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');q("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');q("\\vdots","{\\varvdots\\rule{0pt}{15pt}}");q("\u22EE","\\vdots");q("\\varGamma","\\mathit{\\Gamma}");q("\\varDelta","\\mathit{\\Delta}");q("\\varTheta","\\mathit{\\Theta}");q("\\varLambda","\\mathit{\\Lambda}");q("\\varXi","\\mathit{\\Xi}");q("\\varPi","\\mathit{\\Pi}");q("\\varSigma","\\mathit{\\Sigma}");q("\\varUpsilon","\\mathit{\\Upsilon}");q("\\varPhi","\\mathit{\\Phi}");q("\\varPsi","\\mathit{\\Psi}");q("\\varOmega","\\mathit{\\Omega}");q("\\substack","\\begin{subarray}{c}#1\\end{subarray}");q("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");q("\\boxed","\\fbox{$\\displaystyle{#1}$}");q("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");q("\\implies","\\DOTSB\\;\\Longrightarrow\\;");q("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");q("\\dddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ...}}{#1}}");q("\\ddddot","{\\overset{\\raisebox{-0.1ex}{\\normalsize ....}}{#1}}");var sb={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};q("\\dots",function(r){var e="\\dotso",t=r.expandAfterFuture().text;return t in sb?e=sb[t]:(t.slice(0,4)==="\\not"||t in cr.math&&rt.contains(["bin","rel"],cr.math[t].group))&&(e="\\dotsb"),e});var q4={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};q("\\dotso",function(r){var e=r.future().text;return e in q4?"\\ldots\\,":"\\ldots"});q("\\dotsc",function(r){var e=r.future().text;return e in q4&&e!==","?"\\ldots\\,":"\\ldots"});q("\\cdots",function(r){var e=r.future().text;return e in q4?"\\@cdots\\,":"\\@cdots"});q("\\dotsb","\\cdots");q("\\dotsm","\\cdots");q("\\dotsi","\\!\\cdots");q("\\dotsx","\\ldots\\,");q("\\DOTSI","\\relax");q("\\DOTSB","\\relax");q("\\DOTSX","\\relax");q("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");q("\\,","\\tmspace+{3mu}{.1667em}");q("\\thinspace","\\,");q("\\>","\\mskip{4mu}");q("\\:","\\tmspace+{4mu}{.2222em}");q("\\medspace","\\:");q("\\;","\\tmspace+{5mu}{.2777em}");q("\\thickspace","\\;");q("\\!","\\tmspace-{3mu}{.1667em}");q("\\negthinspace","\\!");q("\\negmedspace","\\tmspace-{4mu}{.2222em}");q("\\negthickspace","\\tmspace-{5mu}{.277em}");q("\\enspace","\\kern.5em ");q("\\enskip","\\hskip.5em\\relax");q("\\quad","\\hskip1em\\relax");q("\\qquad","\\hskip2em\\relax");q("\\tag","\\@ifstar\\tag@literal\\tag@paren");q("\\tag@paren","\\tag@literal{({#1})}");q("\\tag@literal",r=>{if(r.macros.get("\\df@tag"))throw new Me("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});q("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");q("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");q("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");q("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");q("\\newline","\\\\\\relax");q("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var Jb=Ie(Us["Main-Regular"]["T".charCodeAt(0)][1]-.7*Us["Main-Regular"]["A".charCodeAt(0)][1]);q("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+Jb+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");q("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+Jb+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");q("\\hspace","\\@ifstar\\@hspacer\\@hspace");q("\\@hspace","\\hskip #1\\relax");q("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");q("\\ordinarycolon",":");q("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");q("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');q("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');q("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');q("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');q("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');q("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');q("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');q("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');q("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');q("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');q("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');q("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');q("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');q("\u2237","\\dblcolon");q("\u2239","\\eqcolon");q("\u2254","\\coloneqq");q("\u2255","\\eqqcolon");q("\u2A74","\\Coloneqq");q("\\ratio","\\vcentcolon");q("\\coloncolon","\\dblcolon");q("\\colonequals","\\coloneqq");q("\\coloncolonequals","\\Coloneqq");q("\\equalscolon","\\eqqcolon");q("\\equalscoloncolon","\\Eqqcolon");q("\\colonminus","\\coloneq");q("\\coloncolonminus","\\Coloneq");q("\\minuscolon","\\eqcolon");q("\\minuscoloncolon","\\Eqcolon");q("\\coloncolonapprox","\\Colonapprox");q("\\coloncolonsim","\\Colonsim");q("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");q("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");q("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");q("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");q("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`\u220C}}");q("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");q("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");q("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");q("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");q("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");q("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");q("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");q("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");q("\\gvertneqq","\\html@mathml{\\@gvertneqq}{\u2269}");q("\\lvertneqq","\\html@mathml{\\@lvertneqq}{\u2268}");q("\\ngeqq","\\html@mathml{\\@ngeqq}{\u2271}");q("\\ngeqslant","\\html@mathml{\\@ngeqslant}{\u2271}");q("\\nleqq","\\html@mathml{\\@nleqq}{\u2270}");q("\\nleqslant","\\html@mathml{\\@nleqslant}{\u2270}");q("\\nshortmid","\\html@mathml{\\@nshortmid}{\u2224}");q("\\nshortparallel","\\html@mathml{\\@nshortparallel}{\u2226}");q("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{\u2288}");q("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{\u2289}");q("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{\u228A}");q("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{\u2ACB}");q("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{\u228B}");q("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{\u2ACC}");q("\\imath","\\html@mathml{\\@imath}{\u0131}");q("\\jmath","\\html@mathml{\\@jmath}{\u0237}");q("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`\u27E6}}");q("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`\u27E7}}");q("\u27E6","\\llbracket");q("\u27E7","\\rrbracket");q("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`\u2983}}");q("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`\u2984}}");q("\u2983","\\lBrace");q("\u2984","\\rBrace");q("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`\u29B5}}");q("\u29B5","\\minuso");q("\\darr","\\downarrow");q("\\dArr","\\Downarrow");q("\\Darr","\\Downarrow");q("\\lang","\\langle");q("\\rang","\\rangle");q("\\uarr","\\uparrow");q("\\uArr","\\Uparrow");q("\\Uarr","\\Uparrow");q("\\N","\\mathbb{N}");q("\\R","\\mathbb{R}");q("\\Z","\\mathbb{Z}");q("\\alef","\\aleph");q("\\alefsym","\\aleph");q("\\Alpha","\\mathrm{A}");q("\\Beta","\\mathrm{B}");q("\\bull","\\bullet");q("\\Chi","\\mathrm{X}");q("\\clubs","\\clubsuit");q("\\cnums","\\mathbb{C}");q("\\Complex","\\mathbb{C}");q("\\Dagger","\\ddagger");q("\\diamonds","\\diamondsuit");q("\\empty","\\emptyset");q("\\Epsilon","\\mathrm{E}");q("\\Eta","\\mathrm{H}");q("\\exist","\\exists");q("\\harr","\\leftrightarrow");q("\\hArr","\\Leftrightarrow");q("\\Harr","\\Leftrightarrow");q("\\hearts","\\heartsuit");q("\\image","\\Im");q("\\infin","\\infty");q("\\Iota","\\mathrm{I}");q("\\isin","\\in");q("\\Kappa","\\mathrm{K}");q("\\larr","\\leftarrow");q("\\lArr","\\Leftarrow");q("\\Larr","\\Leftarrow");q("\\lrarr","\\leftrightarrow");q("\\lrArr","\\Leftrightarrow");q("\\Lrarr","\\Leftrightarrow");q("\\Mu","\\mathrm{M}");q("\\natnums","\\mathbb{N}");q("\\Nu","\\mathrm{N}");q("\\Omicron","\\mathrm{O}");q("\\plusmn","\\pm");q("\\rarr","\\rightarrow");q("\\rArr","\\Rightarrow");q("\\Rarr","\\Rightarrow");q("\\real","\\Re");q("\\reals","\\mathbb{R}");q("\\Reals","\\mathbb{R}");q("\\Rho","\\mathrm{P}");q("\\sdot","\\cdot");q("\\sect","\\S");q("\\spades","\\spadesuit");q("\\sub","\\subset");q("\\sube","\\subseteq");q("\\supe","\\supseteq");q("\\Tau","\\mathrm{T}");q("\\thetasym","\\vartheta");q("\\weierp","\\wp");q("\\Zeta","\\mathrm{Z}");q("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");q("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");q("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");q("\\bra","\\mathinner{\\langle{#1}|}");q("\\ket","\\mathinner{|{#1}\\rangle}");q("\\braket","\\mathinner{\\langle{#1}\\rangle}");q("\\Bra","\\left\\langle#1\\right|");q("\\Ket","\\left|#1\\right\\rangle");var $b=r=>e=>{var t=e.consumeArg().tokens,i=e.consumeArg().tokens,n=e.consumeArg().tokens,s=e.consumeArg().tokens,a=e.macros.get("|"),o=e.macros.get("\\|");e.macros.beginGroup();var l=u=>d=>{r&&(d.macros.set("|",a),n.length&&d.macros.set("\\|",o));var f=u;if(!u&&n.length){var m=d.future();m.text==="|"&&(d.popToken(),f=!0)}return{tokens:f?n:i,numArgs:0}};e.macros.set("|",l(!1)),n.length&&e.macros.set("\\|",l(!0));var h=e.consumeArg().tokens,c=e.expandTokens([...s,...h,...t]);return e.macros.endGroup(),{tokens:c.reverse(),numArgs:0}};q("\\bra@ket",$b(!1));q("\\bra@set",$b(!0));q("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");q("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");q("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");q("\\angln","{\\angl n}");q("\\blue","\\textcolor{##6495ed}{#1}");q("\\orange","\\textcolor{##ffa500}{#1}");q("\\pink","\\textcolor{##ff00af}{#1}");q("\\red","\\textcolor{##df0030}{#1}");q("\\green","\\textcolor{##28ae7b}{#1}");q("\\gray","\\textcolor{gray}{#1}");q("\\purple","\\textcolor{##9d38bd}{#1}");q("\\blueA","\\textcolor{##ccfaff}{#1}");q("\\blueB","\\textcolor{##80f6ff}{#1}");q("\\blueC","\\textcolor{##63d9ea}{#1}");q("\\blueD","\\textcolor{##11accd}{#1}");q("\\blueE","\\textcolor{##0c7f99}{#1}");q("\\tealA","\\textcolor{##94fff5}{#1}");q("\\tealB","\\textcolor{##26edd5}{#1}");q("\\tealC","\\textcolor{##01d1c1}{#1}");q("\\tealD","\\textcolor{##01a995}{#1}");q("\\tealE","\\textcolor{##208170}{#1}");q("\\greenA","\\textcolor{##b6ffb0}{#1}");q("\\greenB","\\textcolor{##8af281}{#1}");q("\\greenC","\\textcolor{##74cf70}{#1}");q("\\greenD","\\textcolor{##1fab54}{#1}");q("\\greenE","\\textcolor{##0d923f}{#1}");q("\\goldA","\\textcolor{##ffd0a9}{#1}");q("\\goldB","\\textcolor{##ffbb71}{#1}");q("\\goldC","\\textcolor{##ff9c39}{#1}");q("\\goldD","\\textcolor{##e07d10}{#1}");q("\\goldE","\\textcolor{##a75a05}{#1}");q("\\redA","\\textcolor{##fca9a9}{#1}");q("\\redB","\\textcolor{##ff8482}{#1}");q("\\redC","\\textcolor{##f9685d}{#1}");q("\\redD","\\textcolor{##e84d39}{#1}");q("\\redE","\\textcolor{##bc2612}{#1}");q("\\maroonA","\\textcolor{##ffbde0}{#1}");q("\\maroonB","\\textcolor{##ff92c6}{#1}");q("\\maroonC","\\textcolor{##ed5fa6}{#1}");q("\\maroonD","\\textcolor{##ca337c}{#1}");q("\\maroonE","\\textcolor{##9e034e}{#1}");q("\\purpleA","\\textcolor{##ddd7ff}{#1}");q("\\purpleB","\\textcolor{##c6b9fc}{#1}");q("\\purpleC","\\textcolor{##aa87ff}{#1}");q("\\purpleD","\\textcolor{##7854ab}{#1}");q("\\purpleE","\\textcolor{##543b78}{#1}");q("\\mintA","\\textcolor{##f5f9e8}{#1}");q("\\mintB","\\textcolor{##edf2df}{#1}");q("\\mintC","\\textcolor{##e0e5cc}{#1}");q("\\grayA","\\textcolor{##f6f7f7}{#1}");q("\\grayB","\\textcolor{##f0f1f2}{#1}");q("\\grayC","\\textcolor{##e3e5e6}{#1}");q("\\grayD","\\textcolor{##d6d8da}{#1}");q("\\grayE","\\textcolor{##babec2}{#1}");q("\\grayF","\\textcolor{##888d93}{#1}");q("\\grayG","\\textcolor{##626569}{#1}");q("\\grayH","\\textcolor{##3b3e40}{#1}");q("\\grayI","\\textcolor{##21242c}{#1}");q("\\kaBlue","\\textcolor{##314453}{#1}");q("\\kaGreen","\\textcolor{##71B307}{#1}");var ew={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0},C4=class{constructor(e,t,i){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=t,this.expansionCount=0,this.feed(e),this.macros=new E4(gH,t.macros),this.mode=i,this.stack=[]}feed(e){this.lexer=new mm(e,this.settings)}switchMode(e){this.mode=e}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(e){this.stack.push(e)}pushTokens(e){this.stack.push(...e)}scanArgument(e){var t,i,n;if(e){if(this.consumeSpaces(),this.future().text!=="[")return null;t=this.popToken(),{tokens:n,end:i}=this.consumeArg(["]"])}else({tokens:n,start:t,end:i}=this.consumeArg());return this.pushToken(new fn("EOF",i.loc)),this.pushTokens(n),t.range(i,"")}consumeSpaces(){for(;;){var e=this.future();if(e.text===" ")this.stack.pop();else break}}consumeArg(e){var t=[],i=e&&e.length>0;i||this.consumeSpaces();var n=this.future(),s,a=0,o=0;do{if(s=this.popToken(),t.push(s),s.text==="{")++a;else if(s.text==="}"){if(--a,a===-1)throw new Me("Extra }",s)}else if(s.text==="EOF")throw new Me("Unexpected end of input in a macro argument, expected '"+(e&&i?e[o]:"}")+"'",s);if(e&&i)if((a===0||a===1&&e[o]==="{")&&s.text===e[o]){if(++o,o===e.length){t.splice(-o,o);break}}else o=0}while(a!==0||i);return n.text==="{"&&t[t.length-1].text==="}"&&(t.pop(),t.shift()),t.reverse(),{tokens:t,start:n,end:s}}consumeArgs(e,t){if(t){if(t.length!==e+1)throw new Me("The length of delimiters doesn't match the number of args!");for(var i=t[0],n=0;nthis.settings.maxExpand)throw new Me("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(e){var t=this.popToken(),i=t.text,n=t.noexpand?null:this._getExpansion(i);if(n==null||e&&n.unexpandable){if(e&&n==null&&i[0]==="\\"&&!this.isDefined(i))throw new Me("Undefined control sequence: "+i);return this.pushToken(t),!1}this.countExpansion(1);var s=n.tokens,a=this.consumeArgs(n.numArgs,n.delimiters);if(n.numArgs){s=s.slice();for(var o=s.length-1;o>=0;--o){var l=s[o];if(l.text==="#"){if(o===0)throw new Me("Incomplete placeholder at end of macro body",l);if(l=s[--o],l.text==="#")s.splice(o+1,1);else if(/^[1-9]$/.test(l.text))s.splice(o,2,...a[+l.text-1]);else throw new Me("Not a valid argument number",l)}}}return this.pushTokens(s),s.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var e=this.stack.pop();return e.treatAsRelax&&(e.text="\\relax"),e}throw new Error}expandMacro(e){return this.macros.has(e)?this.expandTokens([new fn(e)]):void 0}expandTokens(e){var t=[],i=this.stack.length;for(this.pushTokens(e);this.stack.length>i;)if(this.expandOnce(!0)===!1){var n=this.stack.pop();n.treatAsRelax&&(n.noexpand=!1,n.treatAsRelax=!1),t.push(n)}return this.countExpansion(t.length),t}expandMacroAsText(e){var t=this.expandMacro(e);return t&&t.map(i=>i.text).join("")}_getExpansion(e){var t=this.macros.get(e);if(t==null)return t;if(e.length===1){var i=this.lexer.catcodes[e];if(i!=null&&i!==13)return}var n=typeof t=="function"?t(this):t;if(typeof n=="string"){var s=0;if(n.indexOf("#")!==-1)for(var a=n.replace(/##/g,"");a.indexOf("#"+(s+1))!==-1;)++s;for(var o=new mm(n,this.settings),l=[],h=o.lex();h.text!=="EOF";)l.push(h),h=o.lex();l.reverse();var c={tokens:l,numArgs:s};return c}return n}isDefined(e){return this.macros.has(e)||bo.hasOwnProperty(e)||cr.math.hasOwnProperty(e)||cr.text.hasOwnProperty(e)||ew.hasOwnProperty(e)}isExpandable(e){var t=this.macros.get(e);return t!=null?typeof t=="string"||typeof t=="function"||!t.unexpandable:bo.hasOwnProperty(e)&&!bo[e].primitive}},ab=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,am=Object.freeze({"\u208A":"+","\u208B":"-","\u208C":"=","\u208D":"(","\u208E":")","\u2080":"0","\u2081":"1","\u2082":"2","\u2083":"3","\u2084":"4","\u2085":"5","\u2086":"6","\u2087":"7","\u2088":"8","\u2089":"9","\u2090":"a","\u2091":"e","\u2095":"h","\u1D62":"i","\u2C7C":"j","\u2096":"k","\u2097":"l","\u2098":"m","\u2099":"n","\u2092":"o","\u209A":"p","\u1D63":"r","\u209B":"s","\u209C":"t","\u1D64":"u","\u1D65":"v","\u2093":"x","\u1D66":"\u03B2","\u1D67":"\u03B3","\u1D68":"\u03C1","\u1D69":"\u03D5","\u1D6A":"\u03C7","\u207A":"+","\u207B":"-","\u207C":"=","\u207D":"(","\u207E":")","\u2070":"0","\xB9":"1","\xB2":"2","\xB3":"3","\u2074":"4","\u2075":"5","\u2076":"6","\u2077":"7","\u2078":"8","\u2079":"9","\u1D2C":"A","\u1D2E":"B","\u1D30":"D","\u1D31":"E","\u1D33":"G","\u1D34":"H","\u1D35":"I","\u1D36":"J","\u1D37":"K","\u1D38":"L","\u1D39":"M","\u1D3A":"N","\u1D3C":"O","\u1D3E":"P","\u1D3F":"R","\u1D40":"T","\u1D41":"U","\u2C7D":"V","\u1D42":"W","\u1D43":"a","\u1D47":"b","\u1D9C":"c","\u1D48":"d","\u1D49":"e","\u1DA0":"f","\u1D4D":"g",\u02B0:"h","\u2071":"i",\u02B2:"j","\u1D4F":"k",\u02E1:"l","\u1D50":"m",\u207F:"n","\u1D52":"o","\u1D56":"p",\u02B3:"r",\u02E2:"s","\u1D57":"t","\u1D58":"u","\u1D5B":"v",\u02B7:"w",\u02E3:"x",\u02B8:"y","\u1DBB":"z","\u1D5D":"\u03B2","\u1D5E":"\u03B3","\u1D5F":"\u03B4","\u1D60":"\u03D5","\u1D61":"\u03C7","\u1DBF":"\u03B8"}),d4={"\u0301":{text:"\\'",math:"\\acute"},"\u0300":{text:"\\`",math:"\\grave"},"\u0308":{text:'\\"',math:"\\ddot"},"\u0303":{text:"\\~",math:"\\tilde"},"\u0304":{text:"\\=",math:"\\bar"},"\u0306":{text:"\\u",math:"\\breve"},"\u030C":{text:"\\v",math:"\\check"},"\u0302":{text:"\\^",math:"\\hat"},"\u0307":{text:"\\.",math:"\\dot"},"\u030A":{text:"\\r",math:"\\mathring"},"\u030B":{text:"\\H"},"\u0327":{text:"\\c"}},ob={\u00E1:"a\u0301",\u00E0:"a\u0300",\u00E4:"a\u0308",\u01DF:"a\u0308\u0304",\u00E3:"a\u0303",\u0101:"a\u0304",\u0103:"a\u0306",\u1EAF:"a\u0306\u0301",\u1EB1:"a\u0306\u0300",\u1EB5:"a\u0306\u0303",\u01CE:"a\u030C",\u00E2:"a\u0302",\u1EA5:"a\u0302\u0301",\u1EA7:"a\u0302\u0300",\u1EAB:"a\u0302\u0303",\u0227:"a\u0307",\u01E1:"a\u0307\u0304",\u00E5:"a\u030A",\u01FB:"a\u030A\u0301",\u1E03:"b\u0307",\u0107:"c\u0301",\u1E09:"c\u0327\u0301",\u010D:"c\u030C",\u0109:"c\u0302",\u010B:"c\u0307",\u00E7:"c\u0327",\u010F:"d\u030C",\u1E0B:"d\u0307",\u1E11:"d\u0327",\u00E9:"e\u0301",\u00E8:"e\u0300",\u00EB:"e\u0308",\u1EBD:"e\u0303",\u0113:"e\u0304",\u1E17:"e\u0304\u0301",\u1E15:"e\u0304\u0300",\u0115:"e\u0306",\u1E1D:"e\u0327\u0306",\u011B:"e\u030C",\u00EA:"e\u0302",\u1EBF:"e\u0302\u0301",\u1EC1:"e\u0302\u0300",\u1EC5:"e\u0302\u0303",\u0117:"e\u0307",\u0229:"e\u0327",\u1E1F:"f\u0307",\u01F5:"g\u0301",\u1E21:"g\u0304",\u011F:"g\u0306",\u01E7:"g\u030C",\u011D:"g\u0302",\u0121:"g\u0307",\u0123:"g\u0327",\u1E27:"h\u0308",\u021F:"h\u030C",\u0125:"h\u0302",\u1E23:"h\u0307",\u1E29:"h\u0327",\u00ED:"i\u0301",\u00EC:"i\u0300",\u00EF:"i\u0308",\u1E2F:"i\u0308\u0301",\u0129:"i\u0303",\u012B:"i\u0304",\u012D:"i\u0306",\u01D0:"i\u030C",\u00EE:"i\u0302",\u01F0:"j\u030C",\u0135:"j\u0302",\u1E31:"k\u0301",\u01E9:"k\u030C",\u0137:"k\u0327",\u013A:"l\u0301",\u013E:"l\u030C",\u013C:"l\u0327",\u1E3F:"m\u0301",\u1E41:"m\u0307",\u0144:"n\u0301",\u01F9:"n\u0300",\u00F1:"n\u0303",\u0148:"n\u030C",\u1E45:"n\u0307",\u0146:"n\u0327",\u00F3:"o\u0301",\u00F2:"o\u0300",\u00F6:"o\u0308",\u022B:"o\u0308\u0304",\u00F5:"o\u0303",\u1E4D:"o\u0303\u0301",\u1E4F:"o\u0303\u0308",\u022D:"o\u0303\u0304",\u014D:"o\u0304",\u1E53:"o\u0304\u0301",\u1E51:"o\u0304\u0300",\u014F:"o\u0306",\u01D2:"o\u030C",\u00F4:"o\u0302",\u1ED1:"o\u0302\u0301",\u1ED3:"o\u0302\u0300",\u1ED7:"o\u0302\u0303",\u022F:"o\u0307",\u0231:"o\u0307\u0304",\u0151:"o\u030B",\u1E55:"p\u0301",\u1E57:"p\u0307",\u0155:"r\u0301",\u0159:"r\u030C",\u1E59:"r\u0307",\u0157:"r\u0327",\u015B:"s\u0301",\u1E65:"s\u0301\u0307",\u0161:"s\u030C",\u1E67:"s\u030C\u0307",\u015D:"s\u0302",\u1E61:"s\u0307",\u015F:"s\u0327",\u1E97:"t\u0308",\u0165:"t\u030C",\u1E6B:"t\u0307",\u0163:"t\u0327",\u00FA:"u\u0301",\u00F9:"u\u0300",\u00FC:"u\u0308",\u01D8:"u\u0308\u0301",\u01DC:"u\u0308\u0300",\u01D6:"u\u0308\u0304",\u01DA:"u\u0308\u030C",\u0169:"u\u0303",\u1E79:"u\u0303\u0301",\u016B:"u\u0304",\u1E7B:"u\u0304\u0308",\u016D:"u\u0306",\u01D4:"u\u030C",\u00FB:"u\u0302",\u016F:"u\u030A",\u0171:"u\u030B",\u1E7D:"v\u0303",\u1E83:"w\u0301",\u1E81:"w\u0300",\u1E85:"w\u0308",\u0175:"w\u0302",\u1E87:"w\u0307",\u1E98:"w\u030A",\u1E8D:"x\u0308",\u1E8B:"x\u0307",\u00FD:"y\u0301",\u1EF3:"y\u0300",\u00FF:"y\u0308",\u1EF9:"y\u0303",\u0233:"y\u0304",\u0177:"y\u0302",\u1E8F:"y\u0307",\u1E99:"y\u030A",\u017A:"z\u0301",\u017E:"z\u030C",\u1E91:"z\u0302",\u017C:"z\u0307",\u00C1:"A\u0301",\u00C0:"A\u0300",\u00C4:"A\u0308",\u01DE:"A\u0308\u0304",\u00C3:"A\u0303",\u0100:"A\u0304",\u0102:"A\u0306",\u1EAE:"A\u0306\u0301",\u1EB0:"A\u0306\u0300",\u1EB4:"A\u0306\u0303",\u01CD:"A\u030C",\u00C2:"A\u0302",\u1EA4:"A\u0302\u0301",\u1EA6:"A\u0302\u0300",\u1EAA:"A\u0302\u0303",\u0226:"A\u0307",\u01E0:"A\u0307\u0304",\u00C5:"A\u030A",\u01FA:"A\u030A\u0301",\u1E02:"B\u0307",\u0106:"C\u0301",\u1E08:"C\u0327\u0301",\u010C:"C\u030C",\u0108:"C\u0302",\u010A:"C\u0307",\u00C7:"C\u0327",\u010E:"D\u030C",\u1E0A:"D\u0307",\u1E10:"D\u0327",\u00C9:"E\u0301",\u00C8:"E\u0300",\u00CB:"E\u0308",\u1EBC:"E\u0303",\u0112:"E\u0304",\u1E16:"E\u0304\u0301",\u1E14:"E\u0304\u0300",\u0114:"E\u0306",\u1E1C:"E\u0327\u0306",\u011A:"E\u030C",\u00CA:"E\u0302",\u1EBE:"E\u0302\u0301",\u1EC0:"E\u0302\u0300",\u1EC4:"E\u0302\u0303",\u0116:"E\u0307",\u0228:"E\u0327",\u1E1E:"F\u0307",\u01F4:"G\u0301",\u1E20:"G\u0304",\u011E:"G\u0306",\u01E6:"G\u030C",\u011C:"G\u0302",\u0120:"G\u0307",\u0122:"G\u0327",\u1E26:"H\u0308",\u021E:"H\u030C",\u0124:"H\u0302",\u1E22:"H\u0307",\u1E28:"H\u0327",\u00CD:"I\u0301",\u00CC:"I\u0300",\u00CF:"I\u0308",\u1E2E:"I\u0308\u0301",\u0128:"I\u0303",\u012A:"I\u0304",\u012C:"I\u0306",\u01CF:"I\u030C",\u00CE:"I\u0302",\u0130:"I\u0307",\u0134:"J\u0302",\u1E30:"K\u0301",\u01E8:"K\u030C",\u0136:"K\u0327",\u0139:"L\u0301",\u013D:"L\u030C",\u013B:"L\u0327",\u1E3E:"M\u0301",\u1E40:"M\u0307",\u0143:"N\u0301",\u01F8:"N\u0300",\u00D1:"N\u0303",\u0147:"N\u030C",\u1E44:"N\u0307",\u0145:"N\u0327",\u00D3:"O\u0301",\u00D2:"O\u0300",\u00D6:"O\u0308",\u022A:"O\u0308\u0304",\u00D5:"O\u0303",\u1E4C:"O\u0303\u0301",\u1E4E:"O\u0303\u0308",\u022C:"O\u0303\u0304",\u014C:"O\u0304",\u1E52:"O\u0304\u0301",\u1E50:"O\u0304\u0300",\u014E:"O\u0306",\u01D1:"O\u030C",\u00D4:"O\u0302",\u1ED0:"O\u0302\u0301",\u1ED2:"O\u0302\u0300",\u1ED6:"O\u0302\u0303",\u022E:"O\u0307",\u0230:"O\u0307\u0304",\u0150:"O\u030B",\u1E54:"P\u0301",\u1E56:"P\u0307",\u0154:"R\u0301",\u0158:"R\u030C",\u1E58:"R\u0307",\u0156:"R\u0327",\u015A:"S\u0301",\u1E64:"S\u0301\u0307",\u0160:"S\u030C",\u1E66:"S\u030C\u0307",\u015C:"S\u0302",\u1E60:"S\u0307",\u015E:"S\u0327",\u0164:"T\u030C",\u1E6A:"T\u0307",\u0162:"T\u0327",\u00DA:"U\u0301",\u00D9:"U\u0300",\u00DC:"U\u0308",\u01D7:"U\u0308\u0301",\u01DB:"U\u0308\u0300",\u01D5:"U\u0308\u0304",\u01D9:"U\u0308\u030C",\u0168:"U\u0303",\u1E78:"U\u0303\u0301",\u016A:"U\u0304",\u1E7A:"U\u0304\u0308",\u016C:"U\u0306",\u01D3:"U\u030C",\u00DB:"U\u0302",\u016E:"U\u030A",\u0170:"U\u030B",\u1E7C:"V\u0303",\u1E82:"W\u0301",\u1E80:"W\u0300",\u1E84:"W\u0308",\u0174:"W\u0302",\u1E86:"W\u0307",\u1E8C:"X\u0308",\u1E8A:"X\u0307",\u00DD:"Y\u0301",\u1EF2:"Y\u0300",\u0178:"Y\u0308",\u1EF8:"Y\u0303",\u0232:"Y\u0304",\u0176:"Y\u0302",\u1E8E:"Y\u0307",\u0179:"Z\u0301",\u017D:"Z\u030C",\u1E90:"Z\u0302",\u017B:"Z\u0307",\u03AC:"\u03B1\u0301",\u1F70:"\u03B1\u0300",\u1FB1:"\u03B1\u0304",\u1FB0:"\u03B1\u0306",\u03AD:"\u03B5\u0301",\u1F72:"\u03B5\u0300",\u03AE:"\u03B7\u0301",\u1F74:"\u03B7\u0300",\u03AF:"\u03B9\u0301",\u1F76:"\u03B9\u0300",\u03CA:"\u03B9\u0308",\u0390:"\u03B9\u0308\u0301",\u1FD2:"\u03B9\u0308\u0300",\u1FD1:"\u03B9\u0304",\u1FD0:"\u03B9\u0306",\u03CC:"\u03BF\u0301",\u1F78:"\u03BF\u0300",\u03CD:"\u03C5\u0301",\u1F7A:"\u03C5\u0300",\u03CB:"\u03C5\u0308",\u03B0:"\u03C5\u0308\u0301",\u1FE2:"\u03C5\u0308\u0300",\u1FE1:"\u03C5\u0304",\u1FE0:"\u03C5\u0306",\u03CE:"\u03C9\u0301",\u1F7C:"\u03C9\u0300",\u038E:"\u03A5\u0301",\u1FEA:"\u03A5\u0300",\u03AB:"\u03A5\u0308",\u1FE9:"\u03A5\u0304",\u1FE8:"\u03A5\u0306",\u038F:"\u03A9\u0301",\u1FFA:"\u03A9\u0300"},uh=class{constructor(e,t){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new C4(e,t,this.mode),this.settings=t,this.leftrightDepth=0}expect(e,t){if(t===void 0&&(t=!0),this.fetch().text!==e)throw new Me("Expected '"+e+"', got '"+this.fetch().text+"'",this.fetch());t&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(e){this.mode=e,this.gullet.switchMode(e)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var e=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),e}finally{this.gullet.endGroups()}}subparse(e){var t=this.nextToken;this.consume(),this.gullet.pushToken(new fn("}")),this.gullet.pushTokens(e);var i=this.parseExpression(!1);return this.expect("}"),this.nextToken=t,i}parseExpression(e,t){for(var i=[];;){this.mode==="math"&&this.consumeSpaces();var n=this.fetch();if(uh.endOfExpression.indexOf(n.text)!==-1||t&&n.text===t||e&&bo[n.text]&&bo[n.text].infix)break;var s=this.parseAtom(t);if(s){if(s.type==="internal")continue}else break;i.push(s)}return this.mode==="text"&&this.formLigatures(i),this.handleInfixNodes(i)}handleInfixNodes(e){for(var t=-1,i,n=0;n=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+t[0]+'" used in math mode',e);var o=cr[this.mode][t].group,l=ji.range(e),h;if(oU.hasOwnProperty(o)){var c=o;h={type:"atom",mode:this.mode,family:c,loc:l,text:t}}else h={type:o,mode:this.mode,loc:l,text:t};a=h}else if(t.charCodeAt(0)>=128)this.settings.strict&&(hb(t.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+t[0]+'" used in math mode',e):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+t[0]+'"'+(" ("+t.charCodeAt(0)+")"),e)),a={type:"textord",mode:"text",loc:ji.range(e),text:t};else return null;if(this.consume(),s)for(var u=0;u0){if(++e>=hj)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}var mw=dj;function fj(r){return function(){return r}}var pw=fj;var mj=function(){try{var r=gn(Object,"defineProperty");return r({},"",{}),r}catch(e){}}(),ph=mj;var pj=ph?function(r,e){return ph(r,"toString",{configurable:!0,enumerable:!1,value:pw(e),writable:!0})}:Em,gw=pj;var gj=mw(gw),vw=gj;function vj(r,e){for(var t=-1,i=r==null?0:r.length;++t-1&&r%1==0&&r-1&&r%1==0&&r<=Dj}var Dm=Nj;function Fj(r){return r!=null&&Dm(r.length)&&!mh(r)}var Co=Fj;function Ij(r,e,t){if(!Ei(t))return!1;var i=typeof e;return(i=="number"?Co(t)&&Mm(e,t.length):i=="string"&&e in t)?Ys(t[e],r):!1}var Aw=Ij;function zj(r){return ww(function(e,t){var i=-1,n=t.length,s=n>1?t[n-1]:void 0,a=n>2?t[2]:void 0;for(s=r.length>3&&typeof s=="function"?(n--,s):void 0,a&&Aw(t[0],t[1],a)&&(s=n<3?void 0:s,n=1),e=Object(e);++i-1}var Ww=$G;function eW(r,e){var t=this.__data__,i=So(t,r);return i<0?(++this.size,t.push([r,e])):t[i][1]=e,this}var Yw=eW;function Ah(r){var e=-1,t=r==null?0:r.length;for(this.clear();++eo))return!1;var h=s.get(r),c=s.get(e);if(h&&c)return h==e&&c==r;var u=-1,d=!0,f=t&dV?new UA:void 0;for(s.set(r,e),s.set(e,r);++uVi,AttributorStore:()=>Xu,BlockBlot:()=>Gl,ClassAttributor:()=>Vr,ContainerBlot:()=>zh,EmbedBlot:()=>Nr,InlineBlot:()=>Vm,LeafBlot:()=>Kr,ParentBlot:()=>yn,Registry:()=>Io,Scope:()=>ze,ScrollBlot:()=>Zu,StyleAttributor:()=>xn,TextBlot:()=>Lh});var ze=(r=>(r[r.TYPE=3]="TYPE",r[r.LEVEL=12]="LEVEL",r[r.ATTRIBUTE=13]="ATTRIBUTE",r[r.BLOT=14]="BLOT",r[r.INLINE=7]="INLINE",r[r.BLOCK=11]="BLOCK",r[r.BLOCK_BLOT=10]="BLOCK_BLOT",r[r.INLINE_BLOT=6]="INLINE_BLOT",r[r.BLOCK_ATTRIBUTE=9]="BLOCK_ATTRIBUTE",r[r.INLINE_ATTRIBUTE=5]="INLINE_ATTRIBUTE",r[r.ANY=15]="ANY",r))(ze||{}),Vi=class{constructor(e,t,i={}){this.attrName=e,this.keyName=t;let n=ze.TYPE&ze.ATTRIBUTE;this.scope=i.scope!=null?i.scope&ze.LEVEL|n:ze.ATTRIBUTE,i.whitelist!=null&&(this.whitelist=i.whitelist)}static keys(e){return Array.from(e.attributes).map(t=>t.name)}add(e,t){return this.canAdd(e,t)?(e.setAttribute(this.keyName,t),!0):!1}canAdd(e,t){return this.whitelist==null?!0:typeof t=="string"?this.whitelist.indexOf(t.replace(/["']/g,""))>-1:this.whitelist.indexOf(t)>-1}remove(e){e.removeAttribute(this.keyName)}value(e){let t=e.getAttribute(this.keyName);return this.canAdd(e,t)&&t?t:""}},Fo=class extends Error{constructor(e){e="[Parchment] "+e,super(e),this.message=e,this.name=this.constructor.name}},cE=class K4{constructor(){this.attributes={},this.classes={},this.tags={},this.types={}}static find(e,t=!1){if(e==null)return null;if(this.blots.has(e))return this.blots.get(e)||null;if(t){let i=null;try{i=e.parentNode}catch(n){return null}return this.find(i,t)}return null}create(e,t,i){let n=this.query(t);if(n==null)throw new Fo(`Unable to create ${t} blot`);let s=n,a=t instanceof Node||t.nodeType===Node.TEXT_NODE?t:s.create(i),o=new s(e,a,i);return K4.blots.set(o.domNode,o),o}find(e,t=!1){return K4.find(e,t)}query(e,t=ze.ANY){let i;return typeof e=="string"?i=this.types[e]||this.attributes[e]:e instanceof Text||e.nodeType===Node.TEXT_NODE?i=this.types.text:typeof e=="number"?e&ze.LEVEL&ze.BLOCK?i=this.types.block:e&ze.LEVEL&ze.INLINE&&(i=this.types.inline):e instanceof Element&&((e.getAttribute("class")||"").split(/\s+/).some(n=>(i=this.classes[n],!!i)),i=i||this.tags[e.tagName]),i==null?null:"scope"in i&&t&ze.LEVEL&i.scope&&t&ze.TYPE&i.scope?i:null}register(...e){return e.map(t=>{let i="blotName"in t,n="attrName"in t;if(!i&&!n)throw new Fo("Invalid definition");if(i&&t.blotName==="abstract")throw new Fo("Cannot register abstract class");let s=i?t.blotName:n?t.attrName:void 0;return this.types[s]=t,n?typeof t.keyName=="string"&&(this.attributes[t.keyName]=t):i&&(t.className&&(this.classes[t.className]=t),t.tagName&&(Array.isArray(t.tagName)?t.tagName=t.tagName.map(a=>a.toUpperCase()):t.tagName=t.tagName.toUpperCase(),(Array.isArray(t.tagName)?t.tagName:[t.tagName]).forEach(a=>{(this.tags[a]==null||t.className==null)&&(this.tags[a]=t)}))),t})}};cE.blots=new WeakMap;var Io=cE;function lE(r,e){return(r.getAttribute("class")||"").split(/\s+/).filter(t=>t.indexOf(`${e}-`)===0)}var Q4=class extends Vi{static keys(e){return(e.getAttribute("class")||"").split(/\s+/).map(t=>t.split("-").slice(0,-1).join("-"))}add(e,t){return this.canAdd(e,t)?(this.remove(e),e.classList.add(`${this.keyName}-${t}`),!0):!1}remove(e){lE(e,this.keyName).forEach(t=>{e.classList.remove(t)}),e.classList.length===0&&e.removeAttribute("class")}value(e){let t=(lE(e,this.keyName)[0]||"").slice(this.keyName.length+1);return this.canAdd(e,t)?t:""}},Vr=Q4;function V4(r){let e=r.split("-"),t=e.slice(1).map(i=>i[0].toUpperCase()+i.slice(1)).join("");return e[0]+t}var X4=class extends Vi{static keys(e){return(e.getAttribute("style")||"").split(";").map(t=>t.split(":")[0].trim())}add(e,t){return this.canAdd(e,t)?(e.style[V4(this.keyName)]=t,!0):!1}remove(e){e.style[V4(this.keyName)]="",e.getAttribute("style")||e.removeAttribute("style")}value(e){let t=e.style[V4(this.keyName)];return this.canAdd(e,t)?t:""}},xn=X4,Z4=class{constructor(e){this.attributes={},this.domNode=e,this.build()}attribute(e,t){t?e.add(this.domNode,t)&&(e.value(this.domNode)!=null?this.attributes[e.attrName]=e:delete this.attributes[e.attrName]):(e.remove(this.domNode),delete this.attributes[e.attrName])}build(){this.attributes={};let e=Io.find(this.domNode);if(e==null)return;let t=Vi.keys(this.domNode),i=Vr.keys(this.domNode),n=xn.keys(this.domNode);t.concat(i).concat(n).forEach(s=>{let a=e.scroll.query(s,ze.ATTRIBUTE);a instanceof Vi&&(this.attributes[a.attrName]=a)})}copy(e){Object.keys(this.attributes).forEach(t=>{let i=this.attributes[t].value(this.domNode);e.format(t,i)})}move(e){this.copy(e),Object.keys(this.attributes).forEach(t=>{this.attributes[t].remove(this.domNode)}),this.attributes={}}values(){return Object.keys(this.attributes).reduce((e,t)=>(e[t]=this.attributes[t].value(this.domNode),e),{})}},Xu=Z4,uE=class{constructor(e,t){this.scroll=e,this.domNode=t,Io.blots.set(t,this),this.prev=null,this.next=null}static create(e){if(this.tagName==null)throw new Fo("Blot definition missing tagName");let t,i;return Array.isArray(this.tagName)?(typeof e=="string"?(i=e.toUpperCase(),parseInt(i,10).toString()===i&&(i=parseInt(i,10))):typeof e=="number"&&(i=e),typeof i=="number"?t=document.createElement(this.tagName[i-1]):i&&this.tagName.indexOf(i)>-1?t=document.createElement(i):t=document.createElement(this.tagName[0])):t=document.createElement(this.tagName),this.className&&t.classList.add(this.className),t}get statics(){return this.constructor}attach(){}clone(){let e=this.domNode.cloneNode(!1);return this.scroll.create(e)}detach(){this.parent!=null&&this.parent.removeChild(this),Io.blots.delete(this.domNode)}deleteAt(e,t){this.isolate(e,t).remove()}formatAt(e,t,i,n){let s=this.isolate(e,t);if(this.scroll.query(i,ze.BLOT)!=null&&n)s.wrap(i,n);else if(this.scroll.query(i,ze.ATTRIBUTE)!=null){let a=this.scroll.create(this.statics.scope);s.wrap(a),a.format(i,n)}}insertAt(e,t,i){let n=i==null?this.scroll.create("text",t):this.scroll.create(t,i),s=this.split(e);this.parent.insertBefore(n,s||void 0)}isolate(e,t){let i=this.split(e);if(i==null)throw new Error("Attempt to isolate at end");return i.split(t),i}length(){return 1}offset(e=this.parent){return this.parent==null||this===e?0:this.parent.children.offset(this)+this.parent.offset(e)}optimize(e){this.statics.requiredContainer&&!(this.parent instanceof this.statics.requiredContainer)&&this.wrap(this.statics.requiredContainer.blotName)}remove(){this.domNode.parentNode!=null&&this.domNode.parentNode.removeChild(this.domNode),this.detach()}replaceWith(e,t){let i=typeof e=="string"?this.scroll.create(e,t):e;return this.parent!=null&&(this.parent.insertBefore(i,this.next||void 0),this.remove()),i}split(e,t){return e===0?this:this.next}update(e,t){}wrap(e,t){let i=typeof e=="string"?this.scroll.create(e,t):e;if(this.parent!=null&&this.parent.insertBefore(i,this.next||void 0),typeof i.appendChild!="function")throw new Fo(`Cannot wrap ${e}`);return i.appendChild(this),i}};uE.blotName="abstract";var dE=uE,fE=class extends dE{static value(e){return!0}index(e,t){return this.domNode===e||this.domNode.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_CONTAINED_BY?Math.min(t,1):-1}position(e,t){let i=Array.from(this.parent.domNode.childNodes).indexOf(this.domNode);return e>0&&(i+=1),[this.parent.domNode,i]}value(){return{[this.statics.blotName]:this.statics.value(this.domNode)||!0}}};fE.scope=ze.INLINE_BLOT;var YV=fE,Kr=YV,J4=class{constructor(){this.head=null,this.tail=null,this.length=0}append(...e){if(this.insertBefore(e[0],null),e.length>1){let t=e.slice(1);this.append(...t)}}at(e){let t=this.iterator(),i=t();for(;i&&e>0;)e-=1,i=t();return i}contains(e){let t=this.iterator(),i=t();for(;i;){if(i===e)return!0;i=t()}return!1}indexOf(e){let t=this.iterator(),i=t(),n=0;for(;i;){if(i===e)return n;n+=1,i=t()}return-1}insertBefore(e,t){e!=null&&(this.remove(e),e.next=t,t!=null?(e.prev=t.prev,t.prev!=null&&(t.prev.next=e),t.prev=e,t===this.head&&(this.head=e)):this.tail!=null?(this.tail.next=e,e.prev=this.tail,this.tail=e):(e.prev=null,this.head=this.tail=e),this.length+=1)}offset(e){let t=0,i=this.head;for(;i!=null;){if(i===e)return t;t+=i.length(),i=i.next}return-1}remove(e){this.contains(e)&&(e.prev!=null&&(e.prev.next=e.next),e.next!=null&&(e.next.prev=e.prev),e===this.head&&(this.head=e.next),e===this.tail&&(this.tail=e.prev),this.length-=1)}iterator(e=this.head){return()=>{let t=e;return e!=null&&(e=e.next),t}}find(e,t=!1){let i=this.iterator(),n=i();for(;n;){let s=n.length();if(ea?i(l,e-a,Math.min(t,a+h-e)):i(l,0,Math.min(h,e+t-a)),a+=h,l=o()}}map(e){return this.reduce((t,i)=>(t.push(e(i)),t),[])}reduce(e,t){let i=this.iterator(),n=i();for(;n;)t=e(t,n),n=i();return t}};function hE(r,e){let t=e.find(r);if(t)return t;try{return e.create(r)}catch(i){let n=e.create(ze.INLINE);return Array.from(r.childNodes).forEach(s=>{n.domNode.appendChild(s)}),r.parentNode&&r.parentNode.replaceChild(n.domNode,r),n.attach(),n}}var mE=class No extends dE{constructor(e,t){super(e,t),this.uiNode=null,this.build()}appendChild(e){this.insertBefore(e)}attach(){super.attach(),this.children.forEach(e=>{e.attach()})}attachUI(e){this.uiNode!=null&&this.uiNode.remove(),this.uiNode=e,No.uiClass&&this.uiNode.classList.add(No.uiClass),this.uiNode.setAttribute("contenteditable","false"),this.domNode.insertBefore(this.uiNode,this.domNode.firstChild)}build(){this.children=new J4,Array.from(this.domNode.childNodes).filter(e=>e!==this.uiNode).reverse().forEach(e=>{try{let t=hE(e,this.scroll);this.insertBefore(t,this.children.head||void 0)}catch(t){if(t instanceof Fo)return;throw t}})}deleteAt(e,t){if(e===0&&t===this.length())return this.remove();this.children.forEachAt(e,t,(i,n,s)=>{i.deleteAt(n,s)})}descendant(e,t=0){let[i,n]=this.children.find(t);return e.blotName==null&&e(i)||e.blotName!=null&&i instanceof e?[i,n]:i instanceof No?i.descendant(e,n):[null,-1]}descendants(e,t=0,i=Number.MAX_VALUE){let n=[],s=i;return this.children.forEachAt(t,i,(a,o,l)=>{(e.blotName==null&&e(a)||e.blotName!=null&&a instanceof e)&&n.push(a),a instanceof No&&(n=n.concat(a.descendants(e,o,s))),s-=l}),n}detach(){this.children.forEach(e=>{e.detach()}),super.detach()}enforceAllowedChildren(){let e=!1;this.children.forEach(t=>{e||this.statics.allowedChildren.some(i=>t instanceof i)||(t.statics.scope===ze.BLOCK_BLOT?(t.next!=null&&this.splitAfter(t),t.prev!=null&&this.splitAfter(t.prev),t.parent.unwrap(),e=!0):t instanceof No?t.unwrap():t.remove())})}formatAt(e,t,i,n){this.children.forEachAt(e,t,(s,a,o)=>{s.formatAt(a,o,i,n)})}insertAt(e,t,i){let[n,s]=this.children.find(e);if(n)n.insertAt(s,t,i);else{let a=i==null?this.scroll.create("text",t):this.scroll.create(t,i);this.appendChild(a)}}insertBefore(e,t){e.parent!=null&&e.parent.children.remove(e);let i=null;this.children.insertBefore(e,t||null),e.parent=this,t!=null&&(i=t.domNode),(this.domNode.parentNode!==e.domNode||this.domNode.nextSibling!==i)&&this.domNode.insertBefore(e.domNode,i),e.attach()}length(){return this.children.reduce((e,t)=>e+t.length(),0)}moveChildren(e,t){this.children.forEach(i=>{e.insertBefore(i,t)})}optimize(e){if(super.optimize(e),this.enforceAllowedChildren(),this.uiNode!=null&&this.uiNode!==this.domNode.firstChild&&this.domNode.insertBefore(this.uiNode,this.domNode.firstChild),this.children.length===0)if(this.statics.defaultChild!=null){let t=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(t)}else this.remove()}path(e,t=!1){let[i,n]=this.children.find(e,t),s=[[this,e]];return i instanceof No?s.concat(i.path(n,t)):(i!=null&&s.push([i,n]),s)}removeChild(e){this.children.remove(e)}replaceWith(e,t){let i=typeof e=="string"?this.scroll.create(e,t):e;return i instanceof No&&this.moveChildren(i),super.replaceWith(i)}split(e,t=!1){if(!t){if(e===0)return this;if(e===this.length())return this.next}let i=this.clone();return this.parent&&this.parent.insertBefore(i,this.next||void 0),this.children.forEachAt(e,this.length(),(n,s,a)=>{let o=n.split(s,t);o!=null&&i.appendChild(o)}),i}splitAfter(e){let t=this.clone();for(;e.next!=null;)t.appendChild(e.next);return this.parent&&this.parent.insertBefore(t,this.next||void 0),t}unwrap(){this.parent&&this.moveChildren(this.parent,this.next||void 0),this.remove()}update(e,t){let i=[],n=[];e.forEach(s=>{s.target===this.domNode&&s.type==="childList"&&(i.push(...s.addedNodes),n.push(...s.removedNodes))}),n.forEach(s=>{if(s.parentNode!=null&&s.tagName!=="IFRAME"&&document.body.compareDocumentPosition(s)&Node.DOCUMENT_POSITION_CONTAINED_BY)return;let a=this.scroll.find(s);a!=null&&(a.domNode.parentNode==null||a.domNode.parentNode===this.domNode)&&a.detach()}),i.filter(s=>s.parentNode===this.domNode&&s!==this.uiNode).sort((s,a)=>s===a?0:s.compareDocumentPosition(a)&Node.DOCUMENT_POSITION_FOLLOWING?1:-1).forEach(s=>{let a=null;s.nextSibling!=null&&(a=this.scroll.find(s.nextSibling));let o=hE(s,this.scroll);(o.next!==a||o.next==null)&&(o.parent!=null&&o.parent.removeChild(this),this.insertBefore(o,a||void 0))}),this.enforceAllowedChildren()}};mE.uiClass="";var VV=mE,yn=VV;function KV(r,e){if(Object.keys(r).length!==Object.keys(e).length)return!1;for(let t in r)if(r[t]!==e[t])return!1;return!0}var Dh=class Nh extends yn{static create(e){return super.create(e)}static formats(e,t){let i=t.query(Nh.blotName);if(!(i!=null&&e.tagName===i.tagName)){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return e.tagName.toLowerCase()}}constructor(e,t){super(e,t),this.attributes=new Xu(this.domNode)}format(e,t){if(e===this.statics.blotName&&!t)this.children.forEach(i=>{i instanceof Nh||(i=i.wrap(Nh.blotName,!0)),this.attributes.copy(i)}),this.unwrap();else{let i=this.scroll.query(e,ze.INLINE);if(i==null)return;i instanceof Vi?this.attributes.attribute(i,t):t&&(e!==this.statics.blotName||this.formats()[e]!==t)&&this.replaceWith(e,t)}}formats(){let e=this.attributes.values(),t=this.statics.formats(this.domNode,this.scroll);return t!=null&&(e[this.statics.blotName]=t),e}formatAt(e,t,i,n){this.formats()[i]!=null||this.scroll.query(i,ze.ATTRIBUTE)?this.isolate(e,t).format(i,n):super.formatAt(e,t,i,n)}optimize(e){super.optimize(e);let t=this.formats();if(Object.keys(t).length===0)return this.unwrap();let i=this.next;i instanceof Nh&&i.prev===this&&KV(t,i.formats())&&(i.moveChildren(this),i.remove())}replaceWith(e,t){let i=super.replaceWith(e,t);return this.attributes.copy(i),i}update(e,t){super.update(e,t),e.some(i=>i.target===this.domNode&&i.type==="attributes")&&this.attributes.build()}wrap(e,t){let i=super.wrap(e,t);return i instanceof Nh&&this.attributes.move(i),i}};Dh.allowedChildren=[Dh,Kr],Dh.blotName="inline",Dh.scope=ze.INLINE_BLOT,Dh.tagName="SPAN";var QV=Dh,Vm=QV,Fh=class $4 extends yn{static create(e){return super.create(e)}static formats(e,t){let i=t.query($4.blotName);if(!(i!=null&&e.tagName===i.tagName)){if(typeof this.tagName=="string")return!0;if(Array.isArray(this.tagName))return e.tagName.toLowerCase()}}constructor(e,t){super(e,t),this.attributes=new Xu(this.domNode)}format(e,t){let i=this.scroll.query(e,ze.BLOCK);i!=null&&(i instanceof Vi?this.attributes.attribute(i,t):e===this.statics.blotName&&!t?this.replaceWith($4.blotName):t&&(e!==this.statics.blotName||this.formats()[e]!==t)&&this.replaceWith(e,t))}formats(){let e=this.attributes.values(),t=this.statics.formats(this.domNode,this.scroll);return t!=null&&(e[this.statics.blotName]=t),e}formatAt(e,t,i,n){this.scroll.query(i,ze.BLOCK)!=null?this.format(i,n):super.formatAt(e,t,i,n)}insertAt(e,t,i){if(i==null||this.scroll.query(t,ze.INLINE)!=null)super.insertAt(e,t,i);else{let n=this.split(e);if(n!=null){let s=this.scroll.create(t,i);n.parent.insertBefore(s,n)}else throw new Error("Attempt to insertAt after block boundaries")}}replaceWith(e,t){let i=super.replaceWith(e,t);return this.attributes.copy(i),i}update(e,t){super.update(e,t),e.some(i=>i.target===this.domNode&&i.type==="attributes")&&this.attributes.build()}};Fh.blotName="block",Fh.scope=ze.BLOCK_BLOT,Fh.tagName="P",Fh.allowedChildren=[Vm,Fh,Kr];var XV=Fh,Gl=XV,eg=class extends yn{checkMerge(){return this.next!==null&&this.next.statics.blotName===this.statics.blotName}deleteAt(e,t){super.deleteAt(e,t),this.enforceAllowedChildren()}formatAt(e,t,i,n){super.formatAt(e,t,i,n),this.enforceAllowedChildren()}insertAt(e,t,i){super.insertAt(e,t,i),this.enforceAllowedChildren()}optimize(e){super.optimize(e),this.children.length>0&&this.next!=null&&this.checkMerge()&&(this.next.moveChildren(this),this.next.remove())}};eg.blotName="container",eg.scope=ze.BLOCK_BLOT;var ZV=eg,zh=ZV,tg=class extends Kr{static formats(e,t){}format(e,t){super.formatAt(0,this.length(),e,t)}formatAt(e,t,i,n){e===0&&t===this.length()?this.format(i,n):super.formatAt(e,t,i,n)}formats(){return this.statics.formats(this.domNode,this.scroll)}},Nr=tg,JV={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},$V=100,Ih=class extends yn{constructor(e,t){super(null,t),this.registry=e,this.scroll=this,this.build(),this.observer=new MutationObserver(i=>{this.update(i)}),this.observer.observe(this.domNode,JV),this.attach()}create(e,t){return this.registry.create(this,e,t)}find(e,t=!1){let i=this.registry.find(e,t);return i?i.scroll===this?i:t?this.find(i.scroll.domNode.parentNode,!0):null:null}query(e,t=ze.ANY){return this.registry.query(e,t)}register(...e){return this.registry.register(...e)}build(){this.scroll!=null&&super.build()}detach(){super.detach(),this.observer.disconnect()}deleteAt(e,t){this.update(),e===0&&t===this.length()?this.children.forEach(i=>{i.remove()}):super.deleteAt(e,t)}formatAt(e,t,i,n){this.update(),super.formatAt(e,t,i,n)}insertAt(e,t,i){this.update(),super.insertAt(e,t,i)}optimize(e=[],t={}){super.optimize(t);let i=t.mutationsMap||new WeakMap,n=Array.from(this.observer.takeRecords());for(;n.length>0;)e.push(n.pop());let s=(l,h=!0)=>{l==null||l===this||l.domNode.parentNode!=null&&(i.has(l.domNode)||i.set(l.domNode,[]),h&&s(l.parent))},a=l=>{i.has(l.domNode)&&(l instanceof yn&&l.children.forEach(a),i.delete(l.domNode),l.optimize(t))},o=e;for(let l=0;o.length>0;l+=1){if(l>=$V)throw new Error("[Parchment] Maximum optimize iterations reached");for(o.forEach(h=>{let c=this.find(h.target,!0);c!=null&&(c.domNode===h.target&&(h.type==="childList"?(s(this.find(h.previousSibling,!1)),Array.from(h.addedNodes).forEach(u=>{let d=this.find(u,!1);s(d,!1),d instanceof yn&&d.children.forEach(f=>{s(f,!1)})})):h.type==="attributes"&&s(c.prev)),s(c))}),this.children.forEach(a),o=Array.from(this.observer.takeRecords()),n=o.slice();n.length>0;)e.push(n.pop())}}update(e,t={}){e=e||this.observer.takeRecords();let i=new WeakMap;e.map(n=>{let s=this.find(n.target,!0);return s==null?null:i.has(s.domNode)?(i.get(s.domNode).push(n),null):(i.set(s.domNode,[n]),s)}).forEach(n=>{n!=null&&n!==this&&i.has(n.domNode)&&n.update(i.get(n.domNode)||[],t)}),t.mutationsMap=i,i.has(this.domNode)&&super.update(i.get(this.domNode),t),this.optimize(e,t)}};Ih.blotName="scroll",Ih.defaultChild=Gl,Ih.allowedChildren=[Gl,zh],Ih.scope=ze.BLOCK_BLOT,Ih.tagName="DIV";var eK=Ih,Zu=eK,rg=class pE extends Kr{static create(e){return document.createTextNode(e)}static value(e){return e.data}constructor(e,t){super(e,t),this.text=this.statics.value(this.domNode)}deleteAt(e,t){this.domNode.data=this.text=this.text.slice(0,e)+this.text.slice(e+t)}index(e,t){return this.domNode===e?t:-1}insertAt(e,t,i){i==null?(this.text=this.text.slice(0,e)+t+this.text.slice(e),this.domNode.data=this.text):super.insertAt(e,t,i)}length(){return this.text.length}optimize(e){super.optimize(e),this.text=this.statics.value(this.domNode),this.text.length===0?this.remove():this.next instanceof pE&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())}position(e,t=!1){return[this.domNode,e]}split(e,t=!1){if(!t){if(e===0)return this;if(e===this.length())return this.next}let i=this.scroll.create(this.domNode.splitText(e));return this.parent.insertBefore(i,this.next||void 0),this.text=this.statics.value(this.domNode),i}update(e,t){e.some(i=>i.type==="characterData"&&i.target===this.domNode)&&(this.text=this.statics.value(this.domNode))}value(){return this.text}};rg.blotName="text",rg.scope=ze.INLINE_BLOT;var tK=rg,Lh=tK;var _o=mr(bn(),1);var Ir=mr(bn(),1);var Ug=mr(bn(),1);var ld=class extends Nr{static value(){}optimize(){(this.prev||this.next)&&this.remove()}length(){return 0}value(){return""}};ld.blotName="break";ld.tagName="BR";var Ci=ld;var _r=class extends Lh{},yZ={"&":"&","<":"<",">":">",'"':""","'":"'"};function $l(r){return r.replace(/[&<>"']/g,e=>yZ[e])}var Bo=class extends Vm{static compare(e,t){let i=Bo.order.indexOf(e),n=Bo.order.indexOf(t);return i>=0||n>=0?i-n:e===t?0:e0){let t=this.parent.isolate(this.offset(),this.length());this.moveChildren(t),t.wrap(this)}}},hd=Bo;Se(hd,"allowedChildren",[Bo,Ci,Nr,_r]),Se(hd,"order",["cursor","inline","link","underline","strike","italic","bold","script","code"]);var Si=hd;var JC=1,ar=class extends Gl{constructor(){super(...arguments);Se(this,"cache",{})}delta(){return this.cache.delta==null&&(this.cache.delta=Hg(this)),this.cache.delta}deleteAt(t,i){super.deleteAt(t,i),this.cache={}}formatAt(t,i,n,s){i<=0||(this.scroll.query(n,ze.BLOCK)?t+i===this.length()&&this.format(n,s):super.formatAt(t,Math.min(i,this.length()-t-1),n,s),this.cache={})}insertAt(t,i,n){if(n!=null){super.insertAt(t,i,n),this.cache={};return}if(i.length===0)return;let s=i.split(` +`),a=s.shift();a.length>0&&(t(o=o.split(l,!0),o.insertAt(0,h),h.length),t+a.length)}insertBefore(t,i){let{head:n}=this.children;super.insertBefore(t,i),n instanceof Ci&&n.remove(),this.cache={}}length(){return this.cache.length==null&&(this.cache.length=super.length()+JC),this.cache.length}moveChildren(t,i){super.moveChildren(t,i),this.cache={}}optimize(t){super.optimize(t),this.cache={}}path(t){return super.path(t,!0)}removeChild(t){super.removeChild(t),this.cache={}}split(t){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(i&&(t===0||t>=this.length()-JC)){let s=this.clone();return t===0?(this.parent.insertBefore(s,this),this):(this.parent.insertBefore(s,this.next),s)}let n=super.split(t,i);return this.cache={},n}};ar.blotName="block";ar.tagName="P";ar.defaultChild=Ci;ar.allowedChildren=[Ci,Si,Nr,_r];var ii=class extends Nr{attach(){super.attach(),this.attributes=new Xu(this.domNode)}delta(){return new Ug.default().insert(this.value(),{...this.formats(),...this.attributes.values()})}format(e,t){let i=this.scroll.query(e,ze.BLOCK_ATTRIBUTE);i!=null&&this.attributes.attribute(i,t)}formatAt(e,t,i,n){this.format(i,n)}insertAt(e,t,i){if(i!=null){super.insertAt(e,t,i);return}let n=t.split(` +`),s=n.pop(),a=n.map(l=>{let h=this.scroll.create(ar.blotName);return h.insertAt(0,l),h}),o=this.split(e);a.forEach(l=>{this.parent.insertBefore(l,o)}),s&&this.parent.insertBefore(this.scroll.create("text",s),o)}};ii.scope=ze.BLOCK_BLOT;function Hg(r){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return r.descendants(Kr).reduce((t,i)=>i.length()===0?t:t.insert(i.value(),wn(i,{},e)),new Ug.default).insert(` +`,wn(r))}function wn(r){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return r==null||("formats"in r&&typeof r.formats=="function"&&(e={...e,...r.formats()},t&&delete e["code-token"]),r.parent==null||r.parent.statics.blotName==="scroll"||r.parent.statics.scope!==r.statics.scope)?e:wn(r.parent,e,t)}var Ro=class extends Nr{static value(){}constructor(e,t,i){super(e,t),this.selection=i,this.textNode=document.createTextNode(Ro.CONTENTS),this.domNode.appendChild(this.textNode),this.savedLength=0}detach(){this.parent!=null&&this.parent.removeChild(this)}format(e,t){if(this.savedLength!==0){super.format(e,t);return}let i=this,n=0;for(;i!=null&&i.statics.scope!==ze.BLOCK_BLOT;)n+=i.offset(i.parent),i=i.parent;i!=null&&(this.savedLength=Ro.CONTENTS.length,i.optimize(),i.formatAt(n,Ro.CONTENTS.length,e,t),this.savedLength=0)}index(e,t){return e===this.textNode?0:super.index(e,t)}length(){return this.savedLength}position(){return[this.textNode,this.textNode.data.length]}remove(){super.remove(),this.parent=null}restore(){if(this.selection.composing||this.parent==null)return null;let e=this.selection.getNativeRange();for(;this.domNode.lastChild!=null&&this.domNode.lastChild!==this.textNode;)this.domNode.parentNode.insertBefore(this.domNode.lastChild,this.domNode);let t=this.prev instanceof _r?this.prev:null,i=t?t.length():0,n=this.next instanceof _r?this.next:null,s=n?n.text:"",{textNode:a}=this,o=a.data.split(Ro.CONTENTS).join("");a.data=Ro.CONTENTS;let l;if(t)l=t,(o||n)&&(t.insertAt(t.length(),o+s),n&&n.remove());else if(n)l=n,n.insertAt(0,o);else{let h=document.createTextNode(o);l=this.scroll.create(h),this.parent.insertBefore(l,this)}if(this.remove(),e){let h=(d,f)=>t&&d===t.domNode?f:d===a?i+f-1:n&&d===n.domNode?i+o.length+f:null,c=h(e.start.node,e.start.offset),u=h(e.end.node,e.end.offset);if(c!==null&&u!==null)return{startNode:l.domNode,startOffset:c,endNode:l.domNode,endOffset:u}}return null}update(e,t){if(e.some(i=>i.type==="characterData"&&i.target===this.textNode)){let i=this.restore();i&&(t.range=i)}}optimize(e){super.optimize(e);let{parent:t}=this;for(;t;){if(t.domNode.tagName==="A"){this.savedLength=Ro.CONTENTS.length,t.isolate(this.offset(t),this.length()).unwrap(),this.savedLength=0;break}t=t.parent}}value(){return""}},e0=Ro;Se(e0,"blotName","cursor"),Se(e0,"className","ql-cursor"),Se(e0,"tagName","span"),Se(e0,"CONTENTS","\uFEFF");var Po=e0;var Gg=mr(eS(),1);var ud=new WeakMap;var Wg=["error","warn","log","info"],Yg="warn";function tS(r){if(Yg&&Wg.indexOf(r)<=Wg.indexOf(Yg)){for(var e=arguments.length,t=new Array(e>1?e-1:0),i=1;i(e[t]=tS.bind(console,t,r),e),{})}Vg.level=r=>{Yg=r};tS.level=Vg.level;var zn=Vg;var Kg=zn("quill:events"),wZ=["selectionchange","mousedown","mouseup","click"];wZ.forEach(r=>{document.addEventListener(r,function(){for(var e=arguments.length,t=new Array(e),i=0;i{let s=ud.get(n);s&&s.emitter&&s.emitter.handleDOM(...t)})})});var dd=class extends Gg.default{constructor(){super(),this.domListeners={},this.on("error",Kg.error)}emit(){for(var e=arguments.length,t=new Array(e),i=0;i1?t-1:0),n=1;n{let{node:a,handler:o}=s;(e.target===a||a.contains(e.target))&&o(e,...i)})}listenDOM(e,t,i){this.domListeners[e]||(this.domListeners[e]=[]),this.domListeners[e].push({node:t,handler:i})}};Se(dd,"events",{EDITOR_CHANGE:"editor-change",SCROLL_BEFORE_UPDATE:"scroll-before-update",SCROLL_BLOT_MOUNT:"scroll-blot-mount",SCROLL_BLOT_UNMOUNT:"scroll-blot-unmount",SCROLL_OPTIMIZE:"scroll-optimize",SCROLL_UPDATE:"scroll-update",SCROLL_EMBED_UPDATE:"scroll-embed-update",SELECTION_CHANGE:"selection-change",TEXT_CHANGE:"text-change",COMPOSITION_BEFORE_START:"composition-before-start",COMPOSITION_START:"composition-start",COMPOSITION_BEFORE_END:"composition-before-end",COMPOSITION_END:"composition-end"}),Se(dd,"sources",{API:"api",SILENT:"silent",USER:"user"});var Oe=dd;var Qg=zn("quill:selection"),Xi=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;this.index=e,this.length=t}},Zg=class{constructor(e,t){this.emitter=t,this.scroll=e,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.cursor=this.scroll.create("cursor",this),this.savedRange=new Xi(0,0),this.lastRange=this.savedRange,this.lastNative=null,this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,()=>{!this.mouseDown&&!this.composing&&setTimeout(this.update.bind(this,Oe.sources.USER),1)}),this.emitter.on(Oe.events.SCROLL_BEFORE_UPDATE,()=>{if(!this.hasFocus())return;let i=this.getNativeRange();i!=null&&i.start.node!==this.cursor.textNode&&this.emitter.once(Oe.events.SCROLL_UPDATE,(n,s)=>{try{this.root.contains(i.start.node)&&this.root.contains(i.end.node)&&this.setNativeRange(i.start.node,i.start.offset,i.end.node,i.end.offset);let a=s.some(o=>o.type==="characterData"||o.type==="childList"||o.type==="attributes"&&o.target===this.root);this.update(a?Oe.sources.SILENT:n)}catch(a){}})}),this.emitter.on(Oe.events.SCROLL_OPTIMIZE,(i,n)=>{if(n.range){let{startNode:s,startOffset:a,endNode:o,endOffset:l}=n.range;this.setNativeRange(s,a,o,l),this.update(Oe.sources.SILENT)}}),this.update(Oe.sources.SILENT)}handleComposition(){this.emitter.on(Oe.events.COMPOSITION_BEFORE_START,()=>{this.composing=!0}),this.emitter.on(Oe.events.COMPOSITION_END,()=>{if(this.composing=!1,this.cursor.parent){let e=this.cursor.restore();if(!e)return;setTimeout(()=>{this.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)},1)}})}handleDragging(){this.emitter.listenDOM("mousedown",document.body,()=>{this.mouseDown=!0}),this.emitter.listenDOM("mouseup",document.body,()=>{this.mouseDown=!1,this.update(Oe.sources.USER)})}focus(){this.hasFocus()||(this.root.focus({preventScroll:!0}),this.setRange(this.savedRange))}format(e,t){this.scroll.update();let i=this.getNativeRange();if(!(i==null||!i.native.collapsed||this.scroll.query(e,ze.BLOCK))){if(i.start.node!==this.cursor.textNode){let n=this.scroll.find(i.start.node,!1);if(n==null)return;if(n instanceof Kr){let s=n.split(i.start.offset);n.parent.insertBefore(this.cursor,s)}else n.insertBefore(this.cursor,i.start.node);this.cursor.attach()}this.cursor.format(e,t),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}getBounds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=this.scroll.length();e=Math.min(e,i-1),t=Math.min(e+t,i-1)-e;let n,[s,a]=this.scroll.leaf(e);if(s==null)return null;if(t>0&&a===s.length()){let[c]=this.scroll.leaf(e+1);if(c){let[u]=this.scroll.line(e),[d]=this.scroll.line(e+1);u===d&&(s=c,a=0)}}[n,a]=s.position(a,!0);let o=document.createRange();if(t>0)return o.setStart(n,a),[s,a]=this.scroll.leaf(e+t),s==null?null:([n,a]=s.position(a,!0),o.setEnd(n,a),o.getBoundingClientRect());let l="left",h;if(n instanceof Text){if(!n.data.length)return null;a0&&(l="right")}return{bottom:h.top+h.height,height:h.height,left:h[l],right:h[l],top:h.top,width:0}}getNativeRange(){let e=document.getSelection();if(e==null||e.rangeCount<=0)return null;let t=e.getRangeAt(0);if(t==null)return null;let i=this.normalizeNative(t);return Qg.info("getNativeRange",i),i}getRange(){let e=this.scroll.domNode;if("isConnected"in e&&!e.isConnected)return[null,null];let t=this.getNativeRange();return t==null?[null,null]:[this.normalizedToRange(t),t]}hasFocus(){return document.activeElement===this.root||document.activeElement!=null&&Xg(this.root,document.activeElement)}normalizedToRange(e){let t=[[e.start.node,e.start.offset]];e.native.collapsed||t.push([e.end.node,e.end.offset]);let i=t.map(a=>{let[o,l]=a,h=this.scroll.find(o,!0),c=h.offset(this.scroll);return l===0?c:h instanceof Kr?c+h.index(o,l):c+h.length()}),n=Math.min(Math.max(...i),this.scroll.length()-1),s=Math.min(n,...i);return new Xi(s,n-s)}normalizeNative(e){if(!Xg(this.root,e.startContainer)||!e.collapsed&&!Xg(this.root,e.endContainer))return null;let t={start:{node:e.startContainer,offset:e.startOffset},end:{node:e.endContainer,offset:e.endOffset},native:e};return[t.start,t.end].forEach(i=>{let{node:n,offset:s}=i;for(;!(n instanceof Text)&&n.childNodes.length>0;)if(n.childNodes.length>s)n=n.childNodes[s],s=0;else if(n.childNodes.length===s)n=n.lastChild,n instanceof Text?s=n.data.length:n.childNodes.length>0?s=n.childNodes.length:s=n.childNodes.length+1;else break;i.node=n,i.offset=s}),t}rangeToNative(e){let t=this.scroll.length(),i=(n,s)=>{n=Math.min(t-1,n);let[a,o]=this.scroll.leaf(n);return a?a.position(o,s):[null,-1]};return[...i(e.index,!1),...i(e.index+e.length,!0)]}setNativeRange(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:t,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(Qg.info("setNativeRange",e,t,i,n),e!=null&&(this.root.parentNode==null||e.parentNode==null||i.parentNode==null))return;let a=document.getSelection();if(a!=null)if(e!=null){this.hasFocus()||this.root.focus({preventScroll:!0});let{native:o}=this.getNativeRange()||{};if(o==null||s||e!==o.startContainer||t!==o.startOffset||i!==o.endContainer||n!==o.endOffset){e instanceof Element&&e.tagName==="BR"&&(t=Array.from(e.parentNode.childNodes).indexOf(e),e=e.parentNode),i instanceof Element&&i.tagName==="BR"&&(n=Array.from(i.parentNode.childNodes).indexOf(i),i=i.parentNode);let l=document.createRange();l.setStart(e,t),l.setEnd(i,n),a.removeAllRanges(),a.addRange(l)}}else a.removeAllRanges(),this.root.blur()}setRange(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Oe.sources.API;if(typeof t=="string"&&(i=t,t=!1),Qg.info("setRange",e),e!=null){let n=this.rangeToNative(e);this.setNativeRange(...n,t)}else this.setNativeRange(null);this.update(i)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Oe.sources.USER,t=this.lastRange,[i,n]=this.getRange();if(this.lastRange=i,this.lastNative=n,this.lastRange!=null&&(this.savedRange=this.lastRange),!jl(t,this.lastRange)){if(!this.composing&&n!=null&&n.native.collapsed&&n.start.node!==this.cursor.textNode){let a=this.cursor.restore();a&&this.setNativeRange(a.startNode,a.startOffset,a.endNode,a.endOffset)}let s=[Oe.events.SELECTION_CHANGE,Qs(this.lastRange),Qs(t),e];this.emitter.emit(Oe.events.EDITOR_CHANGE,...s),e!==Oe.sources.SILENT&&this.emitter.emit(...s)}}};function Xg(r,e){try{e.parentNode}catch(t){return!1}return r.contains(e)}var rS=Zg;var AZ=/^[ -~]*$/,$g=class{constructor(e){this.scroll=e,this.delta=this.getDelta()}applyDelta(e){this.scroll.update();let t=this.scroll.length();this.scroll.batchStart();let i=iS(e),n=new Ir.default;return CZ(i.ops.slice()).reduce((a,o)=>{let l=Ir.Op.length(o),h=o.attributes||{},c=!1,u=!1;if(o.insert!=null){if(n.retain(l),typeof o.insert=="string"){let m=o.insert;u=!m.endsWith(` +`)&&(t<=a||!!this.scroll.descendant(ii,a)[0]),this.scroll.insertAt(a,m);let[g,v]=this.scroll.line(a),y=vn({},wn(g));if(g instanceof ar){let[A]=g.descendant(Kr,v);A&&(y=vn(y,wn(A)))}h=Ir.AttributeMap.diff(y,h)||{}}else if(typeof o.insert=="object"){let m=Object.keys(o.insert)[0];if(m==null)return a;let g=this.scroll.query(m,ze.INLINE)!=null;if(g)(t<=a||this.scroll.descendant(ii,a)[0])&&(u=!0);else if(a>0){let[v,y]=this.scroll.descendant(Kr,a-1);v instanceof _r?v.value()[y]!==` +`&&(c=!0):v instanceof Nr&&v.statics.scope===ze.INLINE_BLOT&&(c=!0)}if(this.scroll.insertAt(a,m,o.insert[m]),g){let[v]=this.scroll.descendant(Kr,a);if(v){let y=vn({},wn(v));h=Ir.AttributeMap.diff(y,h)||{}}}}t+=l}else if(n.push(o),o.retain!==null&&typeof o.retain=="object"){let m=Object.keys(o.retain)[0];if(m==null)return a;this.scroll.updateEmbedAt(a,m,o.retain[m])}Object.keys(h).forEach(m=>{this.scroll.formatAt(a,l,m,h[m])});let d=c?1:0,f=u?1:0;return t+=d+f,n.retain(d),n.delete(f),a+l+d+f},0),n.reduce((a,o)=>typeof o.delete=="number"?(this.scroll.deleteAt(a,o.delete),a):a+Ir.Op.length(o),0),this.scroll.batchEnd(),this.scroll.optimize(),this.update(i)}deleteText(e,t){return this.scroll.deleteAt(e,t),this.update(new Ir.default().retain(e).delete(t))}formatLine(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.scroll.update(),Object.keys(i).forEach(s=>{this.scroll.lines(e,Math.max(t,1)).forEach(a=>{a.format(s,i[s])})}),this.scroll.optimize();let n=new Ir.default().retain(e).retain(t,Qs(i));return this.update(n)}formatText(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Object.keys(i).forEach(s=>{this.scroll.formatAt(e,t,s,i[s])});let n=new Ir.default().retain(e).retain(t,Qs(i));return this.update(n)}getContents(e,t){return this.delta.slice(e,e+t)}getDelta(){return this.scroll.lines().reduce((e,t)=>e.concat(t.delta()),new Ir.default)}getFormat(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=[],n=[];t===0?this.scroll.path(e).forEach(o=>{let[l]=o;l instanceof ar?i.push(l):l instanceof Kr&&n.push(l)}):(i=this.scroll.lines(e,t),n=this.scroll.descendants(Kr,e,t));let[s,a]=[i,n].map(o=>{let l=o.shift();if(l==null)return{};let h=wn(l);for(;Object.keys(h).length>0;){let c=o.shift();if(c==null)return h;h=EZ(wn(c),h)}return h});return{...s,...a}}getHTML(e,t){let[i,n]=this.scroll.line(e);if(i){let s=i.length();return i.length()>=n+t&&!(n===0&&t===s)?fd(i,n,t,!0):fd(this.scroll,e,t,!0)}return""}getText(e,t){return this.getContents(e,t).filter(i=>typeof i.insert=="string").map(i=>i.insert).join("")}insertContents(e,t){let i=iS(t),n=new Ir.default().retain(e).concat(i);return this.scroll.insertContents(e,i),this.update(n)}insertEmbed(e,t,i){return this.scroll.insertAt(e,t,i),this.update(new Ir.default().retain(e).insert({[t]:i}))}insertText(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return t=t.replace(/\r\n/g,` +`).replace(/\r/g,` +`),this.scroll.insertAt(e,t),Object.keys(i).forEach(n=>{this.scroll.formatAt(e,t.length,n,i[n])}),this.update(new Ir.default().retain(e).insert(t,Qs(i)))}isBlank(){if(this.scroll.children.length===0)return!0;if(this.scroll.children.length>1)return!1;let e=this.scroll.children.head;if((e==null?void 0:e.statics.blotName)!==ar.blotName)return!1;let t=e;return t.children.length>1?!1:t.children.head instanceof Ci}removeFormat(e,t){let i=this.getText(e,t),[n,s]=this.scroll.line(e+t),a=0,o=new Ir.default;n!=null&&(a=n.length()-s,o=n.delta().slice(s,s+a-1).insert(` +`));let h=this.getContents(e,t+a).diff(new Ir.default().insert(i).concat(o)),c=new Ir.default().retain(e).concat(h);return this.applyDelta(c)}update(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,n=this.delta;if(t.length===1&&t[0].type==="characterData"&&t[0].target.data.match(AZ)&&this.scroll.find(t[0].target)){let s=this.scroll.find(t[0].target),a=wn(s),o=s.offset(this.scroll),l=t[0].oldValue.replace(Po.CONTENTS,""),h=new Ir.default().insert(l),c=new Ir.default().insert(s.value()),u=i&&{oldRange:nS(i.oldRange,-o),newRange:nS(i.newRange,-o)};e=new Ir.default().retain(o).concat(h.diff(c,u)).reduce((f,m)=>m.insert?f.insert(m.insert,a):f.push(m),new Ir.default),this.delta=n.compose(e)}else this.delta=this.getDelta(),(!e||!jl(n.compose(e),this.delta))&&(e=n.diff(this.delta,i));return e}};function Hh(r,e,t){if(r.length===0){let[f]=Jg(t.pop());return e<=0?``:`${Hh([],e-1,t)}`}let[{child:i,offset:n,length:s,indent:a,type:o},...l]=r,[h,c]=Jg(o);if(a>e)return t.push(o),a===e+1?`<${h}>${fd(i,n,s)}${Hh(l,a,t)}`:`<${h}>
  • ${Hh(r,e+1,t)}`;let u=t[t.length-1];if(a===e&&o===u)return`
  • ${fd(i,n,s)}${Hh(l,a,t)}`;let[d]=Jg(t.pop());return`${Hh(r,e-1,t)}`}function fd(r,e,t){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if("html"in r&&typeof r.html=="function")return r.html(e,t);if(r instanceof _r)return $l(r.value().slice(e,e+t)).replaceAll(" "," ");if(r instanceof yn){if(r.statics.blotName==="list-container"){let h=[];return r.children.forEachAt(e,t,(c,u,d)=>{let f="formats"in c&&typeof c.formats=="function"?c.formats():{};h.push({child:c,offset:u,length:d,indent:f.indent||0,type:f.list})}),Hh(h,-1,[])}let n=[];if(r.children.forEachAt(e,t,(h,c,u)=>{n.push(fd(h,c,u))}),i||r.statics.blotName==="list")return n.join("");let{outerHTML:s,innerHTML:a}=r.domNode,[o,l]=s.split(`>${a}<`);return o==="${n.join("")}<${l}`:`${o}>${n.join("")}<${l}`}return r.domNode instanceof Element?r.domNode.outerHTML:""}function EZ(r,e){return Object.keys(e).reduce((t,i)=>{if(r[i]==null)return t;let n=e[i];return n===r[i]?t[i]=n:Array.isArray(n)?n.indexOf(r[i])<0?t[i]=n.concat([r[i]]):t[i]=n:t[i]=[n,r[i]],t},{})}function Jg(r){let e=r==="ordered"?"ol":"ul";switch(r){case"checked":return[e,' data-list="checked"'];case"unchecked":return[e,' data-list="unchecked"'];default:return[e,""]}}function iS(r){return r.reduce((e,t)=>{if(typeof t.insert=="string"){let i=t.insert.replace(/\r\n/g,` +`).replace(/\r/g,` +`);return e.insert(i,t.attributes)}return e.push(t)},new Ir.default)}function nS(r,e){let{index:t,length:i}=r;return new Xi(t+e,i)}function CZ(r){let e=[];return r.forEach(t=>{typeof t.insert=="string"?t.insert.split(` +`).forEach((n,s)=>{s&&e.push({insert:` +`,attributes:t.attributes}),n&&e.push({insert:n,attributes:t.attributes})}):e.push(t)}),e}var sS=$g;var y3=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.quill=e,this.options=t}};Se(y3,"DEFAULTS",{});var zr=y3;var x3="\uFEFF",e5=class extends Nr{constructor(e,t){super(e,t),this.contentNode=document.createElement("span"),this.contentNode.setAttribute("contenteditable","false"),Array.from(this.domNode.childNodes).forEach(i=>{this.contentNode.appendChild(i)}),this.leftGuard=document.createTextNode(x3),this.rightGuard=document.createTextNode(x3),this.domNode.appendChild(this.leftGuard),this.domNode.appendChild(this.contentNode),this.domNode.appendChild(this.rightGuard)}index(e,t){return e===this.leftGuard?0:e===this.rightGuard?1:super.index(e,t)}restore(e){let t=null,i,n=e.data.split(x3).join("");if(e===this.leftGuard)if(this.prev instanceof _r){let s=this.prev.length();this.prev.insertAt(s,n),t={startNode:this.prev.domNode,startOffset:s+n.length}}else i=document.createTextNode(n),this.parent.insertBefore(this.scroll.create(i),this),t={startNode:i,startOffset:n.length};else e===this.rightGuard&&(this.next instanceof _r?(this.next.insertAt(0,n),t={startNode:this.next.domNode,startOffset:n.length}):(i=document.createTextNode(n),this.parent.insertBefore(this.scroll.create(i),this.next),t={startNode:i,startOffset:n.length}));return e.data=x3,t}update(e,t){e.forEach(i=>{if(i.type==="characterData"&&(i.target===this.leftGuard||i.target===this.rightGuard)){let n=this.restore(i.target);n&&(t.range=n)}})}},jh=e5;var t5=class{constructor(e,t){Se(this,"isComposing",!1);this.scroll=e,this.emitter=t,this.setupListeners()}setupListeners(){this.scroll.domNode.addEventListener("compositionstart",e=>{this.isComposing||this.handleCompositionStart(e)}),this.scroll.domNode.addEventListener("compositionend",e=>{this.isComposing&&queueMicrotask(()=>{this.handleCompositionEnd(e)})})}handleCompositionStart(e){let t=e.target instanceof Node?this.scroll.find(e.target,!0):null;t&&!(t instanceof jh)&&(this.emitter.emit(Oe.events.COMPOSITION_BEFORE_START,e),this.scroll.batchStart(),this.emitter.emit(Oe.events.COMPOSITION_START,e),this.isComposing=!0)}handleCompositionEnd(e){this.emitter.emit(Oe.events.COMPOSITION_BEFORE_END,e),this.scroll.batchEnd(),this.emitter.emit(Oe.events.COMPOSITION_END,e),this.isComposing=!1}},aS=t5;var r5=class{constructor(e,t){Se(this,"modules",{});this.quill=e,this.options=t}init(){Object.keys(this.options.modules).forEach(e=>{this.modules[e]==null&&this.addModule(e)})}addModule(e){let t=this.quill.constructor.import(`modules/${e}`);return this.modules[e]=new t(this.quill,this.options.modules[e]||{}),this.modules[e]}},md=r5;Se(md,"DEFAULTS",{modules:{}}),Se(md,"themes",{default:r5});var Gh=md;var SZ=r=>r.parentElement||r.getRootNode().host||null,TZ=r=>{let e=r.getBoundingClientRect(),t="offsetWidth"in r&&Math.abs(e.width)/r.offsetWidth||1,i="offsetHeight"in r&&Math.abs(e.height)/r.offsetHeight||1;return{top:e.top,right:e.left+r.clientWidth*t,bottom:e.top+r.clientHeight*i,left:e.left}},b3=r=>{let e=parseInt(r,10);return Number.isNaN(e)?0:e},oS=(r,e,t,i,n,s)=>ri?0:ri?e-r>i-t?r+n-t:e-i+s:0,MZ=(r,e)=>{var s,a,o,l,h;let t=r.ownerDocument,i=e,n=r;for(;n;){let c=n===t.body,u=c?{top:0,right:(a=(s=window.visualViewport)==null?void 0:s.width)!=null?a:t.documentElement.clientWidth,bottom:(l=(o=window.visualViewport)==null?void 0:o.height)!=null?l:t.documentElement.clientHeight,left:0}:TZ(n),d=getComputedStyle(n),f=oS(i.left,i.right,u.left,u.right,b3(d.scrollPaddingLeft),b3(d.scrollPaddingRight)),m=oS(i.top,i.bottom,u.top,u.bottom,b3(d.scrollPaddingTop),b3(d.scrollPaddingBottom));if(f||m)if(c)(h=t.defaultView)==null||h.scrollBy(f,m);else{let{scrollLeft:g,scrollTop:v}=n;m&&(n.scrollTop+=m),f&&(n.scrollLeft+=f);let y=n.scrollLeft-g,A=n.scrollTop-v;i={left:i.left-y,top:i.top-A,right:i.right-y,bottom:i.bottom-A}}n=c||d.position==="fixed"?null:SZ(n)}},lS=MZ;var kZ=100,DZ=["block","break","cursor","inline","scroll","text"],NZ=(r,e,t)=>{let i=new Io;return DZ.forEach(n=>{let s=e.query(n);s&&i.register(s)}),r.forEach(n=>{var o;let s=e.query(n);s||t.error(`Cannot register "${n}" specified in "formats" config. Are you sure it was registered?`);let a=0;for(;s;)if(i.register(s),s="blotName"in s&&(o=s.requiredContainer)!=null?o:null,a+=1,a>kZ){t.error(`Cycle detected in registering blot requiredContainer: "${n}"`);break}}),i},hS=NZ;var Yh=zn("quill"),w3=new Io;yn.uiClass="ql-ui";var Wh=class{static debug(e){e===!0&&(e="log"),zn.level(e)}static find(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return ud.get(e)||w3.find(e,t)}static import(e){return this.imports[e]==null&&Yh.error(`Cannot import ${e}. Are you sure it was registered?`),this.imports[e]}static register(){if(typeof(arguments.length<=0?void 0:arguments[0])!="string"){let e=arguments.length<=0?void 0:arguments[0],t=!!(!(arguments.length<=1)&&arguments[1]),i="attrName"in e?e.attrName:e.blotName;typeof i=="string"?this.register(`formats/${i}`,e,t):Object.keys(e).forEach(n=>{this.register(n,e[n],t)})}else{let e=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1],i=!!(!(arguments.length<=2)&&arguments[2]);this.imports[e]!=null&&!i&&Yh.warn(`Overwriting ${e} with`,t),this.imports[e]=t,(e.startsWith("blots/")||e.startsWith("formats/"))&&t&&typeof t!="boolean"&&t.blotName!=="abstract"&&w3.register(t),typeof t.register=="function"&&t.register(w3)}}constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.options=FZ(e,t),this.container=this.options.container,this.container==null){Yh.error("Invalid Quill container",e);return}this.options.debug&&Wh.debug(this.options.debug);let i=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",ud.set(this.container,this),this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.emitter=new Oe;let n=Zu.blotName,s=this.options.registry.query(n);if(!s||!("blotName"in s))throw new Error(`Cannot initialize Quill without "${n}" blot`);if(this.scroll=new s(this.options.registry,this.root,{emitter:this.emitter}),this.editor=new sS(this.scroll),this.selection=new rS(this.scroll,this.emitter),this.composition=new aS(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.uploader=this.theme.addModule("uploader"),this.theme.addModule("input"),this.theme.addModule("uiNode"),this.theme.init(),this.emitter.on(Oe.events.EDITOR_CHANGE,a=>{a===Oe.events.TEXT_CHANGE&&this.root.classList.toggle("ql-blank",this.editor.isBlank())}),this.emitter.on(Oe.events.SCROLL_UPDATE,(a,o)=>{let l=this.selection.lastRange,[h]=this.selection.getRange(),c=l&&h?{oldRange:l,newRange:h}:void 0;Ss.call(this,()=>this.editor.update(null,o,c),a)}),this.emitter.on(Oe.events.SCROLL_EMBED_UPDATE,(a,o)=>{let l=this.selection.lastRange,[h]=this.selection.getRange(),c=l&&h?{oldRange:l,newRange:h}:void 0;Ss.call(this,()=>{let u=new _o.default().retain(a.offset(this)).retain({[a.statics.blotName]:o});return this.editor.update(u,[],c)},Wh.sources.USER)}),i){let a=this.clipboard.convert({html:`${i}


    `,text:` +`});this.setContents(a)}this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable(),this.allowReadOnlyEdits=!1}addContainer(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(typeof e=="string"){let i=e;e=document.createElement("div"),e.classList.add(i)}return this.container.insertBefore(e,t),e}blur(){this.selection.setRange(null)}deleteText(e,t,i){return[e,t,,i]=Ga(e,t,i),Ss.call(this,()=>this.editor.deleteText(e,t),i,e,-1*t)}disable(){this.enable(!1)}editReadOnly(e){this.allowReadOnlyEdits=!0;let t=e();return this.allowReadOnlyEdits=!1,t}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.scroll.enable(e),this.container.classList.toggle("ql-disabled",!e)}focus(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.selection.focus(),e.preventScroll||this.scrollSelectionIntoView()}format(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Oe.sources.API;return Ss.call(this,()=>{let n=this.getSelection(!0),s=new _o.default;if(n==null)return s;if(this.scroll.query(e,ze.BLOCK))s=this.editor.formatLine(n.index,n.length,{[e]:t});else{if(n.length===0)return this.selection.format(e,t),s;s=this.editor.formatText(n.index,n.length,{[e]:t})}return this.setSelection(n,Oe.sources.SILENT),s},i)}formatLine(e,t,i,n,s){let a;return[e,t,a,s]=Ga(e,t,i,n,s),Ss.call(this,()=>this.editor.formatLine(e,t,a),s,e,0)}formatText(e,t,i,n,s){let a;return[e,t,a,s]=Ga(e,t,i,n,s),Ss.call(this,()=>this.editor.formatText(e,t,a),s,e,0)}getBounds(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=null;if(typeof e=="number"?i=this.selection.getBounds(e,t):i=this.selection.getBounds(e.index,e.length),!i)return null;let n=this.container.getBoundingClientRect();return{bottom:i.bottom-n.top,height:i.height,left:i.left-n.left,right:i.right-n.left,top:i.top-n.top,width:i.width}}getContents(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.getLength()-e;return[e,t]=Ga(e,t),this.editor.getContents(e,t)}getFormat(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.getSelection(!0),t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return typeof e=="number"?this.editor.getFormat(e,t):this.editor.getFormat(e.index,e.length)}getIndex(e){return e.offset(this.scroll)}getLength(){return this.scroll.length()}getLeaf(e){return this.scroll.leaf(e)}getLine(e){return this.scroll.line(e)}getLines(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE;return typeof e!="number"?this.scroll.lines(e.index,e.length):this.scroll.lines(e,t)}getModule(e){return this.theme.modules[e]}getSelection(){return(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1)&&this.focus(),this.update(),this.selection.getRange()[0]}getSemanticHTML(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return typeof e=="number"&&(t=t!=null?t:this.getLength()-e),[e,t]=Ga(e,t),this.editor.getHTML(e,t)}getText(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1?arguments[1]:void 0;return typeof e=="number"&&(t=t!=null?t:this.getLength()-e),[e,t]=Ga(e,t),this.editor.getText(e,t)}hasFocus(){return this.selection.hasFocus()}insertEmbed(e,t,i){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:Wh.sources.API;return Ss.call(this,()=>this.editor.insertEmbed(e,t,i),n,e)}insertText(e,t,i,n,s){let a;return[e,,a,s]=Ga(e,0,i,n,s),Ss.call(this,()=>this.editor.insertText(e,t,a),s,e,t.length)}isEnabled(){return this.scroll.isEnabled()}off(){return this.emitter.off(...arguments)}on(){return this.emitter.on(...arguments)}once(){return this.emitter.once(...arguments)}removeFormat(e,t,i){return[e,t,,i]=Ga(e,t,i),Ss.call(this,()=>this.editor.removeFormat(e,t),i,e)}scrollRectIntoView(e){lS(this.root,e)}scrollIntoView(){console.warn("Quill#scrollIntoView() has been deprecated and will be removed in the near future. Please use Quill#scrollSelectionIntoView() instead."),this.scrollSelectionIntoView()}scrollSelectionIntoView(){let e=this.selection.lastRange,t=e&&this.selection.getBounds(e.index,e.length);t&&this.scrollRectIntoView(t)}setContents(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Oe.sources.API;return Ss.call(this,()=>{e=new _o.default(e);let i=this.getLength(),n=this.editor.deleteText(0,i),s=this.editor.insertContents(0,e),a=this.editor.deleteText(this.getLength()-1,1);return n.compose(s).compose(a)},t)}setSelection(e,t,i){e==null?this.selection.setRange(null,t||Wh.sources.API):([e,t,,i]=Ga(e,t,i),this.selection.setRange(new Xi(Math.max(0,e),t),i),i!==Oe.sources.SILENT&&this.scrollSelectionIntoView())}setText(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Oe.sources.API,i=new _o.default().insert(e);return this.setContents(i,t)}update(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Oe.sources.USER,t=this.scroll.update(e);return this.selection.update(e),t}updateContents(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Oe.sources.API;return Ss.call(this,()=>(e=new _o.default(e),this.editor.applyDelta(e)),t,!0)}},ge=Wh;Se(ge,"DEFAULTS",{bounds:null,modules:{clipboard:!0,keyboard:!0,history:!0,uploader:!0},placeholder:"",readOnly:!1,registry:w3,theme:"default"}),Se(ge,"events",Oe.events),Se(ge,"sources",Oe.sources),Se(ge,"version","2.0.3"),Se(ge,"imports",{delta:_o.default,parchment:Ju,"core/module":zr,"core/theme":Gh});function cS(r){return typeof r=="string"?document.querySelector(r):r}function i5(r){return Object.entries(r!=null?r:{}).reduce((e,t)=>{let[i,n]=t;return{...e,[i]:n===!0?{}:n}},{})}function uS(r){return Object.fromEntries(Object.entries(r).filter(e=>e[1]!==void 0))}function FZ(r,e){let t=cS(r);if(!t)throw new Error("Invalid Quill container");let n=!e.theme||e.theme===ge.DEFAULTS.theme?Gh:ge.import(`themes/${e.theme}`);if(!n)throw new Error(`Invalid theme ${e.theme}. Did you register it?`);let{modules:s,...a}=ge.DEFAULTS,{modules:o,...l}=n.DEFAULTS,h=i5(e.modules);h!=null&&h.toolbar&&h.toolbar.constructor!==Object&&(h={...h,toolbar:{container:h.toolbar}});let c=vn({},i5(s),i5(o),h),u={...a,...uS(l),...uS(e)},d=e.registry;return d?e.formats&&Yh.warn('Ignoring "formats" option because "registry" is specified'):d=e.formats?hS(e.formats,u.registry,Yh):u.registry,{...u,registry:d,container:t,theme:n,modules:Object.entries(c).reduce((f,m)=>{let[g,v]=m;if(!v)return f;let y=ge.import(`modules/${g}`);return y==null?(Yh.error(`Cannot load ${g} module. Are you sure you registered it?`),f):{...f,[g]:vn({},y.DEFAULTS||{},v)}},{}),bounds:cS(u.bounds)}}function Ss(r,e,t,i){if(!this.isEnabled()&&e===Oe.sources.USER&&!this.allowReadOnlyEdits)return new _o.default;let n=t==null?null:this.getSelection(),s=this.editor.delta,a=r();if(n!=null&&(t===!0&&(t=n.index),i==null?n=dS(n,a,e):i!==0&&(n=dS(n,t,i,e)),this.setSelection(n,Oe.sources.SILENT)),a.length()>0){let o=[Oe.events.TEXT_CHANGE,a,s,e];this.emitter.emit(Oe.events.EDITOR_CHANGE,...o),e!==Oe.sources.SILENT&&this.emitter.emit(...o)}return a}function Ga(r,e,t,i,n){let s={};return typeof r.index=="number"&&typeof r.length=="number"?typeof e!="number"?(n=i,i=t,t=e,e=r.length,r=r.index):(e=r.length,r=r.index):typeof e!="number"&&(n=i,i=t,t=e,e=0),typeof t=="object"?(s=t,n=i):typeof t=="string"&&(i!=null?s[t]=i:n=t),n=n||Oe.sources.API,[r,e,s,n]}function dS(r,e,t,i){let n=typeof t=="number"?t:0;if(r==null)return null;let s,a;return e&&typeof e.transformPosition=="function"?[s,a]=[r.index,r.index+r.length].map(o=>e.transformPosition(o,i!==Oe.sources.USER)):[s,a]=[r.index,r.index+r.length].map(o=>o=0?o+n:Math.max(e,o+n)),new Xi(s,a-s)}var n5=class extends zh{},ts=n5;var rs=mr(bn(),1);function fS(r){return r instanceof ar||r instanceof ii}function mS(r){return typeof r.updateContent=="function"}var qo=class extends Zu{constructor(e,t,i){let{emitter:n}=i;super(e,t),this.emitter=n,this.batch=!1,this.optimize(),this.enable(),this.domNode.addEventListener("dragstart",s=>this.handleDragStart(s))}batchStart(){Array.isArray(this.batch)||(this.batch=[])}batchEnd(){if(!this.batch)return;let e=this.batch;this.batch=!1,this.update(e)}emitMount(e){this.emitter.emit(Oe.events.SCROLL_BLOT_MOUNT,e)}emitUnmount(e){this.emitter.emit(Oe.events.SCROLL_BLOT_UNMOUNT,e)}emitEmbedUpdate(e,t){this.emitter.emit(Oe.events.SCROLL_EMBED_UPDATE,e,t)}deleteAt(e,t){let[i,n]=this.line(e),[s]=this.line(e+t);if(super.deleteAt(e,t),s!=null&&i!==s&&n>0){if(i instanceof ii||s instanceof ii){this.optimize();return}let a=s.children.head instanceof Ci?null:s.children.head;i.moveChildren(s,a),i.remove()}this.optimize()}enable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.domNode.setAttribute("contenteditable",e?"true":"false")}formatAt(e,t,i,n){super.formatAt(e,t,i,n),this.optimize()}insertAt(e,t,i){if(e>=this.length())if(i==null||this.scroll.query(t,ze.BLOCK)==null){let n=this.scroll.create(this.statics.defaultChild.blotName);this.appendChild(n),i==null&&t.endsWith(` +`)?n.insertAt(0,t.slice(0,-1),i):n.insertAt(0,t,i)}else{let n=this.scroll.create(t,i);this.appendChild(n)}else super.insertAt(e,t,i);this.optimize()}insertBefore(e,t){if(e.statics.scope===ze.INLINE_BLOT){let i=this.scroll.create(this.statics.defaultChild.blotName);i.appendChild(e),super.insertBefore(i,t)}else super.insertBefore(e,t)}insertContents(e,t){let i=this.deltaToRenderBlocks(t.concat(new rs.default().insert(` +`))),n=i.pop();if(n==null)return;this.batchStart();let s=i.shift();if(s){let l=s.type==="block"&&(s.delta.length()===0||!this.descendant(ii,e)[0]&&e{this.formatAt(u-1,1,m,f[m])}),e=u}let[a,o]=this.children.find(e);if(i.length&&(a&&(a=a.split(o),o=0),i.forEach(l=>{if(l.type==="block"){let h=this.createBlock(l.attributes,a||void 0);s5(h,0,l.delta)}else{let h=this.create(l.key,l.value);this.insertBefore(h,a||void 0),Object.keys(l.attributes).forEach(c=>{h.format(c,l.attributes[c])})}})),n.type==="block"&&n.delta.length()){let l=a?a.offset(a.scroll)+o:this.length();s5(this,l,n.delta)}this.batchEnd(),this.optimize()}isEnabled(){return this.domNode.getAttribute("contenteditable")==="true"}leaf(e){let t=this.path(e).pop();if(!t)return[null,-1];let[i,n]=t;return i instanceof Kr?[i,n]:[null,-1]}line(e){return e===this.length()?this.line(e-1):this.descendant(fS,e)}lines(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Number.MAX_VALUE,i=(n,s,a)=>{let o=[],l=a;return n.children.forEachAt(s,a,(h,c,u)=>{fS(h)?o.push(h):h instanceof zh&&(o=o.concat(i(h,c,l))),l-=u}),o};return i(this,e,t)}optimize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.batch||(super.optimize(e,t),e.length>0&&this.emitter.emit(Oe.events.SCROLL_OPTIMIZE,e,t))}path(e){return super.path(e).slice(1)}remove(){}update(e){if(this.batch){Array.isArray(e)&&(this.batch=this.batch.concat(e));return}let t=Oe.sources.USER;typeof e=="string"&&(t=e),Array.isArray(e)||(e=this.observer.takeRecords()),e=e.filter(i=>{let{target:n}=i,s=this.find(n,!0);return s&&!mS(s)}),e.length>0&&this.emitter.emit(Oe.events.SCROLL_BEFORE_UPDATE,t,e),super.update(e.concat([])),e.length>0&&this.emitter.emit(Oe.events.SCROLL_UPDATE,t,e)}updateEmbedAt(e,t,i){let[n]=this.descendant(s=>s instanceof ii,e);n&&n.statics.blotName===t&&mS(n)&&n.updateContent(i)}handleDragStart(e){e.preventDefault()}deltaToRenderBlocks(e){let t=[],i=new rs.default;return e.forEach(n=>{var a;let s=n==null?void 0:n.insert;if(s)if(typeof s=="string"){let o=s.split(` +`);o.slice(0,-1).forEach(h=>{var c;i.insert(h,n.attributes),t.push({type:"block",delta:i,attributes:(c=n.attributes)!=null?c:{}}),i=new rs.default});let l=o[o.length-1];l&&i.insert(l,n.attributes)}else{let o=Object.keys(s)[0];if(!o)return;this.query(o,ze.INLINE)?i.push(n):(i.length()&&t.push({type:"block",delta:i,attributes:{}}),i=new rs.default,t.push({type:"blockEmbed",key:o,value:s[o],attributes:(a=n.attributes)!=null?a:{}}))}}),i.length()&&t.push({type:"block",delta:i,attributes:{}}),t}createBlock(e,t){let i,n={};Object.entries(e).forEach(o=>{let[l,h]=o;this.query(l,ze.BLOCK&ze.BLOT)!=null?i=l:n[l]=h});let s=this.create(i||this.statics.defaultChild.blotName,i?e[i]:void 0);this.insertBefore(s,t||void 0);let a=s.length();return Object.entries(n).forEach(o=>{let[l,h]=o;s.formatAt(0,a,l,h)}),s}};Se(qo,"blotName","scroll"),Se(qo,"className","ql-editor"),Se(qo,"tagName","DIV"),Se(qo,"defaultChild",ar),Se(qo,"allowedChildren",[ar,ii,ts]);function s5(r,e,t){t.reduce((i,n)=>{let s=rs.Op.length(n),a=n.attributes||{};if(n.insert!=null){if(typeof n.insert=="string"){let o=n.insert;r.insertAt(i,o);let[l]=r.descendant(Kr,i),h=wn(l);a=rs.AttributeMap.diff(h,a)||{}}else if(typeof n.insert=="object"){let o=Object.keys(n.insert)[0];if(o==null)return i;if(r.insertAt(i,o,n.insert[o]),r.scroll.query(o,ze.INLINE)!=null){let[h]=r.descendant(Kr,i),c=wn(h);a=rs.AttributeMap.diff(c,a)||{}}}}return Object.keys(a).forEach(o=>{r.formatAt(i,s,o,a[o])}),i+s},e)}var pS=qo;var An=mr(bn(),1);var a5={scope:ze.BLOCK,whitelist:["right","center","justify"]},gS=new Vi("align","align",a5),o5=new Vr("align","ql-align",a5),A3=new xn("align","text-align",a5);var pd=class extends xn{value(e){let t=super.value(e);return t.startsWith("rgb(")?(t=t.replace(/^[^\d]+/,"").replace(/[^\d]+$/,""),`#${t.split(",").map(n=>`00${parseInt(n,10).toString(16)}`.slice(-2)).join("")}`):t}},vS=new Vr("color","ql-color",{scope:ze.INLINE}),gd=new pd("color","color",{scope:ze.INLINE});var yS=new Vr("background","ql-bg",{scope:ze.INLINE}),vd=new pd("background","background-color",{scope:ze.INLINE});var Zs=class extends ts{static create(e){let t=super.create(e);return t.setAttribute("spellcheck","false"),t}code(e,t){return this.children.map(i=>i.length()<=1?"":i.domNode.innerText).join(` +`).slice(e,e+t)}html(e,t){return`
    +${$l(this.code(e,t))}
    +
    `}},qr=class extends ar{static register(){ge.register(Zs)}};Se(qr,"TAB"," ");var Vh=class extends Si{};Vh.blotName="code";Vh.tagName="CODE";qr.blotName="code-block";qr.className="ql-code-block";qr.tagName="DIV";Zs.blotName="code-block-container";Zs.className="ql-code-block-container";Zs.tagName="DIV";Zs.allowedChildren=[qr];qr.allowedChildren=[_r,Ci,Po];qr.requiredContainer=Zs;var l5={scope:ze.BLOCK,whitelist:["rtl"]},E3=new Vi("direction","dir",l5),h5=new Vr("direction","ql-direction",l5),C3=new xn("direction","direction",l5);var xS={scope:ze.INLINE,whitelist:["serif","monospace"]},u5=new Vr("font","ql-font",xS),c5=class extends xn{value(e){return super.value(e).replace(/["']/g,"")}},S3=new c5("font","font-family",xS);var d5=new Vr("size","ql-size",{scope:ze.INLINE,whitelist:["small","large","huge"]}),T3=new xn("size","font-size",{scope:ze.INLINE,whitelist:["10px","18px","32px"]});var Mi=mr(bn(),1);var IZ=zn("quill:keyboard"),zZ=/Mac/i.test(navigator.platform)?"metaKey":"ctrlKey",t0=class extends zr{static match(e,t){return["altKey","ctrlKey","metaKey","shiftKey"].some(i=>!!t[i]!==e[i]&&t[i]!==null)?!1:t.key===e.key||t.key===e.which}constructor(e,t){super(e,t),this.bindings={},Object.keys(this.options.bindings).forEach(i=>{this.options.bindings[i]&&this.addBinding(this.options.bindings[i])}),this.addBinding({key:"Enter",shiftKey:null},this.handleEnter),this.addBinding({key:"Enter",metaKey:null,ctrlKey:null,altKey:null},()=>{}),/Firefox/i.test(navigator.userAgent)?(this.addBinding({key:"Backspace"},{collapsed:!0},this.handleBackspace),this.addBinding({key:"Delete"},{collapsed:!0},this.handleDelete)):(this.addBinding({key:"Backspace"},{collapsed:!0,prefix:/^.?$/},this.handleBackspace),this.addBinding({key:"Delete"},{collapsed:!0,suffix:/^.?$/},this.handleDelete)),this.addBinding({key:"Backspace"},{collapsed:!1},this.handleDeleteRange),this.addBinding({key:"Delete"},{collapsed:!1},this.handleDeleteRange),this.addBinding({key:"Backspace",altKey:null,ctrlKey:null,metaKey:null,shiftKey:null},{collapsed:!0,offset:0},this.handleBackspace),this.listen()}addBinding(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=OZ(e);if(n==null){IZ.warn("Attempted to add invalid keyboard binding",n);return}typeof t=="function"&&(t={handler:t}),typeof i=="function"&&(i={handler:i}),(Array.isArray(n.key)?n.key:[n.key]).forEach(a=>{let o={...n,key:a,...t,...i};this.bindings[o.key]=this.bindings[o.key]||[],this.bindings[o.key].push(o)})}listen(){this.quill.root.addEventListener("keydown",e=>{if(e.defaultPrevented||e.isComposing||e.keyCode===229&&(e.key==="Enter"||e.key==="Backspace"))return;let n=(this.bindings[e.key]||[]).concat(this.bindings[e.which]||[]).filter(y=>t0.match(e,y));if(n.length===0)return;let s=ge.find(e.target,!0);if(s&&s.scroll!==this.quill.scroll)return;let a=this.quill.getSelection();if(a==null||!this.quill.hasFocus())return;let[o,l]=this.quill.getLine(a.index),[h,c]=this.quill.getLeaf(a.index),[u,d]=a.length===0?[h,c]:this.quill.getLeaf(a.index+a.length),f=h instanceof Lh?h.value().slice(0,c):"",m=u instanceof Lh?u.value().slice(d):"",g={collapsed:a.length===0,empty:a.length===0&&o.length()<=1,format:this.quill.getFormat(a),line:o,offset:l,prefix:f,suffix:m,event:e};n.some(y=>{if(y.collapsed!=null&&y.collapsed!==g.collapsed||y.empty!=null&&y.empty!==g.empty||y.offset!=null&&y.offset!==g.offset)return!1;if(Array.isArray(y.format)){if(y.format.every(A=>g.format[A]==null))return!1}else if(typeof y.format=="object"&&!Object.keys(y.format).every(A=>y.format[A]===!0?g.format[A]!=null:y.format[A]===!1?g.format[A]==null:jl(y.format[A],g.format[A])))return!1;return y.prefix!=null&&!y.prefix.test(g.prefix)||y.suffix!=null&&!y.suffix.test(g.suffix)?!1:y.handler.call(this,a,g,y)!==!0})&&e.preventDefault()})}handleBackspace(e,t){let i=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(t.prefix)?2:1;if(e.index===0||this.quill.getLength()<=1)return;let n={},[s]=this.quill.getLine(e.index),a=new Mi.default().retain(e.index-i).delete(i);if(t.offset===0){let[o]=this.quill.getLine(e.index-1);if(o&&!(o.statics.blotName==="block"&&o.length()<=1)){let h=s.formats(),c=this.quill.getFormat(e.index-1,1);if(n=Mi.AttributeMap.diff(h,c)||{},Object.keys(n).length>0){let u=new Mi.default().retain(e.index+s.length()-2).retain(1,n);a=a.compose(u)}}}this.quill.updateContents(a,ge.sources.USER),this.quill.focus()}handleDelete(e,t){let i=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(t.suffix)?2:1;if(e.index>=this.quill.getLength()-i)return;let n={},[s]=this.quill.getLine(e.index),a=new Mi.default().retain(e.index).delete(i);if(t.offset>=s.length()-1){let[o]=this.quill.getLine(e.index+1);if(o){let l=s.formats(),h=this.quill.getFormat(e.index,1);n=Mi.AttributeMap.diff(l,h)||{},Object.keys(n).length>0&&(a=a.retain(o.length()-1).retain(1,n))}}this.quill.updateContents(a,ge.sources.USER),this.quill.focus()}handleDeleteRange(e){yd({range:e,quill:this.quill}),this.quill.focus()}handleEnter(e,t){let i=Object.keys(t.format).reduce((s,a)=>(this.quill.scroll.query(a,ze.BLOCK)&&!Array.isArray(t.format[a])&&(s[a]=t.format[a]),s),{}),n=new Mi.default().retain(e.index).delete(e.length).insert(` +`,i);this.quill.updateContents(n,ge.sources.USER),this.quill.setSelection(e.index+1,ge.sources.SILENT),this.quill.focus()}},LZ={bindings:{bold:f5("bold"),italic:f5("italic"),underline:f5("underline"),indent:{key:"Tab",format:["blockquote","indent","list"],handler(r,e){return e.collapsed&&e.offset!==0?!0:(this.quill.format("indent","+1",ge.sources.USER),!1)}},outdent:{key:"Tab",shiftKey:!0,format:["blockquote","indent","list"],handler(r,e){return e.collapsed&&e.offset!==0?!0:(this.quill.format("indent","-1",ge.sources.USER),!1)}},"outdent backspace":{key:"Backspace",collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler(r,e){e.format.indent!=null?this.quill.format("indent","-1",ge.sources.USER):e.format.list!=null&&this.quill.format("list",!1,ge.sources.USER)}},"indent code-block":bS(!0),"outdent code-block":bS(!1),"remove tab":{key:"Tab",shiftKey:!0,collapsed:!0,prefix:/\t$/,handler(r){this.quill.deleteText(r.index-1,1,ge.sources.USER)}},tab:{key:"Tab",handler(r,e){if(e.format.table)return!0;this.quill.history.cutoff();let t=new Mi.default().retain(r.index).delete(r.length).insert(" ");return this.quill.updateContents(t,ge.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(r.index+1,ge.sources.SILENT),!1}},"blockquote empty enter":{key:"Enter",collapsed:!0,format:["blockquote"],empty:!0,handler(){this.quill.format("blockquote",!1,ge.sources.USER)}},"list empty enter":{key:"Enter",collapsed:!0,format:["list"],empty:!0,handler(r,e){let t={list:!1};e.format.indent&&(t.indent=!1),this.quill.formatLine(r.index,r.length,t,ge.sources.USER)}},"checklist enter":{key:"Enter",collapsed:!0,format:{list:"checked"},handler(r){let[e,t]=this.quill.getLine(r.index),i={...e.formats(),list:"checked"},n=new Mi.default().retain(r.index).insert(` +`,i).retain(e.length()-t-1).retain(1,{list:"unchecked"});this.quill.updateContents(n,ge.sources.USER),this.quill.setSelection(r.index+1,ge.sources.SILENT),this.quill.scrollSelectionIntoView()}},"header enter":{key:"Enter",collapsed:!0,format:["header"],suffix:/^$/,handler(r,e){let[t,i]=this.quill.getLine(r.index),n=new Mi.default().retain(r.index).insert(` +`,e.format).retain(t.length()-i-1).retain(1,{header:null});this.quill.updateContents(n,ge.sources.USER),this.quill.setSelection(r.index+1,ge.sources.SILENT),this.quill.scrollSelectionIntoView()}},"table backspace":{key:"Backspace",format:["table"],collapsed:!0,offset:0,handler(){}},"table delete":{key:"Delete",format:["table"],collapsed:!0,suffix:/^$/,handler(){}},"table enter":{key:"Enter",shiftKey:null,format:["table"],handler(r){let e=this.quill.getModule("table");if(e){let[t,i,n,s]=e.getTable(r),a=BZ(t,i,n,s);if(a==null)return;let o=t.offset();if(a<0){let l=new Mi.default().retain(o).insert(` +`);this.quill.updateContents(l,ge.sources.USER),this.quill.setSelection(r.index+1,r.length,ge.sources.SILENT)}else if(a>0){o+=t.length();let l=new Mi.default().retain(o).insert(` +`);this.quill.updateContents(l,ge.sources.USER),this.quill.setSelection(o,ge.sources.USER)}}}},"table tab":{key:"Tab",shiftKey:null,format:["table"],handler(r,e){let{event:t,line:i}=e,n=i.offset(this.quill.scroll);t.shiftKey?this.quill.setSelection(n-1,ge.sources.USER):this.quill.setSelection(n+i.length(),ge.sources.USER)}},"list autofill":{key:" ",shiftKey:null,collapsed:!0,format:{"code-block":!1,blockquote:!1,table:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler(r,e){if(this.quill.scroll.query("list")==null)return!0;let{length:t}=e.prefix,[i,n]=this.quill.getLine(r.index);if(n>t)return!0;let s;switch(e.prefix.trim()){case"[]":case"[ ]":s="unchecked";break;case"[x]":s="checked";break;case"-":case"*":s="bullet";break;default:s="ordered"}this.quill.insertText(r.index," ",ge.sources.USER),this.quill.history.cutoff();let a=new Mi.default().retain(r.index-n).delete(t+1).retain(i.length()-2-n).retain(1,{list:s});return this.quill.updateContents(a,ge.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(r.index-t,ge.sources.SILENT),!1}},"code exit":{key:"Enter",collapsed:!0,format:["code-block"],prefix:/^$/,suffix:/^\s*$/,handler(r){let[e,t]=this.quill.getLine(r.index),i=2,n=e;for(;n!=null&&n.length()<=1&&n.formats()["code-block"];)if(n=n.prev,i-=1,i<=0){let s=new Mi.default().retain(r.index+e.length()-t-2).retain(1,{"code-block":null}).delete(1);return this.quill.updateContents(s,ge.sources.USER),this.quill.setSelection(r.index-1,ge.sources.SILENT),!1}return!0}},"embed left":M3("ArrowLeft",!1),"embed left shift":M3("ArrowLeft",!0),"embed right":M3("ArrowRight",!1),"embed right shift":M3("ArrowRight",!0),"table down":wS(!1),"table up":wS(!0)}};t0.DEFAULTS=LZ;function bS(r){return{key:"Tab",shiftKey:!r,format:{"code-block":!0},handler(e,t){let{event:i}=t,n=this.quill.scroll.query("code-block"),{TAB:s}=n;if(e.length===0&&!i.shiftKey){this.quill.insertText(e.index,s,ge.sources.USER),this.quill.setSelection(e.index+s.length,ge.sources.SILENT);return}let a=e.length===0?this.quill.getLines(e.index,1):this.quill.getLines(e),{index:o,length:l}=e;a.forEach((h,c)=>{r?(h.insertAt(0,s),c===0?o+=s.length:l+=s.length):h.domNode.textContent.startsWith(s)&&(h.deleteAt(0,s.length),c===0?o-=s.length:l-=s.length)}),this.quill.update(ge.sources.USER),this.quill.setSelection(o,l,ge.sources.SILENT)}}}function M3(r,e){return{key:r,shiftKey:e,altKey:null,[r==="ArrowLeft"?"prefix":"suffix"]:/^$/,handler(i){let{index:n}=i;r==="ArrowRight"&&(n+=i.length+1);let[s]=this.quill.getLeaf(n);return s instanceof Nr?(r==="ArrowLeft"?e?this.quill.setSelection(i.index-1,i.length+1,ge.sources.USER):this.quill.setSelection(i.index-1,ge.sources.USER):e?this.quill.setSelection(i.index,i.length+1,ge.sources.USER):this.quill.setSelection(i.index+i.length+1,ge.sources.USER),!1):!0}}}function f5(r){return{key:r[0],shortKey:!0,handler(e,t){this.quill.format(r,!t.format[r],ge.sources.USER)}}}function wS(r){return{key:r?"ArrowUp":"ArrowDown",collapsed:!0,format:["table"],handler(e,t){let i=r?"prev":"next",n=t.line,s=n.parent[i];if(s!=null){if(s.statics.blotName==="table-row"){let a=s.children.head,o=n;for(;o.prev!=null;)o=o.prev,a=a.next;let l=a.offset(this.quill.scroll)+Math.min(t.offset,a.length()-1);this.quill.setSelection(l,0,ge.sources.USER)}}else{let a=n.table()[i];a!=null&&(r?this.quill.setSelection(a.offset(this.quill.scroll)+a.length()-1,0,ge.sources.USER):this.quill.setSelection(a.offset(this.quill.scroll),0,ge.sources.USER))}return!1}}}function OZ(r){if(typeof r=="string"||typeof r=="number")r={key:r};else if(typeof r=="object")r=Qs(r);else return null;return r.shortKey&&(r[zZ]=r.shortKey,delete r.shortKey),r}function yd(r){let{quill:e,range:t}=r,i=e.getLines(t),n={};if(i.length>1){let s=i[0].formats(),a=i[i.length-1].formats();n=Mi.AttributeMap.diff(a,s)||{}}e.deleteText(t,ge.sources.USER),Object.keys(n).length>0&&e.formatLine(t.index,1,n,ge.sources.USER),e.setSelection(t.index,ge.sources.SILENT)}function BZ(r,e,t,i){return e.prev==null&&e.next==null?t.prev==null&&t.next==null?i===0?-1:1:t.prev==null?-1:1:e.prev==null?-1:e.next==null?1:null}var RZ=/font-weight:\s*normal/,PZ=["P","OL","UL"],AS=r=>r&&PZ.includes(r.tagName),_Z=r=>{Array.from(r.querySelectorAll("br")).filter(e=>AS(e.previousElementSibling)&&AS(e.nextElementSibling)).forEach(e=>{var t;(t=e.parentNode)==null||t.removeChild(e)})},qZ=r=>{Array.from(r.querySelectorAll('b[style*="font-weight"]')).filter(e=>{var t;return(t=e.getAttribute("style"))==null?void 0:t.match(RZ)}).forEach(e=>{var i;let t=r.createDocumentFragment();t.append(...e.childNodes),(i=e.parentNode)==null||i.replaceChild(t,e)})};function m5(r){r.querySelector('[id^="docs-internal-guid-"]')&&(qZ(r),_Z(r))}var UZ=/\bmso-list:[^;]*ignore/i,HZ=/\bmso-list:[^;]*\bl(\d+)/i,jZ=/\bmso-list:[^;]*\blevel(\d+)/i,GZ=(r,e)=>{let t=r.getAttribute("style"),i=t==null?void 0:t.match(HZ);if(!i)return null;let n=Number(i[1]),s=t==null?void 0:t.match(jZ),a=s?Number(s[1]):1,o=new RegExp(`@list l${n}:level${a}\\s*\\{[^\\}]*mso-level-number-format:\\s*([\\w-]+)`,"i"),l=e.match(o),h=l&&l[1]==="bullet"?"bullet":"ordered";return{id:n,indent:a,type:h,element:r}},WZ=r=>{var a,o;let e=Array.from(r.querySelectorAll("[style*=mso-list]")),t=[],i=[];e.forEach(l=>{(l.getAttribute("style")||"").match(UZ)?t.push(l):i.push(l)}),t.forEach(l=>{var h;return(h=l.parentNode)==null?void 0:h.removeChild(l)});let n=r.documentElement.innerHTML,s=i.map(l=>GZ(l,n)).filter(l=>l);for(;s.length;){let l=[],h=s.shift();for(;h;)l.push(h),h=s.length&&((a=s[0])==null?void 0:a.element)===h.element.nextElementSibling&&s[0].id===h.id?s.shift():null;let c=document.createElement("ul");l.forEach(f=>{let m=document.createElement("li");m.setAttribute("data-list",f.type),f.indent>1&&m.setAttribute("class",`ql-indent-${f.indent-1}`),m.innerHTML=f.element.innerHTML,c.appendChild(m)});let u=(o=l[0])==null?void 0:o.element,{parentNode:d}=u!=null?u:{};u&&(d==null||d.replaceChild(c,u)),l.slice(1).forEach(f=>{let{element:m}=f;d==null||d.removeChild(m)})}};function p5(r){r.documentElement.getAttribute("xmlns:w")==="urn:schemas-microsoft-com:office:word"&&WZ(r)}var YZ=[p5,m5],VZ=r=>{r.documentElement&&YZ.forEach(e=>{e(r)})},ES=VZ;var KZ=zn("quill:clipboard"),QZ=[[Node.TEXT_NODE,oJ],[Node.TEXT_NODE,SS],["br",eJ],[Node.ELEMENT_NODE,SS],[Node.ELEMENT_NODE,$Z],[Node.ELEMENT_NODE,JZ],[Node.ELEMENT_NODE,sJ],["li",iJ],["ol, ul",nJ],["pre",tJ],["tr",aJ],["b",g5("bold")],["i",g5("italic")],["strike",g5("strike")],["style",rJ]],XZ=[gS,E3].reduce((r,e)=>(r[e.keyName]=e,r),{}),CS=[A3,vd,gd,C3,S3,T3].reduce((r,e)=>(r[e.keyName]=e,r),{}),xd=class extends zr{constructor(e,t){var i;super(e,t),this.quill.root.addEventListener("copy",n=>this.onCaptureCopy(n,!1)),this.quill.root.addEventListener("cut",n=>this.onCaptureCopy(n,!0)),this.quill.root.addEventListener("paste",this.onCapturePaste.bind(this)),this.matchers=[],QZ.concat((i=this.options.matchers)!=null?i:[]).forEach(n=>{let[s,a]=n;this.addMatcher(s,a)})}addMatcher(e,t){this.matchers.push([e,t])}convert(e){let{html:t,text:i}=e,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(n[qr.blotName])return new An.default().insert(i||"",{[qr.blotName]:n[qr.blotName]});if(!t)return new An.default().insert(i||"",n);let s=this.convertHTML(t);return bd(s,` +`)&&(s.ops[s.ops.length-1].attributes==null||n.table)?s.compose(new An.default().retain(s.length()-1).delete(1)):s}normalizeHTML(e){ES(e)}convertHTML(e){let t=new DOMParser().parseFromString(e,"text/html");this.normalizeHTML(t);let i=t.body,n=new WeakMap,[s,a]=this.prepareMatching(i,n);return D3(this.quill.scroll,i,s,a,n)}dangerouslyPasteHTML(e,t){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ge.sources.API;if(typeof e=="string"){let n=this.convert({html:e,text:""});this.quill.setContents(n,t),this.quill.setSelection(0,ge.sources.SILENT)}else{let n=this.convert({html:t,text:""});this.quill.updateContents(new An.default().retain(e).concat(n),i),this.quill.setSelection(e+n.length(),ge.sources.SILENT)}}onCaptureCopy(e){var a,o;let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(e.defaultPrevented)return;e.preventDefault();let[i]=this.quill.selection.getRange();if(i==null)return;let{html:n,text:s}=this.onCopy(i,t);(a=e.clipboardData)==null||a.setData("text/plain",s),(o=e.clipboardData)==null||o.setData("text/html",n),t&&yd({range:i,quill:this.quill})}normalizeURIList(e){return e.split(/\r?\n/).filter(t=>t[0]!=="#").join(` +`)}onCapturePaste(e){var a,o,l,h,c;if(e.defaultPrevented||!this.quill.isEnabled())return;e.preventDefault();let t=this.quill.getSelection(!0);if(t==null)return;let i=(a=e.clipboardData)==null?void 0:a.getData("text/html"),n=(o=e.clipboardData)==null?void 0:o.getData("text/plain");if(!i&&!n){let u=(l=e.clipboardData)==null?void 0:l.getData("text/uri-list");u&&(n=this.normalizeURIList(u))}let s=Array.from(((h=e.clipboardData)==null?void 0:h.files)||[]);if(!i&&s.length>0){this.quill.uploader.upload(t,s);return}if(i&&s.length>0){let u=new DOMParser().parseFromString(i,"text/html");if(u.body.childElementCount===1&&((c=u.body.firstElementChild)==null?void 0:c.tagName)==="IMG"){this.quill.uploader.upload(t,s);return}}this.onPaste(t,{html:i,text:n})}onCopy(e){let t=this.quill.getText(e);return{html:this.quill.getSemanticHTML(e),text:t}}onPaste(e,t){let{text:i,html:n}=t,s=this.quill.getFormat(e.index),a=this.convert({text:i,html:n},s);KZ.log("onPaste",a,{text:i,html:n});let o=new An.default().retain(e.index).delete(e.length).concat(a);this.quill.updateContents(o,ge.sources.USER),this.quill.setSelection(o.length()-e.length,ge.sources.SILENT),this.quill.scrollSelectionIntoView()}prepareMatching(e,t){let i=[],n=[];return this.matchers.forEach(s=>{let[a,o]=s;switch(a){case Node.TEXT_NODE:n.push(o);break;case Node.ELEMENT_NODE:i.push(o);break;default:Array.from(e.querySelectorAll(a)).forEach(l=>{if(t.has(l)){let h=t.get(l);h==null||h.push(o)}else t.set(l,[o])});break}}),[i,n]}};Se(xd,"DEFAULTS",{matchers:[]});function r0(r,e,t,i){return i.query(e)?r.reduce((n,s)=>{if(!s.insert)return n;if(s.attributes&&s.attributes[e])return n.push(s);let a=t?{[e]:t}:{};return n.insert(s.insert,{...a,...s.attributes})},new An.default):r}function bd(r,e){let t="";for(let i=r.ops.length-1;i>=0&&t.lengtha(e,s,r),new An.default):e.nodeType===e.ELEMENT_NODE?Array.from(e.childNodes||[]).reduce((s,a)=>{let o=D3(r,a,t,i,n);return a.nodeType===e.ELEMENT_NODE&&(o=t.reduce((l,h)=>h(a,l,r),o),o=(n.get(a)||[]).reduce((l,h)=>h(a,l,r),o)),s.concat(o)},new An.default):new An.default}function g5(r){return(e,t,i)=>r0(t,r,!0,i)}function JZ(r,e,t){let i=Vi.keys(r),n=Vr.keys(r),s=xn.keys(r),a={};return i.concat(n).concat(s).forEach(o=>{let l=t.query(o,ze.ATTRIBUTE);l!=null&&(a[l.attrName]=l.value(r),a[l.attrName])||(l=XZ[o],l!=null&&(l.attrName===o||l.keyName===o)&&(a[l.attrName]=l.value(r)||void 0),l=CS[o],l!=null&&(l.attrName===o||l.keyName===o)&&(l=CS[o],a[l.attrName]=l.value(r)||void 0))}),Object.entries(a).reduce((o,l)=>{let[h,c]=l;return r0(o,h,c,t)},e)}function $Z(r,e,t){let i=t.query(r);if(i==null)return e;if(i.prototype instanceof Nr){let n={},s=i.value(r);if(s!=null)return n[i.blotName]=s,new An.default().insert(n,i.formats(r,t))}else if(i.prototype instanceof Gl&&!bd(e,` +`)&&e.insert(` +`),"blotName"in i&&"formats"in i&&typeof i.formats=="function")return r0(e,i.blotName,i.formats(r,t),t);return e}function eJ(r,e){return bd(e,` +`)||e.insert(` +`),e}function tJ(r,e,t){let i=t.query("code-block"),n=i&&"formats"in i&&typeof i.formats=="function"?i.formats(r,t):!0;return r0(e,"code-block",n,t)}function rJ(){return new An.default}function iJ(r,e,t){let i=t.query(r);if(i==null||i.blotName!=="list"||!bd(e,` +`))return e;let n=-1,s=r.parentNode;for(;s!=null;)["OL","UL"].includes(s.tagName)&&(n+=1),s=s.parentNode;return n<=0?e:e.reduce((a,o)=>o.insert?o.attributes&&typeof o.attributes.indent=="number"?a.push(o):a.insert(o.insert,{indent:n,...o.attributes||{}}):a,new An.default)}function nJ(r,e,t){let i=r,n=i.tagName==="OL"?"ordered":"bullet",s=i.getAttribute("data-checked");return s&&(n=s==="true"?"checked":"unchecked"),r0(e,"list",n,t)}function SS(r,e,t){if(!bd(e,` +`)){if(Uo(r,t)&&(r.childNodes.length>0||r instanceof HTMLParagraphElement))return e.insert(` +`);if(e.length()>0&&r.nextSibling){let i=r.nextSibling;for(;i!=null;){if(Uo(i,t))return e.insert(` +`);let n=t.query(i);if(n&&n.prototype instanceof ii)return e.insert(` +`);i=i.firstChild}}}return e}function sJ(r,e,t){var s;let i={},n=r.style||{};return n.fontStyle==="italic"&&(i.italic=!0),n.textDecoration==="underline"&&(i.underline=!0),n.textDecoration==="line-through"&&(i.strike=!0),((s=n.fontWeight)!=null&&s.startsWith("bold")||parseInt(n.fontWeight,10)>=700)&&(i.bold=!0),e=Object.entries(i).reduce((a,o)=>{let[l,h]=o;return r0(a,l,h,t)},e),parseFloat(n.textIndent||0)>0?new An.default().insert(" ").concat(e):e}function aJ(r,e,t){var n,s;let i=((n=r.parentElement)==null?void 0:n.tagName)==="TABLE"?r.parentElement:(s=r.parentElement)==null?void 0:s.parentElement;if(i!=null){let o=Array.from(i.querySelectorAll("tr")).indexOf(r)+1;return r0(e,"table",o,t)}return e}function oJ(r,e,t){var n;let i=r.data;if(((n=r.parentElement)==null?void 0:n.tagName)==="O:P")return e.insert(i.trim());if(!TS(r)){if(i.trim().length===0&&i.includes(` +`)&&!ZZ(r,t))return e;i=i.replace(/[^\S\u00a0]/g," "),i=i.replace(/ {2,}/g," "),(r.previousSibling==null&&r.parentElement!=null&&Uo(r.parentElement,t)||r.previousSibling instanceof Element&&Uo(r.previousSibling,t))&&(i=i.replace(/^ /,"")),(r.nextSibling==null&&r.parentElement!=null&&Uo(r.parentElement,t)||r.nextSibling instanceof Element&&Uo(r.nextSibling,t))&&(i=i.replace(/ $/,"")),i=i.replaceAll("\xA0"," ")}return e.insert(i)}var wd=class extends zr{constructor(t,i){super(t,i);Se(this,"lastRecorded",0);Se(this,"ignoreChange",!1);Se(this,"stack",{undo:[],redo:[]});Se(this,"currentRange",null);this.quill.on(ge.events.EDITOR_CHANGE,(n,s,a,o)=>{n===ge.events.SELECTION_CHANGE?s&&o!==ge.sources.SILENT&&(this.currentRange=s):n===ge.events.TEXT_CHANGE&&(this.ignoreChange||(!this.options.userOnly||o===ge.sources.USER?this.record(s,a):this.transform(s)),this.currentRange=v5(this.currentRange,s))}),this.quill.keyboard.addBinding({key:"z",shortKey:!0},this.undo.bind(this)),this.quill.keyboard.addBinding({key:["z","Z"],shortKey:!0,shiftKey:!0},this.redo.bind(this)),/Win/i.test(navigator.platform)&&this.quill.keyboard.addBinding({key:"y",shortKey:!0},this.redo.bind(this)),this.quill.root.addEventListener("beforeinput",n=>{n.inputType==="historyUndo"?(this.undo(),n.preventDefault()):n.inputType==="historyRedo"&&(this.redo(),n.preventDefault())})}change(t,i){if(this.stack[t].length===0)return;let n=this.stack[t].pop();if(!n)return;let s=this.quill.getContents(),a=n.delta.invert(s);this.stack[i].push({delta:a,range:v5(n.range,a)}),this.lastRecorded=0,this.ignoreChange=!0,this.quill.updateContents(n.delta,ge.sources.USER),this.ignoreChange=!1,this.restoreSelection(n)}clear(){this.stack={undo:[],redo:[]}}cutoff(){this.lastRecorded=0}record(t,i){if(t.ops.length===0)return;this.stack.redo=[];let n=t.invert(i),s=this.currentRange,a=Date.now();if(this.lastRecorded+this.options.delay>a&&this.stack.undo.length>0){let o=this.stack.undo.pop();o&&(n=n.compose(o.delta),s=o.range)}else this.lastRecorded=a;n.length()!==0&&(this.stack.undo.push({delta:n,range:s}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift())}redo(){this.change("redo","undo")}transform(t){MS(this.stack.undo,t),MS(this.stack.redo,t)}undo(){this.change("undo","redo")}restoreSelection(t){if(t.range)this.quill.setSelection(t.range,ge.sources.USER);else{let i=hJ(this.quill.scroll,t.delta);this.quill.setSelection(i,ge.sources.USER)}}};Se(wd,"DEFAULTS",{delay:1e3,maxStack:100,userOnly:!1});function MS(r,e){let t=e;for(let i=r.length-1;i>=0;i-=1){let n=r[i];r[i]={delta:t.transform(n.delta,!0),range:n.range&&v5(n.range,t)},t=n.delta.transform(t),r[i].delta.length()===0&&r.splice(i,1)}}function lJ(r,e){let t=e.ops[e.ops.length-1];return t==null?!1:t.insert!=null?typeof t.insert=="string"&&t.insert.endsWith(` +`):t.attributes!=null?Object.keys(t.attributes).some(i=>r.query(i,ze.BLOCK)!=null):!1}function hJ(r,e){let t=e.reduce((n,s)=>n+(s.delete||0),0),i=e.length()-t;return lJ(r,e)&&(i-=1),i}function v5(r,e){if(!r)return r;let t=e.transformPosition(r.index),i=e.transformPosition(r.index+r.length);return{index:t,length:i-t}}var kS=mr(bn(),1);var N3=class extends zr{constructor(e,t){super(e,t),e.root.addEventListener("drop",i=>{var a;i.preventDefault();let n=null;if(document.caretRangeFromPoint)n=document.caretRangeFromPoint(i.clientX,i.clientY);else if(document.caretPositionFromPoint){let o=document.caretPositionFromPoint(i.clientX,i.clientY);n=document.createRange(),n.setStart(o.offsetNode,o.offset),n.setEnd(o.offsetNode,o.offset)}let s=n&&e.selection.normalizeNative(n);if(s){let o=e.selection.normalizedToRange(s);(a=i.dataTransfer)!=null&&a.files&&this.upload(o,i.dataTransfer.files)}})}upload(e,t){let i=[];Array.from(t).forEach(n=>{var s;n&&((s=this.options.mimetypes)!=null&&s.includes(n.type))&&i.push(n)}),i.length>0&&this.options.handler.call(this,e,i)}};N3.DEFAULTS={mimetypes:["image/png","image/jpeg"],handler(r,e){if(!this.quill.scroll.query("image"))return;let t=e.map(i=>new Promise(n=>{let s=new FileReader;s.onload=()=>{n(s.result)},s.readAsDataURL(i)}));Promise.all(t).then(i=>{let n=i.reduce((s,a)=>s.insert({image:a}),new kS.default().retain(r.index).delete(r.length));this.quill.updateContents(n,Oe.sources.USER),this.quill.setSelection(r.index+i.length,Oe.sources.SILENT)})}};var DS=N3;var Ho=mr(bn(),1);var NS=mr(bn(),1);var cJ=["insertText","insertReplacementText"],y5=class extends zr{constructor(e,t){super(e,t),e.root.addEventListener("beforeinput",i=>{this.handleBeforeInput(i)}),/Android/i.test(navigator.userAgent)||e.on(ge.events.COMPOSITION_BEFORE_START,()=>{this.handleCompositionStart()})}deleteRange(e){yd({range:e,quill:this.quill})}replaceText(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(e.length===0)return!1;if(t){let i=this.quill.getFormat(e.index,1);this.deleteRange(e),this.quill.updateContents(new NS.default().retain(e.index).insert(t,i),ge.sources.USER)}else this.deleteRange(e);return this.quill.setSelection(e.index+t.length,0,ge.sources.SILENT),!0}handleBeforeInput(e){if(this.quill.composition.isComposing||e.defaultPrevented||!cJ.includes(e.inputType))return;let t=e.getTargetRanges?e.getTargetRanges()[0]:null;if(!t||t.collapsed===!0)return;let i=uJ(e);if(i==null)return;let n=this.quill.selection.normalizeNative(t),s=n?this.quill.selection.normalizedToRange(n):null;s&&this.replaceText(s,i)&&e.preventDefault()}handleCompositionStart(){let e=this.quill.getSelection();e&&this.replaceText(e)}};function uJ(r){var e;return typeof r.data=="string"?r.data:(e=r.dataTransfer)!=null&&e.types.includes("text/plain")?r.dataTransfer.getData("text/plain"):null}var FS=y5;var dJ=/Mac/i.test(navigator.platform),fJ=100,mJ=r=>!!(r.key==="ArrowLeft"||r.key==="ArrowRight"||r.key==="ArrowUp"||r.key==="ArrowDown"||r.key==="Home"||dJ&&r.key==="a"&&r.ctrlKey===!0),x5=class extends zr{constructor(t,i){super(t,i);Se(this,"isListening",!1);Se(this,"selectionChangeDeadline",0);this.handleArrowKeys(),this.handleNavigationShortcuts()}handleArrowKeys(){this.quill.keyboard.addBinding({key:["ArrowLeft","ArrowRight"],offset:0,shiftKey:null,handler(t,i){let{line:n,event:s}=i;if(!(n instanceof yn)||!n.uiNode)return!0;let a=getComputedStyle(n.domNode).direction==="rtl";return a&&s.key!=="ArrowRight"||!a&&s.key!=="ArrowLeft"?!0:(this.quill.setSelection(t.index-1,t.length+(s.shiftKey?1:0),ge.sources.USER),!1)}})}handleNavigationShortcuts(){this.quill.root.addEventListener("keydown",t=>{!t.defaultPrevented&&mJ(t)&&this.ensureListeningToSelectionChange()})}ensureListeningToSelectionChange(){if(this.selectionChangeDeadline=Date.now()+fJ,this.isListening)return;this.isListening=!0;let t=()=>{this.isListening=!1,Date.now()<=this.selectionChangeDeadline&&this.handleSelectionChange()};document.addEventListener("selectionchange",t,{once:!0})}handleSelectionChange(){let t=document.getSelection();if(!t)return;let i=t.getRangeAt(0);if(i.collapsed!==!0||i.startOffset!==0)return;let n=this.quill.scroll.find(i.startContainer);if(!(n instanceof yn)||!n.uiNode)return;let s=document.createRange();s.setStartAfter(n.uiNode),s.setEndAfter(n.uiNode),t.removeAllRanges(),t.addRange(s)}},IS=x5;ge.register({"blots/block":ar,"blots/block/embed":ii,"blots/break":Ci,"blots/container":ts,"blots/cursor":Po,"blots/embed":jh,"blots/inline":Si,"blots/scroll":pS,"blots/text":_r,"modules/clipboard":xd,"modules/history":wd,"modules/keyboard":t0,"modules/uploader":DS,"modules/input":FS,"modules/uiNode":IS});var F3=ge;var b5=class extends Vr{add(e,t){let i=0;if(t==="+1"||t==="-1"){let n=this.value(e)||0;i=t==="+1"?n+1:n-1}else typeof t=="number"&&(i=t);return i===0?(this.remove(e),!0):super.add(e,i.toString())}canAdd(e,t){return super.canAdd(e,t)||super.canAdd(e,parseInt(t,10))}value(e){return parseInt(super.value(e),10)||void 0}},pJ=new b5("indent","ql-indent",{scope:ze.BLOCK,whitelist:[1,2,3,4,5,6,7,8]}),zS=pJ;var Ad=class extends ar{};Se(Ad,"blotName","blockquote"),Se(Ad,"tagName","blockquote");var LS=Ad;var Ed=class extends ar{static formats(e){return this.tagName.indexOf(e.tagName)+1}};Se(Ed,"blotName","header"),Se(Ed,"tagName",["H1","H2","H3","H4","H5","H6"]);var OS=Ed;var i0=class extends ts{};i0.blotName="list-container";i0.tagName="OL";var jo=class extends ar{static create(e){let t=super.create();return t.setAttribute("data-list",e),t}static formats(e){return e.getAttribute("data-list")||void 0}static register(){ge.register(i0)}constructor(e,t){super(e,t);let i=t.ownerDocument.createElement("span"),n=s=>{if(!e.isEnabled())return;let a=this.statics.formats(t,e);a==="checked"?(this.format("list","unchecked"),s.preventDefault()):a==="unchecked"&&(this.format("list","checked"),s.preventDefault())};i.addEventListener("mousedown",n),i.addEventListener("touchstart",n),this.attachUI(i)}format(e,t){e===this.statics.blotName&&t?this.domNode.setAttribute("data-list",t):super.format(e,t)}};jo.blotName="list";jo.tagName="LI";i0.allowedChildren=[jo];jo.requiredContainer=i0;var Cd=class extends Si{static create(){return super.create()}static formats(){return!0}optimize(e){super.optimize(e),this.domNode.tagName!==this.statics.tagName[0]&&this.replaceWith(this.statics.blotName)}};Se(Cd,"blotName","bold"),Se(Cd,"tagName",["STRONG","B"]);var Kh=Cd;var Sd=class extends Kh{};Se(Sd,"blotName","italic"),Se(Sd,"tagName",["EM","I"]);var BS=Sd;var Ln=class extends Si{static create(e){let t=super.create(e);return t.setAttribute("href",this.sanitize(e)),t.setAttribute("rel","noopener noreferrer"),t.setAttribute("target","_blank"),t}static formats(e){return e.getAttribute("href")}static sanitize(e){return w5(e,this.PROTOCOL_WHITELIST)?e:this.SANITIZED_URL}format(e,t){e!==this.statics.blotName||!t?super.format(e,t):this.domNode.setAttribute("href",this.constructor.sanitize(t))}};Se(Ln,"blotName","link"),Se(Ln,"tagName","A"),Se(Ln,"SANITIZED_URL","about:blank"),Se(Ln,"PROTOCOL_WHITELIST",["http","https","mailto","tel","sms"]);function w5(r,e){let t=document.createElement("a");t.href=r;let i=t.href.slice(0,t.href.indexOf(":"));return e.indexOf(i)>-1}var Td=class extends Si{static create(e){return e==="super"?document.createElement("sup"):e==="sub"?document.createElement("sub"):super.create(e)}static formats(e){if(e.tagName==="SUB")return"sub";if(e.tagName==="SUP")return"super"}};Se(Td,"blotName","script"),Se(Td,"tagName",["SUB","SUP"]);var RS=Td;var Md=class extends Kh{};Se(Md,"blotName","strike"),Se(Md,"tagName",["S","STRIKE"]);var PS=Md;var kd=class extends Si{};Se(kd,"blotName","underline"),Se(kd,"tagName","U");var _S=kd;var Qh=class extends jh{static create(e){if(window.katex==null)throw new Error("Formula module requires KaTeX.");let t=super.create(e);return typeof e=="string"&&(window.katex.render(e,t,{throwOnError:!1,errorColor:"#f00"}),t.setAttribute("data-value",e)),t}static value(e){return e.getAttribute("data-value")}html(){let{formula:e}=this.value();return`${e}`}};Se(Qh,"blotName","formula"),Se(Qh,"className","ql-formula"),Se(Qh,"tagName","SPAN");var qS=Qh;var US=["alt","height","width"],Dd=class extends Nr{static create(e){let t=super.create(e);return typeof e=="string"&&t.setAttribute("src",this.sanitize(e)),t}static formats(e){return US.reduce((t,i)=>(e.hasAttribute(i)&&(t[i]=e.getAttribute(i)),t),{})}static match(e){return/\.(jpe?g|gif|png)$/.test(e)||/^data:image\/.+;base64/.test(e)}static sanitize(e){return w5(e,["http","https","data"])?e:"//:0"}static value(e){return e.getAttribute("src")}format(e,t){US.indexOf(e)>-1?t?this.domNode.setAttribute(e,t):this.domNode.removeAttribute(e):super.format(e,t)}};Se(Dd,"blotName","image"),Se(Dd,"tagName","IMG");var HS=Dd;var jS=["height","width"],Xh=class extends ii{static create(e){let t=super.create(e);return t.setAttribute("frameborder","0"),t.setAttribute("allowfullscreen","true"),t.setAttribute("src",this.sanitize(e)),t}static formats(e){return jS.reduce((t,i)=>(e.hasAttribute(i)&&(t[i]=e.getAttribute(i)),t),{})}static sanitize(e){return Ln.sanitize(e)}static value(e){return e.getAttribute("src")}format(e,t){jS.indexOf(e)>-1?t?this.domNode.setAttribute(e,t):this.domNode.removeAttribute(e):super.format(e,t)}html(){let{video:e}=this.value();return`${e}`}};Se(Xh,"blotName","video"),Se(Xh,"className","ql-video"),Se(Xh,"tagName","IFRAME");var GS=Xh;var I3=mr(bn(),1);var Nd=new Vr("code-token","hljs",{scope:ze.INLINE}),Ts=class extends Si{static formats(e,t){for(;e!=null&&e!==t.domNode;){if(e.classList&&e.classList.contains(qr.className))return super.formats(e,t);e=e.parentNode}}constructor(e,t,i){super(e,t,i),Nd.add(this.domNode,i)}format(e,t){e!==Ts.blotName?super.format(e,t):t?Nd.add(this.domNode,t):(Nd.remove(this.domNode),this.domNode.classList.remove(this.statics.className))}optimize(){super.optimize(...arguments),Nd.value(this.domNode)||this.unwrap()}};Ts.blotName="code-token";Ts.className="ql-token";var En=class extends qr{static create(e){let t=super.create(e);return typeof e=="string"&&t.setAttribute("data-language",e),t}static formats(e){return e.getAttribute("data-language")||"plain"}static register(){}format(e,t){e===this.statics.blotName&&t?this.domNode.setAttribute("data-language",t):super.format(e,t)}replaceWith(e,t){return this.formatAt(0,this.length(),Ts.blotName,!1),super.replaceWith(e,t)}},n0=class extends Zs{attach(){super.attach(),this.forceNext=!1,this.scroll.emitMount(this)}format(e,t){e===En.blotName&&(this.forceNext=!0,this.children.forEach(i=>{i.format(e,t)}))}formatAt(e,t,i,n){i===En.blotName&&(this.forceNext=!0),super.formatAt(e,t,i,n)}highlight(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.children.head==null)return;let n=`${Array.from(this.domNode.childNodes).filter(a=>a!==this.uiNode).map(a=>a.textContent).join(` +`)} +`,s=En.formats(this.children.head.domNode);if(t||this.forceNext||this.cachedText!==n){if(n.trim().length>0||this.cachedText==null){let a=this.children.reduce((l,h)=>l.concat(Hg(h,!1)),new I3.default),o=e(n,s);a.diff(o).reduce((l,h)=>{let{retain:c,attributes:u}=h;return c?(u&&Object.keys(u).forEach(d=>{[En.blotName,Ts.blotName].includes(d)&&this.formatAt(l,c,d,u[d])}),l+c):l},0)}this.cachedText=n,this.forceNext=!1}}html(e,t){let[i]=this.children.find(e);return`
    +${$l(this.code(e,t))}
    +
    `}optimize(e){if(super.optimize(e),this.parent!=null&&this.children.head!=null&&this.uiNode!=null){let t=En.formats(this.children.head.domNode);t!==this.uiNode.value&&(this.uiNode.value=t)}}};n0.allowedChildren=[En];En.requiredContainer=n0;En.allowedChildren=[Ts,Po,_r,Ci];var gJ=(r,e,t)=>{if(typeof r.versionString=="string"){let i=r.versionString.split(".")[0];if(parseInt(i,10)>=11)return r.highlight(t,{language:e}).value}return r.highlight(e,t).value},Fd=class extends zr{static register(){ge.register(Ts,!0),ge.register(En,!0),ge.register(n0,!0)}constructor(e,t){if(super(e,t),this.options.hljs==null)throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");this.languages=this.options.languages.reduce((i,n)=>{let{key:s}=n;return i[s]=!0,i},{}),this.highlightBlot=this.highlightBlot.bind(this),this.initListener(),this.initTimer()}initListener(){this.quill.on(ge.events.SCROLL_BLOT_MOUNT,e=>{if(!(e instanceof n0))return;let t=this.quill.root.ownerDocument.createElement("select");this.options.languages.forEach(i=>{let{key:n,label:s}=i,a=t.ownerDocument.createElement("option");a.textContent=s,a.setAttribute("value",n),t.appendChild(a)}),t.addEventListener("change",()=>{e.format(En.blotName,t.value),this.quill.root.focus(),this.highlight(e,!0)}),e.uiNode==null&&(e.attachUI(t),e.children.head&&(t.value=En.formats(e.children.head.domNode)))})}initTimer(){let e=null;this.quill.on(ge.events.SCROLL_OPTIMIZE,()=>{e&&clearTimeout(e),e=setTimeout(()=>{this.highlight(),e=null},this.options.interval)})}highlight(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:null,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(this.quill.selection.composing)return;this.quill.update(ge.sources.USER);let i=this.quill.getSelection();(e==null?this.quill.scroll.descendants(n0):[e]).forEach(s=>{s.highlight(this.highlightBlot,t)}),this.quill.update(ge.sources.SILENT),i!=null&&this.quill.setSelection(i,ge.sources.SILENT)}highlightBlot(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"plain";if(t=this.languages[t]?t:"plain",t==="plain")return $l(e).split(` +`).reduce((n,s,a)=>(a!==0&&n.insert(` +`,{[qr.blotName]:t}),n.insert(s)),new I3.default);let i=this.quill.root.ownerDocument.createElement("div");return i.classList.add(qr.className),i.innerHTML=gJ(this.options.hljs,t,e),D3(this.quill.scroll,i,[(n,s)=>{let a=Nd.value(n);return a?s.compose(new I3.default().retain(s.length(),{[Ts.blotName]:a})):s}],[(n,s)=>n.data.split(` +`).reduce((a,o,l)=>(l!==0&&a.insert(` +`,{[qr.blotName]:t}),a.insert(o)),s)],new WeakMap)}};Fd.DEFAULTS={hljs:(()=>window.hljs)(),interval:1e3,languages:[{key:"plain",label:"Plain"},{key:"bash",label:"Bash"},{key:"cpp",label:"C++"},{key:"cs",label:"C#"},{key:"css",label:"CSS"},{key:"diff",label:"Diff"},{key:"xml",label:"HTML/XML"},{key:"java",label:"Java"},{key:"javascript",label:"JavaScript"},{key:"markdown",label:"Markdown"},{key:"php",label:"PHP"},{key:"python",label:"Python"},{key:"ruby",label:"Ruby"},{key:"sql",label:"SQL"}]};var WS=mr(bn(),1);var A5=class extends ar{static create(e){let t=super.create();return e?t.setAttribute("data-row",e):t.setAttribute("data-row",z3()),t}static formats(e){if(e.hasAttribute("data-row"))return e.getAttribute("data-row")}cellOffset(){return this.parent?this.parent.children.indexOf(this):-1}format(e,t){e===A5.blotName&&t?this.domNode.setAttribute("data-row",t):super.format(e,t)}row(){return this.parent}rowOffset(){return this.row()?this.row().rowOffset():-1}table(){return this.row()&&this.row().table()}},Cn=A5;Se(Cn,"blotName","table"),Se(Cn,"tagName","TD");var is=class extends ts{checkMerge(){if(super.checkMerge()&&this.next.children.head!=null){let e=this.children.head.formats(),t=this.children.tail.formats(),i=this.next.children.head.formats(),n=this.next.children.tail.formats();return e.table===t.table&&e.table===i.table&&e.table===n.table}return!1}optimize(e){super.optimize(e),this.children.forEach(t=>{if(t.next==null)return;let i=t.formats(),n=t.next.formats();if(i.table!==n.table){let s=this.splitAfter(t);s&&s.optimize(),this.prev&&this.prev.optimize()}})}rowOffset(){return this.parent?this.parent.children.indexOf(this):-1}table(){return this.parent&&this.parent.parent}};Se(is,"blotName","table-row"),Se(is,"tagName","TR");var On=class extends ts{};Se(On,"blotName","table-body"),Se(On,"tagName","TBODY");var Wa=class extends ts{balanceCells(){let e=this.descendants(is),t=e.reduce((i,n)=>Math.max(n.children.length,i),0);e.forEach(i=>{new Array(t-i.children.length).fill(0).forEach(()=>{let n;i.children.head!=null&&(n=Cn.formats(i.children.head.domNode));let s=this.scroll.create(Cn.blotName,n);i.appendChild(s),s.optimize()})})}cells(e){return this.rows().map(t=>t.children.at(e))}deleteColumn(e){let[t]=this.descendant(On);t==null||t.children.head==null||t.children.forEach(i=>{let n=i.children.at(e);n!=null&&n.remove()})}insertColumn(e){let[t]=this.descendant(On);t==null||t.children.head==null||t.children.forEach(i=>{let n=i.children.at(e),s=Cn.formats(i.children.head.domNode),a=this.scroll.create(Cn.blotName,s);i.insertBefore(a,n)})}insertRow(e){let[t]=this.descendant(On);if(t==null||t.children.head==null)return;let i=z3(),n=this.scroll.create(is.blotName);t.children.head.children.forEach(()=>{let a=this.scroll.create(Cn.blotName,i);n.appendChild(a)});let s=t.children.at(e);t.insertBefore(n,s)}rows(){let e=this.children.head;return e==null?[]:e.children.map(t=>t)}};Se(Wa,"blotName","table-container"),Se(Wa,"tagName","TABLE");Wa.allowedChildren=[On];On.requiredContainer=Wa;On.allowedChildren=[is];is.requiredContainer=On;is.allowedChildren=[Cn];Cn.requiredContainer=is;function z3(){return`row-${Math.random().toString(36).slice(2,6)}`}var E5=class extends zr{static register(){ge.register(Cn),ge.register(is),ge.register(On),ge.register(Wa)}constructor(){super(...arguments),this.listenBalanceCells()}balanceTables(){this.quill.scroll.descendants(Wa).forEach(e=>{e.balanceCells()})}deleteColumn(){let[e,,t]=this.getTable();t!=null&&(e.deleteColumn(t.cellOffset()),this.quill.update(ge.sources.USER))}deleteRow(){let[,e]=this.getTable();e!=null&&(e.remove(),this.quill.update(ge.sources.USER))}deleteTable(){let[e]=this.getTable();if(e==null)return;let t=e.offset();e.remove(),this.quill.update(ge.sources.USER),this.quill.setSelection(t,ge.sources.SILENT)}getTable(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.quill.getSelection();if(e==null)return[null,null,null,-1];let[t,i]=this.quill.getLine(e.index);if(t==null||t.statics.blotName!==Cn.blotName)return[null,null,null,-1];let n=t.parent;return[n.parent.parent,n,t,i]}insertColumn(e){let t=this.quill.getSelection();if(!t)return;let[i,n,s]=this.getTable(t);if(s==null)return;let a=s.cellOffset();i.insertColumn(a+e),this.quill.update(ge.sources.USER);let o=n.rowOffset();e===0&&(o+=1),this.quill.setSelection(t.index+o,t.length,ge.sources.SILENT)}insertColumnLeft(){this.insertColumn(0)}insertColumnRight(){this.insertColumn(1)}insertRow(e){let t=this.quill.getSelection();if(!t)return;let[i,n,s]=this.getTable(t);if(s==null)return;let a=n.rowOffset();i.insertRow(a+e),this.quill.update(ge.sources.USER),e>0?this.quill.setSelection(t,ge.sources.SILENT):this.quill.setSelection(t.index+n.children.length,t.length,ge.sources.SILENT)}insertRowAbove(){this.insertRow(0)}insertRowBelow(){this.insertRow(1)}insertTable(e,t){let i=this.quill.getSelection();if(i==null)return;let n=new Array(e).fill(0).reduce(s=>{let a=new Array(t).fill(` +`).join("");return s.insert(a,{table:z3()})},new WS.default().retain(i.index));this.quill.updateContents(n,ge.sources.USER),this.quill.setSelection(i.index,ge.sources.SILENT),this.balanceTables()}listenBalanceCells(){this.quill.on(ge.events.SCROLL_OPTIMIZE,e=>{e.some(t=>["TD","TR","TBODY","TABLE"].includes(t.target.tagName)?(this.quill.once(ge.events.TEXT_CHANGE,(i,n,s)=>{s===ge.sources.USER&&this.balanceTables()}),!0):!1)})}},YS=E5;var QS=mr(bn(),1);var VS=zn("quill:toolbar"),Zh=class extends zr{constructor(e,t){var i,n;if(super(e,t),Array.isArray(this.options.container)){let s=document.createElement("div");s.setAttribute("role","toolbar"),vJ(s,this.options.container),(n=(i=e.container)==null?void 0:i.parentNode)==null||n.insertBefore(s,e.container),this.container=s}else typeof this.options.container=="string"?this.container=document.querySelector(this.options.container):this.container=this.options.container;if(!(this.container instanceof HTMLElement)){VS.error("Container required for toolbar",this.options);return}this.container.classList.add("ql-toolbar"),this.controls=[],this.handlers={},this.options.handlers&&Object.keys(this.options.handlers).forEach(s=>{var o;let a=(o=this.options.handlers)==null?void 0:o[s];a&&this.addHandler(s,a)}),Array.from(this.container.querySelectorAll("button, select")).forEach(s=>{this.attach(s)}),this.quill.on(ge.events.EDITOR_CHANGE,()=>{let[s]=this.quill.selection.getRange();this.update(s)})}addHandler(e,t){this.handlers[e]=t}attach(e){let t=Array.from(e.classList).find(n=>n.indexOf("ql-")===0);if(!t)return;if(t=t.slice(3),e.tagName==="BUTTON"&&e.setAttribute("type","button"),this.handlers[t]==null&&this.quill.scroll.query(t)==null){VS.warn("ignoring attaching to nonexistent format",t,e);return}let i=e.tagName==="SELECT"?"change":"click";e.addEventListener(i,n=>{let s;if(e.tagName==="SELECT"){if(e.selectedIndex<0)return;let o=e.options[e.selectedIndex];o.hasAttribute("selected")?s=!1:s=o.value||!1}else e.classList.contains("ql-active")?s=!1:s=e.value||!e.hasAttribute("value"),n.preventDefault();this.quill.focus();let[a]=this.quill.selection.getRange();if(this.handlers[t]!=null)this.handlers[t].call(this,s);else if(this.quill.scroll.query(t).prototype instanceof Nr){if(s=prompt(`Enter ${t}`),!s)return;this.quill.updateContents(new QS.default().retain(a.index).delete(a.length).insert({[t]:s}),ge.sources.USER)}else this.quill.format(t,s,ge.sources.USER);this.update(a)}),this.controls.push([t,e])}update(e){let t=e==null?{}:this.quill.getFormat(e);this.controls.forEach(i=>{let[n,s]=i;if(s.tagName==="SELECT"){let a=null;if(e==null)a=null;else if(t[n]==null)a=s.querySelector("option[selected]");else if(!Array.isArray(t[n])){let o=t[n];typeof o=="string"&&(o=o.replace(/"/g,'\\"')),a=s.querySelector(`option[value="${o}"]`)}a==null?(s.value="",s.selectedIndex=-1):a.selected=!0}else if(e==null)s.classList.remove("ql-active"),s.setAttribute("aria-pressed","false");else if(s.hasAttribute("value")){let a=t[n],o=a===s.getAttribute("value")||a!=null&&a.toString()===s.getAttribute("value")||a==null&&!s.getAttribute("value");s.classList.toggle("ql-active",o),s.setAttribute("aria-pressed",o.toString())}else{let a=t[n]!=null;s.classList.toggle("ql-active",a),s.setAttribute("aria-pressed",a.toString())}})}};Zh.DEFAULTS={};function KS(r,e,t){let i=document.createElement("button");i.setAttribute("type","button"),i.classList.add(`ql-${e}`),i.setAttribute("aria-pressed","false"),t!=null?(i.value=t,i.setAttribute("aria-label",`${e}: ${t}`)):i.setAttribute("aria-label",e),r.appendChild(i)}function vJ(r,e){Array.isArray(e[0])||(e=[e]),e.forEach(t=>{let i=document.createElement("span");i.classList.add("ql-formats"),t.forEach(n=>{if(typeof n=="string")KS(i,n);else{let s=Object.keys(n)[0],a=n[s];Array.isArray(a)?yJ(i,s,a):KS(i,s,a)}}),r.appendChild(i)})}function yJ(r,e,t){let i=document.createElement("select");i.classList.add(`ql-${e}`),t.forEach(n=>{let s=document.createElement("option");n!==!1?s.setAttribute("value",String(n)):s.setAttribute("selected","selected"),i.appendChild(s)}),r.appendChild(i)}Zh.DEFAULTS={container:null,handlers:{clean(){let r=this.quill.getSelection();if(r!=null)if(r.length===0){let e=this.quill.getFormat();Object.keys(e).forEach(t=>{this.quill.scroll.query(t,ze.INLINE)!=null&&this.quill.format(t,!1,ge.sources.USER)})}else this.quill.removeFormat(r.index,r.length,ge.sources.USER)},direction(r){let{align:e}=this.quill.getFormat();r==="rtl"&&e==null?this.quill.format("align","right",ge.sources.USER):!r&&e==="right"&&this.quill.format("align",!1,ge.sources.USER),this.quill.format("direction",r,ge.sources.USER)},indent(r){let e=this.quill.getSelection(),t=this.quill.getFormat(e),i=parseInt(t.indent||0,10);if(r==="+1"||r==="-1"){let n=r==="+1"?1:-1;t.direction==="rtl"&&(n*=-1),this.quill.format("indent",i+n,ge.sources.USER)}},link(r){r===!0&&(r=prompt("Enter link URL:")),this.quill.format("link",r,ge.sources.USER)},list(r){let e=this.quill.getSelection(),t=this.quill.getFormat(e);r==="check"?t.list==="checked"||t.list==="unchecked"?this.quill.format("list",!1,ge.sources.USER):this.quill.format("list","unchecked",ge.sources.USER):this.quill.format("list",r,ge.sources.USER)}}};var xJ='',bJ='',wJ='',AJ='',EJ='',CJ='',SJ='',TJ='',XS='',MJ='',kJ='',DJ='',NJ='',FJ='',IJ='',zJ='',LJ='',OJ='',BJ='',RJ='',PJ='',_J='',qJ='',UJ='',HJ='',jJ='',GJ='',WJ='',YJ='',VJ='',KJ='',QJ='',XJ='',Go={align:{"":xJ,center:bJ,right:wJ,justify:AJ},background:EJ,blockquote:CJ,bold:SJ,clean:TJ,code:XS,"code-block":XS,color:MJ,direction:{"":kJ,rtl:DJ},formula:NJ,header:{1:FJ,2:IJ,3:zJ,4:LJ,5:OJ,6:BJ},italic:RJ,image:PJ,indent:{"+1":_J,"-1":qJ},link:UJ,list:{bullet:HJ,check:jJ,ordered:GJ},script:{sub:WJ,super:YJ},strike:VJ,table:KJ,underline:QJ,video:XJ};var ZJ='',ZS=0;function JS(r,e){r.setAttribute(e,`${r.getAttribute(e)!=="true"}`)}var C5=class{constructor(e){this.select=e,this.container=document.createElement("span"),this.buildPicker(),this.select.style.display="none",this.select.parentNode.insertBefore(this.container,this.select),this.label.addEventListener("mousedown",()=>{this.togglePicker()}),this.label.addEventListener("keydown",t=>{switch(t.key){case"Enter":this.togglePicker();break;case"Escape":this.escape(),t.preventDefault();break;default:}}),this.select.addEventListener("change",this.update.bind(this))}togglePicker(){this.container.classList.toggle("ql-expanded"),JS(this.label,"aria-expanded"),JS(this.options,"aria-hidden")}buildItem(e){let t=document.createElement("span");t.tabIndex="0",t.setAttribute("role","button"),t.classList.add("ql-picker-item");let i=e.getAttribute("value");return i&&t.setAttribute("data-value",i),e.textContent&&t.setAttribute("data-label",e.textContent),t.addEventListener("click",()=>{this.selectItem(t,!0)}),t.addEventListener("keydown",n=>{switch(n.key){case"Enter":this.selectItem(t,!0),n.preventDefault();break;case"Escape":this.escape(),n.preventDefault();break;default:}}),t}buildLabel(){let e=document.createElement("span");return e.classList.add("ql-picker-label"),e.innerHTML=ZJ,e.tabIndex="0",e.setAttribute("role","button"),e.setAttribute("aria-expanded","false"),this.container.appendChild(e),e}buildOptions(){let e=document.createElement("span");e.classList.add("ql-picker-options"),e.setAttribute("aria-hidden","true"),e.tabIndex="-1",e.id=`ql-picker-options-${ZS}`,ZS+=1,this.label.setAttribute("aria-controls",e.id),this.options=e,Array.from(this.select.options).forEach(t=>{let i=this.buildItem(t);e.appendChild(i),t.selected===!0&&this.selectItem(i)}),this.container.appendChild(e)}buildPicker(){Array.from(this.select.attributes).forEach(e=>{this.container.setAttribute(e.name,e.value)}),this.container.classList.add("ql-picker"),this.label=this.buildLabel(),this.buildOptions()}escape(){this.close(),setTimeout(()=>this.label.focus(),1)}close(){this.container.classList.remove("ql-expanded"),this.label.setAttribute("aria-expanded","false"),this.options.setAttribute("aria-hidden","true")}selectItem(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=this.container.querySelector(".ql-selected");e!==i&&(i!=null&&i.classList.remove("ql-selected"),e!=null&&(e.classList.add("ql-selected"),this.select.selectedIndex=Array.from(e.parentNode.children).indexOf(e),e.hasAttribute("data-value")?this.label.setAttribute("data-value",e.getAttribute("data-value")):this.label.removeAttribute("data-value"),e.hasAttribute("data-label")?this.label.setAttribute("data-label",e.getAttribute("data-label")):this.label.removeAttribute("data-label"),t&&(this.select.dispatchEvent(new Event("change")),this.close())))}update(){let e;if(this.select.selectedIndex>-1){let i=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];e=this.select.options[this.select.selectedIndex],this.selectItem(i)}else this.selectItem(null);let t=e!=null&&e!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",t)}},Wo=C5;var S5=class extends Wo{constructor(e,t){super(e),this.label.innerHTML=t,this.container.classList.add("ql-color-picker"),Array.from(this.container.querySelectorAll(".ql-picker-item")).slice(0,7).forEach(i=>{i.classList.add("ql-primary")})}buildItem(e){let t=super.buildItem(e);return t.style.backgroundColor=e.getAttribute("value")||"",t}selectItem(e,t){super.selectItem(e,t);let i=this.label.querySelector(".ql-color-label"),n=e&&e.getAttribute("data-value")||"";i&&(i.tagName==="line"?i.style.stroke=n:i.style.fill=n)}},L3=S5;var T5=class extends Wo{constructor(e,t){super(e),this.container.classList.add("ql-icon-picker"),Array.from(this.container.querySelectorAll(".ql-picker-item")).forEach(i=>{i.innerHTML=t[i.getAttribute("data-value")||""]}),this.defaultItem=this.container.querySelector(".ql-selected"),this.selectItem(this.defaultItem)}selectItem(e,t){super.selectItem(e,t);let i=e||this.defaultItem;if(i!=null){if(this.label.innerHTML===i.innerHTML)return;this.label.innerHTML=i.innerHTML}}},O3=T5;var JJ=r=>{let{overflowY:e}=getComputedStyle(r,null);return e!=="visible"&&e!=="clip"},M5=class{constructor(e,t){this.quill=e,this.boundsContainer=t||document.body,this.root=e.addContainer("ql-tooltip"),this.root.innerHTML=this.constructor.TEMPLATE,JJ(this.quill.root)&&this.quill.root.addEventListener("scroll",()=>{this.root.style.marginTop=`${-1*this.quill.root.scrollTop}px`}),this.hide()}hide(){this.root.classList.add("ql-hidden")}position(e){let t=e.left+e.width/2-this.root.offsetWidth/2,i=e.bottom+this.quill.root.scrollTop;this.root.style.left=`${t}px`,this.root.style.top=`${i}px`,this.root.classList.remove("ql-flip");let n=this.boundsContainer.getBoundingClientRect(),s=this.root.getBoundingClientRect(),a=0;if(s.right>n.right&&(a=n.right-s.right,this.root.style.left=`${t+a}px`),s.leftn.bottom){let o=s.bottom-s.top,l=e.bottom-e.top+o;this.root.style.top=`${i-l}px`,this.root.classList.add("ql-flip")}return a}show(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}},B3=M5;var $J=[!1,"center","right","justify"],e$=["#000000","#e60000","#ff9900","#ffff00","#008a00","#0066cc","#9933ff","#ffffff","#facccc","#ffebcc","#ffffcc","#cce8cc","#cce0f5","#ebd6ff","#bbbbbb","#f06666","#ffc266","#ffff66","#66b966","#66a3e0","#c285ff","#888888","#a10000","#b26b00","#b2b200","#006100","#0047b2","#6b24b2","#444444","#5c0000","#663d00","#666600","#003700","#002966","#3d1466"],t$=[!1,"serif","monospace"],r$=["1","2","3",!1],i$=["small",!1,"large","huge"],Ya=class extends Gh{constructor(e,t){super(e,t);let i=n=>{if(!document.body.contains(e.root)){document.body.removeEventListener("click",i);return}this.tooltip!=null&&!this.tooltip.root.contains(n.target)&&document.activeElement!==this.tooltip.textbox&&!this.quill.hasFocus()&&this.tooltip.hide(),this.pickers!=null&&this.pickers.forEach(s=>{s.container.contains(n.target)||s.close()})};e.emitter.listenDOM("click",document.body,i)}addModule(e){let t=super.addModule(e);return e==="toolbar"&&this.extendToolbar(t),t}buildButtons(e,t){Array.from(e).forEach(i=>{(i.getAttribute("class")||"").split(/\s+/).forEach(s=>{if(s.startsWith("ql-")&&(s=s.slice(3),t[s]!=null))if(s==="direction")i.innerHTML=t[s][""]+t[s].rtl;else if(typeof t[s]=="string")i.innerHTML=t[s];else{let a=i.value||"";a!=null&&t[s][a]&&(i.innerHTML=t[s][a])}})})}buildPickers(e,t){this.pickers=Array.from(e).map(n=>{if(n.classList.contains("ql-align")&&(n.querySelector("option")==null&&Id(n,$J),typeof t.align=="object"))return new O3(n,t.align);if(n.classList.contains("ql-background")||n.classList.contains("ql-color")){let s=n.classList.contains("ql-background")?"background":"color";return n.querySelector("option")==null&&Id(n,e$,s==="background"?"#ffffff":"#000000"),new L3(n,t[s])}return n.querySelector("option")==null&&(n.classList.contains("ql-font")?Id(n,t$):n.classList.contains("ql-header")?Id(n,r$):n.classList.contains("ql-size")&&Id(n,i$)),new Wo(n)});let i=()=>{this.pickers.forEach(n=>{n.update()})};this.quill.on(Oe.events.EDITOR_CHANGE,i)}};Ya.DEFAULTS=vn({},Gh.DEFAULTS,{modules:{toolbar:{handlers:{formula(){this.quill.theme.tooltip.edit("formula")},image(){let r=this.container.querySelector("input.ql-image[type=file]");r==null&&(r=document.createElement("input"),r.setAttribute("type","file"),r.setAttribute("accept",this.quill.uploader.options.mimetypes.join(", ")),r.classList.add("ql-image"),r.addEventListener("change",()=>{let e=this.quill.getSelection(!0);this.quill.uploader.upload(e,r.files),r.value=""}),this.container.appendChild(r)),r.click()},video(){this.quill.theme.tooltip.edit("video")}}}}});var Jh=class extends B3{constructor(e,t){super(e,t),this.textbox=this.root.querySelector('input[type="text"]'),this.listen()}listen(){this.textbox.addEventListener("keydown",e=>{e.key==="Enter"?(this.save(),e.preventDefault()):e.key==="Escape"&&(this.cancel(),e.preventDefault())})}cancel(){this.hide(),this.restoreFocus()}edit(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"link",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),this.textbox==null)return;t!=null?this.textbox.value=t:e!==this.root.getAttribute("data-mode")&&(this.textbox.value="");let i=this.quill.getBounds(this.quill.selection.savedRange);i!=null&&this.position(i),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute(`data-${e}`)||""),this.root.setAttribute("data-mode",e)}restoreFocus(){this.quill.focus({preventScroll:!0})}save(){let{value:e}=this.textbox;switch(this.root.getAttribute("data-mode")){case"link":{let{scrollTop:t}=this.quill.root;this.linkRange?(this.quill.formatText(this.linkRange,"link",e,Oe.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",e,Oe.sources.USER)),this.quill.root.scrollTop=t;break}case"video":e=n$(e);case"formula":{if(!e)break;let t=this.quill.getSelection(!0);if(t!=null){let i=t.index+t.length;this.quill.insertEmbed(i,this.root.getAttribute("data-mode"),e,Oe.sources.USER),this.root.getAttribute("data-mode")==="formula"&&this.quill.insertText(i+1," ",Oe.sources.USER),this.quill.setSelection(i+2,Oe.sources.USER)}break}default:}this.textbox.value="",this.hide()}};function n$(r){let e=r.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||r.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);return e?`${e[1]||"https"}://www.youtube.com/embed/${e[2]}?showinfo=0`:(e=r.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/))?`${e[1]||"https"}://player.vimeo.com/video/${e[2]}/`:r}function Id(r,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;e.forEach(i=>{let n=document.createElement("option");i===t?n.setAttribute("selected","selected"):n.setAttribute("value",String(i)),r.appendChild(n)})}var s$=[["bold","italic","link"],[{header:1},{header:2},"blockquote"]],R3=class extends Jh{constructor(e,t){super(e,t),this.quill.on(Oe.events.EDITOR_CHANGE,(i,n,s,a)=>{if(i===Oe.events.SELECTION_CHANGE)if(n!=null&&n.length>0&&a===Oe.sources.USER){this.show(),this.root.style.left="0px",this.root.style.width="",this.root.style.width=`${this.root.offsetWidth}px`;let o=this.quill.getLines(n.index,n.length);if(o.length===1){let l=this.quill.getBounds(n);l!=null&&this.position(l)}else{let l=o[o.length-1],h=this.quill.getIndex(l),c=Math.min(l.length()-1,n.index+n.length-h),u=this.quill.getBounds(new Xi(h,c));u!=null&&this.position(u)}}else document.activeElement!==this.textbox&&this.quill.hasFocus()&&this.hide()})}listen(){super.listen(),this.root.querySelector(".ql-close").addEventListener("click",()=>{this.root.classList.remove("ql-editing")}),this.quill.on(Oe.events.SCROLL_OPTIMIZE,()=>{setTimeout(()=>{if(this.root.classList.contains("ql-hidden"))return;let e=this.quill.getSelection();if(e!=null){let t=this.quill.getBounds(e);t!=null&&this.position(t)}},1)})}cancel(){this.show()}position(e){let t=super.position(e),i=this.root.querySelector(".ql-tooltip-arrow");return i.style.marginLeft="",t!==0&&(i.style.marginLeft=`${-1*t-i.offsetWidth/2}px`),t}};Se(R3,"TEMPLATE",['','
    ','','',"
    "].join(""));var zd=class extends Ya{constructor(e,t){t.modules.toolbar!=null&&t.modules.toolbar.container==null&&(t.modules.toolbar.container=s$),super(e,t),this.quill.container.classList.add("ql-bubble")}extendToolbar(e){this.tooltip=new R3(this.quill,this.options.bounds),e.container!=null&&(this.tooltip.root.appendChild(e.container),this.buildButtons(e.container.querySelectorAll("button"),Go),this.buildPickers(e.container.querySelectorAll("select"),Go))}};zd.DEFAULTS=vn({},Ya.DEFAULTS,{modules:{toolbar:{handlers:{link(r){r?this.quill.theme.tooltip.edit():this.quill.format("link",!1,ge.sources.USER)}}}}});var a$=[[{header:["1","2","3",!1]}],["bold","italic","underline","link"],[{list:"ordered"},{list:"bullet"}],["clean"]],P3=class extends Jh{constructor(){super(...arguments);Se(this,"preview",this.root.querySelector("a.ql-preview"))}listen(){super.listen(),this.root.querySelector("a.ql-action").addEventListener("click",t=>{this.root.classList.contains("ql-editing")?this.save():this.edit("link",this.preview.textContent),t.preventDefault()}),this.root.querySelector("a.ql-remove").addEventListener("click",t=>{if(this.linkRange!=null){let i=this.linkRange;this.restoreFocus(),this.quill.formatText(i,"link",!1,Oe.sources.USER),delete this.linkRange}t.preventDefault(),this.hide()}),this.quill.on(Oe.events.SELECTION_CHANGE,(t,i,n)=>{if(t!=null){if(t.length===0&&n===Oe.sources.USER){let[s,a]=this.quill.scroll.descendant(Ln,t.index);if(s!=null){this.linkRange=new Xi(t.index-a,s.length());let o=Ln.formats(s.domNode);this.preview.textContent=o,this.preview.setAttribute("href",o),this.show();let l=this.quill.getBounds(this.linkRange);l!=null&&this.position(l);return}}else delete this.linkRange;this.hide()}})}show(){super.show(),this.root.removeAttribute("data-mode")}};Se(P3,"TEMPLATE",['','','',''].join(""));var _3=class extends Ya{constructor(e,t){t.modules.toolbar!=null&&t.modules.toolbar.container==null&&(t.modules.toolbar.container=a$),super(e,t),this.quill.container.classList.add("ql-snow")}extendToolbar(e){e.container!=null&&(e.container.classList.add("ql-snow"),this.buildButtons(e.container.querySelectorAll("button"),Go),this.buildPickers(e.container.querySelectorAll("select"),Go),this.tooltip=new P3(this.quill,this.options.bounds),e.container.querySelector(".ql-link")&&this.quill.keyboard.addBinding({key:"k",shortKey:!0},(t,i)=>{e.handlers.link.call(e,!i.format.link)}))}};_3.DEFAULTS=vn({},Ya.DEFAULTS,{modules:{toolbar:{handlers:{link(r){if(r){let e=this.quill.getSelection();if(e==null||e.length===0)return;let t=this.quill.getText(e);/^\S+@\S+\.\S+$/.test(t)&&t.indexOf("mailto:")!==0&&(t=`mailto:${t}`);let{tooltip:i}=this.quill.theme;i.edit("link",t)}else this.quill.format("link",!1,ge.sources.USER)}}}}});var $S=_3;F3.register({"attributors/attribute/direction":E3,"attributors/class/align":o5,"attributors/class/background":yS,"attributors/class/color":vS,"attributors/class/direction":h5,"attributors/class/font":u5,"attributors/class/size":d5,"attributors/style/align":A3,"attributors/style/background":vd,"attributors/style/color":gd,"attributors/style/direction":C3,"attributors/style/font":S3,"attributors/style/size":T3},!0);F3.register({"formats/align":o5,"formats/direction":h5,"formats/indent":zS,"formats/background":vd,"formats/color":gd,"formats/font":u5,"formats/size":d5,"formats/blockquote":LS,"formats/code-block":qr,"formats/header":OS,"formats/list":jo,"formats/bold":Kh,"formats/code":Vh,"formats/italic":BS,"formats/link":Ln,"formats/script":RS,"formats/strike":PS,"formats/underline":_S,"formats/formula":qS,"formats/image":HS,"formats/video":GS,"modules/syntax":Fd,"modules/table":YS,"modules/toolbar":Zh,"themes/bubble":zd,"themes/snow":$S,"ui/icons":Go,"ui/picker":Wo,"ui/icon-picker":O3,"ui/color-picker":L3,"ui/tooltip":B3},!0);var ni=F3;var eT=r=>` +@font-face { + font-family: 'KaTeX_AMS'; + src: url(${r}fonts/KaTeX_AMS-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_AMS-Regular.woff) format('woff'), url(${r}fonts/KaTeX_AMS-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Caligraphic'; + src: url(${r}fonts/KaTeX_Caligraphic-Bold.woff2) format('woff2'), url(${r}fonts/KaTeX_Caligraphic-Bold.woff) format('woff'), url(${r}fonts/KaTeX_Caligraphic-Bold.ttf) format('truetype'); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Caligraphic'; + src: url(${r}fonts/KaTeX_Caligraphic-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Caligraphic-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Caligraphic-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Fraktur'; + src: url(${r}fonts/KaTeX_Fraktur-Bold.woff2) format('woff2'), url(${r}fonts/KaTeX_Fraktur-Bold.woff) format('woff'), url(${r}fonts/KaTeX_Fraktur-Bold.ttf) format('truetype'); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Fraktur'; + src: url(${r}fonts/KaTeX_Fraktur-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Fraktur-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Fraktur-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Main'; + src: url(${r}fonts/KaTeX_Main-Bold.woff2) format('woff2'), url(${r}fonts/KaTeX_Main-Bold.woff) format('woff'), url(${r}fonts/KaTeX_Main-Bold.ttf) format('truetype'); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Main'; + src: url(${r}fonts/KaTeX_Main-BoldItalic.woff2) format('woff2'), url(${r}fonts/KaTeX_Main-BoldItalic.woff) format('woff'), url(${r}fonts/KaTeX_Main-BoldItalic.ttf) format('truetype'); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: 'KaTeX_Main'; + src: url(${r}fonts/KaTeX_Main-Italic.woff2) format('woff2'), url(${r}fonts/KaTeX_Main-Italic.woff) format('woff'), url(${r}fonts/KaTeX_Main-Italic.ttf) format('truetype'); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: 'KaTeX_Main'; + src: url(${r}fonts/KaTeX_Main-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Main-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Main-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Math'; + src: url(${r}fonts/KaTeX_Math-BoldItalic.woff2) format('woff2'), url(${r}fonts/KaTeX_Math-BoldItalic.woff) format('woff'), url(${r}fonts/KaTeX_Math-BoldItalic.ttf) format('truetype'); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: 'KaTeX_Math'; + src: url(${r}fonts/KaTeX_Math-Italic.woff2) format('woff2'), url(${r}fonts/KaTeX_Math-Italic.woff) format('woff'), url(${r}fonts/KaTeX_Math-Italic.ttf) format('truetype'); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: 'KaTeX_SansSerif'; + src: url(${r}fonts/KaTeX_SansSerif-Bold.woff2) format('woff2'), url(${r}fonts/KaTeX_SansSerif-Bold.woff) format('woff'), url(${r}fonts/KaTeX_SansSerif-Bold.ttf) format('truetype'); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_SansSerif'; + src: url(${r}fonts/KaTeX_SansSerif-Italic.woff2) format('woff2'), url(${r}fonts/KaTeX_SansSerif-Italic.woff) format('woff'), url(${r}fonts/KaTeX_SansSerif-Italic.ttf) format('truetype'); + font-weight: normal; + font-style: italic; +} +@font-face { + font-family: 'KaTeX_SansSerif'; + src: url(${r}fonts/KaTeX_SansSerif-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_SansSerif-Regular.woff) format('woff'), url(${r}fonts/KaTeX_SansSerif-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Script'; + src: url(${r}fonts/KaTeX_Script-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Script-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Script-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Size1'; + src: url(${r}fonts/KaTeX_Size1-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Size1-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Size1-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Size2'; + src: url(${r}fonts/KaTeX_Size2-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Size2-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Size2-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Size3'; + src: url(${r}fonts/KaTeX_Size3-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Size3-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Size3-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Size4'; + src: url(${r}fonts/KaTeX_Size4-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Size4-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Size4-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: 'KaTeX_Typewriter'; + src: url(${r}fonts/KaTeX_Typewriter-Regular.woff2) format('woff2'), url(${r}fonts/KaTeX_Typewriter-Regular.woff) format('woff'), url(${r}fonts/KaTeX_Typewriter-Regular.ttf) format('truetype'); + font-weight: normal; + font-style: normal; +} + `,tT=()=>` +.katex { + font: normal 1.21em KaTeX_Main, Times New Roman, serif; + line-height: 1.2; + text-indent: 0; + text-rendering: auto; +} +.katex * { + -ms-high-contrast-adjust: none !important; +} +.katex * { + border-color: currentColor; +} +.katex .katex-version::after { + content: "0.16.9"; +} +.katex .katex-mathml { + /* Accessibility hack to only show to screen readers + Found at: http://a11yproject.com/posts/how-to-hide-content/ */ + position: absolute; + clip: rect(1px, 1px, 1px, 1px); + padding: 0; + border: 0; + height: 1px; + width: 1px; + overflow: hidden; +} +.katex .katex-html { + /* +ewline is an empty block at top level, between .base elements */ +} +.katex .katex-html > .newline { + display: block; +} +.katex .base { + position: relative; + display: inline-block; + white-space: nowrap; + width: -webkit-min-content; + width: -moz-min-content; + width: min-content; +} +.katex .strut { + display: inline-block; +} +.katex .textbf { + font-weight: bold; +} +.katex .textit { + font-style: italic; +} +.katex .textrm { + font-family: KaTeX_Main; +} +.katex .textsf { + font-family: KaTeX_SansSerif; +} +.katex .texttt { + font-family: KaTeX_Typewriter; +} +.katex .mathnormal { + font-family: KaTeX_Math; + font-style: italic; +} +.katex .mathit { + font-family: KaTeX_Main; + font-style: italic; +} +.katex .mathrm { + font-style: normal; +} +.katex .mathbf { + font-family: KaTeX_Main; + font-weight: bold; +} +.katex .boldsymbol { + font-family: KaTeX_Math; + font-weight: bold; + font-style: italic; +} +.katex .amsrm { + font-family: KaTeX_AMS; +} +.katex .mathbb, +.katex .textbb { + font-family: KaTeX_AMS; +} +.katex .mathcal { + font-family: KaTeX_Caligraphic; +} +.katex .mathfrak, +.katex .textfrak { + font-family: KaTeX_Fraktur; +} +.katex .mathboldfrak, +.katex .textboldfrak { + font-family: KaTeX_Fraktur; + font-weight: bold; +} +.katex .mathtt { + font-family: KaTeX_Typewriter; +} +.katex .mathscr, +.katex .textscr { + font-family: KaTeX_Script; +} +.katex .mathsf, +.katex .textsf { + font-family: KaTeX_SansSerif; +} +.katex .mathboldsf, +.katex .textboldsf { + font-family: KaTeX_SansSerif; + font-weight: bold; +} +.katex .mathitsf, +.katex .textitsf { + font-family: KaTeX_SansSerif; + font-style: italic; +} +.katex .mainrm { + font-family: KaTeX_Main; + font-style: normal; +} +.katex .vlist-t { + display: inline-table; + table-layout: fixed; + border-collapse: collapse; +} +.katex .vlist-r { + display: table-row; +} +.katex .vlist { + display: table-cell; + vertical-align: bottom; + position: relative; +} +.katex .vlist > span { + display: block; + height: 0; + position: relative; +} +.katex .vlist > span > span { + display: inline-block; +} +.katex .vlist > span > .pstrut { + overflow: hidden; + width: 0; +} +.katex .vlist-t2 { + margin-right: -2px; +} +.katex .vlist-s { + display: table-cell; + vertical-align: bottom; + font-size: 1px; + width: 2px; + min-width: 2px; +} +.katex .vbox { + display: inline-flex; + flex-direction: column; + align-items: baseline; +} +.katex .hbox { + display: inline-flex; + flex-direction: row; + width: 100%; +} +.katex .thinbox { + display: inline-flex; + flex-direction: row; + width: 0; + max-width: 0; +} +.katex .msupsub { + text-align: left; +} +.katex .mfrac > span > span { + text-align: center; +} +.katex .mfrac .frac-line { + display: inline-block; + width: 100%; + border-bottom-style: solid; +} +.katex .mfrac .frac-line, +.katex .overline .overline-line, +.katex .underline .underline-line, +.katex .hline, +.katex .hdashline, +.katex .rule { + min-height: 1px; +} +.katex .mspace { + display: inline-block; +} +.katex .llap, +.katex .rlap, +.katex .clap { + width: 0; + position: relative; +} +.katex .llap > .inner, +.katex .rlap > .inner, +.katex .clap > .inner { + position: absolute; +} +.katex .llap > .fix, +.katex .rlap > .fix, +.katex .clap > .fix { + display: inline-block; +} +.katex .llap > .inner { + right: 0; +} +.katex .rlap > .inner, +.katex .clap > .inner { + left: 0; +} +.katex .clap > .inner > span { + margin-left: -50%; + margin-right: 50%; +} +.katex .rule { + display: inline-block; + border: solid 0; + position: relative; +} +.katex .overline .overline-line, +.katex .underline .underline-line, +.katex .hline { + display: inline-block; + width: 100%; + border-bottom-style: solid; +} +.katex .hdashline { + display: inline-block; + width: 100%; + border-bottom-style: dashed; +} +.katex .sqrt > .root { + margin-left: 0.27777778em; + margin-right: -0.55555556em; +} +.katex .sizing.reset-size1.size1, +.katex .fontsize-ensurer.reset-size1.size1 { + font-size: 1em; +} +.katex .sizing.reset-size1.size2, +.katex .fontsize-ensurer.reset-size1.size2 { + font-size: 1.2em; +} +.katex .sizing.reset-size1.size3, +.katex .fontsize-ensurer.reset-size1.size3 { + font-size: 1.4em; +} +.katex .sizing.reset-size1.size4, +.katex .fontsize-ensurer.reset-size1.size4 { + font-size: 1.6em; +} +.katex .sizing.reset-size1.size5, +.katex .fontsize-ensurer.reset-size1.size5 { + font-size: 1.8em; +} +.katex .sizing.reset-size1.size6, +.katex .fontsize-ensurer.reset-size1.size6 { + font-size: 2em; +} +.katex .sizing.reset-size1.size7, +.katex .fontsize-ensurer.reset-size1.size7 { + font-size: 2.4em; +} +.katex .sizing.reset-size1.size8, +.katex .fontsize-ensurer.reset-size1.size8 { + font-size: 2.88em; +} +.katex .sizing.reset-size1.size9, +.katex .fontsize-ensurer.reset-size1.size9 { + font-size: 3.456em; +} +.katex .sizing.reset-size1.size10, +.katex .fontsize-ensurer.reset-size1.size10 { + font-size: 4.148em; +} +.katex .sizing.reset-size1.size11, +.katex .fontsize-ensurer.reset-size1.size11 { + font-size: 4.976em; +} +.katex .sizing.reset-size2.size1, +.katex .fontsize-ensurer.reset-size2.size1 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size2.size2, +.katex .fontsize-ensurer.reset-size2.size2 { + font-size: 1em; +} +.katex .sizing.reset-size2.size3, +.katex .fontsize-ensurer.reset-size2.size3 { + font-size: 1.16666667em; +} +.katex .sizing.reset-size2.size4, +.katex .fontsize-ensurer.reset-size2.size4 { + font-size: 1.33333333em; +} +.katex .sizing.reset-size2.size5, +.katex .fontsize-ensurer.reset-size2.size5 { + font-size: 1.5em; +} +.katex .sizing.reset-size2.size6, +.katex .fontsize-ensurer.reset-size2.size6 { + font-size: 1.66666667em; +} +.katex .sizing.reset-size2.size7, +.katex .fontsize-ensurer.reset-size2.size7 { + font-size: 2em; +} +.katex .sizing.reset-size2.size8, +.katex .fontsize-ensurer.reset-size2.size8 { + font-size: 2.4em; +} +.katex .sizing.reset-size2.size9, +.katex .fontsize-ensurer.reset-size2.size9 { + font-size: 2.88em; +} +.katex .sizing.reset-size2.size10, +.katex .fontsize-ensurer.reset-size2.size10 { + font-size: 3.45666667em; +} +.katex .sizing.reset-size2.size11, +.katex .fontsize-ensurer.reset-size2.size11 { + font-size: 4.14666667em; +} +.katex .sizing.reset-size3.size1, +.katex .fontsize-ensurer.reset-size3.size1 { + font-size: 0.71428571em; +} +.katex .sizing.reset-size3.size2, +.katex .fontsize-ensurer.reset-size3.size2 { + font-size: 0.85714286em; +} +.katex .sizing.reset-size3.size3, +.katex .fontsize-ensurer.reset-size3.size3 { + font-size: 1em; +} +.katex .sizing.reset-size3.size4, +.katex .fontsize-ensurer.reset-size3.size4 { + font-size: 1.14285714em; +} +.katex .sizing.reset-size3.size5, +.katex .fontsize-ensurer.reset-size3.size5 { + font-size: 1.28571429em; +} +.katex .sizing.reset-size3.size6, +.katex .fontsize-ensurer.reset-size3.size6 { + font-size: 1.42857143em; +} +.katex .sizing.reset-size3.size7, +.katex .fontsize-ensurer.reset-size3.size7 { + font-size: 1.71428571em; +} +.katex .sizing.reset-size3.size8, +.katex .fontsize-ensurer.reset-size3.size8 { + font-size: 2.05714286em; +} +.katex .sizing.reset-size3.size9, +.katex .fontsize-ensurer.reset-size3.size9 { + font-size: 2.46857143em; +} +.katex .sizing.reset-size3.size10, +.katex .fontsize-ensurer.reset-size3.size10 { + font-size: 2.96285714em; +} +.katex .sizing.reset-size3.size11, +.katex .fontsize-ensurer.reset-size3.size11 { + font-size: 3.55428571em; +} +.katex .sizing.reset-size4.size1, +.katex .fontsize-ensurer.reset-size4.size1 { + font-size: 0.625em; +} +.katex .sizing.reset-size4.size2, +.katex .fontsize-ensurer.reset-size4.size2 { + font-size: 0.75em; +} +.katex .sizing.reset-size4.size3, +.katex .fontsize-ensurer.reset-size4.size3 { + font-size: 0.875em; +} +.katex .sizing.reset-size4.size4, +.katex .fontsize-ensurer.reset-size4.size4 { + font-size: 1em; +} +.katex .sizing.reset-size4.size5, +.katex .fontsize-ensurer.reset-size4.size5 { + font-size: 1.125em; +} +.katex .sizing.reset-size4.size6, +.katex .fontsize-ensurer.reset-size4.size6 { + font-size: 1.25em; +} +.katex .sizing.reset-size4.size7, +.katex .fontsize-ensurer.reset-size4.size7 { + font-size: 1.5em; +} +.katex .sizing.reset-size4.size8, +.katex .fontsize-ensurer.reset-size4.size8 { + font-size: 1.8em; +} +.katex .sizing.reset-size4.size9, +.katex .fontsize-ensurer.reset-size4.size9 { + font-size: 2.16em; +} +.katex .sizing.reset-size4.size10, +.katex .fontsize-ensurer.reset-size4.size10 { + font-size: 2.5925em; +} +.katex .sizing.reset-size4.size11, +.katex .fontsize-ensurer.reset-size4.size11 { + font-size: 3.11em; +} +.katex .sizing.reset-size5.size1, +.katex .fontsize-ensurer.reset-size5.size1 { + font-size: 0.55555556em; +} +.katex .sizing.reset-size5.size2, +.katex .fontsize-ensurer.reset-size5.size2 { + font-size: 0.66666667em; +} +.katex .sizing.reset-size5.size3, +.katex .fontsize-ensurer.reset-size5.size3 { + font-size: 0.77777778em; +} +.katex .sizing.reset-size5.size4, +.katex .fontsize-ensurer.reset-size5.size4 { + font-size: 0.88888889em; +} +.katex .sizing.reset-size5.size5, +.katex .fontsize-ensurer.reset-size5.size5 { + font-size: 1em; +} +.katex .sizing.reset-size5.size6, +.katex .fontsize-ensurer.reset-size5.size6 { + font-size: 1.11111111em; +} +.katex .sizing.reset-size5.size7, +.katex .fontsize-ensurer.reset-size5.size7 { + font-size: 1.33333333em; +} +.katex .sizing.reset-size5.size8, +.katex .fontsize-ensurer.reset-size5.size8 { + font-size: 1.6em; +} +.katex .sizing.reset-size5.size9, +.katex .fontsize-ensurer.reset-size5.size9 { + font-size: 1.92em; +} +.katex .sizing.reset-size5.size10, +.katex .fontsize-ensurer.reset-size5.size10 { + font-size: 2.30444444em; +} +.katex .sizing.reset-size5.size11, +.katex .fontsize-ensurer.reset-size5.size11 { + font-size: 2.76444444em; +} +.katex .sizing.reset-size6.size1, +.katex .fontsize-ensurer.reset-size6.size1 { + font-size: 0.5em; +} +.katex .sizing.reset-size6.size2, +.katex .fontsize-ensurer.reset-size6.size2 { + font-size: 0.6em; +} +.katex .sizing.reset-size6.size3, +.katex .fontsize-ensurer.reset-size6.size3 { + font-size: 0.7em; +} +.katex .sizing.reset-size6.size4, +.katex .fontsize-ensurer.reset-size6.size4 { + font-size: 0.8em; +} +.katex .sizing.reset-size6.size5, +.katex .fontsize-ensurer.reset-size6.size5 { + font-size: 0.9em; +} +.katex .sizing.reset-size6.size6, +.katex .fontsize-ensurer.reset-size6.size6 { + font-size: 1em; +} +.katex .sizing.reset-size6.size7, +.katex .fontsize-ensurer.reset-size6.size7 { + font-size: 1.2em; +} +.katex .sizing.reset-size6.size8, +.katex .fontsize-ensurer.reset-size6.size8 { + font-size: 1.44em; +} +.katex .sizing.reset-size6.size9, +.katex .fontsize-ensurer.reset-size6.size9 { + font-size: 1.728em; +} +.katex .sizing.reset-size6.size10, +.katex .fontsize-ensurer.reset-size6.size10 { + font-size: 2.074em; +} +.katex .sizing.reset-size6.size11, +.katex .fontsize-ensurer.reset-size6.size11 { + font-size: 2.488em; +} +.katex .sizing.reset-size7.size1, +.katex .fontsize-ensurer.reset-size7.size1 { + font-size: 0.41666667em; +} +.katex .sizing.reset-size7.size2, +.katex .fontsize-ensurer.reset-size7.size2 { + font-size: 0.5em; +} +.katex .sizing.reset-size7.size3, +.katex .fontsize-ensurer.reset-size7.size3 { + font-size: 0.58333333em; +} +.katex .sizing.reset-size7.size4, +.katex .fontsize-ensurer.reset-size7.size4 { + font-size: 0.66666667em; +} +.katex .sizing.reset-size7.size5, +.katex .fontsize-ensurer.reset-size7.size5 { + font-size: 0.75em; +} +.katex .sizing.reset-size7.size6, +.katex .fontsize-ensurer.reset-size7.size6 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size7.size7, +.katex .fontsize-ensurer.reset-size7.size7 { + font-size: 1em; +} +.katex .sizing.reset-size7.size8, +.katex .fontsize-ensurer.reset-size7.size8 { + font-size: 1.2em; +} +.katex .sizing.reset-size7.size9, +.katex .fontsize-ensurer.reset-size7.size9 { + font-size: 1.44em; +} +.katex .sizing.reset-size7.size10, +.katex .fontsize-ensurer.reset-size7.size10 { + font-size: 1.72833333em; +} +.katex .sizing.reset-size7.size11, +.katex .fontsize-ensurer.reset-size7.size11 { + font-size: 2.07333333em; +} +.katex .sizing.reset-size8.size1, +.katex .fontsize-ensurer.reset-size8.size1 { + font-size: 0.34722222em; +} +.katex .sizing.reset-size8.size2, +.katex .fontsize-ensurer.reset-size8.size2 { + font-size: 0.41666667em; +} +.katex .sizing.reset-size8.size3, +.katex .fontsize-ensurer.reset-size8.size3 { + font-size: 0.48611111em; +} +.katex .sizing.reset-size8.size4, +.katex .fontsize-ensurer.reset-size8.size4 { + font-size: 0.55555556em; +} +.katex .sizing.reset-size8.size5, +.katex .fontsize-ensurer.reset-size8.size5 { + font-size: 0.625em; +} +.katex .sizing.reset-size8.size6, +.katex .fontsize-ensurer.reset-size8.size6 { + font-size: 0.69444444em; +} +.katex .sizing.reset-size8.size7, +.katex .fontsize-ensurer.reset-size8.size7 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size8.size8, +.katex .fontsize-ensurer.reset-size8.size8 { + font-size: 1em; +} +.katex .sizing.reset-size8.size9, +.katex .fontsize-ensurer.reset-size8.size9 { + font-size: 1.2em; +} +.katex .sizing.reset-size8.size10, +.katex .fontsize-ensurer.reset-size8.size10 { + font-size: 1.44027778em; +} +.katex .sizing.reset-size8.size11, +.katex .fontsize-ensurer.reset-size8.size11 { + font-size: 1.72777778em; +} +.katex .sizing.reset-size9.size1, +.katex .fontsize-ensurer.reset-size9.size1 { + font-size: 0.28935185em; +} +.katex .sizing.reset-size9.size2, +.katex .fontsize-ensurer.reset-size9.size2 { + font-size: 0.34722222em; +} +.katex .sizing.reset-size9.size3, +.katex .fontsize-ensurer.reset-size9.size3 { + font-size: 0.40509259em; +} +.katex .sizing.reset-size9.size4, +.katex .fontsize-ensurer.reset-size9.size4 { + font-size: 0.46296296em; +} +.katex .sizing.reset-size9.size5, +.katex .fontsize-ensurer.reset-size9.size5 { + font-size: 0.52083333em; +} +.katex .sizing.reset-size9.size6, +.katex .fontsize-ensurer.reset-size9.size6 { + font-size: 0.5787037em; +} +.katex .sizing.reset-size9.size7, +.katex .fontsize-ensurer.reset-size9.size7 { + font-size: 0.69444444em; +} +.katex .sizing.reset-size9.size8, +.katex .fontsize-ensurer.reset-size9.size8 { + font-size: 0.83333333em; +} +.katex .sizing.reset-size9.size9, +.katex .fontsize-ensurer.reset-size9.size9 { + font-size: 1em; +} +.katex .sizing.reset-size9.size10, +.katex .fontsize-ensurer.reset-size9.size10 { + font-size: 1.20023148em; +} +.katex .sizing.reset-size9.size11, +.katex .fontsize-ensurer.reset-size9.size11 { + font-size: 1.43981481em; +} +.katex .sizing.reset-size10.size1, +.katex .fontsize-ensurer.reset-size10.size1 { + font-size: 0.24108004em; +} +.katex .sizing.reset-size10.size2, +.katex .fontsize-ensurer.reset-size10.size2 { + font-size: 0.28929605em; +} +.katex .sizing.reset-size10.size3, +.katex .fontsize-ensurer.reset-size10.size3 { + font-size: 0.33751205em; +} +.katex .sizing.reset-size10.size4, +.katex .fontsize-ensurer.reset-size10.size4 { + font-size: 0.38572806em; +} +.katex .sizing.reset-size10.size5, +.katex .fontsize-ensurer.reset-size10.size5 { + font-size: 0.43394407em; +} +.katex .sizing.reset-size10.size6, +.katex .fontsize-ensurer.reset-size10.size6 { + font-size: 0.48216008em; +} +.katex .sizing.reset-size10.size7, +.katex .fontsize-ensurer.reset-size10.size7 { + font-size: 0.57859209em; +} +.katex .sizing.reset-size10.size8, +.katex .fontsize-ensurer.reset-size10.size8 { + font-size: 0.69431051em; +} +.katex .sizing.reset-size10.size9, +.katex .fontsize-ensurer.reset-size10.size9 { + font-size: 0.83317261em; +} +.katex .sizing.reset-size10.size10, +.katex .fontsize-ensurer.reset-size10.size10 { + font-size: 1em; +} +.katex .sizing.reset-size10.size11, +.katex .fontsize-ensurer.reset-size10.size11 { + font-size: 1.19961427em; +} +.katex .sizing.reset-size11.size1, +.katex .fontsize-ensurer.reset-size11.size1 { + font-size: 0.20096463em; +} +.katex .sizing.reset-size11.size2, +.katex .fontsize-ensurer.reset-size11.size2 { + font-size: 0.24115756em; +} +.katex .sizing.reset-size11.size3, +.katex .fontsize-ensurer.reset-size11.size3 { + font-size: 0.28135048em; +} +.katex .sizing.reset-size11.size4, +.katex .fontsize-ensurer.reset-size11.size4 { + font-size: 0.32154341em; +} +.katex .sizing.reset-size11.size5, +.katex .fontsize-ensurer.reset-size11.size5 { + font-size: 0.36173633em; +} +.katex .sizing.reset-size11.size6, +.katex .fontsize-ensurer.reset-size11.size6 { + font-size: 0.40192926em; +} +.katex .sizing.reset-size11.size7, +.katex .fontsize-ensurer.reset-size11.size7 { + font-size: 0.48231511em; +} +.katex .sizing.reset-size11.size8, +.katex .fontsize-ensurer.reset-size11.size8 { + font-size: 0.57877814em; +} +.katex .sizing.reset-size11.size9, +.katex .fontsize-ensurer.reset-size11.size9 { + font-size: 0.69453376em; +} +.katex .sizing.reset-size11.size10, +.katex .fontsize-ensurer.reset-size11.size10 { + font-size: 0.83360129em; +} +.katex .sizing.reset-size11.size11, +.katex .fontsize-ensurer.reset-size11.size11 { + font-size: 1em; +} +.katex .delimsizing.size1 { + font-family: KaTeX_Size1; +} +.katex .delimsizing.size2 { + font-family: KaTeX_Size2; +} +.katex .delimsizing.size3 { + font-family: KaTeX_Size3; +} +.katex .delimsizing.size4 { + font-family: KaTeX_Size4; +} +.katex .delimsizing.mult .delim-size1 > span { + font-family: KaTeX_Size1; +} +.katex .delimsizing.mult .delim-size4 > span { + font-family: KaTeX_Size4; +} +.katex .nulldelimiter { + display: inline-block; + width: 0.12em; +} +.katex .delimcenter { + position: relative; +} +.katex .op-symbol { + position: relative; +} +.katex .op-symbol.small-op { + font-family: KaTeX_Size1; +} +.katex .op-symbol.large-op { + font-family: KaTeX_Size2; +} +.katex .op-limits > .vlist-t { + text-align: center; +} +.katex .accent > .vlist-t { + text-align: center; +} +.katex .accent .accent-body { + position: relative; +} +.katex .accent .accent-body:not(.accent-full) { + width: 0; +} +.katex .overlay { + display: block; +} +.katex .mtable .vertical-separator { + display: inline-block; + min-width: 1px; +} +.katex .mtable .arraycolsep { + display: inline-block; +} +.katex .mtable .col-align-c > .vlist-t { + text-align: center; +} +.katex .mtable .col-align-l > .vlist-t { + text-align: left; +} +.katex .mtable .col-align-r > .vlist-t { + text-align: right; +} +.katex .svg-align { + text-align: left; +} +.katex svg { + display: block; + position: absolute; + width: 100%; + height: inherit; + fill: currentColor; + stroke: currentColor; + fill-rule: nonzero; + fill-opacity: 1; + stroke-width: 1; + stroke-linecap: butt; + stroke-linejoin: miter; + stroke-miterlimit: 4; + stroke-dasharray: none; + stroke-dashoffset: 0; + stroke-opacity: 1; +} +.katex svg path { + stroke: none; +} +.katex img { + border-style: none; + min-width: 0; + min-height: 0; + max-width: none; + max-height: none; +} +.katex .stretchy { + width: 100%; + display: block; + position: relative; + overflow: hidden; +} +.katex .stretchy::before, +.katex .stretchy::after { + content: ""; +} +.katex .hide-tail { + width: 100%; + position: relative; + overflow: hidden; +} +.katex .halfarrow-left { + position: absolute; + left: 0; + width: 50.2%; + overflow: hidden; +} +.katex .halfarrow-right { + position: absolute; + right: 0; + width: 50.2%; + overflow: hidden; +} +.katex .brace-left { + position: absolute; + left: 0; + width: 25.1%; + overflow: hidden; +} +.katex .brace-center { + position: absolute; + left: 25%; + width: 50%; + overflow: hidden; +} +.katex .brace-right { + position: absolute; + right: 0; + width: 25.1%; + overflow: hidden; +} +.katex .x-arrow-pad { + padding: 0 0.5em; +} +.katex .cd-arrow-pad { + padding: 0 0.55556em 0 0.27778em; +} +.katex .x-arrow, +.katex .mover, +.katex .munder { + text-align: center; +} +.katex .boxpad { + padding: 0 0.3em; +} +.katex .fbox, +.katex .fcolorbox { + box-sizing: border-box; + border: 0.04em solid; +} +.katex .cancel-pad { + padding: 0 0.2em; +} +.katex .cancel-lap { + margin-left: -0.2em; + margin-right: -0.2em; +} +.katex .sout { + border-bottom-style: solid; + border-bottom-width: 0.08em; +} +.katex .angl { + box-sizing: border-box; + border-top: 0.049em solid; + border-right: 0.049em solid; + margin-right: 0.03889em; +} +.katex .anglpad { + padding: 0 0.03889em; +} +.katex .eqn-num::before { + counter-increment: katexEqnNo; + content: "(" counter(katexEqnNo) ")"; +} +.katex .mml-eqn-num::before { + counter-increment: mmlEqnNo; + content: "(" counter(mmlEqnNo) ")"; +} +.katex .mtr-glue { + width: 50%; +} +.katex .cd-vert-arrow { + display: inline-block; + position: relative; +} +.katex .cd-label-left { + display: inline-block; + position: absolute; + right: calc(50% + 0.3em); + text-align: left; +} +.katex .cd-label-right { + display: inline-block; + position: absolute; + left: calc(50% + 0.3em); + text-align: right; +} +.katex-display { + display: block; + margin: 1em 0; + text-align: center; +} +.katex-display > .katex { + display: block; + text-align: center; + white-space: nowrap; +} +.katex-display > .katex > .katex-html { + display: block; + position: relative; +} +.katex-display > .katex > .katex-html > .tag { + position: absolute; + right: 0; +} +.katex-display.leqno > .katex > .katex-html > .tag { + left: 0; + right: auto; +} +.katex-display.fleqn > .katex { + text-align: left; + padding-left: 2em; +} +body { + counter-reset: katexEqnNo mmlEqnNo; +} +`;var k5=!1,rT=ni.import("formats/formula"),q3=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,window.katex=wm,this.init(),this.config=this.getKatexConfig(),this.cssEl=null,this.addStyle(),this.extendQuill(),this.onDestroy=this.onDestroy.bind(this),this.mindMap.on("beforeDestroy",this.onDestroy)}onDestroy(){Object.getPrototypeOf(this.mindMap).constructor.instanceCount<=1&&(k5=!1,ni.register("formats/formula",rT,!0))}init(){this.mindMap.opt.enableEditFormulaInRichTextEdit&&(this.mindMap.opt.transformRichTextOnEnterEdit=this.latexRichToText.bind(this),this.mindMap.opt.beforeHideRichTextEdit=this.formatLatex.bind(this))}getKatexConfig(){let e={throwOnError:!1,errorColor:"#f00",output:"mathml"},{getKatexOutputType:t}=this.mindMap.opt;t=t||function(){let n=F9();if(n&&n<=100)return"html"};let i=t()||"mathml";return e.output=["mathml","html"].includes(i)?i:"mathml",e}extendQuill(){if(k5)return;k5=!0;let e=this;class t extends rT{static create(n){let s=super.create(n);return typeof n=="string"&&(wm.render(n,s,e.config),s.setAttribute("data-value",Dn(n))),s}}ni.register("formats/formula",t,!0)}getStyleText(){let{katexFontPath:e}=this.mindMap.opt,t="";return this.config.output==="html"&&(t=eT(e)),t+=tT(),t}addStyle(){this.cssEl=document.createElement("style"),this.cssEl.type="text/css",this.cssEl.innerHTML=this.getStyleText(),document.head.appendChild(this.cssEl)}removeStyle(){document.head.removeChild(this.cssEl)}insertFormulaToNode(e,t){let i=this.mindMap.richText;i.showEditText({node:e}),i.quill.insertEmbed(i.quill.getLength()-1,"formula",t),i.hideEditText([e])}latexRichToText(e){if(e.indexOf('class="ql-formula"')!==-1){let n=new DOMParser().parseFromString(e,"text/html").getElementsByClassName("ql-formula");for(let s of n)e=e.replace(s.outerHTML,`$${s.getAttribute("data-value")}$`);this.mindMap.opt.openRealtimeRenderOnNodeTextEdit&&setTimeout(()=>{this.mindMap.emit("node_text_edit_change",{node:this.mindMap.richText.node,text:this.mindMap.richText.getEditText(),richText:!0})},0)}return e}formatLatex(e){let t=e.quill.getContents(),i=t.ops,n=!1;for(let s=i.length-1;s>=0;s--){let o=i[s].insert;if(o&&typeof o!="object"&&o!==` +`&&/\$.+?\$/g.test(o)){let l=[...o.matchAll(/\$.+?\$/g)],h=o.split(/\$.+?\$/g);for(let c=l.length-1;c>=0;c--){let u=l[c]&&l[c][0]&&l[c][0].slice(1,-1)||null;u!==null&&u.trim().length>0&&this.checkFormulaIsLegal(u)?(h.splice(c+1,0,{insert:{formula:u}}),n=!0):h.splice(c+1,0,"")}for(;h.length>0;){let c=h.pop();if(typeof c=="string"){if(c.length<1)continue;c={insert:c}}c.attributes=i[s].attributes,i.splice(s+1,0,c)}i.splice(s,1)}}n&&e.quill.setContents(t)}checkFormulaIsLegal(e){try{return wm.renderToString(e),!0}catch(t){return!1}}beforePluginRemove(){this.removeStyle(),this.mindMap.off("beforeDestroy",this.onDestroy)}beforePluginDestroy(){this.removeStyle(),this.mindMap.off("beforeDestroy",this.onDestroy)}};q3.instanceName="formula";var iT=q3;var sT=mr(bn());var nT=!1,Ld=["\u5B8B\u4F53, SimSun, Songti SC","\u5FAE\u8F6F\u96C5\u9ED1, Microsoft YaHei","\u6977\u4F53, \u6977\u4F53_GB2312, SimKai, STKaiti","\u9ED1\u4F53, SimHei, Heiti SC","\u96B6\u4E66, SimLi","andale mono","arial, helvetica, sans-serif","arial black, avant garde","comic sans ms","impact, chicago","times new roman","sans-serif","serif"],D5=new Array(100).fill(0).map((r,e)=>e+"px"),Od="ql-editor",U3=class{constructor({mindMap:e,pluginOpt:t}){this.mindMap=e,this.pluginOpt=t,this.textEditNode=null,this.showTextEdit=!1,this.quill=null,this.range=null,this.lastRange=null,this.pasteUseRange=null,this.node=null,this.isInserting=!1,this.styleEl=null,this.cacheEditingText="",this.isCompositing=!1,this.textNodePaddingX=6,this.textNodePaddingY=4,this.mindMap.addEditNodeClass(Od),this.initOpt(),this.extendQuill(),this.appendCss(),this.bindEvent(),this.handleDataToRichTextOnInit()}bindEvent(){this.onCompositionStart=this.onCompositionStart.bind(this),this.onCompositionUpdate=this.onCompositionUpdate.bind(this),this.onCompositionEnd=this.onCompositionEnd.bind(this),this.handleSetData=this.handleSetData.bind(this),window.addEventListener("compositionstart",this.onCompositionStart),window.addEventListener("compositionupdate",this.onCompositionUpdate),window.addEventListener("compositionend",this.onCompositionEnd),this.mindMap.on("before_update_data",this.handleSetData),this.mindMap.on("before_set_data",this.handleSetData)}unbindEvent(){window.removeEventListener("compositionstart",this.onCompositionStart),window.removeEventListener("compositionupdate",this.onCompositionUpdate),window.removeEventListener("compositionend",this.onCompositionEnd),this.mindMap.off("before_update_data",this.handleSetData),this.mindMap.off("before_set_data",this.handleSetData)}appendCss(){this.mindMap.appendCss("richText",` + .smm-richtext-node-wrap { + word-break: break-all; + user-select: none; + } + + .ql-editor .ql-align-left, + .smm-richtext-node-wrap .ql-align-left { + text-align: left; + } + + .smm-richtext-node-wrap .ql-align-right { + text-align: right; + } + + .smm-richtext-node-wrap .ql-align-center { + text-align: center; + } + .ql-editor p{ + margin: 0; + } + `);let e=` + .${Od} { + overflow: hidden; + padding: 0; + height: auto; + line-height: 1.2; + -webkit-user-select: text; + text-align: inherit; + } + + .ql-container { + height: auto; + font-size: inherit; + } + + .ql-container.ql-snow { + border: none; + } + `;this.styleEl=document.createElement("style"),this.styleEl.type="text/css",this.styleEl.innerHTML=e,document.head.appendChild(this.styleEl)}initOpt(){this.pluginOpt.fontFamilyList&&Array.isArray(this.pluginOpt.fontFamilyList)&&(Ld=this.pluginOpt.fontFamilyList),this.pluginOpt.fontSizeList&&Array.isArray(this.pluginOpt.fontSizeList)&&(D5=this.pluginOpt.fontSizeList)}extendQuill(){if(nT)return;nT=!0,this.extendFont([]),this.extendAlign();let e=ni.import("attributors/class/size");e.whitelist=D5,ni.register(e,!0);let t=ni.import("attributors/style/size");t.whitelist=D5,ni.register(t,!0)}extendFont(e=[],t=!1){Ld=t?[...e]:[...Ld,...e];let i=ni.import("attributors/class/font");i.whitelist=Ld,ni.register(i,!0);let n=ni.import("attributors/style/font");n.whitelist=Ld,ni.register(n,!0)}extendAlign(){let e=ni.import("formats/align");e.whitelist=["right","center","justify","left"],ni.register(e,!0)}showEditText({node:e,rect:t,isInserting:i,isFromKeyDown:n,isFromScale:s}){if(this.showTextEdit)return;let{customInnerElsAppendTo:a,nodeTextEditZIndex:o,textAutoWrapWidth:l,selectTextOnEnterEditText:h,transformRichTextOnEnterEdit:c,openRealtimeRenderOnNodeTextEdit:u,autoEmptyTextWhenKeydownEnterEdit:d}=this.mindMap.opt;l=e.hasCustomWidth()?e.customTextWidth:l,this.node=e,this.isInserting=i,t||(t=e._textData.node.node.getBoundingClientRect()),s||this.mindMap.emit("before_show_text_edit"),this.mindMap.renderer.textEdit.registerTmpShortcut();let f=e._textData.node,m=f.attr("data-width"),g=f.attr("data-height"),v=Math.ceil(t.width)/m,y=Math.ceil(t.height)/g,A=this.textNodePaddingX,b=this.textNodePaddingY;this.textEditNode||(this.textEditNode=document.createElement("div"),this.textEditNode.classList.add("smm-richtext-node-edit-wrap"),this.textEditNode.style.cssText=` + position:fixed; + box-sizing: border-box; + ${u?"":"box-shadow: 0 0 20px rgba(0,0,0,.5);"} + outline: none; + word-break: break-all; + padding: ${b}px ${A}px; + line-height: 1.2; + `,this.textEditNode.addEventListener("click",k=>{k.stopPropagation()}),this.textEditNode.addEventListener("mousedown",k=>{k.stopPropagation()}),this.textEditNode.addEventListener("keydown",k=>{this.mindMap.renderer.textEdit.checkIsAutoEnterTextEditKey(k)&&k.stopPropagation()}),(a||document.body).appendChild(this.textEditNode)),this.addNodeTextStyleToTextEditNode(e),this.textEditNode.style.marginLeft=`-${A*v}px`,this.textEditNode.style.marginTop=`-${b*y}px`,this.textEditNode.style.zIndex=o,u||(this.textEditNode.style.background=this.mindMap.renderer.textEdit.getBackground(e)),this.textEditNode.style.minWidth=m+A*2+"px",this.textEditNode.style.minHeight=g+"px",this.textEditNode.style.left=t.left+"px",this.textEditNode.style.top=t.top+"px",this.textEditNode.style.display="block",this.textEditNode.style.maxWidth=l+A*2+"px",this.textEditNode.style.transform=`scale(${v}, ${y})`,this.textEditNode.style.transformOrigin="left top";let C=e.getData("text");typeof c=="function"&&(C=c(C));let M=ei(C),D=!e.getData("richText")&&!M;if(n&&d)this.textEditNode.innerHTML="";else if(D){let k=`

    ${String(C).split(/\n/gim).join("
    ")}

    `;this.textEditNode.innerHTML=this.cacheEditingText||k}else this.textEditNode.innerHTML=this.cacheEditingText||C;this.initQuillEditor(),this.setQuillContainerMinHeight(g),this.setIsShowTextEdit(!0),this.focus(i||h&&!n?0:null),this.cacheEditingText=""}onOpenRealtimeRenderOnNodeTextEditConfigUpdate(e){this.textEditNode&&(this.textEditNode.style.background=e?"transparent":this.node?this.mindMap.renderer.textEdit.getBackground(this.node):"",this.textEditNode.style.boxShadow=e?"none":"0 0 20px rgba(0,0,0,.5)")}addNodeTextStyleToTextEditNode(e){let t=Lf(e);Object.keys(t).forEach(i=>{this.textEditNode.style[i]=t[i]})}setQuillContainerMinHeight(e){document.querySelector("."+Od).style.minHeight=e+"px"}updateTextEditNode(){if(!this.node)return;let e=this.node._textData.node,t=e.node.getBoundingClientRect(),i=e.attr("data-width"),n=e.attr("data-height");this.textEditNode.style.minWidth=i+this.textNodePaddingX*2+"px",this.textEditNode.style.minHeight=n+"px",this.textEditNode.style.left=t.left+"px",this.textEditNode.style.top=t.top+"px",this.setQuillContainerMinHeight(n)}removeTextEditEl(){if(!this.textEditNode)return;(this.mindMap.opt.customInnerElsAppendTo||document.body).removeChild(this.textEditNode)}getEditText(){return this.quill.container.firstChild.innerHTML.replace(/ +/g,e=>" ".repeat(e.length))}hideEditText(e){if(!this.showTextEdit)return;let{beforeHideRichTextEdit:t}=this.mindMap.opt;typeof t=="function"&&t(this);let i=this.getEditText(),n=e&&e.length>0?e:[this.node],s=this.node;this.textEditNode.style.display="none",this.setIsShowTextEdit(!1),this.mindMap.emit("rich_text_selection_change",!1),this.node=null,this.isInserting=!1,n.forEach(a=>{this.mindMap.execCommand("SET_NODE_TEXT",a,i,!0),this.mindMap.render()}),this.mindMap.emit("hide_text_edit",this.textEditNode,n,s)}initQuillEditor(){this.quill=new ni(this.textEditNode,{modules:{toolbar:!1,keyboard:{bindings:{enter:{key:"Enter",handler:function(){}},shiftEnter:{key:"Enter",shiftKey:!0,handler:function(e,t){let i=Object.keys(t.format).reduce((s,a)=>(this.quill.scroll.query(a,ze.BLOCK)&&!Array.isArray(t.format[a])&&(s[a]=t.format[a]),s),{}),n=new sT.default().retain(e.index).delete(e.length).insert(` +`,i);this.quill.updateContents(n,ni.sources.USER),this.quill.setSelection(e.index+1,ni.sources.SILENT),this.quill.focus(),Object.keys(t.format).forEach(s=>{i[s]==null&&(Array.isArray(t.format[s])||s==="code"||s==="link"||this.quill.format(s,t.format[s],ni.sources.USER))})}},tab:{key:9,handler:function(){}}}}},formats:["bold","italic","underline","strike","color","background","font","size","formula","align"],theme:"snow"}),this.quill.root.addEventListener("copy",e=>{e.preventDefault();let t=window.getSelection(),i=t.toString();try{let n=t.getRangeAt(0),s=document.createElement("div");s.appendChild(n.cloneContents());let a=fo(s.innerHTML);e.clipboardData.setData("text/plain",a)}catch(n){e.clipboardData.setData("text/plain",i)}}),this.quill.on("selection-change",e=>{if(!this.isInserting)if(this.lastRange=this.range,this.range=null,e){this.pasteUseRange=e;let t=this.quill.getBounds(e.index,e.length),i=this.textEditNode.getBoundingClientRect(),n={left:t.left+i.left,top:t.top+i.top,right:t.right+i.left,bottom:t.bottom+i.top,width:t.width},s=this.quill.getFormat(e.index,e.length),a=!1;e.length==0?a=!1:(this.range=e,a=!0),this.mindMap.emit("rich_text_selection_change",a,n,s)}else this.mindMap.emit("rich_text_selection_change",!1,null,null)}),this.quill.on("text-change",()=>{this.mindMap.emit("node_text_edit_change",{node:this.node,text:this.getEditText(),richText:!0})}),this.quill.clipboard.addMatcher(Node.ELEMENT_NODE,(e,t)=>{let i=[],n=this.getPasteTextStyle();return t.ops.forEach(s=>{s.insert&&typeof s.insert=="string"&&i.push({attributes:{...n},insert:this.formatPasteText(s.insert)})}),t.ops=i,t}),this.quill.root.addEventListener("paste",e=>{e.clipboardData&&e.clipboardData.files&&e.clipboardData.files.length&&e.preventDefault()},!0)}getPasteTextStyle(){return this.pasteUseRange?this.quill.getFormat(this.pasteUseRange.index,this.pasteUseRange.length):{}}formatPasteText(e){let{isSmm:t,data:i}=Rl(e);return t&&i[0]&&i[0].data?cn(i[0].data.text):e}onCompositionStart(){this.showTextEdit&&(this.isCompositing=!0)}onCompositionUpdate(){!this.showTextEdit||!this.node||this.mindMap.emit("node_text_edit_change",{node:this.node,text:this.getEditText(),richText:!0})}onCompositionEnd(){this.showTextEdit&&(this.isCompositing=!1)}setIsShowTextEdit(e){this.showTextEdit=e,e?this.mindMap.keyCommand.stopCheckInSvg():this.mindMap.keyCommand.recoveryCheckInSvg()}selectAll(){this.quill.setSelection(0,this.quill.getLength())}focus(e){let t=this.quill.getLength();this.quill.setSelection(typeof e=="number"?e:t,t)}formatText(e={},t=!1){if(!this.range&&!this.lastRange)return;let i=!this.range,n=i?this.lastRange:this.range;if(t)this.quill.removeFormat(n.index,n.length);else{let{align:s,...a}=e;s&&this.quill.formatLine(n.index,n.length,"align",s),Object.keys(a).length>0&&this.quill.formatText(n.index,n.length,a)}i&&this.quill.setSelection(this.lastRange.index,this.lastRange.length)}removeFormat(){this.formatText({},!0)}formatRangeText(e,t={}){e&&this.quill.formatText(e.index,e.length,t)}formatAllText(e={}){this.quill.formatText(0,this.quill.getLength(),e)}normalStyleToRichTextStyle(e){let t={};return Object.keys(e).forEach(i=>{let n=e[i];switch(i){case"fontFamily":t.font=n;break;case"fontSize":t.size=n+"px";break;case"fontWeight":t.bold=n==="bold";break;case"fontStyle":t.italic=n==="italic";break;case"textDecoration":t.underline=n==="underline",t.strike=n==="line-through";break;case"color":t.color=n;break;case"textAlign":t.align=n;break;default:break}}),t}richTextStyleToNormalStyle(e){let t={};return Object.keys(e).forEach(i=>{let n=e[i];switch(i){case"font":t.fontFamily=n;break;case"size":t.fontSize=parseFloat(n);break;case"bold":t.fontWeight=n?"bold":"normal";break;case"italic":t.fontStyle=n?"italic":"normal";break;case"underline":t.textDecoration=n?"underline":"none";break;case"strike":t.textDecoration=n?"line-through":"none";break;case"color":t.color=n;break;case"align":t.textAlign=n;break;default:break}}),t}isHasRichTextStyle(e){let t=Object.keys(e);for(let i=0;i{t.data.richText&&(t.data.richText=!1,t.data.text=cn(t.data.text)),t.data&&Hi(t.data).forEach(n=>{n.richText=!1,n.text=cn(n.text)})},null,!0,0,0),this.afterHandleData())}handleDataToRichText(e){let t=e.richText;e.richText=!0,e.resetRichText=!0,t||(e.text=Dn(e.text))}handleSetData(e){if(!e)return;let t=!e.smmVersion||P9(e.smmVersion,"0.13.0")==="<",i=n=>{n.data&&(!n.data.richText||t)&&this.handleDataToRichText(n.data),n.data&&Hi(n.data).forEach(a=>{(!a.richText||t)&&this.handleDataToRichText(a)}),n.children&&n.children.length>0&&Array.from(n.children).forEach(s=>{i(s)})};return i(e),e}beforePluginRemove(){this.transformAllNodesToNormalNode(),document.head.removeChild(this.styleEl),this.unbindEvent(),this.mindMap.removeAppendCss("richText"),this.mindMap.deleteEditNodeClass(Od)}beforePluginDestroy(){document.head.removeChild(this.styleEl),this.unbindEvent(),this.mindMap.deleteEditNodeClass(Od)}};U3.instanceName="richText";var aT=U3;var oT=` + + + + +
    + + + +
    + + + + + + + +`;var H3=class{constructor(e){this.opt=e,this.mindMap=e.mindMap,this.init()}init(){this.updateNodeTree=this.updateNodeTree.bind(this),this.afterExecCommand=this.afterExecCommand.bind(this),this.layoutChange=this.layoutChange.bind(this),this.mindMap.opt.data&&this.isMindMapLayout()&&this.updateNodeTree(this.mindMap.opt.data),this.mindMap.on("layout_change",this.layoutChange),this.mindMap.on("afterExecCommand",this.afterExecCommand),this.mindMap.on("before_update_data",this.updateNodeTree),this.mindMap.on("before_set_data",this.updateNodeTree)}restore(){this.mindMap.off("layout_change",this.layoutChange),this.mindMap.off("afterExecCommand",this.afterExecCommand),this.mindMap.off("before_update_data",this.updateNodeTree),this.mindMap.off("before_set_data",this.updateNodeTree)}afterExecCommand(e){this.isMindMapLayout()&&["BACK","FORWARD","INSERT_NODE","INSERT_MULTI_NODE","INSERT_CHILD_NODE","INSERT_MULTI_CHILD_NODE","INSERT_PARENT_NODE","UP_NODE","DOWN_NODE","MOVE_UP_ONE_LEVEL","INSERT_AFTER","INSERT_BEFORE","MOVE_NODE_TO","REMOVE_NODE","REMOVE_CURRENT_NODE","PASTE_NODE","CUT_NODE"].includes(e)&&this.updateRenderTree()}layoutChange(e){e===J.LAYOUT.MIND_MAP&&this.updateRenderTree()}updateRenderTree(){this.updateNodeTree(this.mindMap.renderer.renderTree)}updateNodeTree(e){if(!this.isMindMapLayout())return;let t=e,i=t.children.length;if(i<=0)return;let n=Math.ceil(i/2);t.children.forEach((s,a)=>{a+1<=n?s.data.dir=J.LAYOUT_GROW_DIR.RIGHT:s.data.dir=J.LAYOUT_GROW_DIR.LEFT})}isMindMapLayout(){return this.mindMap.opt.layout===J.LAYOUT.MIND_MAP}beforePluginRemove(){this.restore()}beforePluginDestroy(){this.restore()}};H3.instanceName="mindMapLayoutPro";var N5=H3;var lT=` +data:image/gif;base64,R0lGODlhWAKQAffqAKve9ua6Zna00ZnM///35rVQSNelUcmYR5d2U0VFRbiHO/GXAdvX1pWHg//WhriXXKSIWE2NvXVoT1BNR//rxf/blI9xMOT2/3vG6f/SerPl/v/z22pWUc6yFfLDaf/nuNOqYv/eAGW59mhlTsa7tFlJP3RaSny1ZWJTScyZZoNmT//iq////2BLRmd3U3KQknjS/XSXXGYzAFay9WtUSnxhTGaGWOzs7P/68It4VFR2k//bbv/MZpiBVnRHFGWpYsPn/bKjl21OKG6XrGFMR1xVS2yNnYV6doDCaXmoYWJbS1pgbNyyZOazW3B9c//MM2hrUXBaVLeurH5xauXHC4prTubi4v/PcsNOSGaZZppNR4RTGPL7/3tmOtHs/dzy/oKZXczMzP/eoGWxZXGKWWa8aKidmv+xOsrDwWZ0e3KmvmZQSPTUBVCDqmBPSmZmZp54Vu6/Z9Ht7XGCe3NkXejm5XfK8WFUU5Z/La17NJq7zN3///Px8bKOWnGIhrCXInlMRv/HUrTe+8BMRoykpdLw/62RW4DG+Ga4Z2ROSKGJKb6MP7SbH+ni26qRJWpUQ2pLRnjO9sKnGrbKzX7O9NZ1U8/TsZFwUm9bP9zc3J2qm06KtmBsd9u+D5fe/3C+9+nGbe6mO8/r63bB+OSVXOW4Oe3n4mdfTPHPa7jZ5V2TtnKMjMpeTf/vz3vD+GVLRo5/fMnf6lxZX33K7/Du7n+cpcvV2HB3aX9vUZrL3qR7V2uAjlOPuuzUnczMmYfJ+ci5hfXJcePo6trAfersxmpEGujw0/WiFPitKrK+vXA/C+vNCMPZz//MAOT14eLu85ySjHfI7/HRBtjj6Ovet+LOjchDQ0KTun++aJFzQe+nO59/V41eJc+wYnjQ+MRIRXW+39qZPXfM9PraAu7OCLqeH+z4/8CcXu+nLXjU/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCM0Q0MzU0OTdDNzExMUU1OUNDQ0IyODgzREUzNTQxMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCM0Q0MzU0QTdDNzExMUU1OUNDQ0IyODgzREUzNTQxMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkIzRDQzNTQ3N0M3MTExRTU5Q0NDQjI4ODNERTM1NDExIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkIzRDQzNTQ4N0M3MTExRTU5Q0NDQjI4ODNERTM1NDExIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEBQQA6gAsAAAAAFgCkAEACP8AeQgcSLCgwYMIEypcyLChw4cQI0qcSLGixYsYM2rcyLGjx48gQ4ocSbKkyZMoU6pcybKly5cwY8qcSbOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkEQWaeSRSCap5JJMNunkk1BGKeWUVFZp5ZVYZqnlllx26eWXYIYp5phklmnmmWimqeaabLbp5ptwxinnnHTWGdE559j5XQBrrBGAnt3V0EILNQC63TaDDrqNodilkGiiKTBaXQA0DGqCCYPS8Kek0qmQKRxwVNqCCpxGB8GgRFyiiy6XEDEoBKU6/weCq6OuuqqnLRABQqzLxSGqCbbaimkLNMTBa3JVDLoGHMGuCscag1Zx7HF9oKpqs6u2OmgfBsVRRSKPhhtuIlUYO21qsw6qArbB4qprQcmKK++j0p57mge/stvssDR4QBC48wZMhL2nxbusvsE+G+2/AQtMcGnV5notwrZq2wK3AsXbsLj1PhwaE7TWQDG2gubKhEDeArxxC+Sa6/FnHgwL7MjYyuzvQIneoPPOOieaVwYOiLHCCh98MLQYDmTwskeXKMsszc0q3MIlBOXM884+13VF0B+0QgAOLITNAg4EtPIB0ktr9ECiE0MdbNODPoDzoFdjPWhdGYhBAQFi9//tNwEUiKF02hUxAbDIbrNbciIn82B13VnHtfUHfPtted8EfOAA4RTxmzjCvwr0+NWRv7U1BZen7jcFFTiQ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Urcq+RQqhQyjY8uuGTYDYcE+UxJk8Xq2798gw16pwPgi46nAkyv/i1gMBdYrN1AQA3a59esH62qni727d4J1v4v/H0++PN8Mzku2dIDcvHvRYjbk5g37vf3GLwWuJGCWd/v7AGIFmEAuXSFWTizgkF+ADFoFGErUFZaQfCws2OCFRUWGm3QUtOJZK/VhKCJWN2xg4YgoHjVFiCm26OKLMMYo44w01lijcJs9p550Ef1no4xzjdSKSVDttFJXLP74onArDGnRT62I4aOSGAb5AQEa/eQSlSmGdVdrWZ7VCkRisMclg7Xd9pFKXH1Q5pRnfjfXCmDC9NN0J8Ypp10b2KQSBRLpKR4PCalZ004bBCrodbXFR9RpWi2qXJCBGZUSiJICF2SfVO2UZ6aizVVcVZcmCepjc1VQ51GQwnkqZGFV/2pVq6+iGhanaqVkYq2OzYVrrihJxatforalq6nDqjXnqrOm9GmyVwU5KrAVQstXqr9ehRIByFrr4FyOYpVXt95WRVcFZWnLAgGRltsWXVeIMSSzN521gqvufpvqB04OdZaw98URh4vaOZDtTNtK+R4plbAyCCAtEKFCAARTeui6H5CLXRMNY+ExFoNA0kILiYBQsXBfPpkgROkWSdkHlrlHCisf14xFASK3sAYTS86VUHqeJdimOpdllsFYDnx19BX4XsVww6xEzUollZBCShMDHxSH1TTb7DXOI9PAc8/CIZ100kRfBl5scVTi9ds1S9013HSD3QINFOe7Fsd09//tt80V5WxC3noT5UEATVjt9t+M953RyCZkXThNHtQw8isFNK453B61YIIHk89U+chEZL756R6H1EINoIcOkwqka4H65jSp4HpIVYzcguyz/y2U7bePWEXwxBdv/PHIJ6/88sw37/zz0Ecv/fTUV2/99dhnr/323Hfv/ffghy/++OSXb/756Kev/vrst+/++/DHL//89Ndv//3456///vz37///AAzgUapwjgA07SYZ6IUlmJGKVAAAAKlIBgRMBj7dGYklD2mXTEDQh0vQQHcgDCE0MuY9C84HJVZAQAo+EoAUQEAFiQihDEHIASsE64DQM+EJWWCFBtSgD62rCBP/zgGBKnxwhkgcGQcaYMOfaPB7O2SBxLYRiCpa8QlYzOITRqbFLmpRh/MxlPhyozsvmpGLZuwiGOezAY1xbydlTOMX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 +`;var j3=require("obsidian"),hT=(r,e,t,i)=>{e.root=!0;let n=b=>{let C=(b.data.richText?fo(b.data.text):b.data.text).replaceAll(/\n/g,"
    ");C=Dn(C),C=C.replaceAll(/\n/g,"
    "),b.textCache=C,b.label=C,b.uid=b.data.uid,b.children&&b.children.length>0&&b.children.forEach(M=>{n(M)})};n(e);let s=t.querySelector("#smm-dg-outline"),a=null,o=null,l=null,h=null;function c(b){if(!b)return"";if(typeof b!="string")return String(b);if(b.includes("<")){let C=i.createElement("div");return C.innerHTML=b,C.textContent||C.innerText||b}return b}function u(b){return b.data.text?c(b.data.text):b.textCache?b.textCache:b.label?b.label:""}function d(b,C=0,M=null){if(M&&M.data.expand===!1)return;let D=i.createElement("div");D.className=`smm-dg-outline-node smm-dg-node-level-${C}`,D.dataset.uid=b.data.uid,D.draggable=!0;let L=i.createElement("div");L.className="smm-dg-drop-indicator top";let k=i.createElement("div");k.className="smm-dg-drop-indicator bottom";let V=i.createElement("div");V.className="smm-dg-drop-indicator inside",D.appendChild(L),D.appendChild(k),D.appendChild(V);let B=i.createElement("div");B.className="smm-dg-node-actions";let _=i.createElement("button");_.className="smm-dg-node-btn add",_.innerHTML="+",_.title="\u6DFB\u52A0\u5B50\u8282\u70B9",_.onclick=G=>{G.stopPropagation(),v(b)};let S=i.createElement("button");if(S.className="smm-dg-node-btn delete",S.innerHTML="\xD7",S.title="\u5220\u9664\u8282\u70B9",S.onclick=G=>{G.stopPropagation(),y(b)},B.appendChild(_),B.appendChild(S),D.appendChild(B),a===b.data.uid){let G=i.createElement("input");G.className="smm-dg-node-edit",G.value=u(b),G.addEventListener("keydown",Q=>{Q.key==="Enter"?(m(b,G.value),a=null,g()):Q.key==="Escape"&&(a=null,g())}),G.addEventListener("blur",()=>{m(b,G.value),a=null,g()}),setTimeout(()=>{G.focus(),G.select()},0),D.appendChild(G)}else{let G=i.createElement("div");if(G.className="smm-dg-node-wrapper",b.children&&b.children.length>0){let ne=i.createElement("span");ne.className=`smm-dg-collapse-btn ${b.data.expand===!1?"collapsed":""}`,ne.innerHTML="\u25BC",ne.title=b.data.expand===!1?"\u5C55\u5F00":"\u6298\u53E0",ne.onclick=ee=>{ee.stopPropagation(),A(b)},G.appendChild(ne)}else{let ne=i.createElement("span");ne.innerHTML="\u25CB",G.appendChild(ne);let ee=i.createElement("span");ee.className="smm-dg-placeholder",G.appendChild(ee)}let Y=i.createElement("span");Y.className="smm-dg-node-content",Y.textContent=u(b),Y.ondblclick=ne=>{ne.stopPropagation(),a=b.data.uid,g()},G.appendChild(Y),D.appendChild(G)}D.addEventListener("dragstart",G=>{D.classList.add("smm-dg-dragging"),o=b,G.dataTransfer.effectAllowed="move",G.dataTransfer.setData("text/plain",b.data.uid),i.querySelectorAll(".smm-dg-drop-target").forEach(Q=>{Q!==D&&Q.classList.remove("smm-dg-drop-target")})}),D.addEventListener("dragend",()=>{D.classList.remove("smm-dg-dragging"),i.querySelectorAll(".smm-dg-drop-indicator").forEach(Y=>{Y.style.display="none"}),i.querySelectorAll(".smm-dg-drop-target").forEach(Y=>{Y.classList.remove("smm-dg-drop-target")});let G=r.renderer.findNodeByUid(o.data.uid),Q=r.renderer.findNodeByUid(l.data.uid);if(Q.getAncestorNodes().contains(G)){new j3.Notice("\u7956\u5148\u8282\u70B9\u4E0D\u80FD\u63A8\u7ED9\u5B69\u5B50\u8282\u70B9");return}if(!(!Q||Q.uid===G.uid)){if(h=="inside")r.execCommand("MOVE_NODE_TO",G,Q);else if(h=="bottom"){if(Q.isRoot){new j3.Notice("\u6839\u7ED3\u70B9\u65E0\u6CD5\u4F5C\u4E3A\u5144\u5F1F\u8282\u70B9");return}r.execCommand("INSERT_AFTER",G,Q)}else if(h=="top"){if(Q.isRoot){new j3.Notice("\u6839\u7ED3\u70B9\u65E0\u6CD5\u4F5C\u4E3A\u5144\u5F1F\u8282\u70B9");return}r.execCommand("INSERT_BEFORE",G,Q)}setTimeout(()=>{o=null,l=null,h=null},10)}}),D.addEventListener("dragover",G=>{if(G.preventDefault(),!o||o.data.uid===b.data.uid)return;l=b,D.querySelectorAll(".smm-dg-drop-indicator").forEach(ne=>{ne.style.display="none"}),i.querySelectorAll(".smm-dg-drop-target").forEach(ne=>{ne.classList.remove("smm-dg-drop-target")});let Q=D.getBoundingClientRect(),Y=G.clientY-Q.top;YQ.height*.75?(k.style.display="block",h="bottom"):(V.style.display="block",D.classList.add("smm-dg-drop-target"),h="inside"),G.stopPropagation()}),D.addEventListener("drop",G=>{G.preventDefault(),G.stopPropagation(),!o||(o.data.uid,b.data.uid)}),D.addEventListener("dragleave",G=>{let Q=D.getBoundingClientRect();(G.clientX=Q.right||G.clientY=Q.bottom)&&D.querySelectorAll(".smm-dg-drop-indicator").forEach(Y=>{Y.style.display="none"})}),s.appendChild(D),b.children&&b.children.length&&b.data.expand!==!1&&b.children.forEach(G=>d(G,C+1,b))}function f(b,C,M=null,D=-1){if(b.data&&b.data.uid===C)return{node:b,parent:M,index:D};if(b.children&&b.children.length)for(let L=0;L{let M=r.renderer.findNodeByUid(C);M&&M.nodeData.data.isActive||r.execCommand("GO_TARGET_NODE",C)}}}g();function v(b){let C=b.data.uid,M=r.renderer.findNodeByUid(C);r.execCommand("INSERT_CHILD_NODE",!1,M)}function y(b){let C=r.renderer.findNodeByUid(b.data.uid);r.execCommand("REMOVE_NODE",[C])}function A(b){b.data.expand=!b.data.expand,i.dispatchEvent(new CustomEvent("node-toggle-expand",{detail:{uid:b.data.uid,expand:b.data.expand}})),g()}};var cT=(r,e)=>{let t=r.querySelector("#smm-panel-container"),i=r.querySelector("#smm-resizeHandle"),n=405,s,a;i.addEventListener("mousedown",function(h){s=h.clientX,a=t.offsetWidth,e.addEventListener("mousemove",o),e.addEventListener("mouseup",l),h.preventDefault()});function o(h){let c=a-(h.clientX-s);c=Math.max(n,c),t.style.width=`${c}px`}function l(){e.removeEventListener("mousemove",o),e.removeEventListener("mouseup",l)}};var o$=["rgb(255, 213, 73)","rgb(255, 136, 126)","rgb(107, 225, 141)","rgb(151, 171, 255)","rgb(129, 220, 242)","rgb(255, 163, 125)","rgb(152, 132, 234)"],G3=class{constructor({mindMap:e}){this.mindMap=e}updateRainLinesConfig(e={}){let t=this.mindMap.opt.rainbowLinesConfig||{};t.open=!!e.open,t.colorsList=Array.isArray(e.colorsList)?e.colorsList:[],this.mindMap.opt.rainbowLinesConfig.open&&this.removeNodeLineColor(),this.mindMap.render()}removeNodeLineColor(){let e=this.mindMap.renderer.renderTree;e&&(it(e,null,t=>{delete t.data.lineColor},null,!0),this.mindMap.command.addHistory())}getSecondLayerAncestor(e){if(e.layerIndex===0)return null;if(e.layerIndex===1)return e;{let t=null,i=e.parent;for(;i;){if(i.layerIndex===1)return i;i=i.parent}return t}}getColorsList(){let{rainbowLinesConfig:e}=this.mindMap.opt;return e&&Array.isArray(e.colorsList)&&e.colorsList.length>0?e.colorsList:[...o$]}getNodeColor(e){let{rainbowLinesConfig:t}=this.mindMap.opt;if(!t||!t.open)return"";let i=this.getSecondLayerAncestor(e);if(!i)return;let n=mo(i),s=this.getColorsList();return s[n%s.length]}};G3.instanceName="rainbowLines";var uT=G3;var l$={boxShadowColor:"rgba(0, 0, 0, 0.8)",borderRadius:"5px",transition:"all 0.3s ease-out",zIndex:9999,padding:20,margin:50,openBlankMode:!0},W3=class{constructor(e){this.mindMap=e.mindMap,this.isInDemonstrate=!1,this.stepList=[],this.currentStepIndex=0,this.currentStepNode=null,this.currentUnderlineTextData=null,this.tmpStyleEl=null,this.highlightEl=null,this.transformState=null,this.renderTree=null,this.config=Object.assign({...l$},this.mindMap.opt.demonstrateConfig||{}),this.needRestorePerformanceMode=!1}enter(){this.bindFullscreenEvent(),document.fullscreenElement===this.mindMap.el?this._enter():B9(this.mindMap.el)}_enter(){this.isInDemonstrate=!0,this.pausePerformanceMode(),this.addTmpStyles(),this.transformState=this.mindMap.view.getTransformData(),this.renderTree=this.mindMap.getData(),this.mindMap.command.pause(),this.mindMap.keyCommand.pause(),this.createHighlightEl(),this.getStepList();let e=!1;this.mindMap.renderer.isRendering&&(e=!0),this.mindMap.execCommand("UNEXPAND_ALL",!1);let t=()=>{if(e){e=!1;return}this.mindMap.off("node_tree_render_end",t),this.jump(this.currentStepIndex),this.bindEvent()};this.mindMap.on("node_tree_render_end",t)}exit(){R9(this.mindMap.el),this.mindMap.updateData(this.renderTree),this.mindMap.view.setTransformData(this.transformState),this.renderTree=null,this.transformState=null,this.stepList=[],this.currentStepIndex=0,this.currentStepNode=null,this.currentUnderlineTextData=null,this.unBindEvent(),this.removeTmpStyles(),this.removeHighlightEl(),this.mindMap.command.recovery(),this.mindMap.keyCommand.recovery(),this.restorePerformanceMode(),this.mindMap.emit("exit_demonstrate"),this.isInDemonstrate=!1}pausePerformanceMode(){let{openPerformance:e}=this.mindMap.opt;e&&(this.needRestorePerformanceMode=!0,this.mindMap.opt.openPerformance=!1,this.mindMap.renderer.forceLoadNode())}restorePerformanceMode(){this.needRestorePerformanceMode&&(this.mindMap.opt.openPerformance=!0,this.mindMap.renderer.forceLoadNode())}addTmpStyles(){this.tmpStyleEl=document.createElement("style");let e=` + /* \u753B\u5E03\u6240\u6709\u5143\u7D20\u7981\u6B62\u54CD\u5E94\u9F20\u6807\u4E8B\u4EF6 */ + .smm-mind-map-container { + pointer-events: none; + } + /* \u8D85\u94FE\u63A5\u56FE\u6807\u5141\u8BB8\u54CD\u5E94\u9F20\u6807\u4E8B\u4EF6 */ + .smm-node a { + pointer-events: all; + } + /* \u5907\u6CE8\u56FE\u6807\u5141\u8BB8\u54CD\u5E94\u9F20\u6807\u4E8B\u4EF6 */ + .smm-node .smm-node-note { + pointer-events: all; + } + `;this.config.openBlankMode&&(e+=` + /* \u5E26\u4E0B\u5212\u7EBF\u7684\u6587\u672C\u5185\u5BB9\u5168\u90E8\u9690\u85CF */ + .smm-richtext-node-wrap u { + opacity: 0; + } + `),this.tmpStyleEl.innerText=e,document.head.appendChild(this.tmpStyleEl)}removeTmpStyles(){this.tmpStyleEl&&document.head.removeChild(this.tmpStyleEl)}createHighlightEl(){this.highlightEl||(this.highlightEl=document.createElement("div"),this.highlightEl.style.cssText=` + position: absolute; + box-shadow: 0 0 0 5000px ${this.config.boxShadowColor}; + border-radius: ${this.config.borderRadius}; + transition: ${this.config.transition}; + z-index: ${this.config.zIndex+1}; + pointer-events: none; + `,this.mindMap.el.appendChild(this.highlightEl))}removeHighlightEl(){this.highlightEl&&(this.mindMap.el.removeChild(this.highlightEl),this.highlightEl=null)}updateHighlightEl({left:e,top:t,width:i,height:n}){let s=this.config.padding;e&&(this.highlightEl.style.left=e-s+"px"),t&&(this.highlightEl.style.top=t-s+"px"),i&&(this.highlightEl.style.width=i+s*2+"px"),n&&(this.highlightEl.style.height=n+s*2+"px")}bindEvent(){this.onKeydown=this.onKeydown.bind(this),window.addEventListener("keydown",this.onKeydown)}bindFullscreenEvent(){this.onFullscreenChange=this.onFullscreenChange.bind(this),document.addEventListener(h6,this.onFullscreenChange)}unBindEvent(){window.removeEventListener("keydown",this.onKeydown),document.removeEventListener(h6,this.onFullscreenChange)}onFullscreenChange(){document.fullscreenElement?document.fullscreenElement===this.mindMap.el&&this._enter():this.exit()}onKeydown(e){e.keyCode===Nn.Left?this.prev():e.keyCode===Nn.Right?this.next():e.keyCode===Nn.Esc?this.exit():e.keyCode===Nn.Enter&&this.showNextUnderlineText()}prev(){this.currentStepIndex>0&&this.jump(this.currentStepIndex-1)}next(){let e=this.stepList.length;this.currentStepIndex=i)return;let n=t[e];this.currentUnderlineTextData.index++,n.node.style.opacity=1}jump(e){this.currentUnderlineTextData&&(this.currentUnderlineTextData.list.forEach(a=>{a.node.style.opacity=""}),this.currentUnderlineTextData=null),this.currentStepNode=null,this.currentStepIndex=e,this.mindMap.emit("demonstrate_jump",this.currentStepIndex,this.stepList.length);let t=this.stepList[e],i=t.node,n=i.data.uid,s=this.mindMap.renderer.findNodeByUid(n);if(!s){this.mindMap.renderer.expandToNodeUid(n,()=>{this.mindMap.renderer.findNodeByUid(n)&&this.jump(e)});return}if(t.type==="node"){this.currentStepNode=s;let a=this.config.openBlankMode?s.group.find("u"):null;a&&a.length>0&&(this.currentUnderlineTextData={index:0,list:a,length:a.length}),this.mindMap.view.fit(()=>s.group.rbox(),!0,this.config.padding+this.config.margin);let o=s.group.rbox();this.updateHighlightEl({left:o.x,top:o.y,width:o.width,height:o.height})}else{let a=()=>{i.children.forEach(o=>{o.data.expand=!1}),this.mindMap.render(()=>{this.mindMap.view.fit(()=>{let l=oh(s,0,0,0,0,!0);return{...l,x:l.left,y:l.top}},!0,this.config.padding+this.config.margin);let o=oh(s,0,0,0,0,!0);this.updateHighlightEl(o)})};if(i.data.expand)a();else{this.mindMap.execCommand("SET_NODE_EXPAND",s,!0);let o=()=>{this.mindMap.off("node_tree_render_end",o),a()};this.mindMap.on("node_tree_render_end",o)}}}getStepList(){it(this.mindMap.renderer.renderTree,null,e=>{this.stepList.push({type:"node",node:e}),Hi(e.data).forEach(i=>{i.uid&&this.stepList.push({type:"node",node:{data:i}})}),e.children.length>1&&this.stepList.push({type:"children",node:e})})}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};W3.instanceName="demonstrate";var dT=W3;var h$={};function F5(r,e){let t=e||h$,i=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,n=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return mT(r,i,n)}function mT(r,e,t){if(c$(r)){if("value"in r)return r.type==="html"&&!t?"":r.value;if(e&&"alt"in r&&r.alt)return r.alt;if("children"in r)return fT(r.children,e,t)}return Array.isArray(r)?fT(r,e,t):""}function fT(r,e,t){let i=[],n=-1;for(;++nn?0:n+e:e=e>n?n:e,t=t>0?t:0,i.length<1e4)a=Array.from(i),a.unshift(e,t),r.splice(...a);else for(t&&r.splice(e,t);s0?(pi(r,r.length,0,e),r):e}var pT={}.hasOwnProperty;function gT(r){let e={},t=-1;for(;++ta))return;let L=e.events.length,k=L,V,B;for(;k--;)if(e.events[k][0]==="exit"&&e.events[k][1].type==="chunkFlow"){if(V){B=e.events[k][1].end;break}V=!0}for(y(i),D=L;Db;){let M=t[C];e.containerState=M[1],M[0].exit.call(e,r)}t.length=b}function A(){n.write([null]),s=void 0,n=void 0,e.containerState._closeFlow=void 0}}function p$(r,e,t){return xt(r,r.attempt(this.parser.constructs.document,e,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function I5(r){if(r===null||Ur(r)||AT(r))return 1;if(wT(r))return 2}function $h(r,e,t){let i=[],n=-1;for(;++n1&&r[t][1].end.offset-r[t][1].start.offset>1?2:1;let u=Object.assign({},r[i][1].end),d=Object.assign({},r[t][1].start);TT(u,-l),TT(d,l),a={type:l>1?"strongSequence":"emphasisSequence",start:u,end:Object.assign({},r[i][1].end)},o={type:l>1?"strongSequence":"emphasisSequence",start:Object.assign({},r[t][1].start),end:d},s={type:l>1?"strongText":"emphasisText",start:Object.assign({},r[i][1].end),end:Object.assign({},r[t][1].start)},n={type:l>1?"strong":"emphasis",start:Object.assign({},a.start),end:Object.assign({},o.end)},r[i][1].end=Object.assign({},a.start),r[t][1].start=Object.assign({},o.end),h=[],r[i][1].end.offset-r[i][1].start.offset&&(h=Zi(h,[["enter",r[i][1],e],["exit",r[i][1],e]])),h=Zi(h,[["enter",n,e],["enter",a,e],["exit",a,e],["enter",s,e]]),h=Zi(h,$h(e.parser.constructs.insideSpan.null,r.slice(i+1,t),e)),h=Zi(h,[["exit",s,e],["enter",o,e],["exit",o,e],["exit",n,e]]),r[t][1].end.offset-r[t][1].start.offset?(c=2,h=Zi(h,[["enter",r[t][1],e],["exit",r[t][1],e]])):c=0,pi(r,i-1,t-i+3,h),t=i+h.length-c-2;break}}for(t=-1;++t0&&yt(D)?xt(r,A,"linePrefix",s+1)(D):A(D)}function A(D){return D===null||je(D)?r.check(kT,g,C)(D):(r.enter("codeFlowValue"),b(D))}function b(D){return D===null||je(D)?(r.exit("codeFlowValue"),A(D)):(r.consume(D),b)}function C(D){return r.exit("codeFenced"),e(D)}function M(D,L,k){let V=0;return B;function B(Y){return D.enter("lineEnding"),D.consume(Y),D.exit("lineEnding"),_}function _(Y){return D.enter("codeFencedFence"),yt(Y)?xt(D,S,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Y):S(Y)}function S(Y){return Y===o?(D.enter("codeFencedFenceSequence"),G(Y)):k(Y)}function G(Y){return Y===o?(V++,D.consume(Y),G):V>=a?(D.exit("codeFencedFenceSequence"),yt(Y)?xt(D,Q,"whitespace")(Y):Q(Y)):k(Y)}function Q(Y){return Y===null||je(Y)?(D.exit("codeFencedFence"),L(Y)):k(Y)}}}function T$(r,e,t){let i=this;return n;function n(a){return a===null?t(a):(r.enter("lineEnding"),r.consume(a),r.exit("lineEnding"),s)}function s(a){return i.parser.lazy[i.now().line]?t(a):e(a)}}var _d={name:"codeIndented",tokenize:k$},M$={tokenize:D$,partial:!0};function k$(r,e,t){let i=this;return n;function n(h){return r.enter("codeIndented"),xt(r,s,"linePrefix",4+1)(h)}function s(h){let c=i.events[i.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?a(h):t(h)}function a(h){return h===null?l(h):je(h)?r.attempt(M$,a,l)(h):(r.enter("codeFlowValue"),o(h))}function o(h){return h===null||je(h)?(r.exit("codeFlowValue"),a(h)):(r.consume(h),o)}function l(h){return r.exit("codeIndented"),e(h)}}function D$(r,e,t){let i=this;return n;function n(a){return i.parser.lazy[i.now().line]?t(a):je(a)?(r.enter("lineEnding"),r.consume(a),r.exit("lineEnding"),n):xt(r,s,"linePrefix",4+1)(a)}function s(a){let o=i.events[i.events.length-1];return o&&o[1].type==="linePrefix"&&o[2].sliceSerialize(o[1],!0).length>=4?e(a):je(a)?n(a):t(a)}}var L5={name:"codeText",tokenize:I$,resolve:N$,previous:F$};function N$(r){let e=r.length-4,t=3,i,n;if((r[t][1].type==="lineEnding"||r[t][1].type==="space")&&(r[e][1].type==="lineEnding"||r[e][1].type==="space")){for(i=t;++i=4?e(a):r.interrupt(i.parser.constructs.flow,t,e)(a)}}function Z3(r,e,t,i,n,s,a,o,l){let h=l||Number.POSITIVE_INFINITY,c=0;return u;function u(y){return y===60?(r.enter(i),r.enter(n),r.enter(s),r.consume(y),r.exit(s),d):y===null||y===32||y===41||Bd(y)?t(y):(r.enter(i),r.enter(a),r.enter(o),r.enter("chunkString",{contentType:"string"}),g(y))}function d(y){return y===62?(r.enter(s),r.consume(y),r.exit(s),r.exit(n),r.exit(i),e):(r.enter(o),r.enter("chunkString",{contentType:"string"}),f(y))}function f(y){return y===62?(r.exit("chunkString"),r.exit(o),d(y)):y===null||y===60||je(y)?t(y):(r.consume(y),y===92?m:f)}function m(y){return y===60||y===62||y===92?(r.consume(y),f):f(y)}function g(y){return!c&&(y===null||y===41||Ur(y))?(r.exit("chunkString"),r.exit(o),r.exit(a),r.exit(i),e(y)):c999||f===null||f===91||f===93&&!l||f===94&&!o&&"_hiddenFootnoteSupport"in a.parser.constructs?t(f):f===93?(r.exit(s),r.enter(n),r.consume(f),r.exit(n),r.exit(i),e):je(f)?(r.enter("lineEnding"),r.consume(f),r.exit("lineEnding"),c):(r.enter("chunkString",{contentType:"string"}),u(f))}function u(f){return f===null||f===91||f===93||je(f)||o++>999?(r.exit("chunkString"),c(f)):(r.consume(f),l||(l=!yt(f)),f===92?d:u)}function d(f){return f===91||f===92||f===93?(r.consume(f),o++,u):u(f)}}function $3(r,e,t,i,n,s){let a;return o;function o(d){return d===34||d===39||d===40?(r.enter(i),r.enter(n),r.consume(d),r.exit(n),a=d===40?41:d,l):t(d)}function l(d){return d===a?(r.enter(n),r.consume(d),r.exit(n),r.exit(i),e):(r.enter(s),h(d))}function h(d){return d===a?(r.exit(s),l(a)):d===null?t(d):je(d)?(r.enter("lineEnding"),r.consume(d),r.exit("lineEnding"),xt(r,h,"linePrefix")):(r.enter("chunkString",{contentType:"string"}),c(d))}function c(d){return d===a||d===null||je(d)?(r.exit("chunkString"),h(d)):(r.consume(d),d===92?u:c)}function u(d){return d===a||d===92?(r.consume(d),c):c(d)}}function s0(r,e){let t;return i;function i(n){return je(n)?(r.enter("lineEnding"),r.consume(n),r.exit("lineEnding"),t=!0,i):yt(n)?xt(r,i,t?"linePrefix":"lineSuffix")(n):e(n)}}function Va(r){return r.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}var B5={name:"definition",tokenize:_$},P$={tokenize:q$,partial:!0};function _$(r,e,t){let i=this,n;return s;function s(f){return r.enter("definition"),a(f)}function a(f){return J3.call(i,r,o,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(f)}function o(f){return n=Va(i.sliceSerialize(i.events[i.events.length-1][1]).slice(1,-1)),f===58?(r.enter("definitionMarker"),r.consume(f),r.exit("definitionMarker"),l):t(f)}function l(f){return Ur(f)?s0(r,h)(f):h(f)}function h(f){return Z3(r,c,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(f)}function c(f){return r.attempt(P$,u,u)(f)}function u(f){return yt(f)?xt(r,d,"whitespace")(f):d(f)}function d(f){return f===null||je(f)?(r.exit("definition"),i.parser.defined.push(n),e(f)):t(f)}}function q$(r,e,t){return i;function i(o){return Ur(o)?s0(r,n)(o):t(o)}function n(o){return $3(r,s,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(o)}function s(o){return yt(o)?xt(r,a,"whitespace")(o):a(o)}function a(o){return o===null||je(o)?e(o):t(o)}}var R5={name:"hardBreakEscape",tokenize:U$};function U$(r,e,t){return i;function i(s){return r.enter("hardBreakEscape"),r.consume(s),n}function n(s){return je(s)?(r.exit("hardBreakEscape"),e(s)):t(s)}}var P5={name:"headingAtx",tokenize:j$,resolve:H$};function H$(r,e){let t=r.length-2,i=3,n,s;return r[i][1].type==="whitespace"&&(i+=2),t-2>i&&r[t][1].type==="whitespace"&&(t-=2),r[t][1].type==="atxHeadingSequence"&&(i===t-1||t-4>i&&r[t-2][1].type==="whitespace")&&(t-=i+1===t?2:4),t>i&&(n={type:"atxHeadingText",start:r[i][1].start,end:r[t][1].end},s={type:"chunkText",start:r[i][1].start,end:r[t][1].end,contentType:"text"},pi(r,i,t-i+1,[["enter",n,e],["enter",s,e],["exit",s,e],["exit",n,e]])),r}function j$(r,e,t){let i=0;return n;function n(c){return r.enter("atxHeading"),s(c)}function s(c){return r.enter("atxHeadingSequence"),a(c)}function a(c){return c===35&&i++<6?(r.consume(c),a):c===null||Ur(c)?(r.exit("atxHeadingSequence"),o(c)):t(c)}function o(c){return c===35?(r.enter("atxHeadingSequence"),l(c)):c===null||je(c)?(r.exit("atxHeading"),e(c)):yt(c)?xt(r,o,"whitespace")(c):(r.enter("atxHeadingText"),h(c))}function l(c){return c===35?(r.consume(c),l):(r.exit("atxHeadingSequence"),o(c))}function h(c){return c===null||c===35||Ur(c)?(r.exit("atxHeadingText"),o(c)):(r.consume(c),h)}}var DT=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],_5=["pre","script","style","textarea"];var q5={name:"htmlFlow",tokenize:V$,resolveTo:Y$,concrete:!0},G$={tokenize:Q$,partial:!0},W$={tokenize:K$,partial:!0};function Y$(r){let e=r.length;for(;e--&&!(r[e][0]==="enter"&&r[e][1].type==="htmlFlow"););return e>1&&r[e-2][1].type==="linePrefix"&&(r[e][1].start=r[e-2][1].start,r[e+1][1].start=r[e-2][1].start,r.splice(e-2,2)),r}function V$(r,e,t){let i=this,n,s,a,o,l;return h;function h(R){return c(R)}function c(R){return r.enter("htmlFlow"),r.enter("htmlFlowData"),r.consume(R),u}function u(R){return R===33?(r.consume(R),d):R===47?(r.consume(R),s=!0,g):R===63?(r.consume(R),n=3,i.interrupt?e:O):Bn(R)?(r.consume(R),a=String.fromCharCode(R),v):t(R)}function d(R){return R===45?(r.consume(R),n=2,f):R===91?(r.consume(R),n=5,o=0,m):Bn(R)?(r.consume(R),n=4,i.interrupt?e:O):t(R)}function f(R){return R===45?(r.consume(R),i.interrupt?e:O):t(R)}function m(R){let gt="CDATA[";return R===gt.charCodeAt(o++)?(r.consume(R),o===gt.length?i.interrupt?e:S:m):t(R)}function g(R){return Bn(R)?(r.consume(R),a=String.fromCharCode(R),v):t(R)}function v(R){if(R===null||R===47||R===62||Ur(R)){let gt=R===47,Ct=a.toLowerCase();return!gt&&!s&&_5.includes(Ct)?(n=1,i.interrupt?e(R):S(R)):DT.includes(a.toLowerCase())?(n=6,gt?(r.consume(R),y):i.interrupt?e(R):S(R)):(n=7,i.interrupt&&!i.parser.lazy[i.now().line]?t(R):s?A(R):b(R))}return R===45||Ji(R)?(r.consume(R),a+=String.fromCharCode(R),v):t(R)}function y(R){return R===62?(r.consume(R),i.interrupt?e:S):t(R)}function A(R){return yt(R)?(r.consume(R),A):B(R)}function b(R){return R===47?(r.consume(R),B):R===58||R===95||Bn(R)?(r.consume(R),C):yt(R)?(r.consume(R),b):B(R)}function C(R){return R===45||R===46||R===58||R===95||Ji(R)?(r.consume(R),C):M(R)}function M(R){return R===61?(r.consume(R),D):yt(R)?(r.consume(R),M):b(R)}function D(R){return R===null||R===60||R===61||R===62||R===96?t(R):R===34||R===39?(r.consume(R),l=R,L):yt(R)?(r.consume(R),D):k(R)}function L(R){return R===l?(r.consume(R),l=null,V):R===null||je(R)?t(R):(r.consume(R),L)}function k(R){return R===null||R===34||R===39||R===47||R===60||R===61||R===62||R===96||Ur(R)?M(R):(r.consume(R),k)}function V(R){return R===47||R===62||yt(R)?b(R):t(R)}function B(R){return R===62?(r.consume(R),_):t(R)}function _(R){return R===null||je(R)?S(R):yt(R)?(r.consume(R),_):t(R)}function S(R){return R===45&&n===2?(r.consume(R),ne):R===60&&n===1?(r.consume(R),ee):R===62&&n===4?(r.consume(R),Fe):R===63&&n===3?(r.consume(R),O):R===93&&n===5?(r.consume(R),ae):je(R)&&(n===6||n===7)?(r.exit("htmlFlowData"),r.check(G$,we,G)(R)):R===null||je(R)?(r.exit("htmlFlowData"),G(R)):(r.consume(R),S)}function G(R){return r.check(W$,Q,we)(R)}function Q(R){return r.enter("lineEnding"),r.consume(R),r.exit("lineEnding"),Y}function Y(R){return R===null||je(R)?G(R):(r.enter("htmlFlowData"),S(R))}function ne(R){return R===45?(r.consume(R),O):S(R)}function ee(R){return R===47?(r.consume(R),a="",be):S(R)}function be(R){if(R===62){let gt=a.toLowerCase();return _5.includes(gt)?(r.consume(R),Fe):S(R)}return Bn(R)&&a.length<8?(r.consume(R),a+=String.fromCharCode(R),be):S(R)}function ae(R){return R===93?(r.consume(R),O):S(R)}function O(R){return R===62?(r.consume(R),Fe):R===45&&n===2?(r.consume(R),O):S(R)}function Fe(R){return R===null||je(R)?(r.exit("htmlFlowData"),we(R)):(r.consume(R),Fe)}function we(R){return r.exit("htmlFlow"),e(R)}}function K$(r,e,t){let i=this;return n;function n(a){return je(a)?(r.enter("lineEnding"),r.consume(a),r.exit("lineEnding"),s):t(a)}function s(a){return i.parser.lazy[i.now().line]?t(a):e(a)}}function Q$(r,e,t){return i;function i(n){return r.enter("lineEnding"),r.consume(n),r.exit("lineEnding"),r.attempt(Vo,e,t)}}var U5={name:"htmlText",tokenize:X$};function X$(r,e,t){let i=this,n,s,a;return o;function o(O){return r.enter("htmlText"),r.enter("htmlTextData"),r.consume(O),l}function l(O){return O===33?(r.consume(O),h):O===47?(r.consume(O),M):O===63?(r.consume(O),b):Bn(O)?(r.consume(O),k):t(O)}function h(O){return O===45?(r.consume(O),c):O===91?(r.consume(O),s=0,m):Bn(O)?(r.consume(O),A):t(O)}function c(O){return O===45?(r.consume(O),f):t(O)}function u(O){return O===null?t(O):O===45?(r.consume(O),d):je(O)?(a=u,ee(O)):(r.consume(O),u)}function d(O){return O===45?(r.consume(O),f):u(O)}function f(O){return O===62?ne(O):O===45?d(O):u(O)}function m(O){let Fe="CDATA[";return O===Fe.charCodeAt(s++)?(r.consume(O),s===Fe.length?g:m):t(O)}function g(O){return O===null?t(O):O===93?(r.consume(O),v):je(O)?(a=g,ee(O)):(r.consume(O),g)}function v(O){return O===93?(r.consume(O),y):g(O)}function y(O){return O===62?ne(O):O===93?(r.consume(O),y):g(O)}function A(O){return O===null||O===62?ne(O):je(O)?(a=A,ee(O)):(r.consume(O),A)}function b(O){return O===null?t(O):O===63?(r.consume(O),C):je(O)?(a=b,ee(O)):(r.consume(O),b)}function C(O){return O===62?ne(O):b(O)}function M(O){return Bn(O)?(r.consume(O),D):t(O)}function D(O){return O===45||Ji(O)?(r.consume(O),D):L(O)}function L(O){return je(O)?(a=L,ee(O)):yt(O)?(r.consume(O),L):ne(O)}function k(O){return O===45||Ji(O)?(r.consume(O),k):O===47||O===62||Ur(O)?V(O):t(O)}function V(O){return O===47?(r.consume(O),ne):O===58||O===95||Bn(O)?(r.consume(O),B):je(O)?(a=V,ee(O)):yt(O)?(r.consume(O),V):ne(O)}function B(O){return O===45||O===46||O===58||O===95||Ji(O)?(r.consume(O),B):_(O)}function _(O){return O===61?(r.consume(O),S):je(O)?(a=_,ee(O)):yt(O)?(r.consume(O),_):V(O)}function S(O){return O===null||O===60||O===61||O===62||O===96?t(O):O===34||O===39?(r.consume(O),n=O,G):je(O)?(a=S,ee(O)):yt(O)?(r.consume(O),S):(r.consume(O),Q)}function G(O){return O===n?(r.consume(O),n=void 0,Y):O===null?t(O):je(O)?(a=G,ee(O)):(r.consume(O),G)}function Q(O){return O===null||O===34||O===39||O===60||O===61||O===96?t(O):O===47||O===62||Ur(O)?V(O):(r.consume(O),Q)}function Y(O){return O===47||O===62||Ur(O)?V(O):t(O)}function ne(O){return O===62?(r.consume(O),r.exit("htmlTextData"),r.exit("htmlText"),e):t(O)}function ee(O){return r.exit("htmlTextData"),r.enter("lineEnding"),r.consume(O),r.exit("lineEnding"),be}function be(O){return yt(O)?xt(r,ae,"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):ae(O)}function ae(O){return r.enter("htmlTextData"),a(O)}}var a0={name:"labelEnd",tokenize:ree,resolveTo:tee,resolveAll:eee},Z$={tokenize:iee},J$={tokenize:nee},$$={tokenize:see};function eee(r){let e=-1;for(;++e=3&&(h===null||je(h))?(r.exit("thematicBreak"),e(h)):t(h)}function l(h){return h===n?(r.consume(h),i++,l):(r.exit("thematicBreakSequence"),yt(h)?xt(r,o,"whitespace")(h):o(h))}}var ki={name:"list",tokenize:dee,continuation:{tokenize:fee},exit:pee},cee={tokenize:gee,partial:!0},uee={tokenize:mee,partial:!0};function dee(r,e,t){let i=this,n=i.events[i.events.length-1],s=n&&n[1].type==="linePrefix"?n[2].sliceSerialize(n[1],!0).length:0,a=0;return o;function o(f){let m=i.containerState.type||(f===42||f===43||f===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!i.containerState.marker||f===i.containerState.marker:Rd(f)){if(i.containerState.type||(i.containerState.type=m,r.enter(m,{_container:!0})),m==="listUnordered")return r.enter("listItemPrefix"),f===42||f===45?r.check(o0,t,h)(f):h(f);if(!i.interrupt||f===49)return r.enter("listItemPrefix"),r.enter("listItemValue"),l(f)}return t(f)}function l(f){return Rd(f)&&++a<10?(r.consume(f),l):(!i.interrupt||a<2)&&(i.containerState.marker?f===i.containerState.marker:f===41||f===46)?(r.exit("listItemValue"),h(f)):t(f)}function h(f){return r.enter("listItemMarker"),r.consume(f),r.exit("listItemMarker"),i.containerState.marker=i.containerState.marker||f,r.check(Vo,i.interrupt?t:c,r.attempt(cee,d,u))}function c(f){return i.containerState.initialBlankLine=!0,s++,d(f)}function u(f){return yt(f)?(r.enter("listItemPrefixWhitespace"),r.consume(f),r.exit("listItemPrefixWhitespace"),d):t(f)}function d(f){return i.containerState.size=s+i.sliceSerialize(r.exit("listItemPrefix"),!0).length,e(f)}}function fee(r,e,t){let i=this;return i.containerState._closeFlow=void 0,r.check(Vo,n,s);function n(o){return i.containerState.furtherBlankLines=i.containerState.furtherBlankLines||i.containerState.initialBlankLine,xt(r,e,"listItemIndent",i.containerState.size+1)(o)}function s(o){return i.containerState.furtherBlankLines||!yt(o)?(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,a(o)):(i.containerState.furtherBlankLines=void 0,i.containerState.initialBlankLine=void 0,r.attempt(uee,e,a)(o))}function a(o){return i.containerState._closeFlow=!0,i.interrupt=void 0,xt(r,r.attempt(ki,e,t),"linePrefix",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o)}}function mee(r,e,t){let i=this;return xt(r,n,"listItemIndent",i.containerState.size+1);function n(s){let a=i.events[i.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===i.containerState.size?e(s):t(s)}}function pee(r){r.exit(this.containerState.type)}function gee(r,e,t){let i=this;return xt(r,n,"listItemPrefixWhitespace",i.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function n(s){let a=i.events[i.events.length-1];return!yt(s)&&a&&a[1].type==="listItemPrefixWhitespace"?e(s):t(s)}}var e2={name:"setextUnderline",tokenize:yee,resolveTo:vee};function vee(r,e){let t=r.length,i,n,s;for(;t--;)if(r[t][0]==="enter"){if(r[t][1].type==="content"){i=t;break}r[t][1].type==="paragraph"&&(n=t)}else r[t][1].type==="content"&&r.splice(t,1),!s&&r[t][1].type==="definition"&&(s=t);let a={type:"setextHeading",start:Object.assign({},r[n][1].start),end:Object.assign({},r[r.length-1][1].end)};return r[n][1].type="setextHeadingText",s?(r.splice(n,0,["enter",a,e]),r.splice(s+1,0,["exit",r[i][1],e]),r[i][1].end=Object.assign({},r[s][1].end)):r[i][1]=a,r.push(["exit",a,e]),r}function yee(r,e,t){let i=this,n;return s;function s(h){let c=i.events.length,u;for(;c--;)if(i.events[c][1].type!=="lineEnding"&&i.events[c][1].type!=="linePrefix"&&i.events[c][1].type!=="content"){u=i.events[c][1].type==="paragraph";break}return!i.parser.lazy[i.now().line]&&(i.interrupt||u)?(r.enter("setextHeadingLine"),n=h,a(h)):t(h)}function a(h){return r.enter("setextHeadingLineSequence"),o(h)}function o(h){return h===n?(r.consume(h),o):(r.exit("setextHeadingLineSequence"),yt(h)?xt(r,l,"lineSuffix")(h):l(h))}function l(h){return h===null||je(h)?(r.exit("setextHeadingLine"),e(h)):t(h)}}var NT={tokenize:xee};function xee(r){let e=this,t=r.attempt(Vo,i,r.attempt(this.parser.constructs.flowInitial,n,xt(r,r.attempt(this.parser.constructs.flow,n,r.attempt(O5,n)),"linePrefix")));return t;function i(s){if(s===null){r.consume(s);return}return r.enter("lineEndingBlank"),r.consume(s),r.exit("lineEndingBlank"),e.currentConstruct=void 0,t}function n(s){if(s===null){r.consume(s);return}return r.enter("lineEnding"),r.consume(s),r.exit("lineEnding"),e.currentConstruct=void 0,t}}var FT={resolveAll:OT()},IT=LT("string"),zT=LT("text");function LT(r){return{tokenize:e,resolveAll:OT(r==="text"?bee:void 0)};function e(t){let i=this,n=this.parser.constructs[r],s=t.attempt(n,a,o);return a;function a(c){return h(c)?s(c):o(c)}function o(c){if(c===null){t.consume(c);return}return t.enter("data"),t.consume(c),l}function l(c){return h(c)?(t.exit("data"),s(c)):(t.consume(c),l)}function h(c){if(c===null)return!0;let u=n[c],d=-1;if(u)for(;++d-1){let o=a[0];typeof o=="string"?a[0]=o.slice(i):a.shift()}s>0&&a.push(r[n].slice(0,s))}return a}function Aee(r,e){let t=-1,i=[],n;for(;++tNee,contentInitial:()=>Cee,disable:()=>Fee,document:()=>Eee,flow:()=>Tee,flowInitial:()=>See,insideSpan:()=>Dee,string:()=>Mee,text:()=>kee});var Eee={[42]:ki,[43]:ki,[45]:ki,[48]:ki,[49]:ki,[50]:ki,[51]:ki,[52]:ki,[53]:ki,[54]:ki,[55]:ki,[56]:ki,[57]:ki,[62]:Y3},Cee={[91]:B5},See={[-2]:_d,[-1]:_d,[32]:_d},Tee={[35]:P5,[42]:o0,[45]:[e2,o0],[60]:q5,[61]:e2,[95]:o0,[96]:Q3,[126]:Q3},Mee={[38]:K3,[92]:V3},kee={[-5]:qd,[-4]:qd,[-3]:qd,[33]:H5,[38]:K3,[42]:Pd,[60]:[z5,U5],[91]:j5,[92]:[R5,V3],[93]:a0,[95]:Pd,[96]:L5},Dee={null:[Pd,FT]},Nee={null:[42,95]},Fee={null:[]};function RT(r){let t=gT([G5,...(r||{}).extensions||[]]),i={defined:[],lazy:{},constructs:t,content:n(ET),document:n(ST),flow:n(NT),string:n(IT),text:n(zT)};return i;function n(s){return a;function a(o){return BT(i,s,o)}}}var PT=/[\0\t\n\r]/g;function _T(){let r=1,e="",t=!0,i;return n;function n(s,a,o){let l=[],h,c,u,d,f;for(s=e+s.toString(a),u=0,e="",t&&(s.charCodeAt(0)===65279&&u++,t=void 0);u13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"\uFFFD":String.fromCharCode(t)}var Iee=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function UT(r){return r.replace(Iee,zee)}function zee(r,e,t){if(e)return e;if(t.charCodeAt(0)===35){let n=t.charCodeAt(1),s=n===120||n===88;return t2(t.slice(s?2:1),s?16:10)}return ec(t)||r}function tc(r){return!r||typeof r!="object"?"":"position"in r||"type"in r?HT(r.position):"start"in r||"end"in r?HT(r):"line"in r||"column"in r?W5(r):""}function W5(r){return jT(r&&r.line)+":"+jT(r&&r.column)}function HT(r){return W5(r&&r.start)+"-"+W5(r&&r.end)}function jT(r){return r&&typeof r=="number"?r:1}var WT={}.hasOwnProperty,Y5=function(r,e,t){return typeof e!="string"&&(t=e,e=void 0),Lee(t)(qT(RT(t).document().write(_T()(r,e,!0))))};function Lee(r){let e={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:o(oe),autolinkProtocol:_,autolinkEmail:_,atxHeading:o(W),blockQuote:o(We),characterEscape:_,characterReference:_,codeFenced:o(F),codeFencedFenceInfo:l,codeFencedFenceMeta:l,codeIndented:o(F,l),codeText:o(de,l),codeTextData:_,data:_,codeFlowValue:_,definition:o(ce),definitionDestinationString:l,definitionLabelString:l,definitionTitleString:l,emphasis:o(K),hardBreakEscape:o(ie),hardBreakTrailing:o(ie),htmlFlow:o(ye,l),htmlFlowData:_,htmlText:o(ye,l),htmlTextData:_,image:o(ve),label:l,link:o(oe),listItem:o(Be),listItemValue:m,listOrdered:o(ke,f),listUnordered:o(ke),paragraph:o(Ne),reference:Ct,referenceString:l,resourceDestinationString:l,resourceTitleString:l,setextHeading:o(W),strong:o(qe),thematicBreak:o(St)},exit:{atxHeading:c(),atxHeadingSequence:L,autolink:c(),autolinkEmail:Ye,autolinkProtocol:te,blockQuote:c(),characterEscapeValue:S,characterReferenceMarkerHexadecimal:I,characterReferenceMarkerNumeric:I,characterReferenceValue:le,codeFenced:c(A),codeFencedFence:y,codeFencedFenceInfo:g,codeFencedFenceMeta:v,codeFlowValue:S,codeIndented:c(b),codeText:c(ee),codeTextData:S,data:S,definition:c(),definitionDestinationString:D,definitionLabelString:C,definitionTitleString:M,emphasis:c(),hardBreakEscape:c(Q),hardBreakTrailing:c(Q),htmlFlow:c(Y),htmlFlowData:S,htmlText:c(ne),htmlTextData:S,image:c(ae),label:Fe,labelText:O,lineEnding:G,link:c(be),listItem:c(),listOrdered:c(),listUnordered:c(),paragraph:c(),referenceString:U,resourceDestinationString:we,resourceTitleString:R,resource:gt,setextHeading:c(B),setextHeadingLineSequence:V,setextHeadingText:k,strong:c(),thematicBreak:c()}};YT(e,(r||{}).mdastExtensions||[]);let t={};return i;function i(me){let xe={type:"root",children:[]},Ve={stack:[xe],tokenStack:[],config:e,enter:h,exit:u,buffer:l,resume:d,setData:s,getData:a},Ft=[],et=-1;for(;++et0){let Gr=Ve.tokenStack[Ve.tokenStack.length-1];(Gr[1]||GT).call(Ve,void 0,Gr[0])}for(xe.position={start:Ko(me.length>0?me[0][1].start:{line:1,column:1,offset:0}),end:Ko(me.length>0?me[me.length-2][1].end:{line:1,column:1,offset:0})},et=-1;++et{let e="";return(r.children||[]).forEach(t=>{["inlineCode","text"].includes(t.type)?e+=t.value||"":e+=V5(t)}),e},Bee=r=>{let e=[],t=(i,n)=>{for(let s=0;s1)for(let l=1;l{let e=Y5(r),t={children:[]},i=[t.children],n=t.children,s=[-1],a=-1;for(let o=0;oa)n.push(h),i.push(h.children),n=h.children,s.push(l.depth),a=l.depth;else if(l.depth===a)i.pop(),n=i[i.length-1],s.pop(),a=s[s.length-1],n.push(h),i.push(h.children),n=h.children,s.push(l.depth),a=l.depth;else for(;s.length;)if(i.pop(),n=i[i.length-1],s.pop(),a=s[s.length-1],a{if(r.children.summary&&r.children.summary.length>0)for(let t=0;t{let t=$5(r.elements,"summary");if(t&&t&&t.length>0)for(let i=0;i{let e=null,t=i=>{if(i){for(let n=0;n{t(n.elements)})}};return t(r),e},ic=(r,e)=>r.find(t=>t.name===e),$5=(r,e)=>r.find(t=>t.attributes.type===e).elements,e7=(r,e,t,i)=>{let n={expand:!0,isActive:!1,text:t(),range:null},s=i.match(/\((\d+),(\d+)\)/);if(s){let a=Number(s[1]),o=Number(s[2]);a===o?e[a]=n:(n.range=[a,o],r.push(n))}else r.push(n)},MM=async(r,e,t,i)=>{if(r.image&&/\.(jpg|jpeg|png|gif|webp)$/.test(r.image.src)){let n=null,s=new Promise(a=>{n=a});t.push(s);try{let o=`data:image/${/\.([^.]+)$/.exec(r.image.src)[1]};base64,`+await i["resources/"+r.image.src.split("/")[1]].async("base64");if(e.data.image=o,!r.image.width&&!r.image.height){let l=await r6(o);e.data.imageSize={width:l.width,height:l.height}}else e.data.imageSize={width:r.image.width,height:r.image.height};n()}catch(a){console.log(a),n()}}},kM=async(r,e,t,i)=>{if(r.data.image){let n=null,s=new Promise(a=>{n=a});t.push(s);try{let a="",o=r.data.image;/^data:/.test(r.data.image)||(o=await bu(r.data.image));let l=d9(o);a="image_"+i.length+"."+l.type,i.push({name:a,data:l.base64}),e.image={src:"xap:resources/"+a,width:r.data.imageSize.width,height:r.data.imageSize.height},n()}catch(a){console.log(a),n()}}},DM=()=>` Warning \u8B66\u544A Attention Warnung \uACBD\uACE0 This file can not be opened normally, please do not modify and save, otherwise the contents will be permanently lost\uFF01 You can try using XMind 8 Update 3 or later version to open \u8BE5\u6587\u4EF6\u65E0\u6CD5\u6B63\u5E38\u6253\u5F00\uFF0C\u8BF7\u52FF\u4FEE\u6539\u5E76\u4FDD\u5B58\uFF0C\u5426\u5219\u6587\u4EF6\u5185\u5BB9\u5C06\u4F1A\u6C38\u4E45\u6027\u4E22\u5931\uFF01 \u4F60\u53EF\u4EE5\u5C1D\u8BD5\u4F7F\u7528 XMind 8 Update 3 \u6216\u66F4\u65B0\u7248\u672C\u6253\u5F00 \u8A72\u6587\u4EF6\u7121\u6CD5\u6B63\u5E38\u6253\u958B\uFF0C\u8ACB\u52FF\u4FEE\u6539\u4E26\u4FDD\u5B58\uFF0C\u5426\u5247\u6587\u4EF6\u5167\u5BB9\u5C07\u6703\u6C38\u4E45\u6027\u4E1F\u5931\uFF01 \u4F60\u53EF\u4EE5\u5617\u8A66\u4F7F\u7528 XMind 8 Update 3 \u6216\u66F4\u65B0\u7248\u672C\u6253\u958B \u3053\u306E\u6587\u66F8\u306F\u6B63\u5E38\u306B\u958B\u304B\u306A\u3044\u306E\u3067\u3001\u4FEE\u6B63\u3057\u3066\u4FDD\u5B58\u3057\u306A\u3044\u3088\u3046\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u305D\u3046\u3067\u306A\u3044\u3068\u3001\u66F8\u985E\u306E\u5185\u5BB9\u304C\u6C38\u4E45\u306B\u5931\u308F\u308C\u307E\u3059\u3002\uFF01 XMind 8 Update 3 \u3084\u66F4\u65B0\u7248\u3092\u4F7F\u3063\u3066\u958B\u304F\u3053\u3068\u3082\u3067\u304D\u307E\u3059 Datei kann nicht richtig ge\xF6ffnet werden. Bitte \xE4ndern Sie diese Datei nicht und speichern Sie sie, sonst wird die Datei endg\xFCltig gel\xF6scht werden. Bitte versuchen Sie, diese Datei mit XMind 8 Update 3 oder sp\xE4ter zu \xF6ffnen. Ce fichier ne peut pas ouvert normalement, veuillez le r\xE9diger et sauvegarder, sinon le fichier sera perdu en permanence. Vous pouvez essayer d'ouvrir avec XMind 8 Update 3 ou avec une version plus r\xE9cente. \uD30C\uC77C\uC744 \uC815\uC0C1\uC801\uC73C\uB85C \uC5F4 \uC218 \uC5C6\uC73C\uBA70, \uC218\uC815 \uBC0F \uC800\uC7A5\uD558\uC9C0 \uB9C8\uC2ED\uC2DC\uC624. \uADF8\uB807\uC9C0 \uC54A\uC73C\uBA74 \uD30C\uC77C\uC758 \uB0B4\uC6A9\uC774 \uC601\uAD6C\uC801\uC73C\uB85C \uC190\uC2E4\uB429\uB2C8\uB2E4! XMind 8 Update 3 \uB610\uB294 \uC774\uD6C4 \uBC84\uC804\uC744 \uC0AC\uC6A9\uD558\uC5EC -1 Sheet 1 `,rte=r=>Hi(r).filter(t=>!t.range||t.range.length<=0),ite=r=>Hi(r).filter(t=>t.range&&t.range.length>0),NM=r=>{let e=[],t=[],i=(s,a,o)=>{let l=$r(),h=cn(s.text);e.push({id:l,title:h,attributedTitle:[{text:h}]}),t.push({id:$r(),range:"("+a+","+o+")",topicId:l})};return ite(r.data).forEach(s=>{i(s,s.range[0],s.range[1])}),(r.children||[]).forEach((s,a)=>{rte(s.data).forEach(l=>{i(l,a,a)})}),{summary:e,summaries:t}};var nte=(r,e)=>new Promise((t,i)=>{t7.default.loadAsync(r).then(async n=>{try{let s="",a=n.files["content.json"],o=n.files["content.xml"]||n.files["/content.xml"];if(a){let l=await a.async("string");s=await IM(l,n.files,e)}else if(o){let l=await o.async("string"),h=FM.default.xml2json(l);s=zM(h)}s?t(s):i(new Error("\u89E3\u6790\u5931\u8D25"))}catch(s){i(s)}},n=>{i(n)})}),IM=async(r,e,t)=>{r=JSON.parse(r);let i=null;r.length>1&&typeof t=="function"&&(i=await t(r)),i||(i=r[0]);let n=i.rootTopic,s={},a=[],o=async(l,h)=>{if(h.data={text:ei(l.title)?"":l.title},l.notes){let d=l.notes.realHTML||l.notes.plain;h.data.note=d&&d.content||""}l.href&&/^https?:\/\//.test(l.href)&&(h.data.hyperlink=l.href),l.labels&&l.labels.length>0&&(h.data.tag=l.labels),MM(l,h,a,e);let c=[],u=[];h._summary&&c.push(h._summary),Array.isArray(l.summaries)&&l.summaries.length>0&&l.summaries.forEach(d=>{e7(c,u,()=>CM(l,d.topicId),d.range)}),h.data.generalization=c,h.children=[],l.children&&l.children.attached&&l.children.attached.length>0&&l.children.attached.forEach((d,f)=>{let m={};h.children.push(m),u[f]&&(m._summary=u[f]),o(d,m)})};return o(n,s),await Promise.all(a),s},zM=r=>{let t=JSON.parse(r).elements,i=TM(t),n={},s=(a,o)=>{let l=a.elements,h=ic(l,"title");h=h&&h.elements&&h.elements[0].text,o.data={text:ei(h)?"":h};try{let f=ic(l,"notes");f&&(o.data.note=f.elements[0].elements[0].elements[0].text)}catch(f){console.log(f)}try{a.attributes&&a.attributes["xlink:href"]&&/^https?:\/\//.test(a.attributes["xlink:href"])&&(o.data.hyperlink=a.attributes["xlink:href"])}catch(f){console.log(f)}try{let f=ic(l,"labels");f&&(o.data.tag=f.elements.map(m=>m.elements[0].text))}catch(f){console.log(f)}let c=ic(l,"children"),u=[],d=[];try{o._summary&&u.push(o._summary);let f=ic(l,"summaries");f&&Array.isArray(f.elements)&&f.elements.length>0&&f.elements.forEach(m=>{e7(u,d,()=>SM(c,m.attributes["topic-id"]),m.attributes.range)})}catch(f){console.log(f)}o.data.generalization=u,o.children=[],c&&c.elements&&c.elements.length>0&&($5(c.elements,"attached")||[]).forEach((m,g)=>{let v={};o.children.push(v),d[g]&&(v._summary=d[g]),s(m,v)})};return s(i,n),n},ste=async(r,e)=>{let t="simpleMindMap_"+Date.now(),i=[],n={},s=[],a=async(u,d,f)=>{let m={id:u.data.uid,structureClass:"org.xmind.ui.logic.right",title:cn(u.data.text),children:{attached:[]}};u.data.note!==void 0&&(m.notes={realHTML:{content:u.data.note},plain:{content:u.data.note}}),u.data.hyperlink!==void 0&&(m.href=u.data.hyperlink),u.data.tag!==void 0&&(m.labels=(u.data.tag||[]).map(y=>typeof y=="object"&&y!==null?y.text:y)),kM(u,d,s,i),f?(m.class="topic",d.id=t,d.class="sheet",d.title=e,d.extensions=[],d.topicPositioning="fixed",d.topicOverlapping="overlap",d.coreVersion="2.100.0",d.rootTopic=m):Object.keys(m).forEach(y=>{d[y]=m[y]});let{summary:g,summaries:v}=NM(u);f?v.length>0&&(d.rootTopic.children.summary=g,d.rootTopic.summaries=v):v.length>0&&(d.children.summary=g,d.summaries=v),u.children&&u.children.length>0&&u.children.forEach(y=>{let A={};a(y,A),m.children.attached.push(A)})};a(r,n,!0),await Promise.all(s);let o=[n],l=new t7.default;l.file("content.json",JSON.stringify(o)),l.file("metadata.json",`{"modifier":"","dataStructureVersion":"2","creator":{"name":"mind-map"},"layoutEngineVersion":"3","activeSheetId":"${t}"}`),l.file("content.xml",DM());let h={"file-entries":{"content.json":{},"metadata.json":{},"Thumbnails/thumbnail.png":{}}};return i.length>0&&i.forEach(u=>{h["file-entries"]["resources/"+u.name]={},l.folder("resources").file(u.name,u.data,{base64:!0})}),l.file("manifest.json",JSON.stringify(h)),await l.generateAsync({type:"blob"})},Hd={parseXmindFile:nte,transformXmind:IM,transformOldXmind:zM,transformToXmind:ste};var LM=mr($c()),a2=class{constructor(e={}){this.mindMap=e.mindMap,this.lineSpacing=0,this.textSpacing=0,this.angle=0,this.text="",this.textStyle={},this.watermarkDraw=null,this.isInExport=!1,this.maxLong=this.getMaxLong(),this.updateWatermark(this.mindMap.opt.watermarkConfig||{}),this.bindEvent()}getMaxLong(){return Math.sqrt(Math.pow(this.mindMap.width,2)+Math.pow(this.mindMap.height,2))}bindEvent(){this.onResize=this.onResize.bind(this),this.mindMap.on("resize",this.onResize)}unBindEvent(){this.mindMap.off("resize",this.onResize)}onResize(){this.maxLong=this.getMaxLong(),this.draw()}createContainer(){this.watermarkDraw||(this.watermarkDraw=new Qt().css({"pointer-events":"none","user-select":"none"}).addClass("smm-water-mark-container"),this.updateLayer())}updateLayer(){if(!this.watermarkDraw)return;let{belowNode:e}=this.mindMap.opt.watermarkConfig;e?this.watermarkDraw.insertBefore(this.mindMap.draw):this.mindMap.svg.add(this.watermarkDraw)}removeContainer(){this.watermarkDraw&&(this.watermarkDraw.remove(),this.watermarkDraw=null)}hasWatermark(){return!!this.text.trim()}handleConfig({text:e,lineSpacing:t,textSpacing:i,angle:n,textStyle:s}){this.text=e===void 0?"":String(e).trim(),this.lineSpacing=typeof t=="number"&&t>0?t:100,this.textSpacing=typeof i=="number"&&i>0?i:100,this.angle=typeof n=="number"&&n>=0&&n<=90?n:30,this.textStyle=Object.assign(this.textStyle,s||{})}clear(){this.watermarkDraw&&this.watermarkDraw.clear()}draw(){this.clear();let{onlyExport:e}=this.mindMap.opt.watermarkConfig;if(e&&!this.isInExport)return;if(!this.hasWatermark()){this.removeContainer();return}this.createContainer();let t=0;for(;t{let i=this.textStyle[t];t==="color"?e.fill(i):e.css(Nf(t),i)})}updateWatermark(e){this.mindMap.opt.watermarkConfig=(0,LM.default)(this.mindMap.opt.watermarkConfig,e),this.updateLayer(),this.handleConfig(e),this.draw()}beforePluginRemove(){this.unBindEvent(),this.removeContainer()}beforePluginDestroy(){this.unBindEvent(),this.removeContainer()}};a2.instanceName="watermark";var OM=a2;var o2=class{constructor({mindMap:e}){this.mindMap=e,this.isInPainter=!1,this.painterNode=null,this.bindEvent()}bindEvent(){this.painterOneNode=this.painterOneNode.bind(this),this.onEndPainter=this.onEndPainter.bind(this),this.mindMap.on("node_click",this.painterOneNode),this.mindMap.on("draw_click",this.onEndPainter)}unBindEvent(){this.mindMap.off("node_click",this.painterOneNode),this.mindMap.off("draw_click",this.onEndPainter)}startPainter(){if(this.mindMap.opt.readonly)return;let e=this.mindMap.renderer.activeNodeList;e.length<=0||(this.painterNode=e[0],this.isInPainter=!0,this.mindMap.emit("painter_start"))}endPainter(){this.painterNode=null,this.isInPainter=!1}onEndPainter(){this.isInPainter&&(this.endPainter(),this.mindMap.emit("painter_end"))}painterOneNode(e){if(!e||!this.isInPainter||!this.painterNode||!e||e.uid===this.painterNode.uid)return;let t={};this.mindMap.opt.onlyPainterNodeCustomStyles||(t={...this.painterNode.effectiveStyles});let i=this.painterNode.getData();Object.keys(i).forEach(n=>{Ll(n)&&(t[n]=i[n])}),this.mindMap.renderer._handleRemoveCustomStyles(e.getData()),e.setStyles(t)}beforePluginRemove(){this.unBindEvent()}beforePluginDestroy(){this.unBindEvent()}};o2.instanceName="painter";var BM=o2;var r7=function(r,e){return r7=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,i){t.__proto__=i}||function(t,i){for(var n in i)i.hasOwnProperty(n)&&(t[n]=i[n])},r7(r,e)};function fe(r,e){r7(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var ot=function(){return ot=Object.assign||function(e){for(var t,i=1,n=arguments.length;i0&&s[s.length-1])&&(h[0]===6||h[0]===2)){t=0;continue}if(h[0]===3&&(!s||h[1]>s[0]&&h[1]>2],e+=nc[(r[i]&3)<<4|r[i+1]>>4],e+=nc[(r[i+1]&15)<<2|r[i+2]>>6],e+=nc[r[i+2]&63];return t%3===2?e=e.substring(0,e.length-1)+"=":t%3===1&&(e=e.substring(0,e.length-2)+"=="),e},PM=function(r){var e=r.length*.75,t=r.length,i,n=0,s,a,o,l;r[r.length-1]==="="&&(e--,r[r.length-2]==="="&&e--);var h=new Uint8Array(e);for(i=0;i>4,h[n++]=(a&15)<<4|o>>2,h[n++]=(o&3)<<6|l&63;return h},ate=/^(data)?:?([\w\/\+]+)?;?(charset=[\w-]+|base64)?.*,/i,qM=function(r){var e=r.trim(),t=e.substring(0,100),i=t.match(ate);if(!i)return PM(e);var n=i[0],s=e.substring(n.length);return PM(s)};var ht=function(r){return r.charCodeAt(0)},UM=function(r){return r.codePointAt(0)},Ka=function(r,e){return Pn(r.toString(16),e,"0").toUpperCase()},Qo=function(r){return Ka(r,2)},Rn=function(r){return String.fromCharCode(r)},HM=function(r){return Rn(parseInt(r,16))},Pn=function(r,e,t){for(var i="",n=0,s=e-r.length;n=55296&&t<=56319&&r.length>n&&(i=r.charCodeAt(n),i>=56320&&i<=57343&&(s=2)),[r.slice(e,e+s),s]},GM=function(r){for(var e=[],t=0,i=r.length;tt&&h(),a+=d,o+=f}}return h(),l},cte=/^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/,h2=function(r){var e=r.match(cte);if(e){var t=e[1],i=e[2],n=i===void 0?"01":i,s=e[3],a=s===void 0?"01":s,o=e[4],l=o===void 0?"00":o,h=e[5],c=h===void 0?"00":h,u=e[6],d=u===void 0?"00":u,f=e[7],m=f===void 0?"Z":f,g=e[8],v=g===void 0?"00":g,y=e[9],A=y===void 0?"00":y,b=m==="Z"?"Z":""+m+v+":"+A,C=new Date(t+"-"+n+"-"+a+"T"+l+":"+c+":"+d+b);return C}},Wd=function(r,e){for(var t,i=0,n;i=0&&r<=65535},nk=function(r){return r>=65536&&r<=1114111},s7=function(r){return Math.floor((r-65536)/1024)+55296},a7=function(r){return(r-65536)%1024+56320},Xo;(function(r){r.BigEndian="BigEndian",r.LittleEndian="LittleEndian"})(Xo||(Xo={}));var Yd="\uFFFD".codePointAt(0),d2=function(r,e){if(e===void 0&&(e=!0),r.length<=1)return String.fromCodePoint(Yd);for(var t=e?dte(r):Xo.BigEndian,i=e?2:0,n=[];r.length-i>=2;){var s=tk(r[i++],r[i++],t);if(ute(s))if(r.length-i<2)n.push(Yd);else{var a=tk(r[i++],r[i++],t);ek(a)?n.push(s,a):n.push(Yd)}else ek(s)?(i+=2,n.push(Yd)):n.push(s)}return i=55296&&r<=56319},ek=function(r){return r>=56320&&r<=57343},tk=function(r,e,t){if(t===Xo.LittleEndian)return e<<8|r;if(t===Xo.BigEndian)return r<<8|e;throw new Error("Invalid byteOrder: "+t)},dte=function(r){return sk(r)?Xo.BigEndian:ak(r)?Xo.LittleEndian:Xo.BigEndian},sk=function(r){return r[0]===254&&r[1]===255},ak=function(r){return r[0]===255&&r[1]===254},f2=function(r){return sk(r)||ak(r)};var ok=function(r){var e=String(r);if(Math.abs(r)<1){var t=parseInt(r.toString().split("e-")[1]);if(t){var i=r<0;i&&(r*=-1),r*=Math.pow(10,t-1),e="0."+new Array(t).join("0")+r.toString().substring(2),i&&(e="-"+e)}}else{var t=parseInt(r.toString().split("+")[1]);t>20&&(t-=20,r/=Math.pow(10,t),e=r.toString()+new Array(t+1).join("0"))}return e},Vd=function(r){return Math.ceil(r.toString(2).length/8)},c0=function(r){for(var e=new Uint8Array(Vd(r)),t=1;t<=e.length;t++)e[t-1]=r>>(e.length-t)*8;return e};var u0=function(r){throw new Error(r)};var QD=mr(c1()),KD="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d1=new Uint8Array(256);for(u1=0;u1>4,h[n++]=(a&15)<<4|o>>2,h[n++]=(o&3)<<6|l&63;return h},aie=function(r){for(var e="",t=0;ti)throw new Error(ai(e)+" must be at least "+t+" and at most "+i+", but was actually "+r)},qn=function(r,e,t,i){se(r,e,["number","undefined"]),typeof r=="number"&&Fi(r,e,t,i)},I2=function(r,e,t){if(se(r,e,["number"]),r%t!==0)throw new Error(ai(e)+" must be a multiple of "+t+", but was actually "+r)},gN=function(r,e){if(!Number.isInteger(r))throw new Error(ai(e)+" must be an integer, but was actually "+r)},il=function(r,e){if(![1,0].includes(Math.sign(r)))throw new Error(ai(e)+" must be a positive number or 0, but was actually "+r)};var pt=new Uint16Array(256);for(g1=0;g1<256;g1++)pt[g1]=g1;var g1;pt[22]=ht("");pt[24]=ht("\u02D8");pt[25]=ht("\u02C7");pt[26]=ht("\u02C6");pt[27]=ht("\u02D9");pt[28]=ht("\u02DD");pt[29]=ht("\u02DB");pt[30]=ht("\u02DA");pt[31]=ht("\u02DC");pt[127]=ht("\uFFFD");pt[128]=ht("\u2022");pt[129]=ht("\u2020");pt[130]=ht("\u2021");pt[131]=ht("\u2026");pt[132]=ht("\u2014");pt[133]=ht("\u2013");pt[134]=ht("\u0192");pt[135]=ht("\u2044");pt[136]=ht("\u2039");pt[137]=ht("\u203A");pt[138]=ht("\u2212");pt[139]=ht("\u2030");pt[140]=ht("\u201E");pt[141]=ht("\u201C");pt[142]=ht("\u201D");pt[143]=ht("\u2018");pt[144]=ht("\u2019");pt[145]=ht("\u201A");pt[146]=ht("\u2122");pt[147]=ht("\uFB01");pt[148]=ht("\uFB02");pt[149]=ht("\u0141");pt[150]=ht("\u0152");pt[151]=ht("\u0160");pt[152]=ht("\u0178");pt[153]=ht("\u017D");pt[154]=ht("\u0131");pt[155]=ht("\u0142");pt[156]=ht("\u0153");pt[157]=ht("\u0161");pt[158]=ht("\u017E");pt[159]=ht("\uFFFD");pt[160]=ht("\u20AC");pt[173]=ht("\uFFFD");var z2=function(r){for(var e=new Array(r.length),t=0,i=r.length;t=j.ExclamationPoint&&r<=j.Tilde&&!O2[r]},LN={},ON=new Map,Pie=function(r){fe(e,r);function e(t,i){var n=this;if(t!==LN)throw new vc("PDFName");n=r.call(this)||this;for(var s="/",a=0,o=i.length;a=j.Zero&&h<=j.Nine||h>=j.a&&h<=j.f||h>=j.A&&h<=j.F?(i+=l,(i.length===2||!(c>="0"&&c<="9"||c>="a"&&c<="f"||c>="A"&&c<="F"))&&(s(parseInt(i,16)),i="")):s(h):h===j.Hash?n=!0:s(h)}return new Uint8Array(t)},e.prototype.decodeText=function(){var t=this.asBytes();return String.fromCharCode.apply(String,Array.from(t))},e.prototype.asString=function(){return this.encodedName},e.prototype.value=function(){return this.encodedName},e.prototype.clone=function(){return this},e.prototype.toString=function(){return this.encodedName},e.prototype.sizeInBytes=function(){return this.encodedName.length},e.prototype.copyBytesInto=function(t,i){return i+=ir(this.encodedName,t,i),this.encodedName.length},e.of=function(t){var i=Bie(t),n=ON.get(i);return n||(n=new e(LN,i),ON.set(i,n)),n},e.Length=e.of("Length"),e.FlateDecode=e.of("FlateDecode"),e.Resources=e.of("Resources"),e.Font=e.of("Font"),e.XObject=e.of("XObject"),e.ExtGState=e.of("ExtGState"),e.Contents=e.of("Contents"),e.Type=e.of("Type"),e.Parent=e.of("Parent"),e.MediaBox=e.of("MediaBox"),e.Page=e.of("Page"),e.Annots=e.of("Annots"),e.TrimBox=e.of("TrimBox"),e.ArtBox=e.of("ArtBox"),e.BleedBox=e.of("BleedBox"),e.CropBox=e.of("CropBox"),e.Rotate=e.of("Rotate"),e.Title=e.of("Title"),e.Author=e.of("Author"),e.Subject=e.of("Subject"),e.Creator=e.of("Creator"),e.Keywords=e.of("Keywords"),e.Producer=e.of("Producer"),e.CreationDate=e.of("CreationDate"),e.ModDate=e.of("ModDate"),e}(er),H=Pie;var _ie=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.asNull=function(){return null},e.prototype.clone=function(){return this},e.prototype.toString=function(){return"null"},e.prototype.sizeInBytes=function(){return 4},e.prototype.copyBytesInto=function(t,i){return t[i++]=j.n,t[i++]=j.u,t[i++]=j.l,t[i++]=j.l,4},e}(er),ci=new _ie;var qie=function(r){fe(e,r);function e(t,i){var n=r.call(this)||this;return n.dict=t,n.context=i,n}return e.prototype.keys=function(){return Array.from(this.dict.keys())},e.prototype.values=function(){return Array.from(this.dict.values())},e.prototype.entries=function(){return Array.from(this.dict.entries())},e.prototype.set=function(t,i){this.dict.set(t,i)},e.prototype.get=function(t,i){i===void 0&&(i=!1);var n=this.dict.get(t);if(!(n===ci&&!i))return n},e.prototype.has=function(t){var i=this.dict.get(t);return i!==void 0&&i!==ci},e.prototype.lookupMaybe=function(t){for(var i,n=[],s=1;sthis.largestObjectNumber&&(this.largestObjectNumber=e.objectNumber)},r.prototype.nextRef=function(){return this.largestObjectNumber+=1,lt.of(this.largestObjectNumber)},r.prototype.register=function(e){var t=this.nextRef();return this.assign(t,e),t},r.prototype.delete=function(e){return this.indirectObjects.delete(e)},r.prototype.lookupMaybe=function(e){for(var t=[],i=1;i1?(this.subsections.push([e]),this.chunkIdx+=1,this.chunkLength=1):(t.push(e),this.chunkLength+=1)},r.create=function(){return new r({ref:lt.of(0,65535),offset:0,deleted:!0})},r.createEmpty=function(){return new r},r}(),v1=Zie;var Jie=function(){function r(e){this.lastXRefOffset=String(e)}return r.prototype.toString=function(){return`startxref +`+this.lastXRefOffset+` +%%EOF`},r.prototype.sizeInBytes=function(){return 16+this.lastXRefOffset.length},r.prototype.copyBytesInto=function(e,t){var i=t;return e[t++]=j.s,e[t++]=j.t,e[t++]=j.a,e[t++]=j.r,e[t++]=j.t,e[t++]=j.x,e[t++]=j.r,e[t++]=j.e,e[t++]=j.f,e[t++]=j.Newline,t+=ir(this.lastXRefOffset,e,t),e[t++]=j.Newline,e[t++]=j.Percent,e[t++]=j.Percent,e[t++]=j.E,e[t++]=j.O,e[t++]=j.F,t-i},r.forLastCrossRefSectionOffset=function(e){return new r(e)},r}(),E0=Jie;var $ie=function(){function r(e){this.dict=e}return r.prototype.toString=function(){return`trailer +`+this.dict.toString()},r.prototype.sizeInBytes=function(){return 8+this.dict.sizeInBytes()},r.prototype.copyBytesInto=function(e,t){var i=t;return e[t++]=j.t,e[t++]=j.r,e[t++]=j.a,e[t++]=j.i,e[t++]=j.l,e[t++]=j.e,e[t++]=j.r,e[t++]=j.Newline,t+=this.dict.copyBytesInto(e,t),t-i},r.of=function(e){return new r(e)},r}(),X7=$ie;var ene=function(r){fe(e,r);function e(t,i,n){n===void 0&&(n=!0);var s=r.call(this,t.obj({}),n)||this;return s.objects=i,s.offsets=s.computeObjectOffsets(),s.offsetsString=s.computeOffsetsString(),s.dict.set(H.of("Type"),H.of("ObjStm")),s.dict.set(H.of("N"),_e.of(s.objects.length)),s.dict.set(H.of("First"),_e.of(s.offsetsString.length)),s}return e.prototype.getObjectsCount=function(){return this.objects.length},e.prototype.clone=function(t){return e.withContextAndObjects(t||this.dict.context,this.objects.slice(),this.encode)},e.prototype.getContentsString=function(){for(var t=this.offsetsString,i=0,n=this.objects.length;i1&&(a.push(o),a.push(c.ref.objectNumber),o=0),o+=1}return a.push(o),a},s.computeEntryTuples=function(){for(var a=new Array(s.entries.length),o=0,l=s.entries.length;oo[0]&&(o[0]=m),g>o[1]&&(o[1]=g),v>o[2]&&(o[2]=v)}return o},s.entries=i||[],s.entryTuplesCache=Ii.populatedBy(s.computeEntryTuples),s.maxByteWidthsCache=Ii.populatedBy(s.computeMaxEntryByteWidths),s.indexCache=Ii.populatedBy(s.computeIndex),t.set(H.of("Type"),H.of("XRef")),s}return e.prototype.addDeletedEntry=function(t,i){var n=sl.Deleted;this.entries.push({type:n,ref:t,nextFreeObjectNumber:i}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()},e.prototype.addUncompressedEntry=function(t,i){var n=sl.Uncompressed;this.entries.push({type:n,ref:t,offset:i}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()},e.prototype.addCompressedEntry=function(t,i,n){var s=sl.Compressed;this.entries.push({type:s,ref:t,objectStreamRef:i,index:n}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()},e.prototype.clone=function(t){var i=this,n=i.dict,s=i.entries,a=i.encode;return e.of(n.clone(t),s.slice(),a)},e.prototype.getContentsString=function(){for(var t=this.entryTuplesCache.access(),i=this.maxByteWidthsCache.access(),n="",s=0,a=t.length;s=0;m--)n+=(u[m]||0).toString(2);for(var m=i[1]-1;m>=0;m--)n+=(d[m]||0).toString(2);for(var m=i[2]-1;m>=0;m--)n+=(f[m]||0).toString(2)}return n},e.prototype.getUnencodedContents=function(){for(var t=this.entryTuplesCache.access(),i=this.maxByteWidthsCache.access(),n=new Uint8Array(this.getUnencodedContentsSize()),s=0,a=0,o=t.length;a=0;g--)n[s++]=d[g]||0;for(var g=i[1]-1;g>=0;g--)n[s++]=f[g]||0;for(var g=i[2]-1;g>=0;g--)n[s++]=m[g]||0}return n},e.prototype.getUnencodedContentsSize=function(){var t=this.maxByteWidthsCache.access(),i=XM(t);return i*this.entries.length},e.prototype.updateDict=function(){r.prototype.updateDict.call(this);var t=this.maxByteWidthsCache.access(),i=this.indexCache.access(),n=this.dict.context;this.dict.set(H.of("W"),n.obj(t)),this.dict.set(H.of("Index"),n.obj(i))},e.create=function(t,i){i===void 0&&(i=!0);var n=new e(t,[],i);return n.addDeletedEntry(lt.of(0,65535),0),n},e.of=function(t,i,n){return n===void 0&&(n=!0),new e(t,i,n)},e}(A0),Z7=ine;var nne=function(r){fe(e,r);function e(t,i,n,s){var a=r.call(this,t,i)||this;return a.encodeStreams=n,a.objectsPerStream=s,a}return e.prototype.computeBufferSize=function(){return Ke(this,void 0,void 0,function(){var t,i,n,s,a,o,l,h,m,g,c,y,u,d,v,f,m,g,v,y,A,b,C,M;return Qe(this,function(D){switch(D.label){case 0:t=this.context.largestObjectNumber+1,i=$a.forVersion(1,7),n=i.sizeInBytes()+2,s=Z7.create(this.createTrailerDict(),this.encodeStreams),a=[],o=[],l=[],h=this.context.enumerateIndirectObjects(),m=0,g=h.length,D.label=1;case 1:return m"},e.prototype.sizeInBytes=function(){return this.value.length+2},e.prototype.copyBytesInto=function(t,i){return t[i++]=j.LessThan,i+=ir(this.value,t,i),t[i++]=j.GreaterThan,this.value.length+2},e.of=function(t){return new e(t)},e.fromText=function(t){for(var i=rk(t),n="",s=0,a=i.length;s> def +/CMapName /Adobe-Identity-UCS def +/CMapType 2 def +1 begincodespacerange +<0000> +endcodespacerange +`+r.length+` beginbfchar +`+r.map(function(e){var t=e[0],i=e[1];return t+" "+i}).join(` +`)+` +endbfchar +endcmap +CMapName currentdict /CMap defineresource pop +end +end`},UN=function(){for(var r=[],e=0;e"},R2=function(r){return Ka(r,4)},lne=function(r){if(ik(r))return R2(r);if(nk(r)){var e=s7(r),t=a7(r);return""+R2(e)+R2(t)}var i=Qo(r),n="0x"+i+" is not a valid UTF-8 or UTF-16 codepoint.";throw new Error(n)};var hne=function(r){var e=0,t=function(i){e|=1<=j.Zero&&h<=j.Seven?(i+=l,(i.length===3||!(c>="0"&&c<="7"))&&(s(parseInt(i,8)),i="")):s(h):h===j.BackSlash?n=!0:s(h)}return new Uint8Array(t)},e.prototype.decodeText=function(){var t=this.asBytes();return f2(t)?d2(t):z2(t)},e.prototype.decodeDate=function(){var t=this.decodeText(),i=h2(t);if(!i)throw new L2(t);return i},e.prototype.asString=function(){return this.value},e.prototype.clone=function(){return e.of(this.value)},e.prototype.toString=function(){return"("+this.value+")"},e.prototype.sizeInBytes=function(){return this.value.length+2},e.prototype.copyBytesInto=function(t,i){return t[i++]=j.LeftParen,i+=ir(this.value,t,i),t[i++]=j.RightParen,this.value.length+2},e.of=function(t){return new e(t)},e.fromDate=function(t){var i=Pn(String(t.getUTCFullYear()),4,"0"),n=Pn(String(t.getUTCMonth()+1),2,"0"),s=Pn(String(t.getUTCDate()),2,"0"),a=Pn(String(t.getUTCHours()),2,"0"),o=Pn(String(t.getUTCMinutes()),2,"0"),l=Pn(String(t.getUTCSeconds()),2,"0");return new e("D:"+i+n+s+a+o+l+"Z")},e}(er),wt=cne;var une=function(){function r(e,t,i,n){var s=this;this.allGlyphsInFontSortedById=function(){for(var a=new Array(s.font.characterSet.length),o=0,l=a.length;o>3)]>>7-((m&7)<<0)&1,S=3*_;o[C]=M[S],o[C+1]=M[S+1],o[C+2]=M[S+2],o[C+3]=_>2)]>>6-((m&3)<<1)&3,S=3*_;o[C]=M[S],o[C+1]=M[S+1],o[C+2]=M[S+2],o[C+3]=_>1)]>>4-((m&1)<<2)&15,S=3*_;o[C]=M[S],o[C+1]=M[S+1],o[C+2]=M[S+2],o[C+3]=_>>3)]>>>7-(ee&7)&1),be=Q==y*255?0:255;l[ne+ee]=be<<24|Q<<16|Q<<8|Q}else if(c==2)for(var ee=0;ee>>2)]>>>6-((ee&3)<<1)&3),be=Q==y*85?0:255;l[ne+ee]=be<<24|Q<<16|Q<<8|Q}else if(c==4)for(var ee=0;ee>>1)]>>>4-((ee&1)<<2)&15),be=Q==y*17?0:255;l[ne+ee]=be<<24|Q<<16|Q<<8|Q}else if(c==8)for(var ee=0;ee>>2<<3));n==0;){if(n=v(e,d,1),s=v(e,d+1,2),d+=3,s==0){d&7&&(d+=8-(d&7));var k=(d>>>3)+4,V=e[k-4]|e[k-3]<<8;L&&(t=r.H.W(t,u+V)),t.set(new i(e.buffer,e.byteOffset+k,V),u),d=k+V<<3,u+=V;continue}if(L&&(t=r.H.W(t,u+(1<<17))),s==1&&(f=D.J,m=D.h,h=(1<<9)-1,c=(1<<5)-1),s==2){a=y(e,d,5)+257,o=y(e,d+5,5)+1,l=y(e,d+10,4)+4,d+=14;for(var B=d,_=1,S=0;S<38;S+=2)D.Q[S]=0,D.Q[S+1]=0;for(var S=0;S_&&(_=G)}d+=3*l,b(D.Q,_),C(D.Q,_,D.u),f=D.w,m=D.d,d=A(D.u,(1<<_)-1,a+o,e,d,D.v);var Q=g.V(D.v,0,a,D.C);h=(1<>>4;if(!(ee>>>8))t[u++]=ee;else{if(ee==256)break;var be=u+ee-254;if(ee>264){var ae=D.q[ee-257];be=u+(ae>>>3)+y(e,d,ae&7),d+=ae&7}var O=m[M(e,d)&c];d+=O&15;var Fe=O>>>4,we=D.c[Fe],R=(we>>>4)+v(e,d,we&15);for(d+=we&15;u>>4;if(u<=15)a[h]=u,h++;else{var d=0,f=0;u==16?(f=3+o(n,s,2),s+=2,d=a[h-1]):u==17?(f=3+o(n,s,3),s+=3):u==18&&(f=11+o(n,s,7),s+=7);for(var m=h+f;h>>1;as&&(s=l),a++}for(;a>1,h=e[o+1],c=l<<4|h,u=t-h,d=e[o]<>>15-t;i[m]=c,d++}},r.H.l=function(e,t){for(var i=r.H.m.r,n=15-t,s=0;s>>n}},r.H.M=function(e,t,i){i=i<<(t&7);var n=t>>>3;e[n]|=i,e[n+1]|=i>>>8},r.H.I=function(e,t,i){i=i<<(t&7);var n=t>>>3;e[n]|=i,e[n+1]|=i>>>8,e[n+2]|=i>>>16},r.H.e=function(e,t,i){return(e[t>>>3]|e[(t>>>3)+1]<<8)>>>(t&7)&(1<>>3]|e[(t>>>3)+1]<<8|e[(t>>>3)+2]<<16)>>>(t&7)&(1<>>3]|e[(t>>>3)+1]<<8|e[(t>>>3)+2]<<16)>>>(t&7)},r.H.i=function(e,t){return(e[t>>>3]|e[(t>>>3)+1]<<8|e[(t>>>3)+2]<<16|e[(t>>>3)+3]<<24)>>>(t&7)},r.H.m=function(){var e=Uint16Array,t=Uint32Array;return{K:new e(16),j:new e(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new e(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new t(32),J:new e(512),_:[],h:new e(32),$:[],w:new e(32768),C:[],v:[],d:new e(32768),D:[],u:new e(512),Q:[],r:new e(1<<15),s:new t(286),Y:new t(30),a:new t(19),t:new t(15e3),k:new e(1<<16),g:new e(1<<15)}}(),function(){for(var e=r.H.m,t=1<<15,i=0;i>>1|(n&1431655765)<<1,n=(n&3435973836)>>>2|(n&858993459)<<2,n=(n&4042322160)>>>4|(n&252645135)<<4,n=(n&4278255360)>>>8|(n&16711935)<<8,e.r[i]=(n>>>16|n<<16)>>>17}function s(a,o,l){for(;o--!=0;)a.push(0,l)}for(var i=0;i<32;i++)e.q[i]=e.S[i]<<3|e.T[i],e.c[i]=e.p[i]<<4|e.z[i];s(e._,144,8),s(e._,255-143,9),s(e._,279-255,7),s(e._,287-279,8),r.H.n(e._,9),r.H.A(e._,9,e.J),r.H.l(e._,9),s(e.$,32,5),r.H.n(e.$,5),r.H.A(e.$,5,e.h),r.H.l(e.$,5),s(e.Q,19,0),s(e.C,286,0),s(e.D,30,0),s(e.v,320,0)}(),r.H.N}();Ce.decode._readInterlace=function(r,e){for(var t=e.width,i=e.height,n=Ce.decode._getBPP(e),s=n>>3,a=Math.ceil(t*n/8),o=new Uint8Array(i*a),l=0,h=[0,0,4,0,2,0,1],c=[0,4,0,2,0,1,0],u=[8,8,8,4,4,2,2],d=[8,8,4,4,2,2,1],f=0;f<7;){for(var m=u[f],g=d[f],v=0,y=0,A=h[f];A>3];V=V>>7-(k&7)&1,o[D*a+(L>>3)]|=V<<7-((L&7)<<0)}if(n==2){var V=r[k>>3];V=V>>6-(k&7)&3,o[D*a+(L>>2)]|=V<<6-((L&3)<<1)}if(n==4){var V=r[k>>3];V=V>>4-(k&7)&15,o[D*a+(L>>1)]|=V<<4-((L&1)<<2)}if(n>=8)for(var B=D*a+L*s,_=0;_>3)+_];k+=n,L+=g}M++,D+=m}v*y!=0&&(l+=y*(1+C)),f=f+1}return o};Ce.decode._getBPP=function(r){var e=[1,null,3,1,2,null,4][r.ctype];return e*r.depth};Ce.decode._filterZero=function(r,e,t,i,n){var s=Ce.decode._getBPP(e),a=Math.ceil(i*s/8),o=Ce.decode._paeth;s=Math.ceil(s/8);var l=0,h=1,c=r[t],u=0;if(c>1&&(r[t]=[0,0,1][c-2]),c==3)for(u=s;u>>1)&255;for(var d=0;d>>1);for(;u>>1)}else{for(;u>8&255,r[e+1]=t&255},readUint:function(r,e){return r[e]*(256*256*256)+(r[e+1]<<16|r[e+2]<<8|r[e+3])},writeUint:function(r,e,t){r[e]=t>>24&255,r[e+1]=t>>16&255,r[e+2]=t>>8&255,r[e+3]=t&255},readASCII:function(r,e,t){for(var i="",n=0;n=0&&o>=0?(u=f*e+m<<2,d=(o+f)*n+a+m<<2):(u=(-o+f)*e-a+m<<2,d=f*n+m<<2),l==0)i[d]=r[u],i[d+1]=r[u+1],i[d+2]=r[u+2],i[d+3]=r[u+3];else if(l==1){var g=r[u+3]*.00392156862745098,v=r[u]*g,y=r[u+1]*g,A=r[u+2]*g,b=i[d+3]*(1/255),C=i[d]*b,M=i[d+1]*b,D=i[d+2]*b,L=1-g,k=g+b*L,V=k==0?0:1/k;i[d+3]=255*k,i[d+0]=(v+C*L)*V,i[d+1]=(y+M*L)*V,i[d+2]=(A+D*L)*V}else if(l==2){var g=r[u+3],v=r[u],y=r[u+1],A=r[u+2],b=i[d+3],C=i[d],M=i[d+1],D=i[d+2];g==b&&v==C&&y==M&&A==D?(i[d]=0,i[d+1]=0,i[d+2]=0,i[d+3]=0):(i[d]=v,i[d+1]=y,i[d+2]=A,i[d+3]=g)}else if(l==3){var g=r[u+3],v=r[u],y=r[u+1],A=r[u+2],b=i[d+3],C=i[d],M=i[d+1],D=i[d+2];if(g==b&&v==C&&y==M&&A==D)continue;if(g<220&&b>20)return!1}return!0};Ce.encode=function(r,e,t,i,n,s,a){i==null&&(i=0),a==null&&(a=!1);var o=Ce.encode.compress(r,e,t,i,[!1,!1,!1,0,a]);return Ce.encode.compressPNG(o,-1),Ce.encode._main(o,e,t,n,s)};Ce.encodeLL=function(r,e,t,i,n,s,a,o){for(var l={ctype:0+(i==1?0:2)+(n==0?0:4),depth:s,frames:[]},h=Date.now(),c=(i+n)*s,u=c*e,d=0;d1,u=!1,d=8+(16+5+4)+(c?20:0);if(n.sRGB!=null&&(d+=8+1+4),n.pHYs!=null&&(d+=8+9+4),r.ctype==3){for(var f=r.plte.length,m=0;m>>24!=255&&(u=!0);d+=8+f*3+4+(u?8+f*1+4:0)}for(var g=0;g>>8&255,L=C>>>16&255;y[h+b+0]=M,y[h+b+1]=D,y[h+b+2]=L}if(h+=f*3,a(y,h,s(y,h-f*3-4,f*3+4)),h+=4,u){a(y,h,f),h+=4,l(y,h,"tRNS"),h+=4;for(var m=0;m>>24&255;h+=f,a(y,h,s(y,h-f-4,f+4)),h+=4}}for(var k=0,g=0;g>2,S>>2));for(var f=0;fY&&ee==Q[v-Y])ne[v]=ne[v-Y];else{var be=b[ee];if(be==null&&(b[ee]=be=C.length,C.push(ee),C.length>=300))break;ne[v]=be}}}var ae=C.length;ae<=256&&h==!1&&(ae<=2?u=1:ae<=4?u=2:ae<=16?u=4:u=8,u=Math.max(u,l));for(var f=0;f>1)]|=le[Ye+We]<<4-(We&1)*4;else if(u==2)for(var We=0;We>2)]|=le[Ye+We]<<6-(We&3)*2;else if(u==1)for(var We=0;We>3)]|=le[Ye+We]<<7-(We&7)*1}R=I,c=3,U=1}else if(y==!1&&A.length==1){for(var I=new Uint8Array(Y*we*3),F=Y*we,v=0;vL&&(L=B),Vk&&(k=V))}L==-1&&(M=D=L=k=0),n&&((M&1)==1&&M--,(D&1)==1&&D--);var S=(L-M+1)*(k-D+1);Sv&&(v=C),My&&(y=M))}v==-1&&(m=g=v=y=0),a&&((m&1)==1&&m--,(g&1)==1&&g--),s={x:m,y:g,width:v-m+1,height:y-g+1};var k=i[n];k.rect=s,k.blend=1,k.img=new Uint8Array(s.width*s.height*4),i[n-1].dispose==0?(Ce._copyTile(h,e,t,k.img,s.width,s.height,-s.x,-s.y,0),Ce.encode._prepareDiff(d,e,t,k.img,s)):Ce._copyTile(d,e,t,k.img,s.width,s.height,-s.x,-s.y,0)};Ce.encode._prepareDiff=function(r,e,t,i,n){Ce._copyTile(r,e,t,i,n.width,n.height,-n.x,-n.y,2)};Ce.encode._filterZero=function(r,e,t,i,n,s,a){var o=[],l=[0,1,2,3,4];s!=-1?l=[s]:(e*i>5e5||t==1)&&(l=[0]);var h;a&&(h={level:0});for(var c=a&&UZIP!=null?UZIP:WN.default,u=0;u>1)+256&255;if(s==4)for(var h=n;h>1)&255;for(var h=n;h>1)&255}if(s==4){for(var h=0;h>>1:t=t>>>1;r[e]=t}return r}(),update:function(r,e,t,i){for(var n=0;n>>8;return r},crc:function(r,e,t){return Ce.crc.update(4294967295,r,e,t)^4294967295}};Ce.quantize=function(r,e){for(var t=new Uint8Array(r),i=t.slice(0),n=new Uint32Array(i.buffer),s=Ce.quantize.getKDtree(i,e),a=s[0],o=s[1],l=Ce.quantize.planeDst,h=t,c=n,u=h.length,d=new Uint8Array(t.length>>2),f=0;f>2]=A.ind,c[f>>2]=A.est.rgba}return{abuf:i.buffer,inds:d,plte:o}};Ce.quantize.getKDtree=function(r,e,t){t==null&&(t=1e-4);var i=new Uint32Array(r.buffer),n={i0:0,i1:r.length,bst:null,est:null,tdst:0,left:null,right:null};n.bst=Ce.quantize.stats(r,n.i0,n.i1),n.est=Ce.quantize.estats(n.bst);for(var s=[n];s.lengtha&&(a=s[l].est.L,o=l);if(a=c||h.i1<=c;if(u){h.est.L=0;continue}var d={i0:h.i0,i1:c,bst:null,est:null,tdst:0,left:null,right:null};d.bst=Ce.quantize.stats(r,d.i0,d.i1),d.est=Ce.quantize.estats(d.bst);var f={i0:c,i1:h.i1,bst:null,est:null,tdst:0,left:null,right:null};f.bst={R:[],m:[],N:h.bst.N-d.bst.N};for(var l=0;l<16;l++)f.bst.R[l]=h.bst.R[l]-d.bst.R[l];for(var l=0;l<4;l++)f.bst.m[l]=h.bst.m[l]-d.bst.m[l];f.est=Ce.quantize.estats(f.bst),h.left=d,h.right=f,s[o]=d,s.push(f)}s.sort(function(m,g){return g.bst.N-m.bst.N});for(var l=0;l0&&(a=r.right,o=r.left);var l=Ce.quantize.getNearest(a,e,t,i,n);if(l.tdst<=s*s)return l;var h=Ce.quantize.getNearest(o,e,t,i,n);return h.tdsts;)i-=4;if(t>=i)break;var l=e[t>>2];e[t>>2]=e[i>>2],e[i>>2]=l,t+=4,i-=4}for(;a(r,t,n)>s;)t-=4;return t+4};Ce.quantize.vecDot=function(r,e,t){return r[e]*t[0]+r[e+1]*t[1]+r[e+2]*t[2]+r[e+3]*t[3]};Ce.quantize.stats=function(r,e,t){for(var i=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],n=[0,0,0,0],s=t-e>>2,a=e;a>>0}};Ce.M4={multVec:function(r,e){return[r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3],r[4]*e[0]+r[5]*e[1]+r[6]*e[2]+r[7]*e[3],r[8]*e[0]+r[9]*e[1]+r[10]*e[2]+r[11]*e[3],r[12]*e[0]+r[13]*e[1]+r[14]*e[2]+r[15]*e[3]]},dot:function(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3]},sml:function(r,e){return[r*e[0],r*e[1],r*e[2],r*e[3]]}};Ce.encode.concatRGBA=function(r){for(var e=0,t=0;t1)throw new Error("Animated PNGs are not supported");var n=new Uint8Array(i[0]),s=vne(n),a=s.rgbChannel,o=s.alphaChannel;this.rgbChannel=a;var l=o.some(function(h){return h<255});l&&(this.alphaChannel=o),this.type=gne(t.ctype),this.width=t.width,this.height=t.height,this.bitsPerComponent=8}return r.load=function(e){return new r(e)},r}();var yne=function(){function r(e){this.image=e,this.bitsPerComponent=e.bitsPerComponent,this.width=e.width,this.height=e.height,this.colorSpace="DeviceRGB"}return r.for=function(e){return Ke(this,void 0,void 0,function(){var t;return Qe(this,function(i){return t=YN.load(e),[2,new r(t)]})})},r.prototype.embedIntoContext=function(e,t){return Ke(this,void 0,void 0,function(){var i,n;return Qe(this,function(s){return i=this.embedAlphaChannel(e),n=e.flateStream(this.image.rgbChannel,{Type:"XObject",Subtype:"Image",BitsPerComponent:this.image.bitsPerComponent,Width:this.image.width,Height:this.image.height,ColorSpace:this.colorSpace,SMask:i}),t?(e.assign(t,n),[2,t]):[2,e.register(n)]})})},r.prototype.embedAlphaChannel=function(e){if(this.image.alphaChannel){var t=e.flateStream(this.image.alphaChannel,{Type:"XObject",Subtype:"Image",Height:this.image.height,Width:this.image.width,BitsPerComponent:this.image.bitsPerComponent,ColorSpace:"DeviceGray",Decode:[0,1]});return e.register(t)}},r}(),E1=yne;var xne=function(){function r(e,t,i){this.bytes=e,this.start=t||0,this.pos=this.start,this.end=t&&i?t+i:this.bytes.length}return Object.defineProperty(r.prototype,"length",{get:function(){return this.end-this.start},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"isEmpty",{get:function(){return this.length===0},enumerable:!1,configurable:!0}),r.prototype.getByte=function(){return this.pos>=this.end?-1:this.bytes[this.pos++]},r.prototype.getUint16=function(){var e=this.getByte(),t=this.getByte();return e===-1||t===-1?-1:(e<<8)+t},r.prototype.getInt32=function(){var e=this.getByte(),t=this.getByte(),i=this.getByte(),n=this.getByte();return(e<<24)+(t<<16)+(i<<8)+n},r.prototype.getBytes=function(e,t){t===void 0&&(t=!1);var i=this.bytes,n=this.pos,s=this.end;if(e){var o=n+e;o>s&&(o=s),this.pos=o;var a=i.subarray(n,o);return t?new Uint8ClampedArray(a):a}else{var a=i.subarray(n,s);return t?new Uint8ClampedArray(a):a}},r.prototype.peekByte=function(){var e=this.getByte();return this.pos--,e},r.prototype.peekBytes=function(e,t){t===void 0&&(t=!1);var i=this.getBytes(e,t);return this.pos-=i.length,i},r.prototype.skip=function(e){e||(e=1),this.pos+=e},r.prototype.reset=function(){this.pos=this.start},r.prototype.moveStart=function(){this.start=this.pos},r.prototype.makeSubStream=function(e,t){return new r(this.bytes,e,t)},r.prototype.decode=function(){return this.bytes},r}(),P2=xne;var bne=new Uint8Array(0),wne=function(){function r(e){if(this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=bne,this.minBufferLength=512,e)for(;this.minBufferLengths&&(i=s)}else{for(;!this.eof;)this.readBlock();i=this.bufferLength}this.pos=i;var a=this.buffer.subarray(n,i);return t&&!(a instanceof Uint8ClampedArray)?new Uint8ClampedArray(a):a},r.prototype.peekByte=function(){var e=this.getByte();return this.pos--,e},r.prototype.peekBytes=function(e,t){t===void 0&&(t=!1);var i=this.getBytes(e,t);return this.pos-=i.length,i},r.prototype.skip=function(e){e||(e=1),this.pos+=e},r.prototype.reset=function(){this.pos=0},r.prototype.makeSubStream=function(e,t){for(var i=e+t;this.bufferLength<=i&&!this.eof;)this.readBlock();return new P2(this.buffer,e,t)},r.prototype.decode=function(){for(;!this.eof;)this.readBlock();return this.buffer.subarray(0,this.bufferLength)},r.prototype.readBlock=function(){throw new vi(this.constructor.name,"readBlock")},r.prototype.ensureBuffer=function(e){var t=this.buffer;if(e<=t.byteLength)return t;for(var i=this.minBufferLength;i=0;--h)l[o+h]=u&255,u>>=8}},e}(aa),KN=Ane;var Ene=function(r){fe(e,r);function e(t,i){var n=r.call(this,i)||this;return n.stream=t,n.firstDigit=-1,i&&(i=.5*i),n}return e.prototype.readBlock=function(){var t=8e3,i=this.stream.getBytes(t);if(!i.length){this.eof=!0;return}for(var n=i.length+1>>1,s=this.ensureBuffer(this.bufferLength+n),a=this.bufferLength,o=this.firstDigit,l=0,h=i.length;l=48&&c<=57)u=c&15;else if(c>=65&&c<=70||c>=97&&c<=102)u=(c&15)+9;else if(c===62){this.eof=!0;break}else continue;o<0?o=u:(s[a++]=o<<4|u,o=-1)}o>=0&&this.eof&&(s[a++]=o<<4,o=-1),this.firstDigit=o,this.bufferLength=a},e}(aa),QN=Ene;var XN=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Cne=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),Sne=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),Tne=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],Mne=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],kne=function(r){fe(e,r);function e(t,i){var n=r.call(this,i)||this;n.stream=t;var s=t.getByte(),a=t.getByte();if(s===-1||a===-1)throw new Error("Invalid header in flate stream: "+s+", "+a);if((s&15)!==8)throw new Error("Unknown compression method in flate stream: "+s+", "+a);if(((s<<8)+a)%31!==0)throw new Error("Bad FCHECK in flate stream: "+s+", "+a);if(a&32)throw new Error("FDICT bit set in flate stream: "+s+", "+a);return n.codeSize=0,n.codeBuf=0,n}return e.prototype.readBlock=function(){var t,i,n=this.stream,s=this.getBits(3);if(s&1&&(this.eof=!0),s>>=1,s===0){var a=void 0;if((a=n.getByte())===-1)throw new Error("Bad block header in flate stream");var o=a;if((a=n.getByte())===-1)throw new Error("Bad block header in flate stream");if(o|=a<<8,(a=n.getByte())===-1)throw new Error("Bad block header in flate stream");var l=a;if((a=n.getByte())===-1)throw new Error("Bad block header in flate stream");if(l|=a<<8,l!==(~o&65535)&&(o!==0||l!==0))throw new Error("Bad uncompressed block length in flate stream");this.codeBuf=0,this.codeSize=0;var h=this.bufferLength;t=this.ensureBuffer(h+o);var c=h+o;if(this.bufferLength=c,o===0)n.peekByte()===-1&&(this.eof=!0);else for(var u=h;u0;)M[A++]=k}d=this.generateHuffmanTable(M.subarray(0,m)),f=this.generateHuffmanTable(M.subarray(m,C))}else throw new Error("Unknown block type in flate stream");t=this.buffer;for(var _=t?t.length:0,S=this.bufferLength;;){var G=this.getCode(d);if(G<256){S+1>=_&&(t=this.ensureBuffer(S+1),_=t.length),t[S++]=G;continue}if(G===256){this.bufferLength=S;return}G-=257,G=Cne[G];var Q=G>>16;Q>0&&(Q=this.getBits(Q)),i=(G&65535)+Q,G=this.getCode(f),G=Sne[G],Q=G>>16,Q>0&&(Q=this.getBits(Q));var Y=(G&65535)+Q;S+i>=_&&(t=this.ensureBuffer(S+i),_=t.length);for(var ne=0;ne>t,this.codeSize=n-=t,a},e.prototype.getCode=function(t){for(var i=this.stream,n=t[0],s=t[1],a=this.codeSize,o=this.codeBuf,l;a>16,u=h&65535;if(c<1||a>c,this.codeSize=a-c,u},e.prototype.generateHuffmanTable=function(t){var i=t.length,n=0,s;for(s=0;sn&&(n=t[s]);for(var a=1<>=1;for(s=d;s0;if(!M||M<256)v[0]=M,y=1;else if(M>=258)if(M=0;a--)v[a]=u[o],o=f[o];else v[y++]=v[0];else if(M===256){m=9,c=258,y=0;continue}else{this.eof=!0,delete this.lzwState;break}if(D&&(f[c]=g,d[c]=d[g]+1,u[c]=v[0],c++,m=c+h&c+h-1?m:Math.min(Math.log(c+h)/.6931471805599453+1,12)|0),g=M,A+=y,i>>i&(1<0){var a=this.stream.getBytes(s);i.set(a,n),n+=s}}else{s=257-s;var o=t[1];i=this.ensureBuffer(n+s+1);for(var l=0;li.size())throw new xc(t,0,i.size());i.remove(t)}else{if(t!==0)throw new xc(t,0,0);this.setKids([])}},e.prototype.normalizedEntries=function(){var t=this.Kids();return t||(t=this.dict.context.obj([this.ref]),this.dict.set(H.of("Kids"),t)),{Kids:t}},e.fromDict=function(t,i){return new e(t,i)},e}(M1),Un=Une;var Hne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.Opt=function(){return this.dict.lookupMaybe(H.of("Opt"),wt,Re,at)},e.prototype.setOpt=function(t){this.dict.set(H.of("Opt"),this.dict.context.obj(t))},e.prototype.getExportValues=function(){var t=this.Opt();if(t){if(t instanceof wt||t instanceof Re)return[t];for(var i=[],n=0,s=t.size();ni.size())throw new xc(t,0,i.size());i.remove(t)}},e.prototype.normalizeExportValues=function(){for(var t,i,n,s,a=(t=this.getExportValues())!==null&&t!==void 0?t:[],o=[],l=this.getWidgets(),h=0,c=l.length;h1){if(!this.hasFlag(Ot.MultiSelect))throw new AN;this.dict.set(H.of("V"),this.dict.context.obj(t))}this.updateSelectedIndices(t)},e.prototype.valuesAreValid=function(t){for(var i=this.getOptions(),n=function(l,h){var c=t[l].decodeText();if(!i.find(function(u){return c===(u.display||u.value).decodeText()}))return{value:!1}},s=0,a=t.length;s1){for(var i=new Array(t.length),n=this.getOptions(),s=function(l,h){var c=t[l].decodeText();i[l]=n.findIndex(function(u){return c===(u.display||u.value).decodeText()})},a=0,o=t.length;a0){var o=a.lookup(0,wt,Re),l=a.lookupMaybe(1,wt,Re);i.push({value:o,display:l||o})}}return i}return[]},e}(Un),D1=Gne;var Wne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.fromDict=function(t,i){return new e(t,i)},e.create=function(t){var i=t.obj({FT:"Ch",Ff:Ot.Combo,Kids:[]}),n=t.register(i);return new e(i,n)},e}(D1),ol=Wne;var Yne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.addField=function(t){var i=this.normalizedEntries().Kids;i==null||i.push(t)},e.prototype.normalizedEntries=function(){var t=this.Kids();return t||(t=this.dict.context.obj([]),this.dict.set(H.of("Kids"),t)),{Kids:t}},e.fromDict=function(t,i){return new e(t,i)},e.create=function(t){var i=t.obj({}),n=t.register(i);return new e(i,n)},e}(M1),ll=Yne;var Vne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.fromDict=function(t,i){return new e(t,i)},e}(Un),k0=Vne;var Kne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.MaxLen=function(){var t=this.dict.lookup(H.of("MaxLen"));if(t instanceof _e)return t},e.prototype.Q=function(){var t=this.dict.lookup(H.of("Q"));if(t instanceof _e)return t},e.prototype.setMaxLength=function(t){this.dict.set(H.of("MaxLen"),_e.of(t))},e.prototype.removeMaxLength=function(){this.dict.delete(H.of("MaxLen"))},e.prototype.getMaxLength=function(){var t;return(t=this.MaxLen())===null||t===void 0?void 0:t.asNumber()},e.prototype.setQuadding=function(t){this.dict.set(H.of("Q"),_e.of(t))},e.prototype.getQuadding=function(){var t;return(t=this.Q())===null||t===void 0?void 0:t.asNumber()},e.prototype.setValue=function(t){this.dict.set(H.of("V"),t)},e.prototype.removeValue=function(){this.dict.delete(H.of("V"))},e.prototype.getValue=function(){var t=this.V();if(t instanceof wt||t instanceof Re)return t},e.fromDict=function(t,i){return new e(t,i)},e.create=function(t){var i=t.obj({FT:"Tx",Kids:[]}),n=t.register(i);return new e(i,n)},e}(Un),hl=Kne;var Qne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.fromDict=function(t,i){return new e(t,i)},e.create=function(t){var i=t.obj({FT:"Btn",Ff:zi.PushButton,Kids:[]}),n=t.register(i);return new e(i,n)},e}(M0),cl=Qne;var Xne=function(r){fe(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.setValue=function(t){var i=this.getOnValues();if(!i.includes(t)&&t!==H.of("Off"))throw new bc;this.dict.set(H.of("V"),t);for(var n=this.getWidgets(),s=0,a=n.length;ss)throw new G7(i,s);for(var a=i,o=0,l=n.size();oa)return c.insertLeafNode(t,a)||h;a-=c.Count().asNumber()}c instanceof tn&&(a-=1)}if(a===0){this.insertLeafKid(n.size(),t);return}throw new W7(i,"insertLeafNode")},e.prototype.removeLeafNode=function(t,i){i===void 0&&(i=!0);var n=this.Kids(),s=this.Count().asNumber();if(t>=s)throw new G7(t,s);for(var a=t,o=0,l=n.size();oa){c.removeLeafNode(a,i),i&&c.Kids().size()===0&&n.remove(o);return}else a-=c.Count().asNumber();if(c instanceof tn)if(a===0){this.removeKid(o);return}else a-=1}throw new W7(t,"removeLeafNode")},e.prototype.ascend=function(t){t(this);var i=this.Parent();i&&i.ascend(t)},e.prototype.traverse=function(t){for(var i=this.Kids(),n=0,s=i.size();nNumber.MAX_SAFE_INTEGER)if(this.capNumbers){var n="Parsed number that is too large for some PDF readers: "+e+", using Number.MAX_SAFE_INTEGER instead.";return console.warn(n),Number.MAX_SAFE_INTEGER}else{var n="Parsed number that is too large for some PDF readers: "+e+", not capping.";console.warn(n)}return i},r.prototype.skipWhitespace=function(){for(;!this.bytes.done()&&os[this.bytes.peek()];)this.bytes.next()},r.prototype.skipLine=function(){for(;!this.bytes.done();){var e=this.bytes.peek();if(e===iF||e===nF)return;this.bytes.next()}},r.prototype.skipComment=function(){if(this.bytes.peek()!==j.Percent)return!1;for(;!this.bytes.done();){var e=this.bytes.peek();if(e===iF||e===nF)return!0;this.bytes.next()}return!0},r.prototype.skipWhitespaceAndComments=function(){for(this.skipWhitespace();this.skipComment();)this.skipWhitespace()},r.prototype.matchKeyword=function(e){for(var t=this.bytes.offset(),i=0,n=e.length;i=this.length},r.prototype.offset=function(){return this.idx},r.prototype.slice=function(e,t){return this.bytes.slice(e,t)},r.prototype.position=function(){return{line:this.line,column:this.column,offset:this.idx}},r.of=function(e){return new r(e)},r.fromPDFRawStream=function(e){return r.of(C1(e).decode())},r}(),fl=ase;var ose=j.Space,L1=j.CarriageReturn,O1=j.Newline,B1=[j.s,j.t,j.r,j.e,j.a,j.m],j2=[j.e,j.n,j.d,j.s,j.t,j.r,j.e,j.a,j.m],$t={header:[j.Percent,j.P,j.D,j.F,j.Dash],eof:[j.Percent,j.Percent,j.E,j.O,j.F],obj:[j.o,j.b,j.j],endobj:[j.e,j.n,j.d,j.o,j.b,j.j],xref:[j.x,j.r,j.e,j.f],trailer:[j.t,j.r,j.a,j.i,j.l,j.e,j.r],startxref:[j.s,j.t,j.a,j.r,j.t,j.x,j.r,j.e,j.f],true:[j.t,j.r,j.u,j.e],false:[j.f,j.a,j.l,j.s,j.e],null:[j.n,j.u,j.l,j.l],stream:B1,streamEOF1:bt(B1,[ose,L1,O1]),streamEOF2:bt(B1,[L1,O1]),streamEOF3:bt(B1,[L1]),streamEOF4:bt(B1,[O1]),endstream:j2,EOF1endstream:bt([L1,O1],j2),EOF2endstream:bt([L1],j2),EOF3endstream:bt([O1],j2)};var lse=function(r){fe(e,r);function e(t,i,n){n===void 0&&(n=!1);var s=r.call(this,t,n)||this;return s.context=i,s}return e.prototype.parseObject=function(){if(this.skipWhitespaceAndComments(),this.matchKeyword($t.true))return eo.True;if(this.matchKeyword($t.false))return eo.False;if(this.matchKeyword($t.null))return ci;var t=this.bytes.peek();if(t===j.LessThan&&this.bytes.peekAhead(1)===j.LessThan)return this.parseDictOrStream();if(t===j.LessThan)return this.parseHexString();if(t===j.LeftParen)return this.parseString();if(t===j.ForwardSlash)return this.parseName();if(t===j.LeftSquareBracket)return this.parseArray();if(z1[t])return this.parseNumberOrRef();throw new TN(this.bytes.position(),t)},e.prototype.parseNumberOrRef=function(){var t=this.parseRawNumber();this.skipWhitespaceAndComments();var i=this.bytes.offset();if(oi[this.bytes.peek()]){var n=this.parseRawNumber();if(this.skipWhitespaceAndComments(),this.bytes.peek()===j.R)return this.bytes.assertNext(j.R),lt.of(t,n)}return this.bytes.moveTo(i),_e.of(t)},e.prototype.parseHexString=function(){var t="";for(this.bytes.assertNext(j.LessThan);!this.bytes.done()&&this.bytes.peek()!==j.GreaterThan;)t+=Rn(this.bytes.next());return this.bytes.assertNext(j.GreaterThan),Re.of(t)},e.prototype.parseString=function(){for(var t=0,i=!1,n="";!this.bytes.done();){var s=this.bytes.next();if(n+=Rn(s),i||(s===j.LeftParen&&(t+=1),s===j.RightParen&&(t-=1)),s===j.BackSlash?i=!i:i&&(i=!1),t===0)return wt.of(n.substring(1,n.length-1))}throw new DN(this.bytes.position())},e.prototype.parseName=function(){this.bytes.assertNext(j.ForwardSlash);for(var t="";!this.bytes.done();){var i=this.bytes.peek();if(os[i]||Mn[i])break;t+=Rn(i),this.bytes.next()}return H.of(t)},e.prototype.parseArray=function(){this.bytes.assertNext(j.LeftSquareBracket),this.skipWhitespaceAndComments();for(var t=at.withContext(this.context);this.bytes.peek()!==j.RightSquareBracket;){var i=this.parseObject();t.push(i),this.skipWhitespaceAndComments()}return this.bytes.assertNext(j.RightSquareBracket),t},e.prototype.parseDict=function(){this.bytes.assertNext(j.LessThan),this.bytes.assertNext(j.LessThan),this.skipWhitespaceAndComments();for(var t=new Map;!this.bytes.done()&&this.bytes.peek()!==j.GreaterThan&&this.bytes.peekAhead(1)!==j.GreaterThan;){var i=this.parseName(),n=this.parseObject();t.set(i,n),this.skipWhitespaceAndComments()}this.skipWhitespaceAndComments(),this.bytes.assertNext(j.GreaterThan),this.bytes.assertNext(j.GreaterThan);var s=t.get(H.of("Type"));return s===H.of("Catalog")?F1.fromMapWithContext(t,this.context):s===H.of("Pages")?I1.fromMapWithContext(t,this.context):s===H.of("Page")?tn.fromMapWithContext(t,this.context):Ge.fromMapWithContext(t,this.context)},e.prototype.parseDictOrStream=function(){var t=this.bytes.position(),i=this.parseDict();if(this.skipWhitespaceAndComments(),!this.matchKeyword($t.streamEOF1)&&!this.matchKeyword($t.streamEOF2)&&!this.matchKeyword($t.streamEOF3)&&!this.matchKeyword($t.streamEOF4)&&!this.matchKeyword($t.stream))return i;var n=this.bytes.offset(),s,a=i.get(H.of("Length"));a instanceof _e?(s=n+a.asNumber(),this.bytes.moveTo(s),this.skipWhitespaceAndComments(),this.matchKeyword($t.endstream)||(this.bytes.moveTo(n),s=this.findEndOfStreamFallback(t))):s=this.findEndOfStreamFallback(t);var o=this.bytes.slice(n,s);return sa.of(i,o)},e.prototype.findEndOfStreamFallback=function(t){for(var i=1,n=this.bytes.offset();!this.bytes.done()&&(n=this.bytes.offset(),this.matchKeyword($t.stream)?i+=1:this.matchKeyword($t.EOF1endstream)||this.matchKeyword($t.EOF2endstream)||this.matchKeyword($t.EOF3endstream)||this.matchKeyword($t.endstream)?i-=1:this.bytes.next(),i!==0););if(i!==0)throw new kN(t);return n},e.forBytes=function(t,i,n){return new e(fl.of(t),i,n)},e.forByteStream=function(t,i,n){return n===void 0&&(n=!1),new e(t,i,n)},e}(sF),R1=lse;var hse=function(r){fe(e,r);function e(t,i){var n=r.call(this,fl.fromPDFRawStream(t),t.dict.context)||this,s=t.dict;return n.alreadyParsed=!1,n.shouldWaitForTick=i||function(){return!1},n.firstOffset=s.lookup(H.of("First"),_e).asNumber(),n.objectCount=s.lookup(H.of("N"),_e).asNumber(),n}return e.prototype.parseIntoContext=function(){return Ke(this,void 0,void 0,function(){var t,i,n,s,a,o,l,h;return Qe(this,function(c){switch(c.label){case 0:if(this.alreadyParsed)throw new yc("PDFObjectStreamParser","parseIntoContext");this.alreadyParsed=!0,t=this.parseOffsetsAndObjectNumbers(),i=0,n=t.length,c.label=1;case 1:return i=j.Space&&i<=j.Tilde;if(n&&(this.matchKeyword($t.xref)||this.matchKeyword($t.trailer)||this.matchKeyword($t.startxref)||this.matchIndirectObjectHeader())){this.bytes.moveTo(t);break}this.bytes.next()}},e.prototype.skipBinaryHeaderComment=function(){this.skipWhitespaceAndComments();try{var t=this.bytes.offset();this.parseIndirectObjectHeader(),this.bytes.moveTo(t)}catch(i){this.bytes.next(),this.skipWhitespaceAndComments()}},e.forBytesWithOptions=function(t,i,n,s){return new e(t,i,n,s)},e}(R1),l8=use;var oa=function(r){return 1<0&&(i[i.length]=+n),t[t.length]={cmd:e,args:i},i=[],n="",s=!1),e=h;else if([" ",","].includes(h)||h==="-"&&n.length>0&&n[n.length-1]!=="e"||h==="."&&s){if(n.length===0)continue;i.length===a?(t[t.length]={cmd:e,args:i},i=[+n],e==="M"&&(e="L"),e==="m"&&(e="l")):i[i.length]=+n,s=h===".",n=["-","."].includes(h)?h:""}else n+=h,h==="."&&(s=!0)}return n.length>0&&(i.length===a?(t[t.length]={cmd:e,args:i},i=[+n],e==="M"&&(e="L"),e==="m"&&(e="l")):i[i.length]=+n),t[t.length]={cmd:e,args:i},t},pse=function(r){Ze=Je=Bt=Rt=Y1=V1=0;for(var e=[],t=0;t1&&(d=Math.sqrt(d),t*=d,i*=d);var f=u/t,m=c/t,g=-c/i,v=u/i,y=f*o+m*l,A=g*o+v*l,b=f*r+m*e,C=g*r+v*e,M=(b-y)*(b-y)+(C-A)*(C-A),D=1/M-.25;D<0&&(D=0);var L=Math.sqrt(D);s===n&&(L=-L);var k=.5*(y+b)-L*(C-A),V=.5*(A+C)+L*(b-y),B=Math.atan2(A-V,y-k),_=Math.atan2(C-V,b-k),S=_-B;S<0&&s===1?S+=2*Math.PI:S>0&&s===0&&(S-=2*Math.PI);for(var G=Math.ceil(Math.abs(S/(Math.PI*.5+.001))),Q=[],Y=0;Yr.length)return n-1;var v=e.heightAtSize(n),y=v+v*.2,A=y*s;if(A>Math.abs(t.height))return n-1;n+=1}return n},wse=function(r,e,t,i){for(var n=t.width/i,s=t.height,a=PF,o=GM(r);a<_F;){for(var l=0,h=o.length;ln*.75;if(u)return a-1}var d=e.heightAtSize(a,{descender:!1});if(d>s)return a-1;a+=1}return a},Ase=function(r){for(var e=r.length;e>0;e--)if(/\s/.test(r[e]))return e},Ese=function(r,e,t,i){for(var n,s=r.length;s>0;){var a=r.substring(0,s),o=t.encodeText(a),l=t.widthOfTextAtSize(a,i);if(ld&&(d=L+M),m+o>f&&(f=m+o),h.push({text:b,encoded:C,width:M,height:o,x:L,y:m}),y=D==null?void 0:D.trim()}return{fontSize:i,lineHeight:l,lines:h,bounds:{x:c,y:u,width:d-c,height:f-u}}},UF=function(r,e){var t=e.fontSize,i=e.font,n=e.bounds,s=e.cellCount,a=i7(l0(r));if(a.length>s)throw new OF(a.length,s);(t===void 0||t===0)&&(t=wse(a,i,n,s));for(var o=n.width/s,l=i.heightAtSize(t,{descender:!1}),h=n.y+(n.height/2-l/2),c=[],u=n.x,d=n.y,f=n.x+n.width,m=n.y+n.height,g=0,v=0;gf&&(f=L+M),h+l>m&&(m=h+l),c.push({text:a,encoded:C,width:M,height:l,x:L,y:h}),g+=1,v+=b}return{fontSize:t,cells:c,bounds:{x:u,y:d,width:f-u,height:m-d}}},X1=function(r,e){var t=e.alignment,i=e.fontSize,n=e.font,s=e.bounds,a=i7(l0(r));(i===void 0||i===0)&&(i=qF([a],n,s));var o=n.encodeText(a),l=n.widthOfTextAtSize(a,i),h=n.heightAtSize(i,{descender:!1}),c=t===Br.Left?s.x:t===Br.Center?s.x+s.width/2-l/2:t===Br.Right?s.x+s.width-l:s.x,u=s.y+(s.height/2-h/2);return{fontSize:i,line:{text:a,encoded:o,width:l,height:h,x:c,y:u},bounds:{x:c,y:u,width:l,height:h}}};var ds=function(r){return"normal"in r?r:{normal:r}},Cse=/\/([^\0\t\n\f\r\ ]+)[\0\t\n\f\r\ ]+(\d*\.\d+|\d+)[\0\t\n\f\r\ ]+Tf/,vl=function(r){var e,t,i=(e=r.getDefaultAppearance())!==null&&e!==void 0?e:"",n=(t=Wd(i,Cse).match)!==null&&t!==void 0?t:[],s=Number(n[2]);return isFinite(s)?s:void 0},Sse=/(\d*\.\d+|\d+)[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]+(g|rg|k)/,cs=function(r){var e,t=(e=r.getDefaultAppearance())!==null&&e!==void 0?e:"",i=Wd(t,Sse).match,n=i!=null?i:[],s=n[1],a=n[2],o=n[3],l=n[4],h=n[5];if(h==="g"&&s)return y8(Number(s));if(h==="rg"&&s&&a&&o)return kt(Number(s),Number(a),Number(o));if(h==="k"&&s&&a&&o&&l)return x8(Number(s),Number(a),Number(o),Number(l))},us=function(r,e,t,i){var n;i===void 0&&(i=0);var s=[ha(e).toString(),G1((n=t==null?void 0:t.name)!==null&&n!==void 0?n:"dummy__noop",i).toString()].join(` +`);r.setDefaultAppearance(s)},HF=function(r,e){var t,i,n,s=cs(e),a=cs(r.acroField),o=e.getRectangle(),l=e.getAppearanceCharacteristics(),h=e.getBorderStyle(),c=(t=h==null?void 0:h.getWidth())!==null&&t!==void 0?t:0,u=Ns(l==null?void 0:l.getRotation()),d=ro(o,u),f=d.width,m=d.height,g=Fs(ot(ot({},o),{rotation:u})),v=kt(0,0,0),y=(i=Li(l==null?void 0:l.getBorderColor()))!==null&&i!==void 0?i:v,A=Li(l==null?void 0:l.getBackgroundColor()),b=Li(l==null?void 0:l.getBackgroundColor(),.8),C=(n=s!=null?s:a)!==null&&n!==void 0?n:v;us(s?e:r.acroField,C);var M={x:0+c/2,y:0+c/2,width:f-c,height:m-c,thickness:1.5,borderWidth:c,borderColor:y,markColor:C};return{normal:{on:bt(g,K1(ot(ot({},M),{color:A,filled:!0}))),off:bt(g,K1(ot(ot({},M),{color:A,filled:!1})))},down:{on:bt(g,K1(ot(ot({},M),{color:b,filled:!0}))),off:bt(g,K1(ot(ot({},M),{color:b,filled:!1})))}}},jF=function(r,e){var t,i,n,s=cs(e),a=cs(r.acroField),o=e.getRectangle(),l=e.getAppearanceCharacteristics(),h=e.getBorderStyle(),c=(t=h==null?void 0:h.getWidth())!==null&&t!==void 0?t:0,u=Ns(l==null?void 0:l.getRotation()),d=ro(o,u),f=d.width,m=d.height,g=Fs(ot(ot({},o),{rotation:u})),v=kt(0,0,0),y=(i=Li(l==null?void 0:l.getBorderColor()))!==null&&i!==void 0?i:v,A=Li(l==null?void 0:l.getBackgroundColor()),b=Li(l==null?void 0:l.getBackgroundColor(),.8),C=(n=s!=null?s:a)!==null&&n!==void 0?n:v;us(s?e:r.acroField,C);var M={x:f/2,y:m/2,width:f-c,height:m-c,borderWidth:c,borderColor:y,dotColor:C};return{normal:{on:bt(g,Q1(ot(ot({},M),{color:A,filled:!0}))),off:bt(g,Q1(ot(ot({},M),{color:A,filled:!1})))},down:{on:bt(g,Q1(ot(ot({},M),{color:b,filled:!0}))),off:bt(g,Q1(ot(ot({},M),{color:b,filled:!1})))}}},GF=function(r,e,t){var i,n,s,a,o,l=cs(e),h=cs(r.acroField),c=vl(e),u=vl(r.acroField),d=e.getRectangle(),f=e.getAppearanceCharacteristics(),m=e.getBorderStyle(),g=f==null?void 0:f.getCaptions(),v=(i=g==null?void 0:g.normal)!==null&&i!==void 0?i:"",y=(s=(n=g==null?void 0:g.down)!==null&&n!==void 0?n:v)!==null&&s!==void 0?s:"",A=(a=m==null?void 0:m.getWidth())!==null&&a!==void 0?a:0,b=Ns(f==null?void 0:f.getRotation()),C=ro(d,b),M=C.width,D=C.height,L=Fs(ot(ot({},d),{rotation:b})),k=kt(0,0,0),V=Li(f==null?void 0:f.getBorderColor()),B=Li(f==null?void 0:f.getBackgroundColor()),_=Li(f==null?void 0:f.getBackgroundColor(),.8),S={x:A,y:A,width:M-A*2,height:D-A*2},G=X1(v,{alignment:Br.Center,fontSize:c!=null?c:u,font:t,bounds:S}),Q=X1(y,{alignment:Br.Center,fontSize:c!=null?c:u,font:t,bounds:S}),Y=Math.min(G.fontSize,Q.fontSize),ne=(o=l!=null?l:h)!==null&&o!==void 0?o:k;us(l||c!==void 0?e:r.acroField,ne,t,Y);var ee={x:0+A/2,y:0+A/2,width:M-A,height:D-A,borderWidth:A,borderColor:V,textColor:ne,font:t.name,fontSize:Y};return{normal:bt(L,C8(ot(ot({},ee),{color:B,textLines:[G.line]}))),down:bt(L,C8(ot(ot({},ee),{color:_,textLines:[Q.line]})))}},WF=function(r,e,t){var i,n,s,a,o=cs(e),l=cs(r.acroField),h=vl(e),c=vl(r.acroField),u=e.getRectangle(),d=e.getAppearanceCharacteristics(),f=e.getBorderStyle(),m=(i=r.getText())!==null&&i!==void 0?i:"",g=(n=f==null?void 0:f.getWidth())!==null&&n!==void 0?n:0,v=Ns(d==null?void 0:d.getRotation()),y=ro(u,v),A=y.width,b=y.height,C=Fs(ot(ot({},u),{rotation:v})),M=kt(0,0,0),D=Li(d==null?void 0:d.getBorderColor()),L=Li(d==null?void 0:d.getBackgroundColor()),k,V,B=r.isCombed()?0:1,_={x:g+B,y:g+B,width:A-(g+B)*2,height:b-(g+B)*2};if(r.isMultiline()){var S=k8(m,{alignment:r.getAlignment(),fontSize:h!=null?h:c,font:t,bounds:_});k=S.lines,V=S.fontSize}else if(r.isCombed()){var S=UF(m,{fontSize:h!=null?h:c,font:t,bounds:_,cellCount:(s=r.getMaxLength())!==null&&s!==void 0?s:0});k=S.cells,V=S.fontSize}else{var S=X1(m,{alignment:r.getAlignment(),fontSize:h!=null?h:c,font:t,bounds:_});k=[S.line],V=S.fontSize}var G=(a=o!=null?o:l)!==null&&a!==void 0?a:M;us(o||h!==void 0?e:r.acroField,G,t,V);var Q={x:0+g/2,y:0+g/2,width:A-g,height:b-g,borderWidth:g!=null?g:0,borderColor:D,textColor:G,font:t.name,fontSize:V,color:L,textLines:k,padding:B};return bt(C,T8(Q))},YF=function(r,e,t){var i,n,s,a=cs(e),o=cs(r.acroField),l=vl(e),h=vl(r.acroField),c=e.getRectangle(),u=e.getAppearanceCharacteristics(),d=e.getBorderStyle(),f=(i=r.getSelected()[0])!==null&&i!==void 0?i:"",m=(n=d==null?void 0:d.getWidth())!==null&&n!==void 0?n:0,g=Ns(u==null?void 0:u.getRotation()),v=ro(c,g),y=v.width,A=v.height,b=Fs(ot(ot({},c),{rotation:g})),C=kt(0,0,0),M=Li(u==null?void 0:u.getBorderColor()),D=Li(u==null?void 0:u.getBackgroundColor()),L=1,k={x:m+L,y:m+L,width:y-(m+L)*2,height:A-(m+L)*2},V=X1(f,{alignment:Br.Left,fontSize:l!=null?l:h,font:t,bounds:k}),B=V.line,_=V.fontSize,S=(s=a!=null?a:o)!==null&&s!==void 0?s:C;us(a||l!==void 0?e:r.acroField,S,t,_);var G={x:0+m/2,y:0+m/2,width:y-m,height:A-m,borderWidth:m!=null?m:0,borderColor:M,textColor:S,font:t.name,fontSize:_,color:D,textLines:[B],padding:L};return bt(b,T8(G))},VF=function(r,e,t){var i,n,s=cs(e),a=cs(r.acroField),o=vl(e),l=vl(r.acroField),h=e.getRectangle(),c=e.getAppearanceCharacteristics(),u=e.getBorderStyle(),d=(i=u==null?void 0:u.getWidth())!==null&&i!==void 0?i:0,f=Ns(c==null?void 0:c.getRotation()),m=ro(h,f),g=m.width,v=m.height,y=Fs(ot(ot({},h),{rotation:f})),A=kt(0,0,0),b=Li(c==null?void 0:c.getBorderColor()),C=Li(c==null?void 0:c.getBackgroundColor()),M=r.getOptions(),D=r.getSelected();r.isSorted()&&M.sort();for(var L="",k=0,V=M.length;k1||n.length===1&&i)&&this.enableMultiselect();for(var o=new Array(n.length),l=0,h=n.length;l1||n.length===1&&i)&&this.enableMultiselect();for(var a=new Array(n.length),o=0,l=n.length;oi)throw new BF(t.length,i,this.getName());this.markAsDirty(),this.disableRichFormatting(),t?this.acroField.setValue(Re.fromText(t)):this.acroField.removeValue()},e.prototype.getAlignment=function(){var t=this.acroField.getQuadding();return t===0?Br.Left:t===1?Br.Center:t===2?Br.Right:Br.Left},e.prototype.setAlignment=function(t){Ds(t,"alignment",Br),this.markAsDirty(),this.acroField.setQuadding(t)},e.prototype.getMaxLength=function(){return this.acroField.getMaxLength()},e.prototype.setMaxLength=function(t){if(qn(t,"maxLength",0,Number.MAX_SAFE_INTEGER),this.markAsDirty(),t===void 0)this.acroField.removeMaxLength();else{var i=this.getText();if(i&&i.length>t)throw new RF(i.length,t,this.getName());this.acroField.setMaxLength(t)}},e.prototype.removeMaxLength=function(){this.markAsDirty(),this.acroField.removeMaxLength()},e.prototype.setImage=function(t){for(var i=this.getAlignment(),n=i===Br.Center?Is.Center:i===Br.Right?Is.Right:Is.Left,s=this.acroField.getWidgets(),a=0,o=s.length;a{let n=new Image;n.onload=async()=>{let s=n.width,a=n.height,o=await Oi.create(),l=o.addPage();l.setSize(s,a);let h=await o.embedPng(e);l.drawImage(h,{x:0,y:0,width:s,height:a});let c=await o.save(),u=new Blob([c]),d=await uo(u);t(d)},n.onerror=s=>{i(s)},n.src=e})}};rp.instanceName="doExportPDF";var ZF=rp;var ip=class{constructor(e){this.mindMap=e.mindMap}async xmind(e,t){return await Hd.transformToXmind(e,t)}getXmind(){return Hd}};ip.instanceName="doExportXMind";var JF=ip;var Gse=I8();wr.usePlugin(ZF);wr.usePlugin(JF);wr.usePlugin(BM);wr.usePlugin(OM);wr.usePlugin(dT);wr.usePlugin(uT);wr.usePlugin(N5);wr.usePlugin(N5);wr.usePlugin(aT);wr.usePlugin(iT);wr.usePlugin(Nx);wr.usePlugin(yx);wr.usePlugin(ux);wr.usePlugin($9);wr.usePlugin(ey);wr.usePlugin(ty);cx.init(wr);wr.usePlugin(ay);wr.usePlugin(px);wr.usePlugin(xx);wr.usePlugin(Dx);var $1="smm-view",Wse=rI(),z8=new Wse,np=class extends or.TextFileView{constructor(){super(...arguments);this.isDemoing=!1;this.noResize=!1;this.refuse=!1;this.file_lock=!1}clear(){this.data="",this.mindMap&&(this.mindMap.destroy(),this.mindMap=null),this.contentEl.empty()}getViewType(){return $1}async onOpen(){this.registerEvent(this.app.workspace.on("active-leaf-change",async t=>{var i;if(((i=this.app.workspace.getActiveFile())==null?void 0:i.extension)=="smm")this.currentFile=this.app.workspace.getActiveFile(),this.file_lock=!1;else return})),this.registerEvent(this.app.workspace.on("file-open",()=>{this.file_lock=!1})),this.registerEvent(this.app.vault.on("modify",()=>{this.file_lock=!0}))}async onClose(){this.mindMap&&(await this.mindMap.destroy(),this.mindMap=null),this.contentEl.empty()}getIcon(){return"ob-smm-brain"}getViewData(){return this.data}async setViewData(t){if(this.contentEl.style.overflow="hidden",this.file_lock)return!1;this.mindMap&&(this.mindMap.destroy(),this.mindMap=null),this.data=t,this.contentEl.empty(),this.contentEl.setAttribute("width","100%"),this.contentEl.setAttribute("height","100%");let i=null;this.app.settings.cartoon&&(i=document.createElement("img"),i.classList.add("smm-loading"),i.src=lT),this.data=t,this.contentEl.createEl("div",{attr:{class:"smm-window-leaf"},text:""});let n=this.contentEl.querySelector(".smm-window-leaf");n.setAttribute("width","100%"),n.setAttribute("height","100%"),this.app.settings.cartoon&&n.appendChild(i),this.smm_mindmap=document.createElement("div"),this.smm_mindmap.setAttribute("class","ob-simple-mindMapContainer"),this.smm_mindmap.setAttribute("width","100%"),this.smm_mindmap.setAttribute("height","100%"),this.setSetting(n),n.appendChild(this.smm_mindmap);let s=document.createElement("div");s.innerHTML=oT,s.id="smm-SL",s.classList.add("smm-button-group"),n.appendChild(s);let a=document.createElement("div");a.id="smm-panel-container",a.innerHTML=Tx,a.style.display="none",n.appendChild(a);let o=document.createElement("div");o.setAttribute("class","miniMapContainer"),this.smm_mindmap.appendChild(o),o.style.display="none",o.setAttribute("transform-origin","left top");let l=document.createElement("div");l.setAttribute("class","viewBoxContainer"),this.smm_mindmap.appendChild(l),l.style.display="none";let h=JSON.parse(t);this.customIcons=await this.getIconize();let{root:c,layout:u,theme:d,view:f}=h;try{this.mindMap=new wr({el:this.contentEl.querySelector(".ob-simple-mindMapContainer"),data:c,layout:u,theme:d.template,themeConfig:d.config,viewData:f,iconList:this.customIcons}),setTimeout(async()=>{this.addEventWithButton(),this.outLinkrefresh(),this.app.settings.cartoon&&i.remove(),await this.saveDataIntoFile()},500)}catch(m){setTimeout(()=>{try{this.mindMap=new wr({el:this.contentEl.querySelector(".ob-simple-mindMapContainer"),data:c,layout:u,theme:d.template,themeConfig:d.config,viewData:f,iconList:this.customIcons}),setTimeout(async()=>{this.addEventWithButton(),this.outLinkrefresh(),this.app.settings.cartoon&&i.remove(),await this.saveDataIntoFile()},500)}catch(g){return}},1e3)}}async simpleSaveSvg(){await z8.acquire("resource",async()=>{let t=this.currentFile,i=await this.mindMap.getData(!0),n=await this.mindMap.export("svg",!1,"");if(i.svgData=n,t instanceof or.TFile&&t.extension=="smm")try{clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.file_lock=!0,this.app.vault.modify(t,JSON.stringify(i)).then(()=>{this.file_lock=!1})},100)}catch(s){new or.Notice(s)}})}async saveDataIntoFile(){await z8.acquire("resource",async()=>{let t=this.currentFile,i=await this.mindMap.getData(!0);if(i.svgData=JSON.parse(this.data).svgData,t instanceof or.TFile&&t.extension=="smm")try{clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.file_lock=!0,this.app.vault.modify(t,JSON.stringify(i)).then(()=>{this.file_lock=!1})},100)}catch(n){new or.Notice(n)}})}addEventWithButton(){var u;this.mindMap.on("node_active",(d,f)=>{this.node=d,this.activeNodeList=f,this.renderNodeStyle()}),this.mindMap.on("view_data_change",async()=>{let d=this.mindMap.view.getTransformData().state.scale;this.contentEl.querySelector(".smm-zoom-input").value=parseInt(d*100)+"%"}),this.mindMap.on("data_change",async()=>{await this.saveDataIntoFile(),this.renderMinimap(),this.outLinkrefresh()}),this.mindMap.keyCommand.addShortcut("Control+F8",()=>{this.mindMap.renderer.textEdit.show({node:this.node})}),this.miap=this.contentEl.querySelector(".miniMapContainer"),this.viap=this.contentEl.querySelector(".viewBoxContainer"),this.miap.style.display="none",this.viap.style.display="none",this.noResize=!1,this.app.workspace.on("resize",()=>{if(!this.noResize&&this.mindMap)try{this.mindMap.resize()}catch(d){}}),(u=this.mindMap)==null||u.resize(),this.contentEl.querySelector("#smm-createAssociativeLine").onclick=async()=>{try{this.mindMap.associativeLine.createLineFromActiveNode()}catch(d){new or.Notice("\u8BF7\u9009\u62E9\u8282\u70B9\uFF0C\u6982\u8981\u65E0\u6CD5\u94FE\u63A5")}},this.contentEl.querySelector("#smm-addOutLine").onclick=async()=>{try{this.mindMap.execCommand("ADD_OUTER_FRAME",[],{})}catch(d){new or.Notice("\u5916\u6846\u6DFB\u52A0\u5931\u8D25")}},this.contentEl.querySelector("#smm-GENERALIZATION").onclick=async()=>{this.mindMap.execCommand("ADD_GENERALIZATION",{text:"\u6982\u8981"},!0)},this.contentEl.querySelector("#smm-showMap").onclick=()=>{try{this.miap.style.display=="none"?(this.miap.removeAttribute("style"),this.viap.removeAttribute("style"),this.renderMinimap()):(this.miap.style.display="none",this.viap.style.display="none")}catch(d){new or.Notice("\u5916\u6846\u6DFB\u52A0\u5931\u8D25")}},this.contentEl.querySelector("#smm-addLink-button").onclick=()=>{this.contentEl.querySelector("#smm-insertLink").removeAttribute("style")},this.renderLinkInput(),this.renderTag(),this.contentEl.querySelector("#smm-setnote").onclick=()=>{var f;this.contentEl.querySelector("#smm-input-note").removeAttribute("style");let d=(f=this.node)==null?void 0:f.getData("note");d&&(this.contentEl.querySelector(".smm-note-input").value=d!==void 0?d:"")};let t=document.querySelector(".smm-note-input"),i=this.contentEl.querySelector("#char-count");t.addEventListener("input",()=>{let d=t.value.length;i.textContent=d,d>1e3&&(t.value=t.value.substring(0,1e3),i.textContent=1e3,new or.Notice("\u6700\u5927\u5B57\u6570\u4E3A1000\u5B57",1200))}),this.contentEl.querySelector("#smm-save-note").onclick=()=>{let d=this.contentEl.querySelector(".smm-note-input"),f=d.value;this.mindMap.execCommand("SET_NODE_NOTE",this.node,f),d.value="",this.contentEl.querySelector("#smm-input-note").style.display="none"},this.contentEl.querySelector("#smm-close-note").onclick=()=>{this.contentEl.querySelector("#smm-input-note").style.display="none"},this.contentEl.querySelector("#smm-hide-search").onclick=()=>{this.contentEl.querySelector(".smm-search-container").style.display=="none"?this.contentEl.querySelector(".smm-search-container").removeAttribute("style"):(this.contentEl.querySelector(".smm-search-container").style.display="none",this.contentEl.querySelector(".smm-search-input").value="")},this.contentEl.querySelector("#smm-formula-button").onclick=()=>{this.contentEl.querySelector(".smm-formula-editor").removeAttribute("style")},this.contentEl.querySelector("#smm-formula-cancel").onclick=()=>{this.contentEl.querySelector(".smm-formula-editor").style.display="none"},this.contentEl.querySelector("#smm-formula-enter").onclick=()=>{let d=this.contentEl.querySelector(".smm-formula-input").value;this.mindMap.execCommand("INSERT_FORMULA",d,this.activeNodeList),this.contentEl.querySelector(".smm-formula-editor").style.display="none"},this.contentEl.querySelector(".smm-zoom-input").onclick=()=>{this.mindMap.view.reset(),this.contentEl.querySelector(".smm-zoom-input").value="100%"},this.contentEl.querySelector("#smm-enlarge-button").onclick=()=>{this.mindMap.view.enlarge();let d=this.contentEl.querySelector(".smm-zoom-input").value,f=parseInt(d.split("%")[0])+25;this.contentEl.querySelector(".smm-zoom-input").value=f+"%"},this.contentEl.querySelector("#smm-narrow-button").onclick=()=>{this.mindMap.view.narrow();let d=this.contentEl.querySelector(".smm-zoom-input").value,f=parseInt(d.split("%")[0])-25;this.contentEl.querySelector(".smm-zoom-input").value=f+"%"},this.contentEl.querySelector("#smm-center-button").onclick=()=>{this.mindMap.view.fit()},this.mindMap.on("back_forward",(d,f)=>{this.isStart=d<=0,this.isEnd=d>=f-1}),this.contentEl.querySelector("#smm-back").onclick=()=>{this.isStart?new or.Notice("\u5F53\u524D\u5904\u4E8E\u5386\u53F2\u8BB0\u5F55\u6700\u5F00\u59CB",3e3):this.mindMap.execCommand("BACK")},this.contentEl.querySelector("#smm-forward").onclick=()=>{this.isEnd?new or.Notice("\u5F53\u524D\u662F\u6700\u65B0\u5386\u53F2\u8BB0\u5F55",3e3):this.mindMap.execCommand("FORWARD")},this.contentEl.querySelector(".smm-search-btn").onclick=()=>{this.mindMap.search.search(this.contentEl.querySelector("#searchInput").value,()=>{this.contentEl.querySelector("#searchInput").focus()})},this.contentEl.querySelector("#searchInput").onkeyup=d=>{d.preventDefault(),d.keyCode===13&&this.mindMap.search.search(this.contentEl.querySelector("#searchInput").value,()=>{this.contentEl.querySelector("#searchInput").focus()}),d.keyCode===27&&(this.contentEl.querySelector(".smm-search-container").style.display="none")},this.contentEl.querySelector("#smm-insert-node").onclick=()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")},this.contentEl.querySelector("#smm-delete-node").onclick=()=>{this.mindMap.execCommand("REMOVE_NODE")},this.contentEl.querySelector("#smm-panel-button").onclick=()=>{let d=this.contentEl.querySelector("#smm-panel-container");d.style.display=="none"?d.removeAttribute("style"):d.style.display="none"},this.bandOnPanel(),this.getTheme();let n=this.contentEl.querySelectorAll(".smm-theme-card");for(let d of n)d.onclick=()=>{let f=d.getAttribute("themeCal");this.mindMap.setThemeConfig({}),this.mindMap.setTheme(f,!1),this.mindMap.emit("data_change")};let s=this.contentEl.querySelectorAll(".smm-structure-card");for(let d of s)d.onclick=()=>{let f=d.getAttribute("structure-cal");this.mindMap.setLayout(f),this.mindMap.emit("data_change")};this.upload_Image(),this.renderIcons();for(let d of this.contentEl.querySelectorAll(".smm-imgtag-icon-card"))d.onclick=()=>{let f=d.getAttribute("destiny");for(let m of this.activeNodeList)m.setIcon([f])};this.contentEl.querySelector("#smm-list-table").addEventListener("mouseenter",()=>{this.contentEl.querySelector("#smm-list-tables").removeAttribute("style")}),this.contentEl.querySelector("#smm-exit-button-panel").onclick=()=>{this.contentEl.querySelector("#smm-panel-container").style.display="none"},this.contentEl.querySelector("#smm-list-tables").addEventListener("mouseleave",()=>{setTimeout(()=>{this.contentEl.querySelector("#smm-list-tables").style.display="none"},200)}),this.contentEl.querySelector("#smm-save-svg-button").onclick=async()=>{new or.Notice("\u5237\u65B0SVG\u6210\u529F",1e3),await this.simpleSaveSvg()},this.contentEl.querySelector(".smm-tag-delete").onclick=()=>{this.contentEl.querySelector(".smm-tag-input").value="",this.contentEl.querySelector(".smm-tag-input").focus()},this.setUniversalStyle(),this.contentEl.querySelector("#smm-demostrate-button").onclick=async()=>{var d;(d=this.mindMap)==null||d.resize(),this.noResize=!0,this.contentEl.querySelector(".miniMapContainer").style.display="none",this.mindMap.demonstrate.enter()},this.mindMap.on("exit_demonstrate",()=>{var d;this.noResize=!1,(d=this.mindMap)==null||d.resize()}),this.mindMap.on("demonstrate_jump",()=>{var d;(d=this.mindMap)==null||d.resize()}),this.setNodeStyle(),this.contentEl.querySelector("#smm-search-obsidian").addEventListener("input",()=>{let d=this.app.vault.getMarkdownFiles(),f=[];for(let y of d)y.path.toLowerCase().includes(this.contentEl.querySelector("#smm-search-obsidian").value)&&f.push({path:y.path,name:y.name});let m=f.map(y=>`
    + + + + + + +
    ${y.name}
    +
    ${y.path}
    +
    `).join("");this.contentEl.querySelector("#search-results").innerHTML=m,setTimeout(()=>{this.contentEl.querySelectorAll(".smm-search-item").forEach(y=>{y.onclick=()=>{let A=this.app.vault.getAbstractFileByPath(y.children[2].innerText);if(!A){new or.Notice("\u63D2\u5165\u5185\u94FE\u5931\u8D25",3e3);return}let b=v(A);this.activeNodeList.forEach(C=>{C.setHyperlink(b,y.children[2].innerText)}),this.contentEl.querySelector("#smm-insertLink").style.display="none"}})},200);let g=this.app;function v(y){let A=encodeURIComponent(y.path);return`obsidian://open? Vault=${encodeURIComponent(g.vault.getName())}&file=${A}`}}),this.contentEl.querySelector("#smm-import-md").onclick=()=>{this.readFileByBrowser().then(async d=>{d?this.mindMap.setData(await KT.transformMarkdownTo(d.content)):new or.Notice("\u64CD\u4F5C\u53D6\u6D88\u6216\u6587\u4EF6\u8BFB\u53D6\u5931\u8D25")})},this.contentEl.querySelector("#smm-import-xmind").onclick=()=>{this.readFileByBrowser().then(async d=>{d?this.mindMap.setData(await Hd.parseXmindFile(d.file,async f=>{if(f.length>1){new or.Notice("\u5F53\u524D\u6587\u4EF6\u5177\u6709\u591A\u4E2A\u753B\u5E03\uFF0C\u8BF7\u4E0D\u8981\u5173\u95ED\uFF0C\u6B63\u5728\u4E3A\u60A8\u5BFC\u5165",3e3);for(let m=1;m{await this.mindMap.export("svg",!0,"\u672A\u547D\u540D")},this.contentEl.querySelector("#smm-export-md").onclick=()=>{this.mindMap.export("md",!0,"\u672A\u547D\u540D")},this.contentEl.querySelector("#smm-export-png").onclick=()=>{this.mindMap.export("png",!0,"\u672A\u547D\u540D")},this.contentEl.querySelector("#smm-export-xmind").onclick=()=>{this.mindMap.export("xmind",!0,"\u672A\u547D\u540D")},this.contentEl.querySelector("#smm-export-pdf").onclick=()=>{this.mindMap.export("pdf",!0,"\u672A\u547D\u540D")},this.contentEl.querySelector("#smm-export-txt").onclick=()=>{this.mindMap.export("txt",!0,"\u672A\u547D\u540D")},this.contentEl.querySelector("#smm-if-water").addEventListener("change",async()=>{this.contentEl.querySelector("#smm-if-water").checked?this.mindMap.watermark.updateWatermark({text:this.app.settings.myInputWater,lineSpacing:50,textSpacing:50,angle:45,textStyle:{color:"#73D8FF",opacity:1,fontSize:12}}):this.mindMap.watermark.updateWatermark({text:"",lineSpacing:50,textSpacing:50,angle:45,textStyle:{color:"#73D8FF",opacity:1,fontSize:12}})}),this.contentEl.querySelector("#smm-clear-s").onclick=()=>{this.mindMap.painter.startPainter()};let a=0,o=0,l=!1;this.mindMap.on("svg_mousedown",d=>{d.which===3&&(a=d.clientX,o=d.clientY,l=!0)}),this.mindMap.on("node_contextmenu",(d,f)=>{let m=this.contentEl.querySelector("#contextMenu-node"),g=f.getRectInSvg().left,v=f.getRectInSvg().top,y=this.mindMap.el.offsetWidth,A=this.mindMap.el.offsetHeight,b=m.offsetWidth,C=m.offsetHeight;y-g>b&&A-v>C&&(m.style.left=g+50+"px",m.style.top=v+25+"px"),y-g{var A,b;if(!l){this.contentEl.querySelector(".smm--right-menu-context").classList.remove("visible");return}if(l=!1,Math.abs(a-d.clientX)>3||Math.abs(o-d.clientY)>3)return;let f=this.contentEl.querySelector("#contextMenu"),m=this.mindMap.el.offsetWidth,g=this.mindMap.el.offsetHeight,v=f.offsetWidth,y=f.offsetHeight;m-d.offsetX>v&&g-d.offsetY>y&&(f.style.left=d.offsetX+10+"px",f.style.top=d.offsetY+10+"px"),m-d.offsetX{this.contentEl.querySelector("#contextMenu").classList.remove("visible"),this.contentEl.querySelector("#contextMenu-node").classList.remove("visible"),this.contentEl.querySelector("#smm-list-tables").style.display="none",this.contentEl.querySelector("#smmFloatButtonGroup").classList.remove("active"),this.contentEl.querySelector("#smmFloatDropdownMenu").classList.remove("active"),this.contentEl.querySelector("#smmFloatDropdownMenu2").classList.remove("active")};this.mindMap.on("node_click",h),this.mindMap.on("draw_click",h),this.mindMap.on("expand_btn_click",h),this.contentEl.querySelector("#contextMenu-node").addEventListener("click",h),this.contentEl.querySelector("#contextMenu").addEventListener("click",h);let c=!1;this.contentEl.querySelector("#smm-open-panel").onclick=()=>{var d,f;if(c){new or.Notice("\u8BF7\u5148\u9000\u51FA\u7985\u6A21\u5F0F");return}((f=(d=this.contentEl.querySelector("#smm-panel-container"))==null?void 0:d.style)==null?void 0:f.display)=="none"?this.contentEl.querySelector("#smm-panel-container").removeAttribute("style"):this.contentEl.querySelector("#smm-panel-container").style.display="none"},this.contentEl.querySelector("#smm-quiet-mode").onclick=()=>{c?(c=!1,this.contentEl.querySelector(".smm-toolbar").removeAttribute("style"),this.contentEl.querySelector("#smm-SL").removeAttribute("style"),this.contentEl.querySelector("#smm-chan-text").innerHTML="\u5F00\u542F\u7985\u6A21\u5F0F"):(c=!0,this.contentEl.querySelector(".miniMapContainer").style.display="none",this.contentEl.querySelector(".smm-toolbar").style.display="none",this.contentEl.querySelector("#smm-panel-container").style.display="none",this.contentEl.querySelector("#smm-SL").style.display="none",this.contentEl.querySelector("#smm-chan-text").innerHTML="\u5173\u95ED\u7985\u6A21\u5F0F")},this.contentEl.querySelector("#smm-copy-node").onclick=()=>{this.mindMap.renderer.copy()},this.contentEl.querySelector("#smm-cut-node").onclick=()=>{this.mindMap.renderer.cut()},this.contentEl.querySelector("#smm-paste-node").onclick=()=>{this.mindMap.renderer.paste()},this.contentEl.querySelector("#smm-collapse-allnode").onclick=()=>{this.mindMap.execCommand("EXPAND_ALL")},this.contentEl.querySelector("#smm-uncollapse-allnode").onclick=()=>{this.mindMap.execCommand("UNEXPAND_ALL")},this.contentEl.querySelector("#smm-up-node").onclick=()=>{this.mindMap.execCommand("UP_NODE")},this.contentEl.querySelector("#smm-down-node").onclick=()=>{this.mindMap.execCommand("DOWN_NODE")},this.contentEl.querySelector("#smm-collapse-one-allnode").onclick=()=>{this.mindMap.execCommand("UNEXPAND_TO_LEVEL",1)},this.contentEl.querySelector("#smm-collapse-two-allnode").onclick=()=>{this.mindMap.execCommand("UNEXPAND_TO_LEVEL",2)},this.contentEl.querySelector("#smm-collapse-three-allnode").onclick=()=>{this.mindMap.execCommand("UNEXPAND_TO_LEVEL",3)},this.contentEl.querySelector("#smm-fit-window").onclick=()=>{this.mindMap.view.fit()},this.contentEl.querySelector("#smm-delete-icon").onclick=()=>{this.node.setIcon([])},this.contentEl.querySelector("#smm-delete-hyperlink").onclick=()=>{this.node.setHyperlink("","")},this.contentEl.querySelector("#smm-INSERT_NODE").onclick=()=>{this.mindMap.execCommand("INSERT_NODE")},this.contentEl.querySelector("#smm-INSERT_CHILD_NODE").onclick=()=>{this.mindMap.execCommand("INSERT_CHILD_NODE")},this.contentEl.querySelector("#smm-INSERT_PARENT_NODE").onclick=()=>{this.mindMap.execCommand("INSERT_PARENT_NODE")},this.contentEl.querySelector("#smm-REMOVE_NODE").onclick=()=>{this.mindMap.execCommand("REMOVE_NODE")},this.mindMap.on("rich_text_selection_change",(d,f,m)=>{if(!d)return;let g=this.node.getRectInSvg().left+f.width/2+"px",v=this.node.getRectInSvg().top-60+"px",y=this.contentEl.querySelector("#smmFloatButtonGroup");y.style.left=g,y.style.top=v,y.classList.add("active")}),this.contentEl.querySelector("#smmFloatButtonGroup").onclick=d=>{d.stopPropagation()},this.contentEl.querySelector("#smm-float-bold").onclick=()=>{this.mindMap.richText.formatText({bold:!0},!1,!1)},this.contentEl.querySelector("#smm-float-italic").onclick=()=>{this.mindMap.richText.formatText({italic:!0},!1,!1)},this.contentEl.querySelector("#smm-float-underline").onclick=()=>{this.mindMap.richText.formatText({underline:!0},!1,!1)},this.contentEl.querySelector("#smm-float-delete").onclick=()=>{this.mindMap.richText.formatText({strike:!0},!1,!1)},this.contentEl.querySelector("#smm-float-clear").onclick=()=>{this.mindMap.richText.removeFormat()},this.contentEl.querySelector("#smmWordClass").onclick=()=>{this.contentEl.querySelector("#smmFloatDropdownMenu").classList.toggle("active")};for(let d of this.contentEl.querySelectorAll(".smm-float-dropdown-item1"))d.onclick=()=>{this.mindMap.richText.formatText({font:d.innerHTML}),this.contentEl.querySelector("#smmFloatDropdownMenu").classList.remove("active")};this.contentEl.querySelector("#smmWordSize").onclick=()=>{this.contentEl.querySelector("#smmFloatDropdownMenu2").classList.toggle("active")};for(let d of this.contentEl.querySelectorAll(".smm-float-dropdown-item2"))d.onclick=()=>{this.mindMap.richText.formatText({size:d.innerHTML+"px"}),this.contentEl.querySelector("#smmFloatDropdownMenu2").classList.remove("active")};this.contentEl.querySelector("#smm-word-color").addEventListener("input",()=>{this.mindMap.richText.formatText({color:this.contentEl.querySelector("#smm-word-color").value})}),this.contentEl.querySelector("#smm-float-bg-color").addEventListener("input",()=>{this.mindMap.richText.formatText({background:this.contentEl.querySelector("#smm-float-bg-color").value})}),this.contentEl.querySelector("#smm-delete-svg-button").addEventListener("click",async()=>{await z8.acquire("resource",async()=>{let d=this.currentFile,f=await this.mindMap.getData(!0);if(f.svgData="",d instanceof or.TFile&&d.extension=="smm")try{clearTimeout(this.saveTimer),this.saveTimer=setTimeout(()=>{this.app.vault.modify(d,JSON.stringify(f)).then(()=>{new or.Notice("\u6E05\u9664\u6210\u529F",3e3)})},100)}catch(m){new or.Notice(m)}})})}renderMinimap(){if(this.miap.style.display=="none")return;let t=this.mindMap.miniMap.calculationMiniMap("180px","90px");this.viewBoxStyle=t.viewBoxStyle,t.getImgUrl(i=>{this.miap.innerHTML=``,this.miap.style.transform=`scale(${t.miniMapBoxScale})`,this.miap.style.left=t.miniMapBoxLeft+"px",this.miap.style.right=t.miniMapBoxRight+"px"})}setSetting(t){let i=Mx,n=document.createElement("div");n.classList.add("smm-navbar-brand"),n.innerHTML=i,t.appendChild(n)}renderLinkInput(){let t=this.contentEl.querySelector("#url-type"),i=this.contentEl.querySelector("#obsidian-type"),n=this.contentEl.querySelector("#url-input-container"),s=this.contentEl.querySelector("#obsidian-input-container"),a=this.contentEl.querySelector("#search-results");a.style.display="none",t.addEventListener("click",()=>{t.classList.add("active"),i.classList.remove("active"),n.style.display="block",s.style.display="none",a.style.display="none"}),this.contentEl.querySelector("#smm-cancel-smm-link").onclick=()=>{this.contentEl.querySelector("#smm-insertLink").style.display="none"},i.addEventListener("click",()=>{i.classList.add("active"),t.classList.remove("active"),n.style.display="none",s.style.display="block",a.style.display="block"}),this.contentEl.querySelector("#smm-add-link-button").onclick=()=>{if(t.classList.contains("active")){let o=this.contentEl.querySelector("#smm-url-link").value;if(o==""){new or.Notice("\u94FE\u63A5\u4E0D\u80FD\u4E3A\u7A7A");return}let l=this.contentEl.querySelector("#smm-url-name").value;for(let h of this.activeNodeList)h.setHyperlink(o,l)}this.contentEl.querySelector("#smm-insertLink").style.display="none"}}renderTag(){this.contentEl.querySelector("#smm-tag-button").onclick=()=>{var t;if(this.contentEl.querySelector("#smm-tag-block").style.display=="none"){this.contentEl.querySelector("#smm-tag-block").removeAttribute("style");let i=((t=this.node)==null?void 0:t.getData("tag"))||[];if(!i)return;for(let n of i){let s=document.createElement("div");s.className="smm-tag-item",s.innerHTML=` + ${n.text} + \xD7 + `,this.contentEl.querySelector("#tags-list").appendChild(s)}this.initTagInputEvents()}},this.contentEl.querySelector("#save-btn").onclick=()=>{let t=this.getTagArray();this.node.setTag(t),this.contentEl.querySelector("#smm-tag-block").style.display="none",this.contentEl.querySelector("#tags-list").innerHTML=""},this.contentEl.querySelector("#exit-btn").onclick=()=>{this.contentEl.querySelector("#smm-tag-block").style.display="none",this.contentEl.querySelector("#tags-list").innerHTML=""}}initTagInputEvents(){let t=this.contentEl.querySelector("#smm-tag-block .smm-tag-input"),i=this.contentEl.querySelector("#add-tag-btn"),n=this.contentEl.querySelector("#tags-list");this.contentEl.querySelector("#add-tag-btn").onclick=()=>{s(t.value.trim()),t.value="",i.onclick=()=>{s(t.value.trim()),t.value=""}},i.addEventListener("click",()=>{s(t.value.trim()),t.value=""}),this.contentEl.querySelectorAll(".smm-tag-remove").forEach(a=>{a.onclick=()=>{n.removeChild(a.parentNode)}});function s(a){if(!a)return;let o=document.createElement("div");o.className="smm-tag-item";let l=document.createElement("span");l.innerText="\xD7",l.classList.add("smm-tag-remove"),o.innerHTML=` + ${a} + `,o.appendChild(l),n.appendChild(o),l.addEventListener("click",()=>{n.removeChild(o)})}}getTagArray(){let i=this.contentEl.querySelector("#tags-list").querySelectorAll(".smm-tag-item");return Array.from(i).map(n=>{var a;return{text:((a=n.textContent)==null?void 0:a.replace("\xD7","").trim())||"",style:{backgroundColor:getComputedStyle(n).backgroundColor,color:getComputedStyle(n).color}}})}bandOnPanel(){let t=this.contentEl.querySelectorAll(".smm-tab"),i=this.contentEl.querySelectorAll(".smm-contents-container");for(let n of t)n.onclick=()=>{let s=n.getAttribute("calor");for(let a of t)a.classList.remove("active");for(let a of i){if(a.classList.contains(s)){a.removeAttribute("style");continue}a.style.display="none"}n.classList.add("active")}}getTheme(){this.changeCalorTheme()}changeCalorTheme(){let t=this.contentEl.querySelector("#theme-category-select"),i=this.contentEl.querySelector("#light-themes"),n=this.contentEl.querySelector("#dark-themes"),s=this.contentEl.querySelector("#minimal-themes");t.addEventListener("change",function(){let a=this.value;a==="all"?(i.classList.remove("hidden"),n.classList.remove("hidden"),s.classList.remove("hidden")):a==="light"?(i.classList.remove("hidden"),n.classList.add("hidden"),s.classList.add("hidden")):a==="dark"?(i.classList.add("hidden"),n.classList.remove("hidden"),s.classList.add("hidden")):a==="minimal"&&(i.classList.add("hidden"),n.classList.add("hidden"),s.classList.remove("hidden"))})}upload_Image(){let t=this.contentEl.querySelector("#dropzone"),i=this.contentEl.querySelector("#preview-image"),n=this.contentEl.querySelector("#preview-placeholder"),s=this.contentEl.querySelector("#dataurl-field"),a=this.contentEl.querySelector("#upload-button"),o=this.contentEl.querySelector("#upload-bg-button"),l=this.contentEl.querySelector("#url-input"),h=this.contentEl.querySelector("#load-url"),c=this.contentEl.querySelector("#paste-button"),u=document.createElement("input");u.type="file",u.accept="image/*",document.body.appendChild(u);let d=!1;function f(v){if(!v.type.match("image.*")){new or.Notice("\u8BF7\u4E0A\u4F20\u56FE\u7247\u6587\u4EF6\uFF01",3e3);return}let y=new FileReader;y.onload=function(A){let b=A.target.result;i.src=b,i.style.display="block",n.style.display="none",s.value=b,a.disabled=!1,o.disabled=!1},y.readAsDataURL(v)}let m=null;function g(){clearTimeout(m),d=!0,c.classList.add("active"),setTimeout(()=>{c.classList.remove("active")},800)}t.addEventListener("click",()=>{u.click()}),u.addEventListener("change",v=>{v.target.files.length>0&&f(v.target.files[0])}),t.addEventListener("dragover",v=>{v.preventDefault(),t.classList.add("active")}),t.addEventListener("dragleave",()=>{t.classList.remove("active")}),t.addEventListener("drop",v=>{v.preventDefault(),t.classList.remove("active"),v.dataTransfer.files.length>0&&f(v.dataTransfer.files[0])}),document.addEventListener("paste",v=>{if(d&&v.clipboardData&&v.clipboardData.items){for(let y of v.clipboardData.items)if(y.kind==="file"){let A=y.getAsFile();f(A),d=!1,c.classList.remove("active");break}}}),c.addEventListener("click",()=>{g()}),h.addEventListener("click",()=>{let v=l.value.trim();if(!v){alert("\u8BF7\u8F93\u5165\u56FE\u7247 URL");return}let y=v.startsWith("http")?v:`https://${v}`;n.textContent="\u52A0\u8F7D\u4E2D...",n.style.display="block",i.style.display="none";let A=new Image,b=null,C=()=>{b=setTimeout(()=>{n.textContent="\u52A0\u8F7D\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5URL\u6216\u7F51\u7EDC"},1e4)};A.onload=()=>{clearTimeout(b),i.src=y,i.style.display="block",n.style.display="none",s.value=y,a.disabled=!1,o.disabled=!1},A.onerror=()=>{clearTimeout(b),n.textContent="\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5URL\u662F\u5426\u6709\u6548"},A.src=y,C()}),a.onclick=()=>{let v=s.value;if(v){for(let y of this.activeNodeList)y.setImage({url:v,title:"",width:100,height:100});i.src="",s.value=""}}}async getIconize(){let t=[],i=".obsidian/icons",n=s=>{let a=new RegExp(/width="[\d.]+(px)?"/),o=new RegExp(/height="[\d.]+(px)?"/);return s.match(a)&&(s=s.replace(a,"")),s.match(o)&&(s=s.replace(o,"")),s=s.replace(/<\?xml[^>]*\?>/,""),s=s.replace(/]*>/,""),s=s.replace(/(\r\n|\n|\r)/gm,""),s=s.replace(/>\s+<"),s};try{let s=await this.app.vault.adapter.list(i);for(let a of s.folders){let o=await this.app.vault.adapter.list(a),l={name:a.split("/")[a.split("/").length-1].split(".")[0],type:a.split("/")[a.split("/").length-1].split(".")[0],list:[]},h=1;for(let c of o.files){let u=await this.app.vault.adapter.read(c),d=n(u);l.list.push({name:String(h),icon:`${d}`}),h++}t.push(l)}return t}catch(s){return console.log("\u672A\u5B89\u88C5iconize\u63D2\u4EF6"),[]}}async renderIcons(){let t=this.contentEl.querySelector("#iconsContainer");t.innerHTML="";let i=kx.concat(this.customIcons);for(let n of i){let s=document.createElement("div");s.className="smm-imgtag-category";let a=document.createElement("div");a.className="smm-imgtag-category-title",a.textContent=n.name;let o=document.createElement("div");o.className="smm-imgtag-grid";for(let l of n.list){let h=document.createElement("div");h.className="smm-imgtag-icon-card",h.setAttribute("destiny",n.type+"_"+l.name);let c=document.createElement("div");c.className="smm-imgtag-icon",c.innerHTML=l.icon;let u=document.createElement("div");u.className="smm-imgtag-icon-name",u.textContent=l.name,h.appendChild(c),h.appendChild(u),o.appendChild(h)}s.appendChild(a),s.appendChild(o),t.appendChild(s)}}outLinkrefresh(){let t=this.mindMap.getData();hT(this.mindMap,t,this.contentEl,document),cT(this.contentEl,document)}setUniversalStyle(){for(let t of this.contentEl.querySelectorAll(".smm-ustyle-color-square"))t.onclick=()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,backgroundColor:t.style["background-color"]})};this.contentEl.querySelector("#smm-bg-color").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,backgroundColor:this.contentEl.querySelector("#smm-bg-color").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-ustyle-line-color").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,lineColor:this.contentEl.querySelector("#smm-ustyle-line-color").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-ustyle-line-width").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,lineWidth:this.contentEl.querySelector("#smm-ustyle-line-width").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-ustyle-line-width").value=this.mindMap.themeConfig.lineWidth,this.contentEl.querySelector("#smm-ustyle-line-fad").addEventListener("change",()=>{let t=this.contentEl.querySelector("#smm-ustyle-line-fad").value;this.mindMap.setThemeConfig({...this.mindMap.themeConfig,lineStyle:t,rootLineKeepSameInCurve:!0}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-ustyle-line-fad").value=this.mindMap.themeConfig.lineStyle,this.contentEl.querySelector("#smm-straight-radiu").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,lineRadius:Number(this.contentEl.querySelector("#smm-straight-radiu").value)}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-if-arrow").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,showLineMarker:!!this.contentEl.querySelector("#smm-if-arrow").checked}),this.mindMap.emit("data_change")}),this.mindMap.themeConfig.showLineMarker?this.contentEl.querySelector("#smm-if-arrow").checked=!0:this.contentEl.querySelector("#smm-if-arrow").removeAttribute("checked"),this.contentEl.querySelector("#upload-bg-button").onclick=()=>{let t=this.contentEl.querySelector("#dataurl-field"),i=t.value;if(!i)return;this.mindMap.setThemeConfig({backgroundImage:i,backgroundRepeat:"no-repeat",backgroundPosition:"center center",backgroundSize:"cover"});let n=this.contentEl.querySelector("#preview-image");n.src="",t.value="",this.mindMap.emit("data_change")},this.contentEl.querySelector("#clear-bg-button").onclick=()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,backgroundImage:""}),this.mindMap.emit("data_change")},this.contentEl.querySelector(".smm-ustyle-rainbow-line").onclick=()=>{this.mindMap.rainbowLines.updateRainLinesConfig({open:!0}),this.mindMap.emit("data_change")},this.contentEl.querySelector("#smm-close-rainbow").onclick=()=>{this.mindMap.rainbowLines.updateRainLinesConfig({open:!1}),this.mindMap.emit("data_change")},this.contentEl.querySelector("#smm-generalize-color").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,generalizationLineColor:this.contentEl.querySelector("#smm-generalize-color").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-generalize-width").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,generalizationLineWidth:this.contentEl.querySelector("#smm-generalize-width").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-generalize-width").value=this.mindMap.themeConfig.generalizationLineWidth,this.contentEl.querySelector("#smm-associal-line").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineColor:this.contentEl.querySelector("#smm-associal-line").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-associalline-width").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineWidth:this.contentEl.querySelector("#smm-associalline-width").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-associalline-width").value=this.mindMap.themeConfig.associativeLineWidth,this.contentEl.querySelector("#smm-associalline-active").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineActiveColor:this.contentEl.querySelector("#smm-associalline-active").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-asocialline-active-width").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineActiveWidth:this.contentEl.querySelector("#smm-asocialline-active-width").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-asocialline-active-width").value=this.mindMap.themeConfig.associativeLineActiveWidth,this.contentEl.querySelector("#smm-line-word").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineTextFontFamily:this.contentEl.querySelector("#smm-line-word").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-line-word").value=this.mindMap.themeConfig.associativeLineTextFontFamily,this.contentEl.querySelector("#smm-line-word-color").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineTextColor:this.contentEl.querySelector("#smm-line-word-color").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-line-word-size").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,associativeLineTextFontSize:this.contentEl.querySelector("#smm-line-word-size").value}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-line-word-size").value=this.mindMap.themeConfig.associativeLineTextFontSize,this.contentEl.querySelector("#smm-node-border-style").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,nodeUseLineStyle:this.contentEl.querySelector("#smm-node-border-style").checked}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-node-border-style").value=this.mindMap.themeConfig.nodeUseLineStyle,this.contentEl.querySelector("#smm-ustyle-node-padding-x").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,paddingX:Number(this.contentEl.querySelector("#smm-ustyle-node-padding-x").value)}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-ustyle-node-padding-x").value=this.mindMap.themeConfig.paddingX,this.contentEl.querySelector("#smm-ustyle-node-padding-y").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,paddingY:Number(this.contentEl.querySelector("#smm-ustyle-node-padding-y").value)}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-ustyle-node-padding-y").value=this.mindMap.themeConfig.paddingY,this.contentEl.querySelector("#smm-imgTag-size").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,iconSize:Number(this.contentEl.querySelector("#smm-imgTag-size").value)}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-imgTag-size").value=this.mindMap.themeConfig.iconSize,this.contentEl.querySelector("#smm-node-second").onclick=()=>{this.contentEl.querySelector("#smm-node-second").classList.add("active"),this.contentEl.querySelector("#smm-node-third").classList.remove("active"),this.contentEl.querySelector("#smm-us-second-style").removeAttribute("style"),this.contentEl.querySelector("#smm-us-third-style").style.display="none"},this.contentEl.querySelector("#smm-node-third").onclick=()=>{this.contentEl.querySelector("#smm-node-third").classList.add("active"),this.contentEl.querySelector("#smm-node-second").classList.remove("active"),this.contentEl.querySelector("#smm-us-third-style").removeAttribute("style"),this.contentEl.querySelector("#smm-us-second-style").style.display="none"},this.contentEl.querySelector("#smm-node-justify-margin").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,second:{marginX:Number(this.contentEl.querySelector("#smm-node-justify-margin").value)}}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-node-justify-margin").value=this.mindMap.themeConfig.second.marginX,this.contentEl.querySelector("#smm-node-vertical-margin").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,second:{marginY:Number(this.contentEl.querySelector("#smm-node-vertical-margin").value)}}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-node-vertical-margin").value=this.mindMap.themeConfig.second.marginY,this.contentEl.querySelector("#smm-node-t-justify-margin").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,node:{marginX:Number(this.contentEl.querySelector("#smm-node-t-justify-margin").value)}}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-node-t-justify-margin").value=this.mindMap.themeConfig.node.marginX,this.contentEl.querySelector("#smm-node-t-vertical-margin").addEventListener("change",()=>{this.mindMap.setThemeConfig({...this.mindMap.themeConfig,node:{marginY:Number(this.contentEl.querySelector("#smm-node-t-vertical-margin").value)}}),this.mindMap.emit("data_change")}),this.contentEl.querySelector("#smm-node-t-vertical-margin").value=this.mindMap.themeConfig.node.marginY}setNodeStyle(){this.contentEl.querySelector("#smm-node-word-zt").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("fontFamily",this.contentEl.querySelector("#smm-node-word-zt").value)})}),this.contentEl.querySelector("#smm-node-word-zh").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("fontSize",Number(this.contentEl.querySelector("#smm-node-word-zh").value))})}),this.contentEl.querySelector("#smm-nodestyle-bgcolor").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("color",this.contentEl.querySelector("#smm-nodestyle-bgcolor").value)})}),this.contentEl.querySelector(".smm-nodestyle-bold").addEventListener("click",()=>{this.activeNodeList.forEach(t=>{t.setStyle("fontWeight","bold")})}),this.contentEl.querySelector(".smm-nodestyle-italic").addEventListener("click",()=>{this.activeNodeList.forEach(t=>{t.setStyle("fontStyle","italic")})}),this.contentEl.querySelector(".smm-nodestyle-underline").addEventListener("click",()=>{this.activeNodeList.forEach(t=>{t.setStyle("textDecoration","underline")})}),this.contentEl.querySelector("#smm-nodestyle-border-color").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("borderColor",this.contentEl.querySelector("#smm-nodestyle-border-color").value)})}),this.contentEl.querySelector("#smm-nodestyle-border-color").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("borderColor",this.contentEl.querySelector("#smm-nodestyle-border-color").value)})}),this.contentEl.querySelector("#smm-nodestyle-line").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("borderDasharray",this.contentEl.querySelector("#smm-nodestyle-line").value)})}),this.contentEl.querySelector("#smm-nodestyle-line-width").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("borderWidth",Number(this.contentEl.querySelector("#smm-nodestyle-line-width").value))})}),this.contentEl.querySelector("#smm-nodestyle-roundRadiu").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("borderRadius",Number(this.contentEl.querySelector("#smm-nodestyle-roundRadiu").value))})}),this.contentEl.querySelector("#smm-nodestyle-bgcolor-bg").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("fillColor",this.contentEl.querySelector("#smm-nodestyle-bgcolor-bg").value)})}),this.contentEl.querySelector("#smm-node-shape").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("shape",this.contentEl.querySelector("#smm-node-shape").value)})}),this.contentEl.querySelector("#smm-nodeline-color").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("lineColor",this.contentEl.querySelector("#smm-nodeline-color").value)})}),this.contentEl.querySelector("#smm-node-ys-style").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("lineDasharray",this.contentEl.querySelector("#smm-node-ys-style").value)})}),this.contentEl.querySelector("#smm-node-line-width").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("lineWidth",Number(this.contentEl.querySelector("#smm-node-line-width").value))})}),this.contentEl.querySelector("#smm-nodestyle-justify-padding").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("paddingX",Number(this.contentEl.querySelector("#smm-nodestyle-justify-padding").value))})}),this.contentEl.querySelector("#smm-nodestyle-vertical-padding").addEventListener("change",()=>{this.activeNodeList.forEach(t=>{t.setStyle("paddingY",Number(this.contentEl.querySelector("#smm-nodestyle-vertical-padding").value))})})}renderNodeStyle(){if(this.node){if(this.node.isRoot){this.contentEl.querySelector("#smm-node-word-zt").value="",this.contentEl.querySelector("#smm-node-word-zh").value="",this.contentEl.querySelector("#smm-nodestyle-line").value="",this.contentEl.querySelector("#smm-nodestyle-line-width").value="",this.contentEl.querySelector("#smm-nodestyle-roundRadiu").value="",this.contentEl.querySelector("#smm-node-shape").value="",this.contentEl.querySelector("#smm-node-ys-style").value="",this.contentEl.querySelector("#smm-node-line-width").value="",this.contentEl.querySelector("#smm-nodestyle-justify-padding").value="",this.contentEl.querySelector("#smm-nodestyle-vertical-padding").value="";return}this.contentEl.querySelector("#smm-node-word-zt").value=this.node.getStyle("fontFamily",this.node.isRoot),this.contentEl.querySelector("#smm-node-word-zh").value=this.node.getStyle("fontSize",this.node.isRoot),this.contentEl.querySelector("#smm-nodestyle-line").value=this.node.getStyle("borderDasharray",this.node.isRoot),this.contentEl.querySelector("#smm-nodestyle-line-width").value=this.node.getStyle("borderWidth",this.node.isRoot),this.contentEl.querySelector("#smm-nodestyle-roundRadiu").value=this.node.getStyle("borderRadius",this.node.isRoot),this.contentEl.querySelector("#smm-node-shape").value=this.node.getStyle("shape",this.node.isRoot),this.contentEl.querySelector("#smm-node-ys-style").value=this.node.getStyle("lineDasharray",this.node.isRoot),this.contentEl.querySelector("#smm-node-line-width").value=this.node.getStyle("lineWidth",this.node.isRoot),this.contentEl.querySelector("#smm-nodestyle-justify-padding").value=this.node.getStyle("paddingX",this.node.isRoot),this.contentEl.querySelector("#smm-nodestyle-vertical-padding").value=this.node.getStyle("paddingY",this.node.isRoot)}}readFileByBrowser(){return new Promise(t=>{let i=document.createElement("input");i.type="file",i.accept=".md, .xmind",i.onchange=async n=>{let s=n.target.files[0];if(!s){t(null);return}let a=new FileReader;a.onload=()=>{var l;let o=(l=a.result)==null?void 0:l.toString();t({file:s,content:o})},a.onerror=()=>t(null),a.readAsText(s)},i.click()})}setSameWidth(){function t(n,s=0,a={}){return a[s]||(a[s]=[]),a[s].push(n),n.getChildrenLength()>0&&n.children.forEach(o=>{t(o,s+1,a)}),a}let i=t(this.mindMap.renderer.root);for(let n in i){if(n==0)continue;let s=i[n];s.sort((a,o)=>a.width-o.width);for(let a of s)a.setData({customTextWidth:s[s.length-1].width-31}),this.mindMap.render(),console.log(s[s.length-1].width)}}};var L8=I8(),Yse={myInputFolderPath:"",myInputWater:"",cartoon:!1,changeWidth:!1,cacheSize:65e3},sp=class extends Pt.Plugin{async onload(){(0,Pt.addIcon)("ob-smm-brain",` + + `),await this.loadSettings(),this.registerView($1,t=>new np(t)),this.registerExtensions(["smm"],$1),this.addCommand({id:"create a smm mindmap",name:"Create a SimpleMindMap File",callback:async()=>{let{vault:t}=this.app,i=new Date,n=L8(i).format("YYYY-MM-DD-HH-mm-ss"),s=`${this.settings.myInputFolderPath}/SMM-${n}.smm`,a=` +{"svgData":"","layout":"logicalStructure","root":{"data":{"text":"\u6839\u8282\u70B9","expand":true,"uid":"3cb9f800-5a74-4609-a8ff-c37a0beb0bd8","richText":true,"isActive":false},"children":[{"data":{"text":"\u4E8C\u7EA7\u8282\u70B9","generalization":{"text":"\u6982\u8981","uid":"cd2361f6-2cc4-4dc6-b336-57b46f8b33ed","richText":true,"expand":true,"isActive":false},"uid":"a7ae8e47-39fb-4370-ae20-d22f703e7065","richText":true,"expand":true,"isActive":false},"children":[{"data":{"text":"\u5206\u652F\u4E3B\u9898","uid":"ff04f5b8-f02b-4faf-b598-a5fb8f666b91","richText":true,"expand":true,"isActive":false},"children":[]},{"data":{"text":"\u5206\u652F\u4E3B\u9898","uid":"796eef36-18e2-41e2-96c6-25fcc2162d2d","richText":true,"expand":true,"isActive":false},"children":[]}]}],"smmVersion":"0.13.1-fix.2"},"theme":{"template":"classic4","config":{}},"view":{"transform":{"scaleX":1,"scaleY":1,"shear":0,"rotate":0,"translateX":0,"translateY":0,"originX":0,"originY":0,"a":1,"b":0,"c":0,"d":1,"e":0,"f":0},"state":{"scale":1,"x":0,"y":0,"sx":0,"sy":0}}} `;try{t.getAbstractFileByPath(s)?new Pt.Notice("\u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728",3e3):(await t.create(s,a),await this.app.workspace.openLinkText(s,"",!1))}catch(o){new Pt.Notice("\u521B\u5EFASMM\u6587\u4EF6\u5931\u8D25"+o,3e3)}}}),this.addSettingTab(new O8(this.app,this)),this.addRibbonIcon("ob-smm-brain","create a smm mindmap",async()=>{let{vault:t}=this.app,i=new Date,n=L8(i).format("YYYY-MM-DD-HH-mm-ss"),s=`${this.settings.myInputFolderPath}/SMM-${n}.smm`,a=` +{"svgData":"","layout":"logicalStructure","root":{"data":{"text":"\u6839\u8282\u70B9","expand":true,"uid":"3cb9f800-5a74-4609-a8ff-c37a0beb0bd8","richText":true,"isActive":false},"children":[{"data":{"text":"\u4E8C\u7EA7\u8282\u70B9","generalization":{"text":"\u6982\u8981","uid":"cd2361f6-2cc4-4dc6-b336-57b46f8b33ed","richText":true,"expand":true,"isActive":false},"uid":"a7ae8e47-39fb-4370-ae20-d22f703e7065","richText":true,"expand":true,"isActive":false},"children":[{"data":{"text":"\u5206\u652F\u4E3B\u9898","uid":"ff04f5b8-f02b-4faf-b598-a5fb8f666b91","richText":true,"expand":true,"isActive":false},"children":[]},{"data":{"text":"\u5206\u652F\u4E3B\u9898","uid":"796eef36-18e2-41e2-96c6-25fcc2162d2d","richText":true,"expand":true,"isActive":false},"children":[]}]}],"smmVersion":"0.13.1-fix.2"},"theme":{"template":"classic4","config":{}},"view":{"transform":{"scaleX":1,"scaleY":1,"shear":0,"rotate":0,"translateX":0,"translateY":0,"originX":0,"originY":0,"a":1,"b":0,"c":0,"d":1,"e":0,"f":0},"state":{"scale":1,"x":0,"y":0,"sx":0,"sy":0}}} `;try{t.getAbstractFileByPath(s)?new Pt.Notice("\u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728",3e3):(await t.create(s,a),await this.app.workspace.openLinkText(s,"",!1))}catch(o){new Pt.Notice("\u521B\u5EFASMM\u6587\u4EF6\u5931\u8D25"+o,3e3)}}),this.setupObsidianSmmInterceptor(async t=>{let i="",n=t.split("/").length;i=this.settings.myInputFolderPath+"/"+t.split("/")[n-1];let s=this.app.vault.getAbstractFileByPath(i);if(s){let a=await this.app.vault.read(s),o=this.dataURItoBlob(JSON.parse(a).svgData);return URL.createObjectURL(o)}else new Pt.Notice(`SMM file not found: ${i}`)}),this.app.settings=this.settings,this.settings.cacheSize!==65e3&&(this.app.vault.cacheLimit=this.app.settings.cacheSize),this.checkForUpdates(!0),console.log(this.app.metadataCache)}async loadSettings(){this.settings=Object.assign({},Yse,await this.loadData())}async saveSettings(){this.saveData(this.settings),this.removeCommand("create a smm mindmap"),this.addCommand({id:"create a smm mindmap",name:"Create a SimpleMindMap File",callback:async()=>{let{vault:t}=this.app,i=new Date,n=L8(i).format("YYYY-MM-DD-HH-mm-ss"),s=`${this.settings.myInputFolderPath}/SMM-${n}.smm`,a=` + + `;try{t.getAbstractFileByPath(s)?new Pt.Notice("\u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728",3e3):(await t.create(s,a),await this.app.workspace.openLinkText(s,"",!1))}catch(o){new Pt.Notice("\u521B\u5EFASMM\u6587\u4EF6\u5931\u8D25"+o,3e3)}}})}async onunload(){this.app.workspace.detachLeavesOfType($1)}dataURItoBlob(t){let i=atob(t.split(",")[1]),n=t.split(",")[0].split(":")[1].split(";")[0],s=new ArrayBuffer(i.length),a=new Uint8Array(s);for(let o=0;o{for(let m of f)for(let g of m.addedNodes)g instanceof HTMLElement&&g.classList.contains("internal-embed")&&l(g)}).observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["src"]}),document.querySelectorAll('.internal-embed[src$=".smm"]').forEach(l)}this.registerMarkdownPostProcessor(async(d,f)=>{let m=d.querySelectorAll(".internal-embed");for(let g of m){let v=g.getAttribute("src");if(v&&v.endsWith(".smm")){let y="",A=v.split("/").length;y=this.settings.myInputFolderPath+"/"+v.split("/")[A-1];let b=this.app.vault.getAbstractFileByPath(y);if(b)try{let C=await this.app.vault.read(b),M=document.createElement("div");if(M.classList.add("SMM-DRAW"),g.parentNode)if(g.parentNode.nodeName!=="HTML"){g.parentNode.insertBefore(M,g),g.style.display="none";let D=this.dataURItoBlob(JSON.parse(C).svgData),L=URL.createObjectURL(D);o.changeWidth?M.innerHTML=``:M.innerHTML=``}else new Pt.Notice(`Cannot replace element inside ${g.parentNode.nodeName} node`,3e3);else new Pt.Notice(`No parent node found for ${v}`,3e3)}catch(C){new Pt.Notice(`Error reading or processing ${v}:`+C,3e3)}else new Pt.Notice(`SMM file not found: ${v}`,3e3)}}for(let g of document.querySelectorAll(".action_has"))g.onclick=async()=>{let v=g.getAttribute("file");await this.app.workspace.openLinkText(v,"",!1)}});let o=this.settings;function l(d){let f=d.getAttribute("src");f&&f.endsWith(".smm")&&(async()=>{var m;try{let g=await t(f);(m=d.empty)==null||m.call(d);let v=document.createElement("img");v.src=g,o.changeWidth||(v.style.width="100%",v.style.height="auto",v.style.maxWidth="100%",v.style.maxHeight="600px"),d.appendChild(v)}catch(g){new Pt.Notice("Obsidian \u5D4C\u5165\u5143\u7D20\u5904\u7406\u5931\u8D25:"+g,3e3),d.innerHTML=`
    Failed to load SMM: ${g.message}
    `}})()}a(),setTimeout(()=>document.querySelectorAll('img[src$=".smm"]').forEach(d=>d.src=d.src),200);function h(){new MutationObserver(f=>{for(let m of f)for(let g of m.addedNodes)g instanceof HTMLElement&&g.classList.contains("canvas-node-content")&&u(g)}).observe(document.body,{childList:!0,subtree:!0}),document.querySelectorAll(".canvas-node-content").forEach(u)}h();let c=this.dataURItoBlob;async function u(d){var g;let f=(g=d.parentNode.nextSibling)==null?void 0:g.innerText;if(!f)return;if(f.split(".")[f.split(".").length-1]=="smm"){let v=d;v.style.padding="0px";let y=i+"/"+f,A=n.vault.getAbstractFileByPath(y);if(A){let b=await n.vault.read(A),C=JSON.parse(b).svgData;C||setTimeout(()=>{C=JSON.parse(b).svgData,C||setTimeout(()=>{C=JSON.parse(b).svgData;let L=URL.createObjectURL(c(C));v.classList.remove("file-embed"),v.classList.add("media-embed"),v.classList.add("image-embed"),v.innerHTML=``},1e3);let D=URL.createObjectURL(c(C));v.classList.remove("file-embed"),v.classList.add("media-embed"),v.classList.add("image-embed"),v.innerHTML=``},500);let M=URL.createObjectURL(c(C));v.innerHTML=``}else new Pt.Notice("no such file")}}return{unmount:()=>{s.forEach(d=>URL.revokeObjectURL(d)),s.clear()}}}async checkForUpdates(t){try{let i=this.manifest.version,n=await fetch("https://cdn.jsdelivr.net/gh/LXiangEthan/obsidian-simplemindmap@master/manifest.json?refresh",{cache:"reload"});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);let a=(await n.json()).version;if(this.isNewerVersion(a,i))if(t){let o=new Pt.Notice(`Ob-SMM\u53D1\u73B0\u65B0\u7248\u672C: ${a} (\u5F53\u524D: ${i})`,0),l=o.messageEl;new Pt.ButtonComponent(l).setButtonText("\u66F4\u65B0\u63D2\u4EF6").setCta().onClick(async()=>{o.hide(),new Pt.Notice("\u5F00\u59CB\u66F4\u65B0\u63D2\u4EF6..."),await this.updatePlugin(),new Pt.Notice("\u66F4\u65B0\u5B8C\u6210\uFF0C\u8BF7\u91CD\u542F Obsidian \u4EE5\u5E94\u7528\u66F4\u6539")}),new Pt.ButtonComponent(l).setButtonText("\u53D6\u6D88\u66F4\u65B0").setCta().onClick(async()=>{o.hide()})}else new Pt.Notice(`\u63D2\u4EF6\u66F4\u65B0\u53EF\u7528: ${a} (\u5F53\u524D: ${i})`)}catch(i){new Pt.Notice("\u68C0\u67E5\u66F4\u65B0\u65F6\u51FA\u9519:"+i),t&&new Pt.Notice("\u68C0\u67E5\u66F4\u65B0\u5931\u8D25")}}isNewerVersion(t,i){let[n,s,a]=t.split(".").map(Number),[o,l,h]=i.split(".").map(Number);return n>o?!0:nl?!0:sh}async updatePlugin(){try{let t=this.manifest.dir,n=await fetch("https://cdn.jsdelivr.net/gh/LXiangEthan/obsidian-simplemindmap@master/main.js?refresh",{cache:"reload"});if(!n.ok)throw new Error(`\u4E0B\u8F7D main.js \u5931\u8D25: ${n.status}`);let s=await n.text();await this.app.vault.adapter.write(`${t}/main.js`,s);let o=await fetch("https://cdn.jsdelivr.net/gh/LXiangEthan/obsidian-simplemindmap@master/styles.css?refresh",{cache:"reload"});if(!o.ok)throw new Error(`\u4E0B\u8F7D styles.css \u5931\u8D25: ${o.status}`);let l=await o.text();await this.app.vault.adapter.write(`${t}/styles.css`,l);let c=await fetch("https://cdn.jsdelivr.net/gh/LXiangEthan/obsidian-simplemindmap@master/manifest.json?refresh");if(!c.ok)throw new Error(`\u4E0B\u8F7D manifest.json \u5931\u8D25: ${c.status}`);let u=await c.text();return await this.app.vault.adapter.write(`${t}/manifest.json`,u),!0}catch(t){throw new Pt.Notice("\u66F4\u65B0\u63D2\u4EF6\u65F6\u51FA\u9519:"+t,3e3),t}}},O8=class extends Pt.PluginSettingTab{constructor(t,i){super(t,i);this.plugin=i}display(){let{containerEl:t}=this;t.empty(),t.createEl("h2",{text:"Ob-smm"}),new Pt.Setting(t).setName("\u8F93\u5165\u60A8\u4FDD\u5B58\u6587\u4EF6\u7684\u8DEF\u5F84").setDesc("input the path of folder").addText(i=>i.setPlaceholder("The path of folder").setValue(this.plugin.settings.myInputFolderPath).onChange(async n=>{this.plugin.settings.myInputFolderPath=n,await this.plugin.saveSettings()})),new Pt.Setting(t).setName("\u8F93\u5165\u60A8\u7684\u6C34\u5370\u6587\u5B57").setDesc("input the name of watermarkConfig").addText(i=>i.setPlaceholder("The watermarkConfig").setValue(this.plugin.settings.myInputWater).onChange(async n=>{this.plugin.settings.myInputWater=n,await this.plugin.saveSettings()})),new Pt.Setting(t).setName("\u8F93\u5165\u7F13\u5B58\u5927\u5C0F").setDesc("input the size of cache").addText(i=>i.setPlaceholder("xxByte").setValue(String(this.plugin.settings.cacheSize)).onChange(async n=>{this.plugin.settings.cacheSize=Number(n),await this.plugin.saveSettings()})),new Pt.Setting(t).setName("\u662F\u5426\u5F00\u542F\u542F\u52A8\u52A8\u753B").setDesc("open the cartoon before opening").addToggle(i=>i.setValue(this.plugin.settings.cartoon).onChange(async n=>{this.plugin.settings.cartoon=n,await this.plugin.saveSettings()})),new Pt.Setting(t).setName("\u662F\u5426\u5F00\u542F\u624B\u52A8\u8C03\u8282\u6587\u6863\u5D4C\u5165\u56FE\u7247\u5927\u5C0F").setDesc("change the width of image of doc by finger").addToggle(i=>i.setValue(this.plugin.settings.changeWidth).onChange(async n=>{this.plugin.settings.changeWidth=n,await this.plugin.saveSettings()}))}}; +/*! Bundled license information: + +jszip/dist/jszip.min.js: + (*! + + JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + + (c) 2009-2016 Stuart Knightley + Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + + JSZip uses the library pako released under the MIT license : + https://github.com/nodeca/pako/blob/main/LICENSE + *) + +sax/lib/sax.js: + (*! http://mths.be/fromcodepoint v0.1.0 by @mathias *) + +moment/moment.js: + (*! moment.js *) + (*! version : 2.30.1 *) + (*! authors : Tim Wood, Iskren Chernev, Moment.js contributors *) + (*! license : MIT *) + (*! momentjs.com *) + +@svgdotjs/svg.js/dist/svg.esm.js: + (*! + * @svgdotjs/svg.js - A lightweight library for manipulating and animating SVG. + * @version 3.2.0 + * https://svgjs.dev/ + * + * @copyright Wout Fierens + * @license MIT + * + * BUILT: Mon Jun 12 2023 10:34:51 GMT+0200 (Central European Summer Time) + *) + +lodash-es/lodash.js: + (** + * @license + * Lodash (Custom Build) + * Build: `lodash modularize exports="es" -o ./` + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + *) + +tslib/tslib.es6.js: + (*! ***************************************************************************** + Copyright (c) Microsoft Corporation. + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + ***************************************************************************** *) +*/ diff --git a/.obsidian/plugins/ob-smm/manifest.json b/.obsidian/plugins/ob-smm/manifest.json new file mode 100644 index 00000000..648889ad --- /dev/null +++ b/.obsidian/plugins/ob-smm/manifest.json @@ -0,0 +1,13 @@ +{ + "id": "ob-smm", + "name": "Ob-SMM", + "version": "1.3.12", + "minAppVersion": "0.15.0", + "description": "a mindmap plugin", + "author": "Ethan Refrain", + "authorUrl": "https://github.com/LXiangEthan", + "fundingUrl": "https://door.ethanliang.top", + "isDesktopOnly": false, + "main": "main.js", + "updateUrl": "https://cdn.jsdelivr.net/gh/LXiangEthan/obsidian-simplemindmap@master/manifest.json" +} diff --git a/.obsidian/plugins/ob-smm/styles.css b/.obsidian/plugins/ob-smm/styles.css new file mode 100644 index 00000000..478fdba8 --- /dev/null +++ b/.obsidian/plugins/ob-smm/styles.css @@ -0,0 +1,2513 @@ +/* + +This CSS file will be included with your plugin, and +available in the app when your plugin is enabled. + +If your plugin does not need CSS, delete this file. + + +/* 其他自定义样式 */ +/*-------------------------*/ +:root { + --primary-color: #ffffff; + --secondary-color: #E8F3FF; + --neutral-color: #F5F7FA; + --dark-color: #333333; + --light-color: #000000; + --transition-duration: 0.3s; +} +.theme-light{ + --dg-lighter-color: #f9f9f9; +} +.theme-dark{ + --dg-lighter-color: #2e2e2e; +} +.view-content{ + padding-bottom: 12px; +} +.smm-loading{ + width: 100%; + height: 100%; + z-index: 10; + position: absolute; +} +.ob-simple-mindMapContainer * { + margin: 0; + padding: 0; +} +.ob-simple-mindMapContainer svg{ + width: 100%; + height: 100%; +} +.smm-window-leaf{ + width: 100% !important; + height: 100% !important; + position: relative; + top: 0px; +} +.ob-simple-mindMapContainer { + width: 100% !important; + height: 100% !important; +} +/*.SMM-DRAW,.LIVE-SMM-DRAW{*/ +/* height: auto;*/ +/* width: 100%;*/ +/* box-shadow: 0 0px 0px rgba(0, 0, 0, 0.1), 0 0px 0px rgba(0, 0, 0, 0.08);*/ +/* backdrop-filter: blur(5px);*/ +/* overflow: hidden;*/ +/*}*/ +/*.embed-link-smm{*/ +/* width: 100% !important;*/ +/* height: 100% !important;*/ +/*}*/ +.internal-embed .file-embed-title { + display: none !important; +} +.internal-embed{ + padding: 0 !important; + background-color: transparent; +} +.internal-embed:hover{ + background-color: transparent !important; +} +/*.internal-embed img{*/ +/* width: 100%;*/ +/* height: 100%;*/ +/* max-height: 720px !important;*/ +/*}*/ +.miniMapContainer,.viewBoxContainer{ + position: absolute; + width: 180px; + height: auto; + max-height: 360px !important; + left: 10px; + top:60px; + animation: fadeIn 0.15s ease-out; +} +.miniMapContainer img{ + width: 100%; + height: 100%; + max-height: 360px !important; +} +.smm-navbar-brand{ + position: absolute; + top:0; + background-color: rgba(0,0,0,0) !important; + width:100%; + display: flex; + align-items: center; + justify-content: center; + +} +/*以上是画布默认设置,没有特殊情况不要修改*/ +/*.action_has {*/ +/* --color: 0 0% 60%;*/ +/* --color-has: 211deg 100% 48%;*/ +/* --sz: 1rem;*/ +/* cursor: pointer;*/ +/* display: flex;*/ +/* align-items: center;*/ +/* justify-content: center;*/ +/* height: calc(var(--sz) * 2.5);*/ +/* width: calc(var(--sz) * 2.5);*/ +/* padding: 0.4rem 0.5rem;*/ +/* !*border-radius: 0.375rem;*!*/ +/* !*border: 0.0625rem solid hsl(var(--color));*!*/ +/* position: absolute;*/ +/* top:0;*/ +/* right: 0;*/ +/* background-color: transparent !important;*/ +/* outline: none;*/ +/* border:none;*/ +/*}*/ + +/*.has_saved:hover {*/ +/* border-color: hsl(var(--color-has));*/ +/*}*/ +/*.has_liked:hover svg,*/ +/*.has_saved:hover svg {*/ +/* color: hsl(var(--color-has));*/ +/*}*/ + +/*.has_liked svg,*/ +/*.has_saved svg {*/ +/* overflow: visible;*/ +/* height: calc(var(--sz) * 1.75);*/ +/* width: calc(var(--sz) * 1.75);*/ +/* --ease: cubic-bezier(0.5, 0, 0.25, 1);*/ +/* --zoom-from: 1.75;*/ +/* --zoom-via: 0.75;*/ +/* --zoom-to: 1;*/ +/* --duration: 1s;*/ +/*}*/ + +/*.has_saved:hover path[data-path="box"] {*/ +/* transition: all 0.3s var(--ease);*/ +/* animation: has-saved var(--duration) var(--ease) forwards;*/ +/* fill: hsl(var(--color-has) / 0.35);*/ +/*}*/ +/*.has_saved:hover path[data-path="line-top"] {*/ +/* animation: has-saved-line-top var(--duration) var(--ease) forwards;*/ +/*}*/ +/*.has_saved:hover path[data-path="line-bottom"] {*/ +/* animation: has-saved-line-bottom var(--duration) var(--ease) forwards,*/ +/* has-saved-line-bottom-2 calc(var(--duration) * 1) var(--ease)*/ +/* calc(var(--duration) * 0.75);*/ +/*}*/ + +/*@keyframes has-saved-line-top {*/ +/* 33.333% {*/ +/* transform: rotate(0deg) translate(1px, 2px) scale(var(--zoom-from));*/ +/* d: path("M 3 5 L 3 8 L 3 8");*/ +/* }*/ +/* 66.666% {*/ +/* transform: rotate(20deg) translate(2px, -2px) scale(var(--zoom-via));*/ +/* }*/ +/* 99.999% {*/ +/* transform: rotate(0deg) translate(0px, 0px) scale(var(--zoom-to));*/ +/* }*/ +/*}*/ +/*@keyframes has-saved-line-bottom {*/ +/* 33.333% {*/ +/* transform: rotate(0deg) translate(1px, 2px) scale(var(--zoom-from));*/ +/* d: path("M 17 20 L 17 13 L 7 13 L 7 20");*/ +/* }*/ +/* 66.666% {*/ +/* transform: rotate(20deg) translate(2px, -2px) scale(var(--zoom-via));*/ +/* }*/ +/* 99.999% {*/ +/* transform: rotate(0deg) translate(0px, 0px) scale(var(--zoom-to));*/ +/* d: path("M 17 21 L 17 21 L 7 21 L 7 21");*/ +/* }*/ +/*}*/ +/*@keyframes has-saved-line-bottom-2 {*/ +/* from {*/ +/* d: path("M 17 21 L 17 21 L 7 21 L 7 21");*/ +/* }*/ +/* to {*/ +/* transform: rotate(0deg) translate(0px, 0px) scale(var(--zoom-to));*/ +/* d: path("M 17 20 L 17 13 L 7 13 L 7 20");*/ +/* fill: white;*/ +/* }*/ +/*}*/ +/*@keyframes has-saved {*/ +/* 33.333% {*/ +/* transform: rotate(0deg) translate(1px, 2px) scale(var(--zoom-from));*/ +/* }*/ +/* 66.666% {*/ +/* transform: rotate(20deg) translate(2px, -2px) scale(var(--zoom-via));*/ +/* }*/ +/* 99.999% {*/ +/* transform: rotate(0deg) translate(0px, 0px) scale(var(--zoom-to));*/ +/* }*/ +/*}*/ +/*以上是外联嵌入跳转链接*/ +/*---------------------------------*/ +/*按钮*/ +/* 按钮组容器 */ +.smm-toolbar { + border-radius: 8px; + border:1px solid var(--dg-lighter-color); + display: flex; + align-items: center; + justify-content: center; + height: 48px; + width:auto; + padding: 0; + border-bottom: 1px solid #e2e8f0; + background-color: var(--background-primary); + margin-top:2px; +} + +/* 按钮组 */ +.smm-button-group { + display: flex; + align-items: center; + margin: 0 8px; +} +/* 分隔线 */ +.smm-divider { + height: 24px; + width: 1px; + background-color: #e2e8f0; + margin: 0 8px; +} +/* 按钮样式 */ +.smm-btn{ + appearance: none !important; + -webkit-appearance: none !important; /* Safari/Chrome */ + -moz-appearance: none !important; /* Firefox */ + border: none !important; + outline: none !important; + box-shadow: none !important; /* 确保没有阴影模拟边框 */ +} + +.smm-btn { + display: flex; + align-items: center; + justify-content: center; + height: 32px; + min-width: 32px; + padding: 0 8px; + margin: 0 2px; + border: none; + background: transparent; + color: #64748b !important; + cursor: pointer; + border-radius: 4px; + transition: background-color 0.2s, color 0.2s; + position: relative; +} +.smm-btn:hover { + background-color: #f1f5f9 !important; + color: #1e40af !important; +} + +.smm-btn.active, +.smm-btn:active { + background-color: #e2e8f0 !important; + color: #1e40af !important; +} + +/* 按钮图标 */ +.smm-btn svg { + width: 18px; + height: 18px; + fill: currentColor; +} + +/* 缩放百分比输入框 */ +.smm-zoom-input { + width: 50px; + height: 24px; + padding: 0 4px; + margin: 0 4px; + border: 1px solid #e2e8f0; + border-radius: 4px; + font-size: 13px; + text-align: center; + color: #334155; +} + +.smm-zoom-input:focus { + outline: none; + border-color: #94a3b8; +} +/*--------------------------------*/ +/*备注输入框*/ +/* 备注容器 */ +.smm-note-container { + border:1px solid #E2E8F0; + z-index:2; + border-radius: 8px; + animation: fadeIn 0.15s ease-out; + position: absolute; + width:80%; + top: 50px; + max-width: 600px; + margin: 0 auto; + background-color: var(--background-primary); + padding: 16px 60px; +} + +/* 备注标题 */ +.smm-note-title { + font-size: 18px; + font-weight: 500; + color: #334155; + margin-bottom: 10px; +} + +/* 备注输入框 */ +.smm-note-input { + width: 100%; + min-height: 120px; + padding: 12px 14px; + border: 1px solid #e2e8f0; + border-radius: 8px; + background-color: var(--background-primary); + font-size: 14px; + line-height: 1.5; + color: #334155; + resize: vertical; + transition: border-color 0.2s, box-shadow 0.2s; + outline: none; +} + +.smm-note-input:focus { + border-color: #94a3b8; + box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.2); +} + +/* 字符计数 */ +.smm-note-counter { + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 8px; + font-size: 12px; + color: #64748b; +} + +/* 按钮组 */ +.smm-note-actions { + display: flex; + justify-content: flex-end; + margin-top: 12px; +} + +/* 按钮样式 */ +.smm-note-btn { + display: inline-flex; + align-items: center; + justify-content: center; + height: 32px; + padding: 0 16px; + margin-left: 8px; + border: none; + border-radius: 4px; + background-color: #f1f5f9; + color: #4b5563; + font-size: 13px; + font-weight: 500; + cursor: pointer; + transition: background-color 0.2s, color 0.2s; +} + +.smm-note-btn:hover { + background-color: #e2e8f0; +} + +.smm-note-btn.primary { + background-color: #0284c7; + color: #ffffff; +} + +.smm-note-btn.primary:hover { + background-color: #0369a1; +} + + + +/*-----------------------------*/ +/*链接*/ + +/* 链接容器 */ +.smm-link-container { + z-index:2; + border:1px solid #E2E8F0; + animation: fadeIn 0.15s ease-out; + position: absolute; + top:50px; + width: 80%; + max-width: 600px; + margin: 0 auto; + background-color: var(--background-primary); + border-radius: 8px; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); + padding: 30px 16px; +} + +/* 链接标题 */ +.smm-link-title { + font-size: 18px; + font-weight: 500; + color: #334155; + margin-bottom: 12px; +} + +/* 链接类型选择 */ +.smm-link-type { + display: flex; + margin-bottom: 12px; +} + +.smm-link-type-btn { + flex: 1; + height: 36px; + border: 1px solid #e2e8f0; + background-color: #ffffff; + color: #4b5563; + font-size: 14px; + cursor: pointer; + transition: background-color 0.2s; +} + +.smm-link-type-btn:first-child { + border-radius: 4px 0 0 4px; +} + +.smm-link-type-btn:last-child { + border-radius: 0 4px 4px 0; +} + +.smm-link-type-btn.active { + background-color: #e0f2fe; + border-color: #0284c7; + color: #0284c7; + font-weight: 500; +} + +/* 链接输入框 */ +.smm-link-input-container { + position: relative; + margin-bottom: 12px; +} + +.smm-link-input { + width: 100%; + height: 40px; + padding: 0 12px; + border: 1px solid #e2e8f0; + border-radius: 4px; + background-color: #ffffff; + font-size: 14px; + color: #334155; + transition: border-color 0.2s, box-shadow 0.2s; + outline: none; + margin-bottom: 3px; +} + +.smm-link-input:focus { + border-color: #94a3b8; + box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.2); +} + +/* 链接图标 */ +.smm-link-icon { + position: absolute; + left: 12px; + top: 50%; + transform: translateY(-50%); + color: #64748b; +} + +/* 带图标的输入框 */ +.smm-link-input-with-icon { + padding-left: 32px; +} + +/* 搜索结果容器 */ +.smm-search-results { + max-height: 200px; + overflow-y: auto; + margin-top: 8px; + border: 1px solid #e2e8f0; + border-radius: 4px; + background-color: var(--background-primary); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); +} + +/* 搜索结果项 */ +.smm-search-item { + display: flex; + align-items: center; + padding: 8px 12px; + border-bottom: 1px solid #e2e8f0; + cursor: pointer; + transition: background-color 0.2s; +} + +.smm-search-item:last-child { + border-bottom: none; +} + +.smm-search-item:hover { + background-color: var(--dg-lighter-color); +} + +.smm-search-item-icon { + margin-right: 10px; + /*color: #0284c7;*/ +} + +.smm-search-item-title { + font-size: 14px; + /*color: #334155;*/ + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.smm-search-item-path { + font-size: 12px; + /*color: #64748b;*/ +} + +/* 按钮组 */ +.smm-link-actions { + display: flex; + justify-content: flex-end; + margin-top: 16px; +} + +/* 按钮样式 */ +.smm-link-btn { + display: inline-flex; + align-items: center; + justify-content: center; + height: 32px; + padding: 0 16px; + margin-left: 8px; + border: none; + border-radius: 4px; + background-color: #f1f5f9; + color: #4b5563; + font-size: 13px; + font-weight: 500; + cursor: pointer; + transition: background-color 0.2s, color 0.2s; +} + +.smm-link-btn:hover { + background-color: #e2e8f0; +} + +.smm-link-btn.primary { + background-color: #0284c7; + color: #ffffff; +} + +.smm-link-btn.primary:hover { + background-color: #0369a1; +} +/*------------------------*/ +/*标签输入*/ + +/* 标签容器 */ +.smm-tags-container { + border:1px solid #E2E8F0; + border-radius: 8px; + z-index:2; + animation: fadeIn 0.15s ease-out; + background-color: var(--background-primary); + position: absolute; + top:50px; + width:80%; + max-width: 600px; + margin: 0 auto; + padding: 60px 16px; +} + +/* 标签标题 */ +.smm-tags-title { + font-size: 18px; + font-weight: 500; + color: #334155; + margin-bottom: 12px; +} + +/* 标签输入框组 */ +.smm-tags-input-group { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-bottom: 12px; +} + +/* 单个标签输入框 */ +.smm-tag-input-wrapper { + position: relative; + width: 100%; + animation: fadeIn 0.3s ease forwards; + margin: 5px; +} + +@keyframes fadeIn { + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } +} + +.smm-tag-input { + width: 100%; + height: 40px; + padding: 0 36px 0 12px; + border: 1px solid #e2e8f0; + border-radius: 4px; + background-color: #ffffff; + font-size: 14px; + color: #334155; + transition: border-color 0.2s, box-shadow 0.2s; + outline: none; +} + +.smm-tag-input:focus { + border-color: #94a3b8; + box-shadow: 0 0 0 3px rgba(148, 163, 184, 0.2); +} + +/* 删除按钮 */ +.smm-tag-delete { + position: absolute; + right: 8px; + top: 50%; + transform: translateY(-50%); + width: 24px; + height: 24px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + background-color: #f1f5f9; + color: #94a3b8; + cursor: pointer; + transition: background-color 0.2s, color 0.2s; + opacity: 0.7; +} + +.smm-tag-delete:hover { + background-color: #e2e8f0; + color: #4b5563; + opacity: 1; +} + +/* 添加按钮 */ +.smm-add-tag-btn { + display: flex; + align-items: center; + justify-content: center; + height: 40px; + padding: 0 16px; + border: 1px solid #e2e8f0; + border-radius: 4px; + background-color: #ffffff; + color: #64748b; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: background-color 0.2s; +} + +.smm-add-tag-btn:hover { + background-color: #f8fafc; +} + +.smm-add-tag-btn svg { + margin-right: 8px; + fill: #64748b; +} + +/* 标签列表 */ +.smm-tags-list { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 16px; +} + +.smm-tag-item { + display: flex; + align-items: center; + padding: 6px 12px; + background-color: #e0f2fe; + color: #0284c7; + border-radius: 4px; + font-size: 14px; + animation: fadeIn 0.3s ease forwards; +} + +.smm-tag-remove { + margin-left: 8px; + cursor: pointer; + transition: color 0.2s; +} + +.smm-tag-remove:hover { + color: #0369a1; +} + +/* 按钮通用样式 */ +.smm-control-btn { + display: inline-flex; + align-items: center; + justify-content: center; + height: 36px; + padding: 0 16px; + border: none; + border-radius: 6px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); + margin-right: 8px; + color: #ffffff; +} + +.smm-control-btn:last-child { + margin-right: 0; +} + +.smm-control-btn:hover { + transform: translateY(-1px); + box-shadow: 0 24px 48px rgba(0, 0, 0, 0.08); +} + +.smm-control-btn:active { + transform: translateY(0); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +.smm-control-btn svg { + margin-right: 8px; + transition: transform 0.2s ease; +} + +.smm-control-btn:hover svg { + transform: scale(1.1); +} + +/* 添加标签按钮样式 */ +.smm-add-tag-btn { + background-color: #0284c7; +} + +/* 退出按钮样式 */ +.smm-exit-btn { + background-color: #e11d48; +} + +/* 保存按钮样式 */ +.smm-save-btn { + background-color: #10b981; +} +#smm-tags-buttons{ + width: 100%; + display: flex; + justify-content: space-around; + margin: 5px; +} +/*------------------------*/ +/*搜索框*/ + +.smm-search-container { + position: absolute; + top:50px; + margin:0 auto; + z-index:2; + appearance: none !important; + -webkit-appearance: none !important; /* Safari/Chrome */ + -moz-appearance: none !important; /* Firefox */ + border: none !important; + outline: none !important; + box-shadow: none !important; /* 确保没有阴影模拟边框 */ + animation: fadeIn 0.15s ease-out; +} + +.smm-search-box { + position: relative; + width: 100%; + border-radius: 25px; + background-color: var(--light-color); + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + transition: box-shadow var(--transition-duration); +} + +.smm-search-box:hover { + box-shadow: 0 6px 25px rgba(22, 93, 255, 0.15); +} + +.smm-search-input { + width: 100%; + height: 100%; + border: none; + outline: none; + padding: 0 55px 0 20px; + font-size: 16px; + color: var(--dark-color); + background-color: transparent; + border-radius: 25px; +} + +.smm-search-input::placeholder { + color: #999999; +} + +.smm-search-btn, +.smm-clear-btn { + position: absolute; + top: 50%; + transform: translateY(-50%); + width: 24px; + height: 24px; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; + transition: all var(--transition-duration); + border: none; + background-color: transparent; +} + +.smm-search-btn { + right: 10px; + background-color: var(--primary-color); + color: var(--light-color); +} +.smm-search-btn svg{ + + color: var(--light-color); +} + +.smm-search-btn:hover { + background-color: #0E42D2; + transform: translateY(-50%) scale(1.05); +} + +.smm-clear-btn { + right: 50px; + background-color: var(--neutral-color); + color: #999999; + opacity: 0; + visibility: hidden; + transform: translateY(-50%) scale(0.8); +} + +.smm-clear-btn.active { + opacity: 1; + visibility: visible; + transform: translateY(-50%) scale(1); +} + +.smm-clear-btn:hover { + background-color: var(--secondary-color); + color: var(--primary-color); +} + +.smm-search-icon, +.smm-clear-icon { + font-size: 18px; +} + +/* Animation */ +@keyframes fadeIn { + from { opacity: 0; transform: translateY(-50%) scale(0.8); } + to { opacity: 1; transform: translateY(-50%) scale(1); } +} + +.smm-clear-btn.active { + animation: fadeIn 0.3s ease-out forwards; +} + +/*-------------------------------------*/ +/*公式输入*/ +/* 公式编辑器容器 */ +.smm-formula-editor { + border:1px solid #E2E8F0; + z-index:2; + animation: fadeIn 0.15s ease-out; + position: absolute; + top: 50px; + width: 80%; + padding: 18px; + max-width: 600px; + margin: 0 auto; + background-color: var(--background-primary); + border-radius: 8px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + overflow: hidden; + transition: all 0.3s ease; +} + +.smm-formula-editor:hover { + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12); +} + +/* 标题栏 */ +.smm-formula-header { + padding: 12px 16px; + font-size: 16px; + font-weight: 500; + color: #334155; +} + +/* 公式输入区域 */ +.smm-formula-input { + width: 100%; + min-height: 120px; + padding: 12px 16px; + border: 1px #94A3B8 solid; + font-size: 14px; + color: #334155; + font-family: Consolas, Monaco, 'Andale Mono', monospace; + resize: vertical; + outline: none; + transition: all 0.2s ease; +} + +.smm-formula-input:focus { + box-shadow: inset 0 0 0 2px #94a3b8; +} + +/* 按钮区域 */ +.smm-formula-actions { + display: flex; + justify-content: flex-end; + gap: 8px; + padding: 12px 16px; +} + +/* 控制按钮 */ +.smm-control-btn { + display: flex; + align-items: center; + justify-content: center; + height: 36px; + padding: 0 16px; + border: none; + border-radius: 4px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; +} + +.smm-control-btn:hover { + transform: translateY(-1px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); +} + +.smm-control-btn:active { + transform: translateY(0); +} + +.smm-control-btn svg { + margin-right: 6px; + transition: transform 0.2s ease; +} + +.smm-control-btn:hover svg { + transform: scale(1.1); +} + +/* 插入按钮 */ +.smm-insert-btn { + background-color: #0284c7; + color: #ffffff; +} + +/* 取消按钮 */ +.smm-cancel-btn { + background-color: #f1f5f9; + color: #64748b; + border: 1px solid #e2e8f0; +} + +.smm-cancel-btn:hover { + background-color: #e2e8f0; + color: #475569; +} + +/*-----------------------*/ +/*缩放框*/ + +#smm-SL{ + border-radius: 8px; + border:1px solid var(--dg-lighter-color); + position: absolute; + bottom: 10px; + left:10px; + background-color: var(--background-primary); + height: 48px; + width:auto; + padding-left: 2px; + padding-right: 2px; +} +.smm-zoom-input{ + outline: none; +} +/*-------------------------------------------------------*/ + +/*侧边栏控制面板*/ + + +/* 侧边栏容器 */ + +#smm-panel-container{ + max-width: 815px; + border-radius: 8px; + border:1px solid var(--dg-lighter-color); + z-index:1; + position: absolute; + top: 75px; + right: 5px; + width: 405px; + height:85%; + background-color: var(--background-primary); + display: flex; + justify-content: start; + animation: fadeIn 0.15s ease-out; +} +/*修改控制栏宽度*/ +.smm-resize-handle { + left: 0; + top: 0; + bottom: 0; + width: 3px; + background-color: var(--dg-lighter-color); + cursor: ew-resize; +} + +.smm-resize-handle:hover { + background-color: #93b3fd; +} +.smm-sidebar { + border-radius: 8px; + width: 64px; + background-color: var(--background-primary); + display: flex; + flex-direction: column; + align-items: center; + padding: 12px 0; + box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05); + z-index: 10; +} + +/* 侧边栏选项卡 */ +.smm-tab { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + width: 48px; + height: 60px; + margin: 4px 0; + border-radius: 8px; + background-color: transparent; + border: none; + cursor: pointer; + transition: background-color 0.2s, color 0.2s; + color: #64748b; +} + +.smm-tab:hover { + background-color: #f1f5f9; +} + +.smm-tab.active { + background-color: #e0f2fe; + color: #0284c7; +} + +/* 选项卡图标 */ +.smm-tab svg { + width: 20px; + height: 20px; + fill: currentColor; + margin-bottom: 4px; +} + +/* 选项卡文本 */ +.smm-tab-text { + font-size: 10px; + font-weight: 500; + text-transform: capitalize; +} + +/* 主内容区域 */ +.smm-main-content { + width:calc(100% - 48px); + height:100%; + flex: 1; + padding: 5px; + overflow: scroll; +} +.smm-tab{ + appearance: none !important; + -webkit-appearance: none !important; /* Safari/Chrome */ + -moz-appearance: none !important; /* Firefox */ + border: none !important; + outline: none !important; + box-shadow: none !important; /* 确保没有阴影模拟边框 */ +} +/*------------------------------*/ +/*主题内容*/ + +/* 主题选择器容器 */ +.smm-themes-container { + width:100%; + background-color: var(--background-primary); + border-radius: 8px; + transition: all 0.3s ease; +} + +/* 选择框样式 */ +.smm-select { + font-size: 14px; + border: 1px solid #e2e8f0; + border-radius: 4px; + appearance: none; + background-color: var(--background-primary); + cursor: pointer; + transition: all 0.2s ease; + position: absolute; + top:5px; + right:10px; + z-index: 2; +} + +.smm-select:focus { + outline: none; + border-color: #0284c7; + box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.1); +} + +/* 主题分类标题 */ +.smm-category-title { + padding: 12px 16px; + font-size: 16px; + font-weight: 500; + border-bottom: 1px solid #e2e8f0; +} + +/* 主题网格 */ +.smm-themes-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + gap: 16px; + padding: 16px; +} + +/* 主题卡片 */ +.smm-theme-card { + background-color: #ffffff; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + overflow: hidden; + transition: all 0.2s ease; + cursor: pointer; +} + +.smm-theme-card:hover { + transform: translateY(-2px); + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); +} + +/* 主题图片 */ +.smm-theme-image { + width: 100%; + height: 160px; + background-color: #e2e8f0; + background-position: center; + transition: transform 0.3s ease; + background-size:100% 100%; +} + +.smm-theme-card:hover.smm-theme-image { + transform: scale(1.03); +} + +/* 主题描述 */ +.smm-theme-info { + background-color: var(--background-primary); + padding: 12px; +} + +.smm-theme-title { + font-size: 14px; + font-weight: 500; + margin-bottom: 4px; +} + +.smm-theme-desc { + font-size: 12px; +} + +/* 激活状态 */ +.smm-theme-card.active { + border: 2px solid #0284c7; + box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.1); +} + +/* 隐藏不需要的主题分类 */ +.hidden { + display: none; +} +/*------------------------------------------*/ +/*结构*/ + +/* 结构图片容器 */ +.smm-structure { + max-width: 600px; + margin: 0 auto; + background-color: #ffffff; + border-radius: 8px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + overflow: hidden; + transition: all 0.3s ease; +} + +/* 标题栏 */ +.smm-structure-header { + padding: 12px 16px; + background-color: var(--background-primary); + border-bottom: 1px solid #e2e8f0; + font-size: 16px; + font-weight: 500; +} + +/* 结构图片网格 */ +.smm-structure-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + gap: 16px; + padding: 16px; +} + +/* 结构图片卡片 */ +.smm-structure-card { + background-color: #ffffff; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + overflow: hidden; + transition: all 0.2s ease; + cursor: pointer; +} + +.smm-structure-card:hover { + transform: translateY(-2px); + box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); +} + +/* 结构图片 */ +.smm-structure-image { + width: 100%; + height: 160px; + background-color: #e2e8f0; + background-size: cover; + background-position: center; + transition: transform 0.3s ease; +} + +.smm-structure-card:hover .smm-structure-image { + transform: scale(1.03); +} + +/* 结构信息 */ +.smm-structure-info { + padding: 12px; + background-color: var(--background-primary); +} + +.smm-structure-title { + font-size: 14px; + font-weight: 500; + margin-bottom: 4px; +} + +.smm-structure-desc { + font-size: 12px; +} + +/* 激活状态 */ +.smm-structure-card.active { + border: 2px solid #0284c7; + box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.1); +} +/*---------------------*/ +/*节点样式*/ + +.smm-nodestyle-container { + width: 100%; + padding: 16px; + border-radius: 8px; + font-family: 'Inter', sans-serif; + background-color: var(--background-primary); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); + font-size: 14px; + transition: all 0.2s ease; +} + +.smm-nodestyle-container:hover { + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08); +} + +.smm-nodestyle-section { + margin-bottom: 16px; + padding-bottom: 16px; + border-bottom: 1px solid #f0f0f0; +} + +.smm-nodestyle-section:last-child { + border-bottom: none; + margin-bottom: 0; + padding-bottom: 0; +} + +.smm-nodestyle-title { + font-size: 16px; + font-weight: 600; + margin: 0 0 8px 0; + padding: 2px 0; + letter-spacing: -0.02em; +} + +.smm-nodestyle-subsection { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; + margin-bottom: 12px; +} + +.smm-nodestyle-field { + display: flex; + flex-direction: column; +} + +.smm-nodestyle-label { + font-size: 12px; + margin-bottom: 4px; + font-weight: 500; + text-transform: uppercase; + letter-spacing: 0.02em; +} + +.smm-nodestyle-select, +.smm-nodestyle-input, +.smm-nodestyle-button { + height: 32px; + border: 1px solid #e5e7eb; + border-radius: 4px; + font-size: 14px; + padding: 0 8px; + box-sizing: border-box; + transition: all 0.15s ease; +} + +.smm-nodestyle-select:focus, +.smm-nodestyle-input:focus { + outline: none; + border-color: #3b82f6; + box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.2); +} + +.smm-nodestyle-select { + min-width: 80px; + appearance: none; + padding-right: 28px; +} + +.smm-nodestyle-input[type="color"] { + width: 32px; + padding: 2px; + cursor: pointer; +} + +.smm-nodestyle-input[type="range"] { + height: 6px; + padding: 0; + background: #e2e8f0; + border-radius: 3px; +} + +.smm-nodestyle-input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 16px; + height: 16px; + background: #3b82f6; + border-radius: 50%; + cursor: pointer; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + transition: all 0.15s ease; +} + +.smm-nodestyle-input[type="range"]::-webkit-slider-thumb:hover { + background: #2563eb; + transform: scale(1.1); +} + +.smm-nodestyle-button { + width: 32px; + text-align: center; + cursor: pointer; + background-color: #f1f5f9; + padding: 0; + color: #334155; +} + +.smm-nodestyle-button:hover { + background-color: #e2e8f0; +} + +.smm-nodestyle-button:active { + background-color: #cbd5e1; +} + +.smm-nodestyle-stylebuttons { + display: flex; + gap: 6px; +} + +.smm-nodestyle-checkbox { + margin-top: 6px; + display: flex; + align-items: center; +} + +.smm-nodestyle-checkbox input { + margin-right: 6px; +} + +/* 特殊样式 */ +.smm-nodestyle-bold { + font-weight: 600; +} + +.smm-nodestyle-italic { + font-style: italic; +} + +.smm-nodestyle-underline { + text-decoration: underline; +} + +/* 单行布局 */ +.smm-nodestyle-singleline { + grid-template-columns: repeat(4, 1fr); +} +/*--------------------------------------*/ +/*整体样式*/ +.smm-ustyle-container { + width: 360px; + padding: 15px; + border: 1px solid #ddd; + border-radius: 8px; + font-family: Arial, sans-serif; + background-color: #fff; + box-shadow: 0 2px 8px rgba(0,0,0,0.1); +} + +.smm-ustyle-section { + margin-bottom: 15px; + padding-bottom: 15px; + border-bottom: 1px solid #eee; +} + +.smm-ustyle-section:last-child { + border-bottom: none; + margin-bottom: 0; +} + +.smm-ustyle-section-title { + font-size: 16px; + font-weight: bold; + margin: 0 0 10px 0; +} + +.smm-ustyle-sub-section { + margin-bottom: 10px; +} + +.smm-ustyle-field-group { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin-bottom: 10px; +} + +.smm-ustyle-field { + flex: 1; + min-width: 120px; +} + +.smm-ustyle-label { + display: block; + font-size: 12px; + margin-bottom: 4px; +} + +.smm-ustyle-input, +.smm-ustyle-select, +.smm-ustyle-color-input { + width: 100%; + height: 32px; + border: 1px solid #ccc; + border-radius: 4px; + padding: 0 8px; + font-size: 13px; + box-sizing: border-box; +} + +.smm-ustyle-color-input { + padding: 2px; + height: 32px; + width: 32px; +} + +.smm-ustyle-range { + width: 100%; + height: 24px; + -webkit-appearance: none; + appearance: none; + background: #f0f0f0; + border-radius: 4px; +} + +.smm-ustyle-range::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 14px; + height: 14px; + background: #1e3556; + border-radius: 50%; + cursor: pointer; +} + +.smm-ustyle-checkbox { + margin-right: 5px; +} + +.smm-ustyle-tab-list { + list-style: none; + padding: 0; + margin: 0 0 10px 0; + display: flex; + border-bottom: 1px solid #ddd; +} + +.smm-ustyle-tab-item { + padding: 8px 12px; + cursor: pointer; + font-size: 13px; + color: #666; + border-bottom: 2px solid transparent; +} + +.smm-ustyle-tab-item.active { + color: #007bff; + border-bottom-color: #007bff; + font-weight: bold; +} + +.smm-ustyle-color-palette { + display: grid; + grid-template-columns: repeat(7, 1fr); + gap: 6px; + margin-bottom: 10px; +} + +.smm-ustyle-color-square { + width: 100%; + height: 28px; + border-radius: 4px; + cursor: pointer; + border: 1px solid #eee; + transition: transform 0.2s, box-shadow 0.2s; +} + +.smm-ustyle-color-square:hover { + transform: scale(1.1); + box-shadow: 0 0 5px rgba(0,0,0,0.2); +} + +.smm-ustyle-rainbow-line { + height: 16px; + background: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet); + border-radius: 4px; +} +#smm-close-rainbow{ + margin-top:10px; +} +.smm-ustyle-field-checkbox { + display: flex; + align-items: center; + margin-bottom: 10px; +} + +/* 滑块数值显示 */ +.smm-ustyle-range-value { + margin-left: 8px; + font-size: 13px; + color: #333; + min-width: 30px; + text-align: right; +} + +/* 按钮悬停效果 */ +.smm-ustyle-select:hover, +.smm-ustyle-color-input:hover, +.smm-ustyle-range:hover { + border-color: #999; +} + +/* 复选框样式 */ +.smm-ustyle-checkbox { + appearance: none; + width: 16px; + height: 16px; + border: 1px solid #ccc; + border-radius: 3px; + position: relative; + cursor: pointer; +} + +.smm-ustyle-checkbox:checked::after { + content: '✓'; + position: absolute; + top: -1px; + left: 3px; + color: #1e3556; + font-weight: bold; +} + + +/*----------------------------------*/ +/* 图片上传 */ +.smm-image-upload { + max-width: 400px; + margin: 0 auto; + background-color: #ffffff; + border-radius: 8px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + overflow: hidden; +} + +/* 头部 */ +.smm-image-upload-header { + padding: 12px 16px; + background-color: var(--background-primary); + border-bottom: 1px solid #e2e8f0; + font-size: 16px; + font-weight: 500; +} + +/* 上传区域 */ +.smm-upload-area { + padding: 24px 16px; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; +} + +/* 拖放区域 */ +.smm-dropzone { + width: 100%; + height: 150px; + border: 2px dashed #cbd5e1; + border-radius: 8px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + cursor: pointer; + transition: all 0.3s ease; + margin-bottom: 16px; +} + +.smm-dropzone:hover { + border-color: #0284c7; + background-color: #f0f9ff; +} + +.smm-dropzone.active { + border-color: #0284c7; + background-color: #e0f2fe; +} + +.smm-dropzone-icon { + font-size: 24px; + color: #94a3b8; + margin-bottom: 8px; +} + +.smm-dropzone-text { + font-size: 14px; + color: #64748b; +} + +/* 粘贴按钮 */ +.smm-paste-button { + width: 100%; + padding: 12px 16px; + margin-bottom: 16px; + background-color: #0284c7; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s ease; + font-size: 14px; + position: relative; + overflow: hidden; +} + +.smm-paste-button:hover { + background-color: #0369a1; +} + +.smm-paste-button.active { + background-color: #0ea5e9; +} + +.smm-paste-button .countdown { + position: absolute; + top: 0; + left: 0; + height: 100%; + background-color: rgba(255, 255, 255, 0.2); + transition: width 0.1s linear; +} + +/* URL 输入 */ +.smm-url-input { + width: 100%; + display: flex; + gap: 8px; + margin-bottom: 16px; +} + +.smm-url-input-field { + flex: 1; + padding: 8px 12px; + border: 1px solid #e2e8f0; + border-radius: 4px; + font-size: 14px; + color: #334155; +} + +.smm-url-input-button { + padding: 8px 16px; + background-color: #0284c7; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s ease; + font-size: 14px; +} + +.smm-url-input-button:hover { + background-color: #0369a1; +} + +/* 预览区域 */ +.smm-preview-container { + width: 100%; + min-height: 150px; + border-radius: 8px; + background-color: #e2e8f0; + margin-bottom: 16px; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + position: relative; +} + +.smm-preview-image { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} + +.smm-preview-placeholder { + font-size: 14px; + color: #64748b; +} + +/* DataURL 显示 */ +.smm-dataurl-container { + width: 100%; + margin-bottom: 16px; +} + +.smm-dataurl-label { + font-size: 14px; + color: #334155; + margin-bottom: 4px; +} + +.smm-dataurl-field { + width: 100%; + padding: 8px 12px; + border: 1px solid #e2e8f0; + border-radius: 4px; + background-color: #f8fafc; + font-size: 12px; + color: #64748b; + overflow: hidden; + resize: none; + height: 60px; + cursor: not-allowed; +} + +/* 操作按钮 */ +.smm-actions { + width: 100%; + display: flex; + gap: 8px; +} + +.smm-action-button { + flex: 1; + padding: 8px 16px; + background-color: #0284c7; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.2s ease; + font-size: 14px; +} + +.smm-action-button:hover { + background-color: #0369a1; +} + +.smm-action-button:disabled { + background-color: #94a3b8; + cursor: not-allowed; +} +/*--------------------------------------*/ +/*图标*/ + +/* 自定义类 */ +.smm-imgtag-container { + background-color: var(--background-primary); + border-radius: 8px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); + max-width: 800px; + width: 100%; + transition: all 0.3s ease; +} + +.smm-imgtag-container:hover { + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1); +} + +.smm-imgtag-category { + margin-bottom: 24px; +} + +.smm-imgtag-category-title { + padding: 12px 16px; + font-size: 16px; + font-weight: 500; + border-bottom: 1px solid #e5e7eb; +} + +.smm-imgtag-grid { + display: grid; + padding:24px 16px; + grid-template-columns: repeat(auto-fill, minmax(10px, 1fr)); + gap: 16px; +} + +.smm-imgtag-icon-card { + display: flex; + flex-direction: column; + align-items: center; + padding: 12px; + border-radius: 6px; + transition: all 0.2s ease; + cursor: pointer; +} + +.smm-imgtag-icon-card:hover { + background-color: #f9fafb; + transform: translateY(-2px); +} + +.smm-imgtag-icon { + width: 16px; + height: 16px; + margin-bottom: 8px; +} + +.smm-imgtag-icon-name { + font-size: 12px; + text-align: center; +} + +/*-----------------------*/ +/*右键菜单样式*/ + +/* 右键菜单样式 */ +.smm-list { + position: absolute; + top:50px; + right: 0; + background-color: var(--background-primary); + border-radius: 8px; + box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1); + list-style: none; + margin: 0; + padding: 6px 0; + width: 180px; + z-index: 1000; + transform-origin: top left; + animation: fadeIn 0.15s ease-out; + border: 1px solid #e5e7eb; +} + +@keyframes fadeIn { + from { opacity: 0; transform: scale(0.95); } + to { opacity: 1; transform: scale(1); } +} + +.smm-list-item { + display: flex; + align-items: center; + padding: 8px 16px; + cursor: pointer; + transition: all 0.2s ease; + font-size: 14px; + position: relative; +} + +.smm-list-item:hover { + background-color: var(--dg-lighter-color); +} + +.smm-list-item-icon { + width: 18px; + height: 18px; + margin-right: 10px; + flex-shrink: 0; + color: #93a8ed; +} + +.smm-list-item:hover .smm-list-item-icon { + color: #93a8ed; +} + +.smm-list-divider { + height: 1px; + background-color: var(--background-primary); + margin: 6px 0; +} + +/* 示例内容样式 */ +.smm-table-content { + background-color: white; + padding: 40px; + border-radius: 12px; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05); + text-align: center; +} + +.smm-table-title { + font-size: 24px; + font-weight: 500; + margin-bottom: 16px; + color: #1f2937; +} + +.smm-table-text { + color: #6b7280; + margin-bottom: 24px; +} + +.smm-table-hint { + font-size: 14px; + color: #9ca3af; + margin-top: 24px; +} +/*-------------------------------*/ +/*大纲*/ + +.smm-dg-outline-container { + max-width: 800px; + background-color: var(--background-primary); + box-shadow: 0 2px 8px rgba(0,0,0,0.1); + border-radius: 6px; + padding: 20px; + overflow-x: scroll; +} +.smm-dg-outline-node { + min-width:200px; + max-width: 400px; + padding: 8px 10px; + margin: 4px 0; + border-radius: 4px; + cursor: pointer; + position: relative; + transition: background 0.2s; +} +.smm-dg-outline-node:hover { + background: var(--dg-lighter-color); +} +.smm-dg-outline-node.smm-dg-dragging { + opacity: 0.5; + background: var(--dg-lighter-color); +} +.smm-dg-outline-node.smm-dg-drop-target { + background-color: var(--background-primary); + box-shadow: 0 0 0 1px #1890ff; +} +.smm-dg-drop-indicator { + position: absolute; + left: 0; + right: 0; + height: 2px; + background: #1890ff; + display: none; + z-index: 10; +} +.smm-dg-drop-indicator.top { + top: 0; +} +.smm-dg-drop-indicator.bottom { + bottom: 0; +} +.smm-dg-drop-indicator.inside { + height: auto; + top: 0; + bottom: 0; + background: transparent; + border: 2px dashed #1890ff; + border-radius: 4px; + z-index: 1; +} +.smm-dg-node-content { + display: block; + outline: none; +} +.smm-dg-node-edit { + width: 100%; + padding: 4px 8px; + font-size: 14px; + border: 1px solid #1890ff; + border-radius: 4px; + outline: none; +} + +.smm-dg-node-level-0 { margin-left: 0; font-weight: bold; } +.smm-dg-node-level-1 { margin-left: 24px; } +.smm-dg-node-level-2 { margin-left: 48px; } +.smm-dg-node-level-3 { margin-left: 72px; } +.smm-dg-node-level-4 { margin-left: 96px; } +.smm-dg-node-level-5 { margin-left: 120px; } +.smm-dg-node-level-6 { margin-left: 144px; } +.smm-dg-node-level-7 { margin-left: 168px; } +.smm-dg-node-level-8 { margin-left: 192px; } +.smm-dg-node-level-9 { margin-left: 216px; } +.smm-dg-node-level-10 { margin-left: 240px; } +.smm-dg-node-level-11 { margin-left: 264px; } +.smm-dg-node-level-12 { margin-left: 288px; } +.smm-dg-node-level-13 { margin-left: 312px; } +.smm-dg-node-level-14 { margin-left: 336px; } +.smm-dg-node-level-15 { margin-left: 360px; } +.smm-dg-node-level-16 { margin-left: 384px; } +.smm-dg-node-level-17 { margin-left: 408px; } +.smm-dg-node-level-18 { margin-left: 432px; } +.smm-dg-node-level-19 { margin-left: 456px; } +.smm-dg-node-level-20 { margin-left: 480px; } +/* Node action buttons */ +.smm-dg-node-actions { + display: none; + position: absolute; + right: 10px; + top: 50%; + transform: translateY(-50%); +} +.smm-dg-outline-node:hover .smm-dg-node-actions { + display: flex; +} +.smm-dg-node-btn { + width: 24px; + height: 24px; + border-radius: 50%; + background: #f0f0f0; + border: none; + cursor: pointer; + margin-left: 4px; + display: flex; + align-items: center; + justify-content: center; + font-size: 14px; +} +.smm-dg-node-btn:hover { + background: #e0e0e0; +} +.smm-dg-node-btn.add { + color: #52c41a; +} +.smm-dg-node-btn.delete { + color: #f5222d; +} +/* 折叠/展开按钮 */ +.smm-dg-collapse-btn { + display: inline-flex; + align-items: center; + justify-content: center; + width: 16px; + height: 16px; + border-radius: 2px; + margin-right: 6px; + background: transparent; + cursor: pointer; + font-size: 12px; + color: #555; + transition: transform 0.2s; + vertical-align: middle; +} +.smm-dg-collapse-btn:hover { + background: #e0e0e0; +} +.smm-dg-collapse-btn.collapsed { + transform: rotate(-90deg); +} +/* 节点内容布局 */ +.smm-dg-node-wrapper { + display: flex; + align-items: center; +} +.smm-dg-placeholder { + width: 16px; + margin-right: 6px; + display: inline-block; +} +/*transform: matrix(1, 0, 0, 1, 823.6, 211.5) !important;*/ +/*-----------------------*/ +/*右键菜单*/ + + + +/* 右键菜单样式 */ +.smm--right-menu-context { + max-height: 300px; + overflow: scroll; + position: absolute; + z-index: 10000; + width: 200px; + background-color: var(--background-primary); + border-radius: 0.5rem; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + opacity: 0; + transform: scale(0.9); + transform-origin: top left; + transition: opacity 0.1s ease, transform 0.1s ease; + pointer-events: none; +} + +.smm--right-menu-context.visible { + opacity: 1; + transform: scale(1); + pointer-events: all; +} + +.smm--right-menu-context-node { + position: absolute; + z-index: 10000; + max-height: 300px; + overflow: scroll; + width: 200px; + background-color: var(--background-primary); + border-radius: 0.5rem; + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); + opacity: 0; + transform: scale(0.9); + transform-origin: top left; + transition: opacity 0.1s ease, transform 0.1s ease; + pointer-events: none; +} + +.smm--right-menu-context-node.visible { + opacity: 1; + transform: scale(1); + pointer-events: all; +} + +.smm--right-menu-item { + padding: 0.75rem 1rem; + display: flex; + align-items: center; + cursor: pointer; + transition: background-color 0.15s ease; + gap: 0.75rem; + font-size: 0.9rem; + border-bottom: 1px solid var(--background-primary); +} + +.smm--right-menu-item:last-child { + border-bottom: none; +} + +.smm--right-menu-item:hover { + background-color: var(--dg-lighter-color); +} + +.smm--right-menu-item i { + width: 1.25rem; + text-align: center; + color: #64748b; +} + +.smm--right-menu-divider { + height: 1px; + background-color: #f1f5f9; + margin: 0.25rem 0; +} + +/* 动画效果 */ +@keyframes smm--right-menu-fadeIn { + from { opacity: 0; transform: scale(0.95); } + to { opacity: 1; transform: scale(1); } +} + +.smm--right-menu-fade-in { + animation: smm--right-menu-fadeIn 0.15s ease forwards; +} +/*-----------------------------------------*/ +/*富文本编辑工具栏*/ + +.smm-float-button-group { + padding: 10px; + position: absolute; + z-index: 999; + display: flex; + background-color: var(--background-primary); + border-radius: 8px; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); + transform: translateY(20px); + opacity: 0; + visibility: hidden; + transition: all 0.3s ease; +} + +.smm-float-button-group.active { + transform: translateY(0); + opacity: 1; + visibility: visible; +} + +.smm-float-btn{ + appearance: none !important; + -webkit-appearance: none !important; /* Safari/Chrome */ + -moz-appearance: none !important; /* Firefox */ + border: none !important; + outline: none !important; + box-shadow: none !important; /* 确保没有阴影模拟边框 */ + display: flex; + align-items: center; + justify-content: center; + gap: 6px; + /*padding: 12px 16px;*/ + border: none; + cursor: pointer; + font-size: 14px; + transition: all 0.3s ease; + white-space: nowrap; + background-color: white; + color: #333; +} +.smm-float-btn:not(:last-child) { + border-right: 1px solid #e5e7eb; +} + +.smm-float-btn:hover { + background-color: #f3f4f6; +} + +.smm-float-btn.primary { + background-color: #3B82F6; + color: white; +} + +.smm-float-btn.primary:hover { + background-color: #2563EB; +} + +.smm-float-btn.secondary { + background-color: #10B981; + color: white; +} + +.smm-float-btn.secondary:hover { + background-color: #059669; +} + +.smm-float-btn.accent { + background-color: #8B5CF6; + color: white; +} + +.smm-float-btn.accent:hover { + background-color: #7C3AED; +} + +/* 下拉菜单样式 */ +.smm-float-dropdown { + position: relative; +} + +.smm-float-dropdown-menu { + position: absolute; + right: 0; + /*bottom: calc(100% + 8px);*/ + background-color: var(--background-primary); + border-radius: 8px; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1); + min-width: 180px; + opacity: 0; + visibility: hidden; + transform: translateY(10px); + transition: all 0.3s ease; + max-height: 360px; + overflow: scroll; +} + +.smm-float-dropdown-menu.active { + z-index: 99999; + opacity: 1; + visibility: visible; + transform: translateY(0); +} + +.smm-float-dropdown-item { + z-index: 99999; + padding: 10px 16px; + text-decoration: none; + display: block; + font-size: 14px; + transition: background-color 0.2s ease; +} + +.smm-float-dropdown-item:hover { + background-color: var(--dg-lighter-color) +} + +/* 颜色选择器样式 */ +.smm-float-color-picker { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 40px; + height: 40px; + border: none; + background-color: transparent; + cursor: pointer; + margin-left: 4px; +} + +.smm-float-color-picker::-webkit-color-swatch-wrapper { + padding: 0; +} + +.smm-float-color-picker::-webkit-color-swatch { + border-radius: 50%; + border: 2px solid #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.smm-float-color-picker::-moz-color-swatch { + border-radius: 50%; + border: 2px solid #fff; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +/* 内容区域样式 */ +.smm-float-demo-container { + max-width: 1200px; + margin: 0 auto; + padding: 48px 24px; +} + +.smm-float-title { + font-size: 28px; + font-weight: 700; + color: #1f2937; + margin-bottom: 16px; +} + +.smm-float-description { + font-size: 16px; + color: #4b5563; + margin-bottom: 48px; + max-width: 800px; +} + +.smm-float-preview-area { + background-color: white; + border-radius: 12px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); + padding: 48px; + min-height: 400px; + display: flex; + align-items: center; + justify-content: center; + position: relative; +} + +.smm-float-preview-text { + color: #9ca3af; + font-size: 18px; +} + +/* 主按钮样式 */ +.smm-float-main-btn { + width: 56px; + height: 56px; + background-color: #3B82F6; + color: white; + border-radius: 50%; + border: none; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + font-size: 20px; + transition: all 0.3s ease; + margin-top: 12px; +} + +.smm-float-main-btn:hover { + background-color: #2563EB; + transform: scale(1.05); + box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2); +} + +/* 响应式设计 */ +@media (max-width: 640px) { + .smm-float-demo-container { + padding: 32px 16px; + } + + .smm-float-title { + font-size: 24px; + } + + .smm-float-description { + font-size: 14px; + } + + .smm-float-preview-area { + padding: 32px 16px; + min-height: 300px; + } + + .smm-float-container { + bottom: 16px; + right: 16px; + } + + .smm-float-main-btn { + width: 48px; + height: 48px; + font-size: 18px; + } + + .smm-float-button-group { + border-radius: 24px; + } + + .smm-float-btn { + padding: 8px 10px; + font-size: 12px; + } + + .smm-float-dropdown-menu { + min-width: 160px; + } + + .smm-float-dropdown-item { + padding: 8px 12px; + font-size: 13px; + } +} diff --git a/.obsidian/plugins/rss-reader/data.json b/.obsidian/plugins/rss-reader/data.json index ca10ce79..9c4dcef8 100644 --- a/.obsidian/plugins/rss-reader/data.json +++ b/.obsidian/plugins/rss-reader/data.json @@ -2027,446 +2027,6 @@ "image": null, "description": "People's Daily Online", "items": [ - { - "title": "瞎扯 · 如何正确地吐槽", - "description": "
    \"头图\"/
    \n\n
    \n
    @小队长 :你这话说的,就算全世界国家都提倡吃屎健康,老子也不会吃。
    \n
    \n\n
    \n
    @定序王子 :很明显的造谣,编都不会编,非常低级的那种。 8 亿只是什么概念? 2023 年 ,广东常住人口达 1.27 亿人,算下来平均一人一年只吃 6 只鸡。 改成 300 亿就比较可信了。
    \n
    \n\n
    \n
    @宠物王大拿 :被公司辞退了!! 越想越气!! 然后跑到公司楼下把公司里的小流浪猫打劫走了!!!
    \n
    \n\n
    \n
    @Anjicn :儿子第一次喝可乐,说:就像蜘蛛在舌头上织网。
    \n
    \n\n
    \n
    @摸摸狗头 :有个大胆的想法:每年把珠穆朗玛峰加高 4cm ,是不是就相当于月球就没离开?
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n

    ", - "content": "
    \"头图\"/
    \n\n
    \n
    @小队长 :你这话说的,就算全世界国家都提倡吃屎健康,老子也不会吃。
    \n
    \n\n
    \n
    @定序王子 :很明显的造谣,编都不会编,非常低级的那种。 8 亿只是什么概念? 2023 年 ,广东常住人口达 1.27 亿人,算下来平均一人一年只吃 6 只鸡。 改成 300 亿就比较可信了。
    \n
    \n\n
    \n
    @宠物王大拿 :被公司辞退了!! 越想越气!! 然后跑到公司楼下把公司里的小流浪猫打劫走了!!!
    \n
    \n\n
    \n
    @Anjicn :儿子第一次喝可乐,说:就像蜘蛛在舌头上织网。
    \n
    \n\n
    \n
    @摸摸狗头 :有个大胆的想法:每年把珠穆朗玛峰加高 4cm ,是不是就相当于月球就没离开?
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n

    ", - "category": "", - "link": "https://daily.zhihu.com/story/9782605", - "creator": "", - "pubDate": "Wed, 16 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "d3be966f2c44fa32e43c0e624aff446d", - "highlights": [] - }, - { - "title": "非洲有 15 万只鸵鸟,为什么狮子不去吃鸵鸟?", - "description": "
    \"头图\"/
    \n

    看下图,一头狮子被迫逃到树上瑟瑟发抖,底下有什么可怕的动物?

    \n
    \"\"
    \n

    答案是非洲野牛。

    \n

    这一幕发生在肯尼亚马赛马拉国家公园,由挪威摄影师 Olav Thokle 拍摄,经过数小时的对峙,野牛才慢慢离去,本就爬树本领普通的狮子,为了牢牢固定身躯,爪子都疼的厉害。

    \n

    在我们的印象中,非洲野牛是狮子的猎物,虽然它们是食草动物,但战斗力却不容小觑,一头成年非洲野牛体长约为 2.1~3.4 米,平均身高在 1.5 米左右,体重 500~800 公斤。

    \n
    \"\"
    \n

    最致命的莫过于那一对锋利且坚硬的牛角,每年都有大量狮子在捕猎野牛时,被锋利的牛角划伤或刺穿,又或者遭受一招“野牛冲撞”,要知道两头成年野牛碰撞的冲击力,那力量就像被一辆时速 50 公里汽车撞上来。

    \n

    大自然没有医院,所以每年都有大量狮子在狩猎野牛的过程中因伤死亡,然而有个奇怪的现象,那就是非洲明明有约 15 万只鸵鸟,为什么狮子不去猎杀鸵鸟呢?

    \n
    \"\"
    \n

    非洲鸵鸟体长约 180~300 公分,身高 240~280 公分,体重 130-150 公斤,平均寿命长达 60 年,并且没有非洲野牛一样的攻击性“武器”,从图片不难看出,鸵鸟的肉不少。

    \n

    然而在狮子的食谱中,牛科动物占比高达 65%,长颈鹿斑马综合占比 21%,疣猪角马综合占比 11%,其他动物占比 3%,而鸵鸟的占比连 1%都不到,这是为什么?原因主要有以下几点:

    \n
    \"\"
    \n

    1.鸵鸟警惕性高

    \n

    鸵鸟不会飞行,虽然在演化过程中因体型过大,逐渐丧失了飞行能力,但仍然属于鸟纲类,而鸟类的警惕性,从我们身边的麻雀、斑鸠、喜鹊等常见鸟类就能窥一斑而见全豹。

    \n
    \"\"
    \n

    鸵鸟的警惕性远超非洲野牛、长颈鹿、斑马等,即便在喝水时,也会有专门的鸵鸟负责放哨。

    \n

    非洲大草原地势平坦,而非洲鸵鸟体高 180~300 公分,就算平均 2.5 米,如此高度的鸵鸟能轻松获得辽阔的视野,失去了层峦叠嶂的地形,再加上狮子是集体狩猎,但凡狮群靠近,鸵鸟就能轻松发现并逃跑。

    \n
    \"\"
    \n

    2.鸵鸟奔跑速度快

    \n

    物种演化无时无刻都在进行,鸵鸟虽然失去了飞行能力,但动辄 150 公斤的体重压在两条腿上,使得鸵鸟的腿部肌肉极其发达。

    \n

    鸵鸟每一步的距离可达 3~5 公尺,奔跑速度可达 70km/h,想象一下你开着一辆车,脚踩油门到 70km/h 的速度,就能明白鸵鸟的奔跑速度有多快。

    \n
    \"\"
    \n

    再来看狮子的奔跑速度,据靠谱一点的数据显示,狮子奔跑速度可达 80km/h,看似狮子的速度超过鸵鸟,但狮子没有任何优势。

    \n

    鸵鸟占据视野优势,老远就能发现狮群,而狮子虽然速度高达 80km/h,但因体型过大,体力有限,通常只能维持 3 分钟,否则身体会因过热崩溃。

    \n

    而鸵鸟能以 70km/h 的速度持续奔跑 5 分钟以上,有些甚至超过 10 分钟,在耐力方面鸵鸟肯定完胜狮子。

    \n
    \"\"
    \n

    3.鸵鸟的反击

    \n

    狮群在狩猎时,即便猎杀野牛,基本上也会优先选择年迈的野牛或小牛犊下手,并且牛的反应相当迟钝,跟鸵鸟完全不是一个层面。

    \n
    \"\"
    \n

    之所以不敢跟壮年野牛硬碰硬,是因为越是食物链顶端的生物,越懂得趋利避害,但凡被野牛撞断一根骨头或者划伤一个口子,在野外都可能是致命伤。

    \n

    鸵鸟在反击时,会利用粗壮的小腿进行踢打,它们的大腿骨肌肉十分发达,并且腿很长,看下图,鸵鸟的双脚趾结构,能进一步提高攻击力,狮子一旦被鸵鸟踹一脚,也可能升级成致命伤。

    \n
    \"\"
    \n

    综合总结

    \n

    a.狮群还没靠近鸵鸟,就被鸵鸟发现,狩猎行动失败。

    \n

    b.狮群好不容易靠近鸵鸟,但还有一段距离,此时狮群开足马力奔袭,结果鸵鸟撒腿就跑,双方你追我逃,当追捕时间超过 3 分钟,狮群非但浪费了巨大能量,而且还没有收获,狩猎行动非但失败,还憋了一肚子气。

    \n
    \"\"
    \n

    c.狮群艰难的捕捉到一只鸵鸟,结果被鸵鸟踹了一脚,骂骂咧咧的吃着带羽毛的肉,一瘸一拐的回到老巢,没过几天因伤去世。

    \n

    狮子只有在食物极度匮乏,没有多余选择的情况下,才会想到去捕猎鸵鸟,例如生活在纳米布沙漠的狮子,但这支狮群的数量不超过 100 头,而绝大多数狮子都会选择 190-550 公斤区间的猎物,这是在非洲这片土地上长期演化出来的食物选择,必然有一定道理。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    看下图,一头狮子被迫逃到树上瑟瑟发抖,底下有什么可怕的动物?

    \n
    \"\"
    \n

    答案是非洲野牛。

    \n

    这一幕发生在肯尼亚马赛马拉国家公园,由挪威摄影师 Olav Thokle 拍摄,经过数小时的对峙,野牛才慢慢离去,本就爬树本领普通的狮子,为了牢牢固定身躯,爪子都疼的厉害。

    \n

    在我们的印象中,非洲野牛是狮子的猎物,虽然它们是食草动物,但战斗力却不容小觑,一头成年非洲野牛体长约为 2.1~3.4 米,平均身高在 1.5 米左右,体重 500~800 公斤。

    \n
    \"\"
    \n

    最致命的莫过于那一对锋利且坚硬的牛角,每年都有大量狮子在捕猎野牛时,被锋利的牛角划伤或刺穿,又或者遭受一招“野牛冲撞”,要知道两头成年野牛碰撞的冲击力,那力量就像被一辆时速 50 公里汽车撞上来。

    \n

    大自然没有医院,所以每年都有大量狮子在狩猎野牛的过程中因伤死亡,然而有个奇怪的现象,那就是非洲明明有约 15 万只鸵鸟,为什么狮子不去猎杀鸵鸟呢?

    \n
    \"\"
    \n

    非洲鸵鸟体长约 180~300 公分,身高 240~280 公分,体重 130-150 公斤,平均寿命长达 60 年,并且没有非洲野牛一样的攻击性“武器”,从图片不难看出,鸵鸟的肉不少。

    \n

    然而在狮子的食谱中,牛科动物占比高达 65%,长颈鹿斑马综合占比 21%,疣猪角马综合占比 11%,其他动物占比 3%,而鸵鸟的占比连 1%都不到,这是为什么?原因主要有以下几点:

    \n
    \"\"
    \n

    1.鸵鸟警惕性高

    \n

    鸵鸟不会飞行,虽然在演化过程中因体型过大,逐渐丧失了飞行能力,但仍然属于鸟纲类,而鸟类的警惕性,从我们身边的麻雀、斑鸠、喜鹊等常见鸟类就能窥一斑而见全豹。

    \n
    \"\"
    \n

    鸵鸟的警惕性远超非洲野牛、长颈鹿、斑马等,即便在喝水时,也会有专门的鸵鸟负责放哨。

    \n

    非洲大草原地势平坦,而非洲鸵鸟体高 180~300 公分,就算平均 2.5 米,如此高度的鸵鸟能轻松获得辽阔的视野,失去了层峦叠嶂的地形,再加上狮子是集体狩猎,但凡狮群靠近,鸵鸟就能轻松发现并逃跑。

    \n
    \"\"
    \n

    2.鸵鸟奔跑速度快

    \n

    物种演化无时无刻都在进行,鸵鸟虽然失去了飞行能力,但动辄 150 公斤的体重压在两条腿上,使得鸵鸟的腿部肌肉极其发达。

    \n

    鸵鸟每一步的距离可达 3~5 公尺,奔跑速度可达 70km/h,想象一下你开着一辆车,脚踩油门到 70km/h 的速度,就能明白鸵鸟的奔跑速度有多快。

    \n
    \"\"
    \n

    再来看狮子的奔跑速度,据靠谱一点的数据显示,狮子奔跑速度可达 80km/h,看似狮子的速度超过鸵鸟,但狮子没有任何优势。

    \n

    鸵鸟占据视野优势,老远就能发现狮群,而狮子虽然速度高达 80km/h,但因体型过大,体力有限,通常只能维持 3 分钟,否则身体会因过热崩溃。

    \n

    而鸵鸟能以 70km/h 的速度持续奔跑 5 分钟以上,有些甚至超过 10 分钟,在耐力方面鸵鸟肯定完胜狮子。

    \n
    \"\"
    \n

    3.鸵鸟的反击

    \n

    狮群在狩猎时,即便猎杀野牛,基本上也会优先选择年迈的野牛或小牛犊下手,并且牛的反应相当迟钝,跟鸵鸟完全不是一个层面。

    \n
    \"\"
    \n

    之所以不敢跟壮年野牛硬碰硬,是因为越是食物链顶端的生物,越懂得趋利避害,但凡被野牛撞断一根骨头或者划伤一个口子,在野外都可能是致命伤。

    \n

    鸵鸟在反击时,会利用粗壮的小腿进行踢打,它们的大腿骨肌肉十分发达,并且腿很长,看下图,鸵鸟的双脚趾结构,能进一步提高攻击力,狮子一旦被鸵鸟踹一脚,也可能升级成致命伤。

    \n
    \"\"
    \n

    综合总结

    \n

    a.狮群还没靠近鸵鸟,就被鸵鸟发现,狩猎行动失败。

    \n

    b.狮群好不容易靠近鸵鸟,但还有一段距离,此时狮群开足马力奔袭,结果鸵鸟撒腿就跑,双方你追我逃,当追捕时间超过 3 分钟,狮群非但浪费了巨大能量,而且还没有收获,狩猎行动非但失败,还憋了一肚子气。

    \n
    \"\"
    \n

    c.狮群艰难的捕捉到一只鸵鸟,结果被鸵鸟踹了一脚,骂骂咧咧的吃着带羽毛的肉,一瘸一拐的回到老巢,没过几天因伤去世。

    \n

    狮子只有在食物极度匮乏,没有多余选择的情况下,才会想到去捕猎鸵鸟,例如生活在纳米布沙漠的狮子,但这支狮群的数量不超过 100 头,而绝大多数狮子都会选择 190-550 公斤区间的猎物,这是在非洲这片土地上长期演化出来的食物选择,必然有一定道理。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782587", - "creator": "", - "pubDate": "Wed, 16 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "432e133ac8c51dd02c10043413734b7d", - "highlights": [] - }, - { - "title": "世界上大多数人似乎普遍存在一种偏见,认为只有哺乳动物才算是真正的「动物」,造成这一现象的原因是什么?", - "description": "
    \"头图\"/
    \n

    题述现象是人类中心主义的体现,主要归因于人自己是哺乳动物,相关信息的传播依赖社会文化和人脑的模式识别与匹配功能。大多数人的观念并不严格符合提问者的描述,但人们确实相当普遍地更关注哺乳动物的生存状态。

    \n
      \n
    • 世界范围内,人们讨论关于生物的话题时,“俺寻思生物就是动物、动物就是四足动物、四足动物就是哺乳动物,充其量再算上鸟”的现象是很常见的。这是进化论的次要证据。
    • \n
    \n

    在日常生活中,你很容易发现,人们普遍认为人的生命比非人动物的生命更宝贵(或曰“高等”),黑猩猩、大猩猩等看起来比较接近人的动物的生命比花鸟虫鱼的生命更宝贵(或曰“高等”),非人动物的生命比植物的生命更宝贵,人的生命比亿万个细菌、病毒的生命更宝贵。

    \n

    这叫做“物种歧视 /Speciesism[1]”:

    \n
      \n
    • 针对一个群体“仅因物种归属不同”而产生一系列价值差别判断、权利差别判断、特殊对待。
    • \n
    \n

    例如:

    \n

    人类物种歧视主义,或曰人类中心主义,指一些人会将非人类排除于人类的道德范围以外,视之为可随意处置的对象。这和道德成员资格的划定有关,其支持者可以提出非人类不能有效地参与人类社会、不能良好地遵守人类的社会规范——但是,人对他人的态度和行为往往也是多重标准的。

    \n

    “可爱动物保护主义”,指一些人会将长得不符合人的审美的动物视为可随意处置的对象,而对猫、狗等“可爱动物”进行法律保护。

    \n
      \n
    • 这既涉及“人用来检测幼体的特征并降低攻击幼体的概率的机制(婴儿图式)对长得在某种程度上像人类幼体的猫狗也有效”,又涉及猫狗长期与人共生、双方的一部分基因已经针对互动进行过筛选(例如人和狗对视时双方的脑释放催产素),不能只归结于当事人双重标准——地球生物圈里的各种共生关系本来就是多重标准的。
    • \n
    \n

    “人类 - 大猩猩物种歧视主义”,指一些人出于人和大猩猩等类人猿的相似性而支持保护大猩猩的权利,胜过保护猫狗的权利,更胜过保护非哺乳类的权利。

    \n
      \n
    • 在世界范围内,动物保护主义者保护哺乳类的积极性明显高于保护无脊椎动物。这或多或少地涉及自然选择塑造的自动判定同类的机制,让人更关注在演化上跟自己相似的生物。
    • \n
    • 所谓“神经系统的复杂程度”,在很大程度上就是“在神经系统方面与人的相似性”“。
    • \n
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    题述现象是人类中心主义的体现,主要归因于人自己是哺乳动物,相关信息的传播依赖社会文化和人脑的模式识别与匹配功能。大多数人的观念并不严格符合提问者的描述,但人们确实相当普遍地更关注哺乳动物的生存状态。

    \n
      \n
    • 世界范围内,人们讨论关于生物的话题时,“俺寻思生物就是动物、动物就是四足动物、四足动物就是哺乳动物,充其量再算上鸟”的现象是很常见的。这是进化论的次要证据。
    • \n
    \n

    在日常生活中,你很容易发现,人们普遍认为人的生命比非人动物的生命更宝贵(或曰“高等”),黑猩猩、大猩猩等看起来比较接近人的动物的生命比花鸟虫鱼的生命更宝贵(或曰“高等”),非人动物的生命比植物的生命更宝贵,人的生命比亿万个细菌、病毒的生命更宝贵。

    \n

    这叫做“物种歧视 /Speciesism[1]”:

    \n
      \n
    • 针对一个群体“仅因物种归属不同”而产生一系列价值差别判断、权利差别判断、特殊对待。
    • \n
    \n

    例如:

    \n

    人类物种歧视主义,或曰人类中心主义,指一些人会将非人类排除于人类的道德范围以外,视之为可随意处置的对象。这和道德成员资格的划定有关,其支持者可以提出非人类不能有效地参与人类社会、不能良好地遵守人类的社会规范——但是,人对他人的态度和行为往往也是多重标准的。

    \n

    “可爱动物保护主义”,指一些人会将长得不符合人的审美的动物视为可随意处置的对象,而对猫、狗等“可爱动物”进行法律保护。

    \n
      \n
    • 这既涉及“人用来检测幼体的特征并降低攻击幼体的概率的机制(婴儿图式)对长得在某种程度上像人类幼体的猫狗也有效”,又涉及猫狗长期与人共生、双方的一部分基因已经针对互动进行过筛选(例如人和狗对视时双方的脑释放催产素),不能只归结于当事人双重标准——地球生物圈里的各种共生关系本来就是多重标准的。
    • \n
    \n

    “人类 - 大猩猩物种歧视主义”,指一些人出于人和大猩猩等类人猿的相似性而支持保护大猩猩的权利,胜过保护猫狗的权利,更胜过保护非哺乳类的权利。

    \n
      \n
    • 在世界范围内,动物保护主义者保护哺乳类的积极性明显高于保护无脊椎动物。这或多或少地涉及自然选择塑造的自动判定同类的机制,让人更关注在演化上跟自己相似的生物。
    • \n
    • 所谓“神经系统的复杂程度”,在很大程度上就是“在神经系统方面与人的相似性”“。
    • \n
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782594", - "creator": "", - "pubDate": "Wed, 16 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "5be57433b8cb4fc19a3834e90903ead3", - "highlights": [] - }, - { - "title": "斑马的斑到底有什么用?", - "description": "
    \"头图\"/
    \n

    斑马的黑白条纹可能是破坏边缘完整性的伪装色,主要作用于吸血昆虫。在野生斑马经常出没的地区,狮子、猎豹等捕食者看起来并未受到斑马黑白条纹的明显影响。

    \n
      \n
    • 在非洲,马蝇、采采蝇等吸血昆虫传播多种流行病。斑马稀疏的毛发不擅长抵御吸血昆虫的叮咬,但是吸血昆虫对斑马的侵袭强度较低。2014 年,Caro 等进行了较大规模的统计,认为斑马的黑白条纹主要用于降低被吸血昆虫叮咬的概率[1]。
    • \n
    \n

    在此基础上,斑马的黑白条纹可能有助于体温调节[2]。

    \n
      \n
    • 参考 2 称,斑马身上黑色毛发的温度可以比白色毛发高 12 至 15 摄氏度,在局部产生有规律的气流。马属动物的汗液含有泡沫蛋白,汗液的表面张力较低,有助于毛发前端的蒸发冷却。观察显示,斑马可以在白色毛发保持倒伏的同时将黑色毛发竖立起来,这大概可以和上述汗液搭配散热。此外,在气温较低时,黑色毛发可能有助于吸热。
    • \n
    \n
    \n

    不限于斑马,破坏轮廓完整性的伪装示意图:

    \n
    \"\"
    By Hugh B. Cott - Adaptive Coloration in Animals; image available at http://camouflage.osu.edu/cott.html, Fair use, https://en.wikipedia.org/w/index.php?curid=35274594
    \n

    2019 年,一项实验显示,在牛身上画出类似斑马的条纹,会降低螫蝇、角蝇等双翅目吸血昆虫叮咬牛的频率。斑马状条纹可能干扰吸血昆虫视觉系统的运动检测,让它们着陆在牛身上的成功率下降[3]。

    \n
    \"\"
    实验用牛
    \n
    \"\"
    CONT:无条纹牛,B and W:黑白条纹牛,B:黑条纹牛
    \n

    吸血昆虫仍被有条纹的牛的视觉特征、气味吸引,可以多次尝试降落,不会简单地放弃叮咬有条纹的牛。条纹在实验中提供的保护效果并不强于看起来更平凡的杀虫剂。

    \n

    读者亦可参考熊猫:

    \n

    熊猫身体和四肢的配色在较远距离上会有效地破坏轮廓完整性、发挥伪装功能,在较近距离上通过背景匹配(黑色皮毛与树干、阴影匹配,白色皮毛与树叶、雪匹配,其余皮毛[4]与岩石、地面匹配)在一定程度上发挥伪装功能[5]。

    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/1 未经严格筛选的图片
    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/2
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    斑马的黑白条纹可能是破坏边缘完整性的伪装色,主要作用于吸血昆虫。在野生斑马经常出没的地区,狮子、猎豹等捕食者看起来并未受到斑马黑白条纹的明显影响。

    \n
      \n
    • 在非洲,马蝇、采采蝇等吸血昆虫传播多种流行病。斑马稀疏的毛发不擅长抵御吸血昆虫的叮咬,但是吸血昆虫对斑马的侵袭强度较低。2014 年,Caro 等进行了较大规模的统计,认为斑马的黑白条纹主要用于降低被吸血昆虫叮咬的概率[1]。
    • \n
    \n

    在此基础上,斑马的黑白条纹可能有助于体温调节[2]。

    \n
      \n
    • 参考 2 称,斑马身上黑色毛发的温度可以比白色毛发高 12 至 15 摄氏度,在局部产生有规律的气流。马属动物的汗液含有泡沫蛋白,汗液的表面张力较低,有助于毛发前端的蒸发冷却。观察显示,斑马可以在白色毛发保持倒伏的同时将黑色毛发竖立起来,这大概可以和上述汗液搭配散热。此外,在气温较低时,黑色毛发可能有助于吸热。
    • \n
    \n
    \n

    不限于斑马,破坏轮廓完整性的伪装示意图:

    \n
    \"\"
    By Hugh B. Cott - Adaptive Coloration in Animals; image available at http://camouflage.osu.edu/cott.html, Fair use, https://en.wikipedia.org/w/index.php?curid=35274594
    \n

    2019 年,一项实验显示,在牛身上画出类似斑马的条纹,会降低螫蝇、角蝇等双翅目吸血昆虫叮咬牛的频率。斑马状条纹可能干扰吸血昆虫视觉系统的运动检测,让它们着陆在牛身上的成功率下降[3]。

    \n
    \"\"
    实验用牛
    \n
    \"\"
    CONT:无条纹牛,B and W:黑白条纹牛,B:黑条纹牛
    \n

    吸血昆虫仍被有条纹的牛的视觉特征、气味吸引,可以多次尝试降落,不会简单地放弃叮咬有条纹的牛。条纹在实验中提供的保护效果并不强于看起来更平凡的杀虫剂。

    \n

    读者亦可参考熊猫:

    \n

    熊猫身体和四肢的配色在较远距离上会有效地破坏轮廓完整性、发挥伪装功能,在较近距离上通过背景匹配(黑色皮毛与树干、阴影匹配,白色皮毛与树叶、雪匹配,其余皮毛[4]与岩石、地面匹配)在一定程度上发挥伪装功能[5]。

    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/1 未经严格筛选的图片
    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/2
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782601", - "creator": "", - "pubDate": "Wed, 16 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "2c5dce9634a6cbf53698f206807d80b3", - "highlights": [] - }, - { - "title": "瞎扯 · 如何正确地吐槽", - "description": "
    \"头图\"/
    \n\n
    \n
    @南瓜周 :沙僧骂街之前先鞠了一躬,八戒和悟空正骂着呢,看见沙僧鞠躬也跟着鞠躬。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @挖坟老狗 :我再说一遍, cos 不知道怎么处理就直接万能公式套上去。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @深港双城男 :能喝酒就不要喝水,把水留给不会喝酒的孩子。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @过世猪猪 :尖叫的瓶子,优秀到我一点都不记得这饮料是什么味道。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @棠风 :大清早的,不知道哪个小孩打错电话, 要跟我请假。 反正我是给他批准了……
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n\n
    \n
    @南瓜周 :沙僧骂街之前先鞠了一躬,八戒和悟空正骂着呢,看见沙僧鞠躬也跟着鞠躬。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @挖坟老狗 :我再说一遍, cos 不知道怎么处理就直接万能公式套上去。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @深港双城男 :能喝酒就不要喝水,把水留给不会喝酒的孩子。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @过世猪猪 :尖叫的瓶子,优秀到我一点都不记得这饮料是什么味道。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @棠风 :大清早的,不知道哪个小孩打错电话, 要跟我请假。 反正我是给他批准了……
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782579", - "creator": "", - "pubDate": "Tue, 15 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "acfc0018a6d1f24a71ab7931b2488200", - "highlights": [] - }, - { - "title": "发明魔芋的前辈是经历了什么?", - "description": "
    \"头图\"/
    \n

    其实没有那么夸张,最重要的就是水煮。

    \n

    我们可以对照土法加工魔芋的步骤来看看祖先的研发过程。

    \n

    1.首先是外观。

    \n

    大型块茎,切开乳白色含有大量淀粉状物质,

    \n

    这对于人类来说基本就是“千方百计想要吃”的食材样子了。

    \n

    剩下的问题就是“怎么吃,好吃么?”

    \n
    \"\"
    \n

    魔芋这个东西有毒,但毒性其实不大。

    \n

    生吃的话,少量会出现恶心、呕吐、腹泻、出汗,对于时常饥荒连草根、树皮都能吃的古代人来说就算是“可以付出的代价了”。

    \n

    而且只要不是剧毒,就可以不断尝试各种处理方法,看看怎么让吃了之后的副作用减弱。

    \n
    提示:如果大量食用生魔芋,严重时也会呼吸中枢完全麻痹而导致死亡。大家不要轻易尝试。
    \n

    2.切碎和浸泡。

    \n

    这步算是处理大部分弱毒性食材的标准方式。

    \n
    \"\"
    \n

    因为植物的毒性很大程度是生物碱,生物碱的分子量通常较小,所以容易溶解于水。

    \n

    比如马铃薯去毒法里面,就有一种水泡法。浸泡 12 小时候可以去马铃薯毒性。

    \n
    发芽的马铃薯最好还是扔掉,不值当冒险,这里只是说理论的去毒方法。
    \n

    而块茎一般含有多糖、淀粉,是比较不容易溶解于水里的,

    \n

    所以浸泡投洗算是古代比较常见的植物脱毒预处理方式。也最简单容易操作。

    \n
    魔芋含有的葡甘聚糖(KGM),也是一种具有特殊理化性质的天然高分子多糖。
    \n

    3.磨碎熬煮。

    \n

    磨碎是为了进一步增加反应速度,加热熬煮则是人类掌握比较成熟的脱毒方式。

    \n
    \"\"
    \n

    像是四季豆、扁豆、金针菇、木薯、蚕豆、黄花菜等,都是必须彻底加热才能吃的食材。

    \n

    这几种植物原理不同,比如豆角是皂素和红细胞凝集素;蚕豆是巢菜碱苷成分及蚕豆嘧啶葡糖苷;木薯是亚麻仁苦苷,金针菇和黄花菜是秋水仙碱,还有一些植物含有较高草酸。

    \n

    而破坏生物碱的方式,古代人类最容易掌握的就是加热。

    \n

    虽然也有不少毒素,比如不少菌类含有的毒素异常稳定,具有耐高温的特性,但这更多是一种“偶然”,因为在自然界中植物不需要面对一百度的高温烹煮。

    \n

    魔芋的毒性主要应该是生物碱糖苷,这类物质比较常见于植物块茎里。

    \n

    比如土豆里含有的龙葵碱,就是种典型的生物碱糖苷,难于被胃肠道吸收,会导致肠胃不适。

    \n

    因为他们对人体的肠胃膜结构油一定破坏作用,还能抑制胆碱酯酶的消化。

    \n

    所以,凉拌土豆丝是焯水后凉拌的,厨房菜鸟切记。

    \n
    \"\"
    \n

    好,我们回到魔芋加工过程。

    \n

    4.点碱水。

    \n

    这一步其实和“去毒”应该没有关系。

    \n

    因为中和生物碱一般是用酸,而加碱显然无助于分解。

    \n

    如果不考虑外形,煮熟后的魔芋糊糊也是可以吃的。但是不好保存。

    \n
    \"\"
    \n

    很可能古人是先吃了很多年的魔芋糊,然后才逐步研究怎么让这个东西凝结,变成类似豆腐的形状,方便保存和携带。

    \n

    魔芋加碱水的主要原因是为了改善其质地和口感。

    \n

    让碱水和魔芋中的谷蛋白酶反应,失去活性,从而凝固魔芋,增加其黏度和弹性。‌

    \n

    农村的这一步是用草木灰(主要成分是碳酸钾(K2CO3))浸泡过滤的水来“点”魔芋。

    \n
    现在食品工艺,大都加入碱性的氢氧化钙来处理。
    显然氢氧化钙更干净、安全,而且是残留量不需限定的加工助剂。
    \n
    \"\"
    \n

    用草木灰来凝固蛋白、脱水,也算是古人掌握的一种常见加工方法。

    \n

    比如用在鸭蛋上,草木灰包裹可以制造松花蛋(蛋白变性作用),把豆腐包裹可以制造出灰培豆腐(脱水作用)。

    \n

    同时,因为草木灰相对卫生(燃烧后相当于消毒),可以调节食物酸碱度让口感更好,还能长期保存食物(吸水让食物表面干燥),所以古人在食材加工中经常会尝试添加。

    \n
    哪怕加错了就是多喝了点碱水,也没有大问题。
    \n

    比如“碱水粽”是用草木灰水浸泡糯米,桑叶凉粉是用草木灰水与桑叶汁制作。在四川,还有用草木灰水和大米制作的“灰水馍馍”。

    \n

    这些显示出我们的祖先做食物时,经常会尝试添加草木灰,看看会有什么变化。

    \n
    \"\"
    \n

    5.成型切分。

    \n

    用碱水点过之后,快速搅拌、冷却,魔芋就会凝结成块状。可以用竹篾划开。

    \n

    就成了块状的土法魔芋了,因为草木灰和过滤不彻底,经常是灰褐色的。

    \n
    \"\"
    草木灰魔芋
    \n

    这里说一下碱水让魔芋成型的化学原理,不感兴趣的可以跳过。

    \n
    魔芋的主要成分是葡甘露聚糖,由葡萄糖和甘露糖按一定比例结合而成的的长链大分子。
    在这个大分子上,除了主链上的葡萄糖和甘露糖之外,还有一些特别的乙酰基。
    正是这些乙酰基的存在,阻止了魔芋多糖分子的“亲密聚合”,所以加工之前的魔芋并不是魔芋块、魔芋丝那样 Q 弹的样子。
    只有加碱性物质才能把乙酰基的阻拦作用“抵消”,让魔芋多糖分子聚集凝固,并且把很多水分锁在其中,最终摇身一变成为魔芋丝、魔芋豆腐等弹滑的状态。
    \n

    古人显然不懂这些深奥原理,但不阻碍他们在实验草木灰水的时候,发现了效果。

    \n

    至此,魔芋就成了我们比较常见的样子,颜色深浅要看熬煮过程的火候和碱水。

    \n

    使用草木灰的会比较灰暗,颜色深,而使用食用碱来做添加剂,魔芋会更透亮,好看。

    \n
    \"\"
    土法碱水魔芋
    \n

    一般在魔芋凉了切块后,食用前还会进行二次煮制。

    \n

    这样可以让口感更有弹性。也防止表面滋生细菌。

    \n

    总结一下,

    \n

    古人应该不是一步到位把魔芋的制作过程发明的。

    \n

    而是发现了可食用的块茎,先凑活生着吃,发现少量毒不死,但吃多了恶心、呕吐、拉肚子。

    \n

    于是试着洗一洗,发现好像好一点,再试试烤熟了、煮熟了吃,发现又好一些。

    \n

    等吃腻了糊糊,试着往里面加点木炭粉、草木灰,乱七八糟厨房附近有的,吃不死人的东西。

    \n

    发现居然变成块了,更容易保存吃好几天。

    \n

    下次试试只加草木灰的过滤水,原来也可以。颜色更好看了。

    \n

    于是,经过漫长的摸索,这种“新型豆腐”的加工方法就算定型了。

    \n

    不得不过,古代人为了吃点好东西,的确是能发动各种研究精神啊。

    \n
    关注也说,阅读更多有趣的思想。
    \n

    当年苏联挖地球为什么挖到 12262 米就停止了?明明不开车为啥还被称为副驾驶?假如忽然火了?怎么接住泼天的富贵。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    其实没有那么夸张,最重要的就是水煮。

    \n

    我们可以对照土法加工魔芋的步骤来看看祖先的研发过程。

    \n

    1.首先是外观。

    \n

    大型块茎,切开乳白色含有大量淀粉状物质,

    \n

    这对于人类来说基本就是“千方百计想要吃”的食材样子了。

    \n

    剩下的问题就是“怎么吃,好吃么?”

    \n
    \"\"
    \n

    魔芋这个东西有毒,但毒性其实不大。

    \n

    生吃的话,少量会出现恶心、呕吐、腹泻、出汗,对于时常饥荒连草根、树皮都能吃的古代人来说就算是“可以付出的代价了”。

    \n

    而且只要不是剧毒,就可以不断尝试各种处理方法,看看怎么让吃了之后的副作用减弱。

    \n
    提示:如果大量食用生魔芋,严重时也会呼吸中枢完全麻痹而导致死亡。大家不要轻易尝试。
    \n

    2.切碎和浸泡。

    \n

    这步算是处理大部分弱毒性食材的标准方式。

    \n
    \"\"
    \n

    因为植物的毒性很大程度是生物碱,生物碱的分子量通常较小,所以容易溶解于水。

    \n

    比如马铃薯去毒法里面,就有一种水泡法。浸泡 12 小时候可以去马铃薯毒性。

    \n
    发芽的马铃薯最好还是扔掉,不值当冒险,这里只是说理论的去毒方法。
    \n

    而块茎一般含有多糖、淀粉,是比较不容易溶解于水里的,

    \n

    所以浸泡投洗算是古代比较常见的植物脱毒预处理方式。也最简单容易操作。

    \n
    魔芋含有的葡甘聚糖(KGM),也是一种具有特殊理化性质的天然高分子多糖。
    \n

    3.磨碎熬煮。

    \n

    磨碎是为了进一步增加反应速度,加热熬煮则是人类掌握比较成熟的脱毒方式。

    \n
    \"\"
    \n

    像是四季豆、扁豆、金针菇、木薯、蚕豆、黄花菜等,都是必须彻底加热才能吃的食材。

    \n

    这几种植物原理不同,比如豆角是皂素和红细胞凝集素;蚕豆是巢菜碱苷成分及蚕豆嘧啶葡糖苷;木薯是亚麻仁苦苷,金针菇和黄花菜是秋水仙碱,还有一些植物含有较高草酸。

    \n

    而破坏生物碱的方式,古代人类最容易掌握的就是加热。

    \n

    虽然也有不少毒素,比如不少菌类含有的毒素异常稳定,具有耐高温的特性,但这更多是一种“偶然”,因为在自然界中植物不需要面对一百度的高温烹煮。

    \n

    魔芋的毒性主要应该是生物碱糖苷,这类物质比较常见于植物块茎里。

    \n

    比如土豆里含有的龙葵碱,就是种典型的生物碱糖苷,难于被胃肠道吸收,会导致肠胃不适。

    \n

    因为他们对人体的肠胃膜结构油一定破坏作用,还能抑制胆碱酯酶的消化。

    \n

    所以,凉拌土豆丝是焯水后凉拌的,厨房菜鸟切记。

    \n
    \"\"
    \n

    好,我们回到魔芋加工过程。

    \n

    4.点碱水。

    \n

    这一步其实和“去毒”应该没有关系。

    \n

    因为中和生物碱一般是用酸,而加碱显然无助于分解。

    \n

    如果不考虑外形,煮熟后的魔芋糊糊也是可以吃的。但是不好保存。

    \n
    \"\"
    \n

    很可能古人是先吃了很多年的魔芋糊,然后才逐步研究怎么让这个东西凝结,变成类似豆腐的形状,方便保存和携带。

    \n

    魔芋加碱水的主要原因是为了改善其质地和口感。

    \n

    让碱水和魔芋中的谷蛋白酶反应,失去活性,从而凝固魔芋,增加其黏度和弹性。‌

    \n

    农村的这一步是用草木灰(主要成分是碳酸钾(K2CO3))浸泡过滤的水来“点”魔芋。

    \n
    现在食品工艺,大都加入碱性的氢氧化钙来处理。
    显然氢氧化钙更干净、安全,而且是残留量不需限定的加工助剂。
    \n
    \"\"
    \n

    用草木灰来凝固蛋白、脱水,也算是古人掌握的一种常见加工方法。

    \n

    比如用在鸭蛋上,草木灰包裹可以制造松花蛋(蛋白变性作用),把豆腐包裹可以制造出灰培豆腐(脱水作用)。

    \n

    同时,因为草木灰相对卫生(燃烧后相当于消毒),可以调节食物酸碱度让口感更好,还能长期保存食物(吸水让食物表面干燥),所以古人在食材加工中经常会尝试添加。

    \n
    哪怕加错了就是多喝了点碱水,也没有大问题。
    \n

    比如“碱水粽”是用草木灰水浸泡糯米,桑叶凉粉是用草木灰水与桑叶汁制作。在四川,还有用草木灰水和大米制作的“灰水馍馍”。

    \n

    这些显示出我们的祖先做食物时,经常会尝试添加草木灰,看看会有什么变化。

    \n
    \"\"
    \n

    5.成型切分。

    \n

    用碱水点过之后,快速搅拌、冷却,魔芋就会凝结成块状。可以用竹篾划开。

    \n

    就成了块状的土法魔芋了,因为草木灰和过滤不彻底,经常是灰褐色的。

    \n
    \"\"
    草木灰魔芋
    \n

    这里说一下碱水让魔芋成型的化学原理,不感兴趣的可以跳过。

    \n
    魔芋的主要成分是葡甘露聚糖,由葡萄糖和甘露糖按一定比例结合而成的的长链大分子。
    在这个大分子上,除了主链上的葡萄糖和甘露糖之外,还有一些特别的乙酰基。
    正是这些乙酰基的存在,阻止了魔芋多糖分子的“亲密聚合”,所以加工之前的魔芋并不是魔芋块、魔芋丝那样 Q 弹的样子。
    只有加碱性物质才能把乙酰基的阻拦作用“抵消”,让魔芋多糖分子聚集凝固,并且把很多水分锁在其中,最终摇身一变成为魔芋丝、魔芋豆腐等弹滑的状态。
    \n

    古人显然不懂这些深奥原理,但不阻碍他们在实验草木灰水的时候,发现了效果。

    \n

    至此,魔芋就成了我们比较常见的样子,颜色深浅要看熬煮过程的火候和碱水。

    \n

    使用草木灰的会比较灰暗,颜色深,而使用食用碱来做添加剂,魔芋会更透亮,好看。

    \n
    \"\"
    土法碱水魔芋
    \n

    一般在魔芋凉了切块后,食用前还会进行二次煮制。

    \n

    这样可以让口感更有弹性。也防止表面滋生细菌。

    \n

    总结一下,

    \n

    古人应该不是一步到位把魔芋的制作过程发明的。

    \n

    而是发现了可食用的块茎,先凑活生着吃,发现少量毒不死,但吃多了恶心、呕吐、拉肚子。

    \n

    于是试着洗一洗,发现好像好一点,再试试烤熟了、煮熟了吃,发现又好一些。

    \n

    等吃腻了糊糊,试着往里面加点木炭粉、草木灰,乱七八糟厨房附近有的,吃不死人的东西。

    \n

    发现居然变成块了,更容易保存吃好几天。

    \n

    下次试试只加草木灰的过滤水,原来也可以。颜色更好看了。

    \n

    于是,经过漫长的摸索,这种“新型豆腐”的加工方法就算定型了。

    \n

    不得不过,古代人为了吃点好东西,的确是能发动各种研究精神啊。

    \n
    关注也说,阅读更多有趣的思想。
    \n

    当年苏联挖地球为什么挖到 12262 米就停止了?明明不开车为啥还被称为副驾驶?假如忽然火了?怎么接住泼天的富贵。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782557", - "creator": "", - "pubDate": "Tue, 15 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "e55b066bd5cb0fc524a10242af37695b", - "highlights": [] - }, - { - "title": "少年贪食荔枝后昏迷,确诊为「荔枝病」引发低血糖,为何荔枝是高糖水果会导致低血糖?其他水果也会这样吗?", - "description": "
    \"头图\"/
    \n

    省流:肝脏:视野盲区,还以为是亮氨酸呢,刹不住酶,我们都在用力地活着。

    \n

    嘛……其实这事真的不是新闻说的那样是因为果糖不能用 + 胰岛素分泌过多导致的……

    \n

    果糖被吸收后,经过肝门静脉运输到肝,绝大部分被肝吸收,只有一小部分进入血液循环,因此基本不会刺激胰岛素分泌。

    \n

    那是什么导致了荔枝病呢?答案是——荔枝等无患子目植物中含有的化学防御性物质次甘氨酸 A(Hypoglycin A,准确译名应该是降糖毒素 A)和它的类似物亚甲基环丙基甘氨酸(methylenecyclopropylglycine,MCPG),它俩都是非蛋白质氨基酸,存在于无患子目(尤其是无患子科)植物的种子及未成熟果实中。

    \n
    \"\"
    次甘氨酸 A
    \n
    \"\"
    亚甲基环丙基甘氨酸
    \n

    那这小小的次甘氨酸又是怎么导致低血糖的呢?

    \n

    诶,它本身不导致低血糖,意不意外?

    \n

    虽然它本身确实不导致低血糖,但是肝脏非得作死有什么办法呢?本来它是易溶于水的氨基酸,丢给肾脏扔掉就好了,结果肝脏一没注意,给看成亮氨酸转氨了,转氨之后还给塞进支链酮酸脱氢酶里脱氢了,结果把无害的次甘氨酸 A 硬生生变成了有毒的亚甲基环丙基乙酸(Methylene cyclopropyl acetic acid,MCPA)。

    \n
    \"\"
    亚甲基环丙基乙酸
    \n

    (肝脏:视野盲区,还以为是亮氨酸呢,刹不住酶,我们都在用力地活着。)

    \n
    \"\"
    支链酮酸脱氢酶复合物(异三聚体)由三个不同的酶组成,分别是α- 酮酸脱氢酶(E1)、二氢硫酰基转酰基酶(E2)和二氢脂肪酰胺脱氢酶(E3)
    \n
    \"\"
    二氢脂肪酰胺脱氢酶从各个方向观察的构象
    \n

    可以注意到,由支链酮酸脱氢酶复合物中出来的酸已经是与辅酶 A 结合的酰基辅酶 A形态了,而正是这个无法进一步代谢的亚甲基环丙基乙酰辅酶 A导致了后续的一系列酶出了问题,最终导致了低血糖的发生。

    \n

    那么话讲到这里就有同学要问了:老师老师,这个东西到底是怎么导致酶出问题的啊?

    \n

    那我问你,糖异生要不要调控?如果要调控你说这样的话啊?那我问你,那你糖异生怎么调控那我问你……

    \n

    咳咳,不搞抽象了,糖异生的调控主要发生在丙酮酸羧化酶、磷酸烯醇式丙酮酸(PEP)羧激酶、1,6- 二磷酸果糖(F-1,6-BP)磷酸酶这三种酶中,其中丙酮酸羧化酶受到乙酰辅酶 A的正向调控和ADP的负向调控,PEP 羧激酶受ADP的负向调控,F-1,6-BP 磷酸酶受AMP、F-2,6-BP的负向调控和柠檬酸的正向调控。

    \n

    现在问题来了,在进行糖异生的情况下,乙酰辅酶 A 肯定不会是从糖中来,肯定是脂肪酸代谢的结果,但是脂肪酸要形成乙酰辅酶 A 就要进行β氧化,要进行β氧化就需要辅酶 A……诶等等,我辅酶 A 呢?丸辣,辅酶 A 全被变成亚甲基环丙基乙酰辅酶 A了!

    \n

    于是乎,糖异生就被一颗小小的荔枝搞瘫痪了。

    \n

    那么又有同学要问了:老师,用不了葡萄糖我用酮体还不行吗?酮体一样可以穿过血脑屏障啊?

    \n

    问得好,那我问你:酮体是由什么合成的?

    \n
    \"\"
    乙酰乙酸,一看就知道是两个乙酰辅酶 A 缩合而来的。
    \n
    \"\"
    丙酮,由乙酰乙酸自发或酶催化脱羧而来
    \n
    \"\"
    β- 羟基丁酸,由乙酰乙酸还原而来
    \n

    酮体都是由乙酰辅酶 A 直接合成为乙酰乙酰辅酶 A,然后形成 HMG-CoA(β- 羟基 -β- 甲基戊二酸单酰辅酶 A),最后再形成乙酰乙酸这一过程得到的,那么如果没有乙酰辅酶 A,拿什么去合成酮体呢?

    \n

    糖指望不上,酮体也合成不了,人不就低血糖倒了嘛,很正常。

    \n

    以上。

    \n
    \n

    这玩意有肝毒性,不能用来治糖尿病!!!

    \n

    这玩意也会抑制脂肪酸氧化(脂肪酸氧化需要先与辅酶 A 结合为脂酰辅酶 A),不能用来减肥!!!

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    省流:肝脏:视野盲区,还以为是亮氨酸呢,刹不住酶,我们都在用力地活着。

    \n

    嘛……其实这事真的不是新闻说的那样是因为果糖不能用 + 胰岛素分泌过多导致的……

    \n

    果糖被吸收后,经过肝门静脉运输到肝,绝大部分被肝吸收,只有一小部分进入血液循环,因此基本不会刺激胰岛素分泌。

    \n

    那是什么导致了荔枝病呢?答案是——荔枝等无患子目植物中含有的化学防御性物质次甘氨酸 A(Hypoglycin A,准确译名应该是降糖毒素 A)和它的类似物亚甲基环丙基甘氨酸(methylenecyclopropylglycine,MCPG),它俩都是非蛋白质氨基酸,存在于无患子目(尤其是无患子科)植物的种子及未成熟果实中。

    \n
    \"\"
    次甘氨酸 A
    \n
    \"\"
    亚甲基环丙基甘氨酸
    \n

    那这小小的次甘氨酸又是怎么导致低血糖的呢?

    \n

    诶,它本身不导致低血糖,意不意外?

    \n

    虽然它本身确实不导致低血糖,但是肝脏非得作死有什么办法呢?本来它是易溶于水的氨基酸,丢给肾脏扔掉就好了,结果肝脏一没注意,给看成亮氨酸转氨了,转氨之后还给塞进支链酮酸脱氢酶里脱氢了,结果把无害的次甘氨酸 A 硬生生变成了有毒的亚甲基环丙基乙酸(Methylene cyclopropyl acetic acid,MCPA)。

    \n
    \"\"
    亚甲基环丙基乙酸
    \n

    (肝脏:视野盲区,还以为是亮氨酸呢,刹不住酶,我们都在用力地活着。)

    \n
    \"\"
    支链酮酸脱氢酶复合物(异三聚体)由三个不同的酶组成,分别是α- 酮酸脱氢酶(E1)、二氢硫酰基转酰基酶(E2)和二氢脂肪酰胺脱氢酶(E3)
    \n
    \"\"
    二氢脂肪酰胺脱氢酶从各个方向观察的构象
    \n

    可以注意到,由支链酮酸脱氢酶复合物中出来的酸已经是与辅酶 A 结合的酰基辅酶 A形态了,而正是这个无法进一步代谢的亚甲基环丙基乙酰辅酶 A导致了后续的一系列酶出了问题,最终导致了低血糖的发生。

    \n

    那么话讲到这里就有同学要问了:老师老师,这个东西到底是怎么导致酶出问题的啊?

    \n

    那我问你,糖异生要不要调控?如果要调控你说这样的话啊?那我问你,那你糖异生怎么调控那我问你……

    \n

    咳咳,不搞抽象了,糖异生的调控主要发生在丙酮酸羧化酶、磷酸烯醇式丙酮酸(PEP)羧激酶、1,6- 二磷酸果糖(F-1,6-BP)磷酸酶这三种酶中,其中丙酮酸羧化酶受到乙酰辅酶 A的正向调控和ADP的负向调控,PEP 羧激酶受ADP的负向调控,F-1,6-BP 磷酸酶受AMP、F-2,6-BP的负向调控和柠檬酸的正向调控。

    \n

    现在问题来了,在进行糖异生的情况下,乙酰辅酶 A 肯定不会是从糖中来,肯定是脂肪酸代谢的结果,但是脂肪酸要形成乙酰辅酶 A 就要进行β氧化,要进行β氧化就需要辅酶 A……诶等等,我辅酶 A 呢?丸辣,辅酶 A 全被变成亚甲基环丙基乙酰辅酶 A了!

    \n

    于是乎,糖异生就被一颗小小的荔枝搞瘫痪了。

    \n

    那么又有同学要问了:老师,用不了葡萄糖我用酮体还不行吗?酮体一样可以穿过血脑屏障啊?

    \n

    问得好,那我问你:酮体是由什么合成的?

    \n
    \"\"
    乙酰乙酸,一看就知道是两个乙酰辅酶 A 缩合而来的。
    \n
    \"\"
    丙酮,由乙酰乙酸自发或酶催化脱羧而来
    \n
    \"\"
    β- 羟基丁酸,由乙酰乙酸还原而来
    \n

    酮体都是由乙酰辅酶 A 直接合成为乙酰乙酰辅酶 A,然后形成 HMG-CoA(β- 羟基 -β- 甲基戊二酸单酰辅酶 A),最后再形成乙酰乙酸这一过程得到的,那么如果没有乙酰辅酶 A,拿什么去合成酮体呢?

    \n

    糖指望不上,酮体也合成不了,人不就低血糖倒了嘛,很正常。

    \n

    以上。

    \n
    \n

    这玩意有肝毒性,不能用来治糖尿病!!!

    \n

    这玩意也会抑制脂肪酸氧化(脂肪酸氧化需要先与辅酶 A 结合为脂酰辅酶 A),不能用来减肥!!!

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782563", - "creator": "", - "pubDate": "Tue, 15 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "6b64eed1da2738771dce46122e27fcd1", - "highlights": [] - }, - { - "title": "孩子因基因突变出生几个月后眼睛变成蓝色,如何从医学角度解释这种现象?哪些因素会导致基因突变?", - "description": "
    \"头图\"/
    \n

    目前当事人已经说明,孩子的蓝眼是由瓦登伯格综合征(Waardenburg Syndrome)引起的。

    \n

    但仍然有网友玩梗说到”“这小孩怕不是混血”的玩笑式推测,如果单看结果,这种推测符合来自对“蓝眼=欧美血统”的印象。

    \n

    不过从医学角度来看,蓝色眼睛并非某一人种的专属特征,也不仅仅是基因突变带来的病理表现。

    \n

    有些宝宝一开始眼睛偏灰偏蓝,随着黑色素增加,会慢慢变深;而也有少数孩子,黑色素合成减少,眼睛反而变浅、变蓝。

    \n

    实际上,蓝眼睛的形成机制要复杂得多。除了特定基因突变导致的病理性浅色虹膜,更多时候,眼睛颜色取决于父母双方遗传给孩子的多个基因组合——这些基因共同决定了色素细胞的数量、活性以及色素的种类和沉积程度。

    \n

    生理性方面,可以以这个顺序来理解:虹膜→肤色 / 血统→黑色素→基因

    \n

    我们来先说下生理的蓝眼睛是如何形成的。新生儿的眼睛颜色和肤色都受到黑色素含量的影响。总体上,浅肤色人群(如白人)新生儿更可能出生时眼睛呈蓝色或灰色,而深肤色人群(如亚洲人、非洲人)则多出生时即为棕色或深色眼睛。

    \n

    一种观点认为,人类眼睛颜色的地理分布可能与光照强度有关。在阳光充足的赤道附近,人群普遍虹膜色素较深,可能有助于阻挡部分紫外线;而在高纬度地区,虹膜颜色较浅,或许有利于增加光线透过率。不过,这仍属于演化假说,目前尚无确凿证据说明人眼色进化是光照压力直接导致的。

    \n

    目前普遍认可虹膜的颜色主要由黑色素含量决定。当黑色素含量高时眼睛呈现棕色,含量低时则呈现蓝色或绿色,不同类型的黑色素以及色素体的密度和结构会影响最终颜色。而再深层次探讨,黑色素又由基因决定,浅肤色人群(如白人)主要是由于OCA2 和 HERC2 基因的变异。

    \n
    \"\"
    \n

    OCA2 编码 P 蛋白,HERC2 某些调控区变异可抑制 OCA2 表达,从而减少黑色素,导致蓝眼形成。简单的来说,就是携带 HERC2 基因的婴儿眼睛呈蓝色,并且倾向于保持蓝色;而携带 OCA2 基因的婴儿眼睛则呈绿色或棕色。

    \n

    Punnett Square(庞尼特方格 / 庞氏表)来预测宝宝的眼睛颜色是很多人常见的做法,但在现代遗传学视角下,这种方法只能作为一个非常初步、简化的工具,实际上没有万无一失的方法。

    \n
    \"\"
    \n

    比如以上这个眼睛颜色预测图(Punnett square )虽然第一组表明两个蓝眼睛的父母极生出棕色眼睛的孩子的概率很低,但如果父母双方都携带棕色眼睛的隐性 DNA 变异,他们的孩子仍然有可能遗传棕色眼睛,毕竟父母的眼睛颜色(表型)不等于他们的基因组合(基因型),在多基因性状中,还有隐藏的等位基因,此外还存在基因互作、调控表达、表观遗传等复杂机制。

    \n

    换句话说,孩子的眼睛颜色,不只是“妈妈是黑眼,爸爸是棕眼”这么简单的加法题,而是涉及复杂的遗传表达和调控机制,不可能完全准确预测。

    \n

    而在某些特殊情况下,比如像本新闻中的瓦登伯格综合征[1],则是由于调控色素合成的关键基因发生突变,导致虹膜黑色素缺失或显著减少,进而呈现出显著的浅蓝或异色双眼。这类改变,虽然稀有,但确实存在于亚洲人群中。

    \n

    瓦登伯格综合征并不是一个生理情况下的蓝眼睛,而是一种罕见的遗传性疾病,主要由基因突变引起,常见的相关基因包括 PAX3、MITF、SOX10 等。

    \n

    这些基因在胚胎发育过程中起着关键作用,当这些基因发生突变时,会影响黑色素细胞的正常发育和功能,产生包括、但不限于——色素沉着异常、听力系统发育障碍等等。当虹膜中黑色素含量减少,光线在虹膜表面发生散射,从而呈现出蓝色。也就是说,瓦登伯格综合征的蓝眼睛是疾病的表现形式之一。

    \n

    那还有没有其他变成蓝眼睛的可能原因呢?当然也有可能。

    \n

    白化病患者由于 OCA2 严重突变导致全身黑色素合成缺陷,虹膜淡蓝、灰色甚至透出眼底血管的颜色。由于患者虹膜因色素缺失,透光性增强,眼睛会对强光异常敏感,所以我们通常建议需佩戴防紫外线眼镜保护眼睛,这也是大家不常注意到他们虹膜的原因。

    \n

    还有一些欧美人的婴儿在出生时眼睛是蓝灰色(因为彩虹膜内的黑色素尚未完全生成或分布,其结构容易让光线散射,造成“蓝色外观”),等随着孩子慢慢长大(一般在出生后 6~12 个月内),随着黑色素合成的进行,眼睛会逐步变为棕色、绿色或保持蓝色。这个就和突变没什么关系了。

    \n

    此外也不能排除环境因素和染色体异常。怀孕期间如果母亲接触到放射线、有害化学物质、某些药物或病毒感染,也可能干扰胎儿 DNA 结构,引起突变。所以这也是为什么产科的医生非常强调孕妇进行遗传咨询和相关检测的原因。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    目前当事人已经说明,孩子的蓝眼是由瓦登伯格综合征(Waardenburg Syndrome)引起的。

    \n

    但仍然有网友玩梗说到”“这小孩怕不是混血”的玩笑式推测,如果单看结果,这种推测符合来自对“蓝眼=欧美血统”的印象。

    \n

    不过从医学角度来看,蓝色眼睛并非某一人种的专属特征,也不仅仅是基因突变带来的病理表现。

    \n

    有些宝宝一开始眼睛偏灰偏蓝,随着黑色素增加,会慢慢变深;而也有少数孩子,黑色素合成减少,眼睛反而变浅、变蓝。

    \n

    实际上,蓝眼睛的形成机制要复杂得多。除了特定基因突变导致的病理性浅色虹膜,更多时候,眼睛颜色取决于父母双方遗传给孩子的多个基因组合——这些基因共同决定了色素细胞的数量、活性以及色素的种类和沉积程度。

    \n

    生理性方面,可以以这个顺序来理解:虹膜→肤色 / 血统→黑色素→基因

    \n

    我们来先说下生理的蓝眼睛是如何形成的。新生儿的眼睛颜色和肤色都受到黑色素含量的影响。总体上,浅肤色人群(如白人)新生儿更可能出生时眼睛呈蓝色或灰色,而深肤色人群(如亚洲人、非洲人)则多出生时即为棕色或深色眼睛。

    \n

    一种观点认为,人类眼睛颜色的地理分布可能与光照强度有关。在阳光充足的赤道附近,人群普遍虹膜色素较深,可能有助于阻挡部分紫外线;而在高纬度地区,虹膜颜色较浅,或许有利于增加光线透过率。不过,这仍属于演化假说,目前尚无确凿证据说明人眼色进化是光照压力直接导致的。

    \n

    目前普遍认可虹膜的颜色主要由黑色素含量决定。当黑色素含量高时眼睛呈现棕色,含量低时则呈现蓝色或绿色,不同类型的黑色素以及色素体的密度和结构会影响最终颜色。而再深层次探讨,黑色素又由基因决定,浅肤色人群(如白人)主要是由于OCA2 和 HERC2 基因的变异。

    \n
    \"\"
    \n

    OCA2 编码 P 蛋白,HERC2 某些调控区变异可抑制 OCA2 表达,从而减少黑色素,导致蓝眼形成。简单的来说,就是携带 HERC2 基因的婴儿眼睛呈蓝色,并且倾向于保持蓝色;而携带 OCA2 基因的婴儿眼睛则呈绿色或棕色。

    \n

    Punnett Square(庞尼特方格 / 庞氏表)来预测宝宝的眼睛颜色是很多人常见的做法,但在现代遗传学视角下,这种方法只能作为一个非常初步、简化的工具,实际上没有万无一失的方法。

    \n
    \"\"
    \n

    比如以上这个眼睛颜色预测图(Punnett square )虽然第一组表明两个蓝眼睛的父母极生出棕色眼睛的孩子的概率很低,但如果父母双方都携带棕色眼睛的隐性 DNA 变异,他们的孩子仍然有可能遗传棕色眼睛,毕竟父母的眼睛颜色(表型)不等于他们的基因组合(基因型),在多基因性状中,还有隐藏的等位基因,此外还存在基因互作、调控表达、表观遗传等复杂机制。

    \n

    换句话说,孩子的眼睛颜色,不只是“妈妈是黑眼,爸爸是棕眼”这么简单的加法题,而是涉及复杂的遗传表达和调控机制,不可能完全准确预测。

    \n

    而在某些特殊情况下,比如像本新闻中的瓦登伯格综合征[1],则是由于调控色素合成的关键基因发生突变,导致虹膜黑色素缺失或显著减少,进而呈现出显著的浅蓝或异色双眼。这类改变,虽然稀有,但确实存在于亚洲人群中。

    \n

    瓦登伯格综合征并不是一个生理情况下的蓝眼睛,而是一种罕见的遗传性疾病,主要由基因突变引起,常见的相关基因包括 PAX3、MITF、SOX10 等。

    \n

    这些基因在胚胎发育过程中起着关键作用,当这些基因发生突变时,会影响黑色素细胞的正常发育和功能,产生包括、但不限于——色素沉着异常、听力系统发育障碍等等。当虹膜中黑色素含量减少,光线在虹膜表面发生散射,从而呈现出蓝色。也就是说,瓦登伯格综合征的蓝眼睛是疾病的表现形式之一。

    \n

    那还有没有其他变成蓝眼睛的可能原因呢?当然也有可能。

    \n

    白化病患者由于 OCA2 严重突变导致全身黑色素合成缺陷,虹膜淡蓝、灰色甚至透出眼底血管的颜色。由于患者虹膜因色素缺失,透光性增强,眼睛会对强光异常敏感,所以我们通常建议需佩戴防紫外线眼镜保护眼睛,这也是大家不常注意到他们虹膜的原因。

    \n

    还有一些欧美人的婴儿在出生时眼睛是蓝灰色(因为彩虹膜内的黑色素尚未完全生成或分布,其结构容易让光线散射,造成“蓝色外观”),等随着孩子慢慢长大(一般在出生后 6~12 个月内),随着黑色素合成的进行,眼睛会逐步变为棕色、绿色或保持蓝色。这个就和突变没什么关系了。

    \n

    此外也不能排除环境因素和染色体异常。怀孕期间如果母亲接触到放射线、有害化学物质、某些药物或病毒感染,也可能干扰胎儿 DNA 结构,引起突变。所以这也是为什么产科的医生非常强调孕妇进行遗传咨询和相关检测的原因。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782571", - "creator": "", - "pubDate": "Tue, 15 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "2232eb02b1f04636ab86673493880117", - "highlights": [] - }, - { - "title": "瞎扯 · 如何正确地吐槽", - "description": "
    \"头图\"/
    \n\n
    \n
    @执笔顾长安 :奶酪体,荧光笔,每次考试必垫底; 狗爬体,借的笔,一问成绩六百几。
    \n
    \n\n
    \n
    @将浊 :不知道啊,学校里说南京打江苏,我就去了。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @知知 :小时候想养猫,费尽千辛万苦说服家长。 当时给出的理由是:「猫长大了可以抓老鼠。」 结果猫长大了……他不会抓老鼠…… 有次听到奶奶和别人聊天说,这猫不会抓老鼠,干脆哪天送走得了。 给我急得,自己抓了三只老鼠,用绳子把它们勒死,再送到隔壁猫嘴下求(逼)他啃几口,再扔自己家猫窝里 第二天给我奶奶惊呆了,逢人就说 不抓而已,一抓就是三只……
    \n
    \n\n
    \n
    @柠檬螃小蟹 :初看此图当笑话,结果我们公司就是这么干的!
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @煮自己的唐僧 :你见过骨科手术嘛。 这么说吧。 骨科本质就是比较注重卫生的木匠。
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n\n
    \n
    @执笔顾长安 :奶酪体,荧光笔,每次考试必垫底; 狗爬体,借的笔,一问成绩六百几。
    \n
    \n\n
    \n
    @将浊 :不知道啊,学校里说南京打江苏,我就去了。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @知知 :小时候想养猫,费尽千辛万苦说服家长。 当时给出的理由是:「猫长大了可以抓老鼠。」 结果猫长大了……他不会抓老鼠…… 有次听到奶奶和别人聊天说,这猫不会抓老鼠,干脆哪天送走得了。 给我急得,自己抓了三只老鼠,用绳子把它们勒死,再送到隔壁猫嘴下求(逼)他啃几口,再扔自己家猫窝里 第二天给我奶奶惊呆了,逢人就说 不抓而已,一抓就是三只……
    \n
    \n\n
    \n
    @柠檬螃小蟹 :初看此图当笑话,结果我们公司就是这么干的!
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @煮自己的唐僧 :你见过骨科手术嘛。 这么说吧。 骨科本质就是比较注重卫生的木匠。
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782554", - "creator": "", - "pubDate": "Mon, 14 Jul 2025 08:27:04 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "e31c61c2e82cba6d6292e51dd346799d", - "highlights": [] - }, - { - "title": "父母会嫉妒自己的子女吗?为什么?", - "description": "
    \"头图\"/
    \n
    “你也得吃点苦,才知道生活不容易。”
    “我小时候哪有你这待遇?”
    “我妈也从来不管我,我不也长大了?”
    “这有什么的,我也是这么被养大的,我不也好好吗?”
    \n

    心理咨询中,父母可能会这样说。但真的是这样吗,你真的“好好的”吗?这听起来像是在自证,实际上却往往是对伤痛的否认与传递。

    \n

    这些说辞的背后,是父母不愿被看见的伤痛,因为从未被真正处理过,就只能以另一种形式延续下去。心理创伤不会因为扛过来了就自动痊愈,反而可能成为父母控制孩子、否定孩子、阻碍孩子发展的潜在动力。

    \n

    而那些看起来毫无道理的控制与打压的行为,背后往往藏着人性中最复杂的情绪之一——父母对孩子的嫉妒。

    \n

    01 隐藏在爱背后的嫉妒

    \n

    “你还真会享受。”

    \n

    听起来好像是父母在感叹孩子的美好生活,但可能隐藏着嫉妒的情绪。更准确地说,是一种混杂了悲伤、羡慕、愤怒、失落、无力的复杂感受。

    \n

    当一个孩子有了父母从未拥有过的幸福、自由和选择权,这对父母来说,可能不只会带来欣慰的感觉,还可能是一种提醒:我从未拥有过这些,我失去了我的幸福,而你有了。

    \n

    就像一个小时候饿过很久的人,即使现在已经不用饿肚子了,但看到别的小孩丰盛地吃着饭,会不由自主地泛起不满:你咋这么幸运呢,凭什么?孩子的快乐,在一些父母眼中,是不公平的证据。

    \n

    他们感到自己的苦无人知晓,也会怀疑:“孩子是不是就此要离开我了?”他们焦虑,随着孩子越发独立自主和成功,自己可能就再也无法掌控这个孩子了。

    \n

    于是,孩子想走向光亮的一步,就被一句“我看也不过如此。”泼了冷水。孩子想分享自己的幸福,就换来一句“你可真会享福,我可享不到这些喽”的阴阳怪气。

    \n

    这种情绪的核心,不是不够爱孩子,而是创伤太深。

    \n

    02 “你比我幸福,那我算什么?”

    \n

    在一些家庭中,父母对子女的态度夹杂着微妙的竞争色彩。

    \n

    有时是回避或拒绝帮助:

    \n
    “我小时候也没人帮我。”
    \n

    有时是明目张胆的控制:

    \n
    “你听我的就不会错。”
    \n

    有时则是更隐秘的拉扯:

    \n
    “你以为你现在就比我强了吗?”
    \n

    他们并不是在计较一顿饭或者一句赞扬。

    \n

    他们在意的可能是:你是否正在活出我从未拥有过的人生?这会让一些父母觉得自己失败、无力、被超越,而这一切,恰好都是他们最害怕面对的情绪。

    \n

    最常见的解决方式不是面对自己的伤痛和失败,因为这太痛苦了,更轻松的方法是把孩子“拉下来”,用否定、指责、打压的方式,恢复自己对孩子的掌控感。

    \n

    潜意识中,如果孩子永远不超过他们、依赖他们,他们会更好受。

    \n

    03 孩子不是附属品,更不是补偿

    \n

    一位母亲说:“孩子拥有了我没拥有过的一切,就像是我的幸福被抢走了一样。

    \n

    这并不是她不爱孩子,而是她内心那个委屈的小孩从未有机会疗愈。

    \n

    自体心理学中称之为“自体虚弱”,他们从小缺乏被理解、被肯定的经验,内心长时间处于压抑和否认的状态,所以只能通过孩子的依赖,来补偿自己的匮乏。当孩子不再需要他们时,他们就会感到无比痛苦、无价值,甚至失控。

    \n

    于是,一些父母会将孩子当作自己的延伸,必须听话、忠诚、感恩。他们很难接受孩子的分化、独立,更不能接受孩子“不属于自己”。

    \n

    但孩子是独立的个体,他们不是父母未竟梦想的载体,也不是父母人生的安慰奖。

    \n

    04 “我爸妈见不得我好”,这不是错觉

    \n

    “我爸妈见不得我开心,每次我有点好事,他们就要来挑刺。”

    \n

    “有一次我正在超级开心的疯玩儿,妈妈突然过来揪住我说:我小时候从来不会像你这样胡闹。”

    \n

    这些声音反映了孩子真实的情感创伤:自己最初的欢欣和成就,常常换来的不是父母的共鸣和欣慰,而是冷漠与怀疑,甚至打压。

    \n

    于是这些孩子开始学会报喜不报忧、降低存在感,学会为了换取爱而牺牲自己的一部分。久而久之,成就带来愧疚,幸福也会带来不安。

    \n

    这并不正常,这是因为你习惯了隐藏,害怕真实的自己会“太刺眼”,引来不满或攻击。

    \n

    05 “背叛”父母,是一种必要的成长

    \n

    如果你成长在这样的环境中,请先告诉自己一件事:你没有疯,你没错。

    \n

    你所感受到的那些嫉妒、控制、冷漠、否定,是真实存在的情感,它们对你产生了影响,而这不是你的责任。你不需要强迫自己原谅和理解,不需要合理化那些伤害。你首先需要的是:看见自己,接纳自己。

    \n

    看见父母也是受伤的个体,但不代表你要继续承受他们的伤痛。看见那些控制背后的无力和痛苦,但不代表你要牺牲自己来安抚他们的脆弱。看见那句“我小时候也这样”,其实不是教育方式的证明,而是创伤的延续。

    \n

    改变,不是反抗父母,而是开始选择为自己而活。当你试图做回自己,找到自己时,你可能会感到一种对父母的背叛感,但这不是对父母的抛弃,而是对自己的诚实,不必愧疚。

    \n

    你会开始设定边界,明确告诉自己哪些是你愿意接受的,哪些不是。你会不再急于讨好,不再急于证明,不再把自己的生活建立在“获得他们认可”的基础上。

    \n

    学着为自己的情绪负责,不再无条件承接他们的情绪。当遭遇贬低、抱怨或嘲讽时,区分“这是他们的课题”而非你的缺陷,不再自责、压抑、或陷入争辩的漩涡。

    \n

    你会发现,当你真的不再执着于父母的爱与认可,你反而更有能力去理解和拥抱他们,也更能看到他们曾经的局限。

    \n

    因为你终于从他们的影子里,走出来了。

    \n

    06 孩子是镜子,让我们看见自己

    \n

    对于父母来说,孩子常常像一面镜子,照见我们内心深处那些未曾被满足的愿望。看到孩子无拘无束地表达自己、追求喜欢的事物,我们有时会泛起复杂的情绪。那不是恨,而是对自己某些被压抑太久的渴望的隐隐心疼。

    \n

    孩子的自由,是我未曾拥有过的自由。孩子的快乐,是我曾被剥夺过的快乐。孩子的强大,是我渴望又无法实现的强大。

    \n

    但这面镜子并不是来指责的,而是来提醒的。孩子不仅带着我们向前走,也让我们回头看,他们唤醒了我们未竟的部分。当我们愿意看见自己,承认那份遗憾,也许就能不再被这些情绪带着走。

    \n

    你眼中看似比你幸福一百倍的孩子,也必然有他们自己需要去面对的痛苦和缺憾。在苦难面前,父母和孩子都是无辜的、需要被爱的人。只有当你愿意面对那个不完美的自己,接纳自己缺憾的人生,才能真正停止对孩子的控制和投射。

    \n

    而我们自己,也才能开始活出属于自己的人生。

    \n

    * 相关阅读推荐

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态? - 知乎

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态?

    \n
    \"\"
    \n

    文 / 红树林心理咨询中心 吴凡

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", - "content": "
    \"头图\"/
    \n
    “你也得吃点苦,才知道生活不容易。”
    “我小时候哪有你这待遇?”
    “我妈也从来不管我,我不也长大了?”
    “这有什么的,我也是这么被养大的,我不也好好吗?”
    \n

    心理咨询中,父母可能会这样说。但真的是这样吗,你真的“好好的”吗?这听起来像是在自证,实际上却往往是对伤痛的否认与传递。

    \n

    这些说辞的背后,是父母不愿被看见的伤痛,因为从未被真正处理过,就只能以另一种形式延续下去。心理创伤不会因为扛过来了就自动痊愈,反而可能成为父母控制孩子、否定孩子、阻碍孩子发展的潜在动力。

    \n

    而那些看起来毫无道理的控制与打压的行为,背后往往藏着人性中最复杂的情绪之一——父母对孩子的嫉妒。

    \n

    01 隐藏在爱背后的嫉妒

    \n

    “你还真会享受。”

    \n

    听起来好像是父母在感叹孩子的美好生活,但可能隐藏着嫉妒的情绪。更准确地说,是一种混杂了悲伤、羡慕、愤怒、失落、无力的复杂感受。

    \n

    当一个孩子有了父母从未拥有过的幸福、自由和选择权,这对父母来说,可能不只会带来欣慰的感觉,还可能是一种提醒:我从未拥有过这些,我失去了我的幸福,而你有了。

    \n

    就像一个小时候饿过很久的人,即使现在已经不用饿肚子了,但看到别的小孩丰盛地吃着饭,会不由自主地泛起不满:你咋这么幸运呢,凭什么?孩子的快乐,在一些父母眼中,是不公平的证据。

    \n

    他们感到自己的苦无人知晓,也会怀疑:“孩子是不是就此要离开我了?”他们焦虑,随着孩子越发独立自主和成功,自己可能就再也无法掌控这个孩子了。

    \n

    于是,孩子想走向光亮的一步,就被一句“我看也不过如此。”泼了冷水。孩子想分享自己的幸福,就换来一句“你可真会享福,我可享不到这些喽”的阴阳怪气。

    \n

    这种情绪的核心,不是不够爱孩子,而是创伤太深。

    \n

    02 “你比我幸福,那我算什么?”

    \n

    在一些家庭中,父母对子女的态度夹杂着微妙的竞争色彩。

    \n

    有时是回避或拒绝帮助:

    \n
    “我小时候也没人帮我。”
    \n

    有时是明目张胆的控制:

    \n
    “你听我的就不会错。”
    \n

    有时则是更隐秘的拉扯:

    \n
    “你以为你现在就比我强了吗?”
    \n

    他们并不是在计较一顿饭或者一句赞扬。

    \n

    他们在意的可能是:你是否正在活出我从未拥有过的人生?这会让一些父母觉得自己失败、无力、被超越,而这一切,恰好都是他们最害怕面对的情绪。

    \n

    最常见的解决方式不是面对自己的伤痛和失败,因为这太痛苦了,更轻松的方法是把孩子“拉下来”,用否定、指责、打压的方式,恢复自己对孩子的掌控感。

    \n

    潜意识中,如果孩子永远不超过他们、依赖他们,他们会更好受。

    \n

    03 孩子不是附属品,更不是补偿

    \n

    一位母亲说:“孩子拥有了我没拥有过的一切,就像是我的幸福被抢走了一样。

    \n

    这并不是她不爱孩子,而是她内心那个委屈的小孩从未有机会疗愈。

    \n

    自体心理学中称之为“自体虚弱”,他们从小缺乏被理解、被肯定的经验,内心长时间处于压抑和否认的状态,所以只能通过孩子的依赖,来补偿自己的匮乏。当孩子不再需要他们时,他们就会感到无比痛苦、无价值,甚至失控。

    \n

    于是,一些父母会将孩子当作自己的延伸,必须听话、忠诚、感恩。他们很难接受孩子的分化、独立,更不能接受孩子“不属于自己”。

    \n

    但孩子是独立的个体,他们不是父母未竟梦想的载体,也不是父母人生的安慰奖。

    \n

    04 “我爸妈见不得我好”,这不是错觉

    \n

    “我爸妈见不得我开心,每次我有点好事,他们就要来挑刺。”

    \n

    “有一次我正在超级开心的疯玩儿,妈妈突然过来揪住我说:我小时候从来不会像你这样胡闹。”

    \n

    这些声音反映了孩子真实的情感创伤:自己最初的欢欣和成就,常常换来的不是父母的共鸣和欣慰,而是冷漠与怀疑,甚至打压。

    \n

    于是这些孩子开始学会报喜不报忧、降低存在感,学会为了换取爱而牺牲自己的一部分。久而久之,成就带来愧疚,幸福也会带来不安。

    \n

    这并不正常,这是因为你习惯了隐藏,害怕真实的自己会“太刺眼”,引来不满或攻击。

    \n

    05 “背叛”父母,是一种必要的成长

    \n

    如果你成长在这样的环境中,请先告诉自己一件事:你没有疯,你没错。

    \n

    你所感受到的那些嫉妒、控制、冷漠、否定,是真实存在的情感,它们对你产生了影响,而这不是你的责任。你不需要强迫自己原谅和理解,不需要合理化那些伤害。你首先需要的是:看见自己,接纳自己。

    \n

    看见父母也是受伤的个体,但不代表你要继续承受他们的伤痛。看见那些控制背后的无力和痛苦,但不代表你要牺牲自己来安抚他们的脆弱。看见那句“我小时候也这样”,其实不是教育方式的证明,而是创伤的延续。

    \n

    改变,不是反抗父母,而是开始选择为自己而活。当你试图做回自己,找到自己时,你可能会感到一种对父母的背叛感,但这不是对父母的抛弃,而是对自己的诚实,不必愧疚。

    \n

    你会开始设定边界,明确告诉自己哪些是你愿意接受的,哪些不是。你会不再急于讨好,不再急于证明,不再把自己的生活建立在“获得他们认可”的基础上。

    \n

    学着为自己的情绪负责,不再无条件承接他们的情绪。当遭遇贬低、抱怨或嘲讽时,区分“这是他们的课题”而非你的缺陷,不再自责、压抑、或陷入争辩的漩涡。

    \n

    你会发现,当你真的不再执着于父母的爱与认可,你反而更有能力去理解和拥抱他们,也更能看到他们曾经的局限。

    \n

    因为你终于从他们的影子里,走出来了。

    \n

    06 孩子是镜子,让我们看见自己

    \n

    对于父母来说,孩子常常像一面镜子,照见我们内心深处那些未曾被满足的愿望。看到孩子无拘无束地表达自己、追求喜欢的事物,我们有时会泛起复杂的情绪。那不是恨,而是对自己某些被压抑太久的渴望的隐隐心疼。

    \n

    孩子的自由,是我未曾拥有过的自由。孩子的快乐,是我曾被剥夺过的快乐。孩子的强大,是我渴望又无法实现的强大。

    \n

    但这面镜子并不是来指责的,而是来提醒的。孩子不仅带着我们向前走,也让我们回头看,他们唤醒了我们未竟的部分。当我们愿意看见自己,承认那份遗憾,也许就能不再被这些情绪带着走。

    \n

    你眼中看似比你幸福一百倍的孩子,也必然有他们自己需要去面对的痛苦和缺憾。在苦难面前,父母和孩子都是无辜的、需要被爱的人。只有当你愿意面对那个不完美的自己,接纳自己缺憾的人生,才能真正停止对孩子的控制和投射。

    \n

    而我们自己,也才能开始活出属于自己的人生。

    \n

    * 相关阅读推荐

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态? - 知乎

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态?

    \n
    \"\"
    \n

    文 / 红树林心理咨询中心 吴凡

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", - "category": "", - "link": "https://daily.zhihu.com/story/9782536", - "creator": "", - "pubDate": "Mon, 14 Jul 2025 08:27:04 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "e1cdb642d7fa16d2ca26c309c22c9f18", - "highlights": [] - }, - { - "title": "如果一个行星有两个或者多个大型封闭水域,那么这些水域到底算是海洋还是湖?", - "description": "
    \"头图\"/
    \n

    谢邀,私以为现代地球科学(这是一门学科名称)当中海洋和湖的定义适用范围还是比较限定于地球这一独特的环境,所以这个问题确实挺值得讨论的,我认为异星的海和湖或许需要因“异”制宜来看待,不能按地球的湖海原本定义生搬硬套。那些广袤无垠,站在岸边无法一眼看到对岸的巨型水体,称之为海又何妨呢。

    \n
    \"\"
    NASA 拍摄的地球照片,比起“陆地”覆盖地球表面积的分量,或许我们这颗星球应该叫做“海球”。
    \n

    众所周知,地球上各大洋是联通的,无比宽广的水体包围着作为少数的陆地,海洋占据了约 71%的地球表面积;正是因为海洋无比广大,而且还相互连通,连续水体的大小压倒性的压制住了其他次要分类条件,故我们可以把这个连续的水体称之为海,通过水体的连续性来划分海洋和内陆湖泊。

    \n
    \"\"
    为了展现海洋连贯性而创作的 Spilhaus 投影,网图侵删。
    \n

    当然,里海也被称之为海,不过就因为是否与大洋相连续这一问题,他被划分到了内陆咸水湖当中。里海他曾经也是和包裹陆地的那个巨大连续水体相连的,后面因为地质变化,特提斯海的遗存与大洋之间的联系被切断,就变成了帕拉特提斯湖;帕拉特提斯湖曾是世界上最大湖,不过后续的地质变化也让帕拉特提斯湖其中一部分寻回了和大海的联系,形成了现在的黑海,而另一个大的部分就形成了现在的里海。

    \n
    \"\"
    帕拉特提斯湖巨湖,网图侵删。
    \n

    因为里海曾经作为大洋的一部分,其环境生态和海洋十分相似,水质也是类似海洋的咸水,甚至还有大量海栖生物生活。如果忽略与大洋之间的连续这一条件,里海有着大量与其他海洋的相似性,里海当然是可以被归纳成海,这也是其名称当中保留了“海”的一个原因。

    \n
    \"\"
    里海海豹,截取自 ICUN 的网站,该物种现在因为生存环境的恶化陷入濒危。
    \n

    要注意的是,这里的连续性应不止是“空间”上的连续,海水成分和咸度与密度等性状也存在一定的连续性。虽然有时候海水当中也会存在密度骤变的“负密度梯度跃变层”这样的特殊的“海底断崖”(会让潜艇发生事故)以及不同海域之间可能也会存在一定的分异,但是一般而言海水的密度、成分、咸度等还是变化幅度较小呈现一定连续性的,这些特征都和淡水河湖等水体存在不小的差异。

    \n
    \"\"
    Landsat 5 卫星在 2010 年拍摄的长江入海口遥感图像(LT51180382010313BJC00),色彩是合成的假彩色有所失真,但是还是可以看到长江和东海存在明显的过渡带与差异。
    \n

    虽然海洋和河流的水域切分还是很难明确画出一个明确界限的,且因为潮汐洋流等原因,江河和海洋的过渡带还是动态变化的,甚至海洋还会发生海水倒灌侵占河流(如海河据称就是因为在现代造闸之前经常被大量海水侵入导致河水呈现出咸苦等特征而得名的),但明确江河与海的界限可能最后还可能更接近水力学与分形的问题,与题关系不大不在展开。

    \n

    扯远了,回归正题,前述的基于地球上海洋连续性的判定方式,抑或是将星球上最大的连续水体称之为海的行为,在异星球,恐怕就失去了意义;地球的海洋肯定无法超距连接到异星球的水体,而其他星球上有着占据表面超一半的水体的情况也可能不多见,题设条件显然也不满足这样的条件。

    \n

    在探索外层空间的过程中,外星球“地理”恐怕还是得用一些不局限于地球的方式来进行判定。不过这方面的建设我也不是非常了解,但是可以知道现在的学者们在地球外将很多水体归类成海洋,哪怕这些“海洋”和地球海洋特征大相径庭。

    \n

    木卫二大概是一个与地球海洋相近的例子(虽然是和题设不同),其冰下可能存在一个能包裹全球的巨型连续水体,而且可能是含氯化钠的咸水。如果学者们的拟构的木卫结构为真,在水体的覆盖面积和连续性上,木卫二的冰下巨型水体那可是当之无愧的海洋。

    \n
    \"\"
    木卫二“欧罗巴”的构造推测,可能其表层的冰壳下存在一个非常深邃包裹全纬线的海洋。(网图侵删)
    \n

    当然木卫二的“海洋”是在冰下,在环境上与地球海洋还是大相径庭,这也不影响学者们将其归纳成海洋,顺带一说有不少学者期待能在上面找到生命迹象。这样的“海洋”不止会出现在在木卫二,土卫二、木卫三和木卫四都可能存在。

    \n
    \"\"
    木卫二的冰下海洋结构示意图,网图侵删。
    \n

    书归正题,回到题设当中来看,“如果一个行星几个水体都很广阔且互不连通呢,或者不连通的水体有大有小,该怎么定义湖和海”,这样能占据一半星球表面积具有压倒性占比的连续水体应并不存在,所以地球的经验就很难套用过来了。

    \n

    在这种的特殊限定条件下,缺失了能压倒性压制其他条件的那个最重要的条件(海洋的面积),仔细分类海和湖可能意义并不会非常大,或许,这将会变成一种归纳的问题与命名学的问题。

    \n

    没有那个压倒性的条件,我们可以根据水是否含有氯化钠、氯化钠的含量、水能否直接给人饮用、是否可以放养海栖生物、密度是否大于人体等众多条件分门别类的分出一大堆水体种类,分类为“湖”“海”“亚湖”“巨湖”“微洋”“淡海”“海海”等一系列乱七八糟的种类,而且这样的种类可能除了特定研究并无太大的意义。

    \n

    有人说从有无“内外流”河来区分,但是外流本身就是基于已经确定了海洋后以更大面积的海洋为外所定下的概念,基于内外流来区分海洋只会是循环论证。缺少了面积断崖式领先的水体,哪会有“内外”之分呢?甚至通过 Spilhaus 投影来理解地球,我们甚至能认为海洋被陆地包裹着,都不需要题设的补充条件把太平洋围起来。而且地球 46 亿年的海陆变迁也非常巨大,往昔的特提斯海今天变成了特提斯成山带(青藏高原就是这个成山带的重要现今组成部分)和诸多海迹湖,哪怕地球的海洋也不是一成不变的。

    \n
    \"\"
    古特提斯洋,在“盘古大陆”(Pangea,直译泛大陆)时期作为被大陆半包围的海洋而存在,因地质运动昔日的海洋变成了今天的高山峻岭和一些海迹湖。(网图侵删)
    \n

    而从命名学的方式来看,我认为只要是广袤无垠一眼无法看到对岸的巨型水体,都能可以叫成海,而这种方式其实自古就存在,甚至不少语言当中湖海曾经用同一个词就能表示,抑或是能互相混用取代;汉语当中也有很多把湖泊命名为海的地名留存,我还曾经在昆明滇池(亦名滇海)畔看过“海鸥”(红嘴鸥)。

    \n

    这些只是我的浅薄之见,或许以后会出现什么划定异星湖海的必要吧,但我觉得题设当中出现的多个不连续的水体都叫海其实并没有问题,不需要在意异星的湖海之分,真要分可能还是大小和成分咸淡比较重要吧。而且作为地名而言,一个 XX 海在标志地点和位置之外,他究竟是不是海,重要吗?16 世纪时就有学者给月球朝向地球的面起了一堆湖海的名字,并且这些名字在今天仍然在使用。

    \n
    \"\"
    月球表面有大量以“海”命名的地理单元,被统称为“月海”。(网图侵删)
    \n

    说句题外话,土卫六和金星表面存在不少流动液体,其表面和内部的流动液体被不少学者称为“甲烷海”(或许成分还有其他有机物),也就是说是否可以认为主要成分是否是“H2O”也不干扰分类湖海呢?你的下一个海,又何必是“海”?

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    谢邀,私以为现代地球科学(这是一门学科名称)当中海洋和湖的定义适用范围还是比较限定于地球这一独特的环境,所以这个问题确实挺值得讨论的,我认为异星的海和湖或许需要因“异”制宜来看待,不能按地球的湖海原本定义生搬硬套。那些广袤无垠,站在岸边无法一眼看到对岸的巨型水体,称之为海又何妨呢。

    \n
    \"\"
    NASA 拍摄的地球照片,比起“陆地”覆盖地球表面积的分量,或许我们这颗星球应该叫做“海球”。
    \n

    众所周知,地球上各大洋是联通的,无比宽广的水体包围着作为少数的陆地,海洋占据了约 71%的地球表面积;正是因为海洋无比广大,而且还相互连通,连续水体的大小压倒性的压制住了其他次要分类条件,故我们可以把这个连续的水体称之为海,通过水体的连续性来划分海洋和内陆湖泊。

    \n
    \"\"
    为了展现海洋连贯性而创作的 Spilhaus 投影,网图侵删。
    \n

    当然,里海也被称之为海,不过就因为是否与大洋相连续这一问题,他被划分到了内陆咸水湖当中。里海他曾经也是和包裹陆地的那个巨大连续水体相连的,后面因为地质变化,特提斯海的遗存与大洋之间的联系被切断,就变成了帕拉特提斯湖;帕拉特提斯湖曾是世界上最大湖,不过后续的地质变化也让帕拉特提斯湖其中一部分寻回了和大海的联系,形成了现在的黑海,而另一个大的部分就形成了现在的里海。

    \n
    \"\"
    帕拉特提斯湖巨湖,网图侵删。
    \n

    因为里海曾经作为大洋的一部分,其环境生态和海洋十分相似,水质也是类似海洋的咸水,甚至还有大量海栖生物生活。如果忽略与大洋之间的连续这一条件,里海有着大量与其他海洋的相似性,里海当然是可以被归纳成海,这也是其名称当中保留了“海”的一个原因。

    \n
    \"\"
    里海海豹,截取自 ICUN 的网站,该物种现在因为生存环境的恶化陷入濒危。
    \n

    要注意的是,这里的连续性应不止是“空间”上的连续,海水成分和咸度与密度等性状也存在一定的连续性。虽然有时候海水当中也会存在密度骤变的“负密度梯度跃变层”这样的特殊的“海底断崖”(会让潜艇发生事故)以及不同海域之间可能也会存在一定的分异,但是一般而言海水的密度、成分、咸度等还是变化幅度较小呈现一定连续性的,这些特征都和淡水河湖等水体存在不小的差异。

    \n
    \"\"
    Landsat 5 卫星在 2010 年拍摄的长江入海口遥感图像(LT51180382010313BJC00),色彩是合成的假彩色有所失真,但是还是可以看到长江和东海存在明显的过渡带与差异。
    \n

    虽然海洋和河流的水域切分还是很难明确画出一个明确界限的,且因为潮汐洋流等原因,江河和海洋的过渡带还是动态变化的,甚至海洋还会发生海水倒灌侵占河流(如海河据称就是因为在现代造闸之前经常被大量海水侵入导致河水呈现出咸苦等特征而得名的),但明确江河与海的界限可能最后还可能更接近水力学与分形的问题,与题关系不大不在展开。

    \n

    扯远了,回归正题,前述的基于地球上海洋连续性的判定方式,抑或是将星球上最大的连续水体称之为海的行为,在异星球,恐怕就失去了意义;地球的海洋肯定无法超距连接到异星球的水体,而其他星球上有着占据表面超一半的水体的情况也可能不多见,题设条件显然也不满足这样的条件。

    \n

    在探索外层空间的过程中,外星球“地理”恐怕还是得用一些不局限于地球的方式来进行判定。不过这方面的建设我也不是非常了解,但是可以知道现在的学者们在地球外将很多水体归类成海洋,哪怕这些“海洋”和地球海洋特征大相径庭。

    \n

    木卫二大概是一个与地球海洋相近的例子(虽然是和题设不同),其冰下可能存在一个能包裹全球的巨型连续水体,而且可能是含氯化钠的咸水。如果学者们的拟构的木卫结构为真,在水体的覆盖面积和连续性上,木卫二的冰下巨型水体那可是当之无愧的海洋。

    \n
    \"\"
    木卫二“欧罗巴”的构造推测,可能其表层的冰壳下存在一个非常深邃包裹全纬线的海洋。(网图侵删)
    \n

    当然木卫二的“海洋”是在冰下,在环境上与地球海洋还是大相径庭,这也不影响学者们将其归纳成海洋,顺带一说有不少学者期待能在上面找到生命迹象。这样的“海洋”不止会出现在在木卫二,土卫二、木卫三和木卫四都可能存在。

    \n
    \"\"
    木卫二的冰下海洋结构示意图,网图侵删。
    \n

    书归正题,回到题设当中来看,“如果一个行星几个水体都很广阔且互不连通呢,或者不连通的水体有大有小,该怎么定义湖和海”,这样能占据一半星球表面积具有压倒性占比的连续水体应并不存在,所以地球的经验就很难套用过来了。

    \n

    在这种的特殊限定条件下,缺失了能压倒性压制其他条件的那个最重要的条件(海洋的面积),仔细分类海和湖可能意义并不会非常大,或许,这将会变成一种归纳的问题与命名学的问题。

    \n

    没有那个压倒性的条件,我们可以根据水是否含有氯化钠、氯化钠的含量、水能否直接给人饮用、是否可以放养海栖生物、密度是否大于人体等众多条件分门别类的分出一大堆水体种类,分类为“湖”“海”“亚湖”“巨湖”“微洋”“淡海”“海海”等一系列乱七八糟的种类,而且这样的种类可能除了特定研究并无太大的意义。

    \n

    有人说从有无“内外流”河来区分,但是外流本身就是基于已经确定了海洋后以更大面积的海洋为外所定下的概念,基于内外流来区分海洋只会是循环论证。缺少了面积断崖式领先的水体,哪会有“内外”之分呢?甚至通过 Spilhaus 投影来理解地球,我们甚至能认为海洋被陆地包裹着,都不需要题设的补充条件把太平洋围起来。而且地球 46 亿年的海陆变迁也非常巨大,往昔的特提斯海今天变成了特提斯成山带(青藏高原就是这个成山带的重要现今组成部分)和诸多海迹湖,哪怕地球的海洋也不是一成不变的。

    \n
    \"\"
    古特提斯洋,在“盘古大陆”(Pangea,直译泛大陆)时期作为被大陆半包围的海洋而存在,因地质运动昔日的海洋变成了今天的高山峻岭和一些海迹湖。(网图侵删)
    \n

    而从命名学的方式来看,我认为只要是广袤无垠一眼无法看到对岸的巨型水体,都能可以叫成海,而这种方式其实自古就存在,甚至不少语言当中湖海曾经用同一个词就能表示,抑或是能互相混用取代;汉语当中也有很多把湖泊命名为海的地名留存,我还曾经在昆明滇池(亦名滇海)畔看过“海鸥”(红嘴鸥)。

    \n

    这些只是我的浅薄之见,或许以后会出现什么划定异星湖海的必要吧,但我觉得题设当中出现的多个不连续的水体都叫海其实并没有问题,不需要在意异星的湖海之分,真要分可能还是大小和成分咸淡比较重要吧。而且作为地名而言,一个 XX 海在标志地点和位置之外,他究竟是不是海,重要吗?16 世纪时就有学者给月球朝向地球的面起了一堆湖海的名字,并且这些名字在今天仍然在使用。

    \n
    \"\"
    月球表面有大量以“海”命名的地理单元,被统称为“月海”。(网图侵删)
    \n

    说句题外话,土卫六和金星表面存在不少流动液体,其表面和内部的流动液体被不少学者称为“甲烷海”(或许成分还有其他有机物),也就是说是否可以认为主要成分是否是“H2O”也不干扰分类湖海呢?你的下一个海,又何必是“海”?

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782544", - "creator": "", - "pubDate": "Mon, 14 Jul 2025 08:27:04 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "a97ef9968a92ae187b5b89a1814fc818", - "highlights": [] - }, - { - "title": "孩子只在父母面前「情绪失控」,在外却近乎「完美」,正常吗?该如何引导?", - "description": "
    \"头图\"/
    \n

    弗洛伊德认为:“攻击性如同是一个人的生命力,如果一个人不能活出自己的攻击性,就会出现心理问题。”

    \n

    即使环境很糟糕,只要一个人能够正常表达攻击性,就能够保护自我不受外界蹂躏。

    \n

    心理学研究表明:孩子在很小的时候会强烈地依恋父母或其他养育者,当孩子接触外部世界时,失去这种依恋会使他产生一种不安全感,从而使孩子胆小。

    \n

    但是如果孩子上学以后对外界表现出过分“完美”“懂事”“胆怯”,很大可能就是家庭教育的问题。

    \n

    我邻居家的孩子就是这样,在家里,脾气大得惊人。和妈妈顶嘴,对弟弟妹妹呼来喝去,翻脸比翻书还快。

    \n

    爸妈一说他一句,他能当场怼回几句,搞得全家都不安生。

    \n

    可一旦出了门,到了学校或者外人面前,立马变脸。

    \n

    不说话,胆小,做事缩手缩脚,老师点个名都吓一跳,像换了个人。

    \n

    说白了,孩子在家里发横,是因为他知道自己“横得起”;在外面发怂,是因为他不知道能不能“撑得住”。

    \n

    而这种反差,很多时候不是性格问题,是家庭结构的问题。

    \n

    家长要反思自己给孩子是否创造了足够安全的生活环境。例如:夫妻之间的吵架、对孩子言语的伤害或者是过度保护孩子,都是有可能让孩子出现这一表现的原因。

    \n

    如果想要改变,从这五点做起吧!

    \n

    一、不过分溺爱,做有原则有底线的父母

    \n

    “爱孩子”和“立规矩”,从来不是一道单选题。

    \n

    明确规则,不被孩子牵着鼻子走,不能因为孩子哭闹,就主动打破规则的执行,和善而坚定地对孩子说“不”。让孩子明白,边界感的所在。

    \n
    \"\"
    在孩子的成长过程中,要让他知道:除了爱之外,还要有敬畏
    \n

    二、每天花 15 分钟的时间和孩子聊天,问问他,学校都发生了什么。

    \n

    三、每周抽时间给孩子拍一段视频,让他听自己的声音,看自己的表现,发现问题及时调整。

    \n
    \"\"
    \n

    四、周末邀请孩子的好朋友到家里来玩,给孩子创造多种社交机会和条件,提升孩子的社交能力。

    \n

    五、在孩子愿意的前提下,给孩子创造一些上台表演的机会,通过正向的实践提升孩子的自信心。

    \n
    \"\"
    提升孩子自信心的 5 句话
    \n

    亲测,这几个方法对提高孩子自信心,让孩子变得有原则有担当非常有帮助。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    弗洛伊德认为:“攻击性如同是一个人的生命力,如果一个人不能活出自己的攻击性,就会出现心理问题。”

    \n

    即使环境很糟糕,只要一个人能够正常表达攻击性,就能够保护自我不受外界蹂躏。

    \n

    心理学研究表明:孩子在很小的时候会强烈地依恋父母或其他养育者,当孩子接触外部世界时,失去这种依恋会使他产生一种不安全感,从而使孩子胆小。

    \n

    但是如果孩子上学以后对外界表现出过分“完美”“懂事”“胆怯”,很大可能就是家庭教育的问题。

    \n

    我邻居家的孩子就是这样,在家里,脾气大得惊人。和妈妈顶嘴,对弟弟妹妹呼来喝去,翻脸比翻书还快。

    \n

    爸妈一说他一句,他能当场怼回几句,搞得全家都不安生。

    \n

    可一旦出了门,到了学校或者外人面前,立马变脸。

    \n

    不说话,胆小,做事缩手缩脚,老师点个名都吓一跳,像换了个人。

    \n

    说白了,孩子在家里发横,是因为他知道自己“横得起”;在外面发怂,是因为他不知道能不能“撑得住”。

    \n

    而这种反差,很多时候不是性格问题,是家庭结构的问题。

    \n

    家长要反思自己给孩子是否创造了足够安全的生活环境。例如:夫妻之间的吵架、对孩子言语的伤害或者是过度保护孩子,都是有可能让孩子出现这一表现的原因。

    \n

    如果想要改变,从这五点做起吧!

    \n

    一、不过分溺爱,做有原则有底线的父母

    \n

    “爱孩子”和“立规矩”,从来不是一道单选题。

    \n

    明确规则,不被孩子牵着鼻子走,不能因为孩子哭闹,就主动打破规则的执行,和善而坚定地对孩子说“不”。让孩子明白,边界感的所在。

    \n
    \"\"
    在孩子的成长过程中,要让他知道:除了爱之外,还要有敬畏
    \n

    二、每天花 15 分钟的时间和孩子聊天,问问他,学校都发生了什么。

    \n

    三、每周抽时间给孩子拍一段视频,让他听自己的声音,看自己的表现,发现问题及时调整。

    \n
    \"\"
    \n

    四、周末邀请孩子的好朋友到家里来玩,给孩子创造多种社交机会和条件,提升孩子的社交能力。

    \n

    五、在孩子愿意的前提下,给孩子创造一些上台表演的机会,通过正向的实践提升孩子的自信心。

    \n
    \"\"
    提升孩子自信心的 5 句话
    \n

    亲测,这几个方法对提高孩子自信心,让孩子变得有原则有担当非常有帮助。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782552", - "creator": "", - "pubDate": "Mon, 14 Jul 2025 08:27:04 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "54d622541f4f473a8dd14f6e4d7644c7", - "highlights": [] - }, - { - "title": "当回避型依恋开始回避你时她(他)的内心活动是怎样的?", - "description": "
    \"头图\"/
    \n

    众多回答都告诉题主了,回避型依恋的特征不愿意和爱人亲密。这种不愿意体现在高度的亲密回避,以及极低的被弃焦虑,而这两个点也正是 AAS(成人依恋量表)中的两个维度。

    \n

    作为咨询师,我会通过认知行为理论和客体关系理论来讲一下这两点到底意味着什么。

    \n

    首先先从认知行为模式(Cognitive Behavior Therapy)的角度来说一下。亲密回避很好理解,就是避免与你有“过度”的亲密接触。因为这些亲密接触,都会给 TA 一种不安感。

    \n

    一、回避亲密的根源在于自我否定

    \n

    这种不安是来自于童年婴儿时期的,TA 的父母因为照顾得并不好,所以让 TA 内心深处一直对自己说:

    \n

    我不够好,没有人会来帮助我。

    \n

    慢慢随着他长大,这个内心想法开始逐渐演化成了一种很自然的想法,或者说是生活规则。由于没有人来帮助我。所以,万事不能靠别人,只能靠自己。最终演化为:

    \n

    别人介入一定会坏事,只有自己是能信任的人

    \n

    所以通过这个思考回路,TA 也会觉得在感情中也不能靠别人。也就是说,在亲密关系中,TA 依然认为相信别人,或者“过度”依赖别人,会导致“坏事”。所以为了避免这种情况,TA 就会刻意的保持一种若即若离的状态。

    \n
      \n
    1. 内心深处:我不够好,没人会帮助我
    2. \n
    3. 行为习惯:别人不可相信,只能相信自己
    4. \n
    5. 情绪感受:一旦亲密就会感觉到不安全
    6. \n
    \n
    \"\"
    \n

    TA 之所以会表现出不耐烦以及烦躁,甚至故意做出故意疏远你的行为。其实就是因为 TA 一直都是靠自己生活的,从小到大这已经深深的刻进了 TA 的行为模式之中。所以一旦你和 TA 靠的太近,就会让 TA 陷入一种非常陌生的环境之中。

    \n

    当我们进入一个完全陌生的环境中时,也会全身肌肉紧绷,随时准备逃跑。而 TA 在亲密关系中,也就相当于进入了一个 TA 完全不适应的环境之中,让 TA 产生了应激反应:

    \n

    本能的排斥并且想要回避你。

    \n

    但是需要强调的是,TA 的这种想法和逻辑,都是埋藏在潜意识层面一下的。大部分人看到蜘蛛就心里发毛,这是因为天生的经验在告诉我们蜘蛛很危险。TA 的回避也是一样的,TA 一但和你亲密就觉得难受,不过 TA 并不能知道为什么难受。所以你如果问 TA,得到的答案可能会很模棱两可:

    \n
      \n
    • “我就是觉得两个人一起久了太腻了”
    • \n
    • “我喜欢一个人”
    • \n
    • “我也不知道为什么,就是觉得不舒服”
    • \n
    \n

    TA 可以丰富的向你描述 TA 的感受,但是真要让 TA 说出一个所以然来,是很困难的。因为自动想法部分,多是停留在意识层面之下,也就是说这一套机制是不受意识的自我检查的。

    \n

    也就是说,这个想法先于自我判断对错的心理行为,TA 永远都不会知道自己为什么要这样,也永远不会思考这样到底对不对。

    \n

    另外一个特征是很低的被弃焦虑。

    \n

    这也是回避型依恋相较于恐惧型与痴迷型来说,有着更好的稳定性的表现。低被弃焦虑,可以简单的理解为不怕你主动提分手,TA 比另外两种不安全依恋更容易接受这个结果。因为如此,回避型依恋的人相对而言会作的更少一点。

    \n

    然而你并不是完全的安全型依恋类型,多多少少你也会在亲密关系中感觉到不安全,有着一定程度的被弃焦虑,进而找 TA 寻求安全感。这个时候攻守易主,你成了所求的一方,TA 反而成了诉求少的一方。所以有些时候,TA 甚至会反过来觉得你很作,让 TA 感觉到很累很烦。

    \n

    比如在你寻求亲密行为的时候,很可能整个行为只是非常正常的一次亲密互动,但是依然会被他视作是一种过度的诉求,是一种作。面对这种“作”,无论他外在怎么做的,但 TA 的内心一定是排斥的,而且排斥的有理有据。

    \n

    但是,需要强调的是:不怕被你分手,不意味着希望被你分手。

    \n

    前面也说过,回避型依恋的 TA,在面对人生的所有事件时,都会有自己一个人单干的习惯。这是因为 TA 的内心想法:认为自己不够好,所有人都不会帮 TA,你也不会帮。这延伸在亲密关系中,就会产生出一种结论:自己不够好,被分手也是正常的。

    \n

    所以 TA 几乎上是认定了,你与 TA 的这段关系是不长久的。在这个思维的基础上,TA 才不怕分手,因为这已经是 TA 所能预见的最有可能的结局了。

    \n
      \n
    • 你和 TA 一起旅行或者出去玩
    • \n
    \n

    TA 外在的想法:每天都要和腻在一起,没有自己的空间,感觉好难受。

    \n

    TA 内在的潜意识:我付出和牺牲自己的生活,也很难让关系更好。

    \n
      \n
    • 你每天都关心 TA 的生活
    • \n
    \n

    TA 外在的想法:每天都要和你分享自己的生活,就像报告一样·,让人很烦。

    \n

    TA 内在的潜意识:我自己的生活节奏被打乱了,我没有办法掌控这段感情了。

    \n
      \n
    • 你希望 TA 能对你更上心一点,再多关心一下自己
    • \n
    \n

    TA 外在的想法:我自己一个人挺舒服,现在还要多照顾一个人,好麻烦啊。

    \n

    TA 内在的潜意识:我没有能力为别人的生活责任。

    \n

    你可以发现回避型依恋的人是很悲观的,这认知行为理论中,称为糟糕至极(Awflizing)。TA 会把你们这段感情看的很悲观,比如说 TA 的内心深处可能有这些想法:

    \n
      \n
    • “你肯定很难和我感同身受,根本不可能理解我”
    • \n
    • “我真的很难和你说一些内心的话,我说不出口”
    • \n
    • “如果我向你示弱了,你肯定就会伤害我,背叛我”
    • \n
    \n

    但是 TA 想不想和你亲近呢?——答案是肯定的,TA 当然也不想被车子撞到,也不想自己在亲密关系中永远都是悲剧的男 / 女主角。但是经验告诉 TA,不能多想,做好自己就行了。

    \n

    所以回避型依恋的人都处于一个很矛盾的境地中,TA 一方面因为想要摆脱悲剧色彩而极度想要亲密关系的帮助,但是一方又对亲密关系不抱期望。

    \n

    换句话说,TA 期望的是你,但是又对自己失望。而恰巧亲密关系又需要两个人共同承担责任,面对问题,所以回避型依恋的人往往会对亲密关系持有极度正面以及极度负面的两种态度。

    \n

    现在你应该知道了,回避型依恋的人在亲密关系中是有着大量的不安全感,甚至说带有很大程度的自我否定感。这种感觉渗透到了他们生活中的方方面面。TA 不想和你去旅游,不想更多的关心你,其实是因为 TA 潜意识觉得自己付不起这个责任,觉得自己和你的感情很难有一个完美的结果。

    \n

    二、对关系的焦虑源于对死亡的恐惧

    \n

    那这些潜意识又是从什么地方产生的呢?其实就是她的童年成长。客体关系理论(Object-Relations Theory)中讲,我们与外在客体的关系模式,如果一旦定型,那么我们之后对待别人,对待世界的方式都会遵循这种模式。

    \n

    简单来说,就是爸爸妈妈怎么对的你,你以后就会怎么对别人。回避型依恋的人,在童年早期很可能并没有受到父母很好地照顾。所以认识自我和别人时,可能会出现问题。

    \n

    温尼科特说:“每个婴儿都是在自己母亲眼眸中所映射的自己的影像中,找到自己的存在”。

    \n

    所以,回避型依恋的存在感和安全感,都是很缺失的。这种缺失在于重要养育人对自己照顾的疏忽,这种重大的早期经验带给了 TA 非常不安全的感觉。这也是迫使 TA 认为别人不可靠,只能靠自己的原因。

    \n

    所以说,在心理动力学的层面上,回避型依恋并不简简单单是一个性格的问题,也不是你给与一些安全感,或者照顾一下 TA 的感受,就能解决的问题。这个问题的根本,很可能是涉及到 TA 潜意识中对死亡的恐惧。

    \n

    当你要求 TA 每天报告自己的生活清单时、要求 TA 必须每天陪你多久多久时,TA 内心深处好像就回到了小时候,无法掌控自己生活的婴儿时期。让他重新再一次感受到了作为婴儿的无力感。

    \n

    当然,我们知道你并不是这个意思,甚至 TA 的意识层面也知道你不是这个意思。但是这并不影响 TA 的潜意识这样认为,而且 TA 的潜意识甚至会再度感觉到童年时期那种不被照顾,不被关心的状态。

    \n

    简单地说:作为一个回避型依恋的人,TA 已经成长为了一个事事只靠自己的独立个体。而亲密关系在一定程度上会让 TA 重新回到一个共有的关系之中,这种关系的变化让 TA 又一次感觉自己失去独立感,从而带来的就是无法掌握自己生活的恐惧感。

    \n

    这些最底层的恐惧感,甚至让 TA 即使想和你卿卿我我,但也没有办法违抗最本能的恐惧感。对于 TA 来说,“过度”的亲密就代表着不独立,就代表着没有独立活下去的可能。这些恐惧感的背后,其实是一次次童年创伤以及成长经历所累计起来的一种创伤后应激反应(PTSD)。

    \n

    三、回避型依恋要慢慢感化

    \n

    亲密关系中两个人甚至可以说是重温了童年时期父母的爱,但同时还有童年时期父母的伤害。你可以把 TA 的回避看做是在回避童年早期经验的伤害,TA 只是在潜意识中把你当做了 TA 的父母了。

    \n

    所以急于解决 TA 的回避行为,只会让 TA 感觉到更没有安全感。你可以试着相信 TA,接纳 TA。很多时候 TA 在怀疑你,伤害你的时候,其实也在怀疑自己,伤害自己。你可以表现出没有攻击性的一面,让 TA 慢慢能够主动地和你更加亲近。

    \n

    回避型在回避你时,其实是因为不相信你能够疗愈与自己,即使是能够疗愈自己,也不见得能够认同自己的孤独。当然,这些都是 TA 潜意识层面的恐惧和顾虑,TA 在具体生活中的表现就是喜欢一个人,不喜欢腻在一起。

    \n

    我有很多情侣的案例,两个人三天两头就要吵架。两个人对于吵架这个事情都已经很累了,很厌烦了,但为什么还要去做呢?其实很简单,当你对一个事情很烦很讨厌,但依然要继续做时,那说明这个事情只能是非做不可的。

    \n

    两个人通过吵架,通过矛盾来一次又一次的重新体验童年早期经验的创伤,最后又通过和好理解来达到童年创伤的疗愈。回避也是一样的道理,只是具体的情况与其他的类型稍有不同:别人都是爆发冲突,TA 是害怕冲突而躲避冲突,或者说这种回避其实就是 TA 所经历的创伤。

    \n

    所以当你下次再感觉到 TA 在回避的时候,你可以认为 TA 的内心现在为了寻求一些 TA 自己认为的安全空间而在疯狂的做着努力。而 TA 的潜意识深处,其实是希望你能帮助 TA 脱离这个苦海的,只是在脱离苦海的前一步是进入苦海。

    \n

    温尼科特还说过,他认为真正完美的亲密关系是:窝在爱人怀里的孤独(Dare to be lonely in someone else‘s arms)。

    \n

    Dare代表亲密关系是需要勇气的,Arms代表亲密关系是疗愈和信任,同时最重要的Lonely说明亲密关系中的个体,再如何亲密其内心——依然是孤独的。

    \n

    不要害怕 TA 这么回避你,你要知道的是:TA 正在尝试找到能够让你满意也能够让自己满意的关系距离。

    \n

    太远了你没有安全感,太近了他没有安全感,但 TA 相信会有那么一个距离能够同时满足你和 TA 两个人,所以 TA 也在为此努力之中。如果 TA 都如此相信,那么你又有什么理由不去相信呢。

    \n
    \n

    我是 @远叔 国家认证心理咨询师,成都精神分析协会会员、全网粉丝累计超 80w,从业 10 年,4000+ 咨询案例。 回避型创伤修复、焦虑型依恋成长、原生家庭疗愈、社交障碍解决、失恋疗愈........ 与其自己纠结,不如与我并肩,欢迎来到主角的世界→咨询请联系(vx:jyxfd001)

    \n
    \n

    关于回避型,我写过很多回答:

    \n

    01 回避型依恋者怎么谈恋爱?当喜欢的人也喜欢自己,想要逃跑?

    \n

    02 怎么追回避型依恋的女生?

    \n

    03 回避型依恋的人适合和什么人在一起?

    \n

    04 回避型依恋者在亲密关系中的需求是什么?他们希望伴侣给予他们什么?

    \n

    05 当回避型依恋开始回避你时她(他)的内心活动是怎样的?

    \n

    06 怎样摆脱焦虑型依恋?

    \n

    07 回避型的人为什么那么冷漠?

    \n

    08 回避型人格的人会真心爱上一个人吗?

    \n

    09 如何与回避型依恋的人谈恋爱?

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    众多回答都告诉题主了,回避型依恋的特征不愿意和爱人亲密。这种不愿意体现在高度的亲密回避,以及极低的被弃焦虑,而这两个点也正是 AAS(成人依恋量表)中的两个维度。

    \n

    作为咨询师,我会通过认知行为理论和客体关系理论来讲一下这两点到底意味着什么。

    \n

    首先先从认知行为模式(Cognitive Behavior Therapy)的角度来说一下。亲密回避很好理解,就是避免与你有“过度”的亲密接触。因为这些亲密接触,都会给 TA 一种不安感。

    \n

    一、回避亲密的根源在于自我否定

    \n

    这种不安是来自于童年婴儿时期的,TA 的父母因为照顾得并不好,所以让 TA 内心深处一直对自己说:

    \n

    我不够好,没有人会来帮助我。

    \n

    慢慢随着他长大,这个内心想法开始逐渐演化成了一种很自然的想法,或者说是生活规则。由于没有人来帮助我。所以,万事不能靠别人,只能靠自己。最终演化为:

    \n

    别人介入一定会坏事,只有自己是能信任的人

    \n

    所以通过这个思考回路,TA 也会觉得在感情中也不能靠别人。也就是说,在亲密关系中,TA 依然认为相信别人,或者“过度”依赖别人,会导致“坏事”。所以为了避免这种情况,TA 就会刻意的保持一种若即若离的状态。

    \n
      \n
    1. 内心深处:我不够好,没人会帮助我
    2. \n
    3. 行为习惯:别人不可相信,只能相信自己
    4. \n
    5. 情绪感受:一旦亲密就会感觉到不安全
    6. \n
    \n
    \"\"
    \n

    TA 之所以会表现出不耐烦以及烦躁,甚至故意做出故意疏远你的行为。其实就是因为 TA 一直都是靠自己生活的,从小到大这已经深深的刻进了 TA 的行为模式之中。所以一旦你和 TA 靠的太近,就会让 TA 陷入一种非常陌生的环境之中。

    \n

    当我们进入一个完全陌生的环境中时,也会全身肌肉紧绷,随时准备逃跑。而 TA 在亲密关系中,也就相当于进入了一个 TA 完全不适应的环境之中,让 TA 产生了应激反应:

    \n

    本能的排斥并且想要回避你。

    \n

    但是需要强调的是,TA 的这种想法和逻辑,都是埋藏在潜意识层面一下的。大部分人看到蜘蛛就心里发毛,这是因为天生的经验在告诉我们蜘蛛很危险。TA 的回避也是一样的,TA 一但和你亲密就觉得难受,不过 TA 并不能知道为什么难受。所以你如果问 TA,得到的答案可能会很模棱两可:

    \n
      \n
    • “我就是觉得两个人一起久了太腻了”
    • \n
    • “我喜欢一个人”
    • \n
    • “我也不知道为什么,就是觉得不舒服”
    • \n
    \n

    TA 可以丰富的向你描述 TA 的感受,但是真要让 TA 说出一个所以然来,是很困难的。因为自动想法部分,多是停留在意识层面之下,也就是说这一套机制是不受意识的自我检查的。

    \n

    也就是说,这个想法先于自我判断对错的心理行为,TA 永远都不会知道自己为什么要这样,也永远不会思考这样到底对不对。

    \n

    另外一个特征是很低的被弃焦虑。

    \n

    这也是回避型依恋相较于恐惧型与痴迷型来说,有着更好的稳定性的表现。低被弃焦虑,可以简单的理解为不怕你主动提分手,TA 比另外两种不安全依恋更容易接受这个结果。因为如此,回避型依恋的人相对而言会作的更少一点。

    \n

    然而你并不是完全的安全型依恋类型,多多少少你也会在亲密关系中感觉到不安全,有着一定程度的被弃焦虑,进而找 TA 寻求安全感。这个时候攻守易主,你成了所求的一方,TA 反而成了诉求少的一方。所以有些时候,TA 甚至会反过来觉得你很作,让 TA 感觉到很累很烦。

    \n

    比如在你寻求亲密行为的时候,很可能整个行为只是非常正常的一次亲密互动,但是依然会被他视作是一种过度的诉求,是一种作。面对这种“作”,无论他外在怎么做的,但 TA 的内心一定是排斥的,而且排斥的有理有据。

    \n

    但是,需要强调的是:不怕被你分手,不意味着希望被你分手。

    \n

    前面也说过,回避型依恋的 TA,在面对人生的所有事件时,都会有自己一个人单干的习惯。这是因为 TA 的内心想法:认为自己不够好,所有人都不会帮 TA,你也不会帮。这延伸在亲密关系中,就会产生出一种结论:自己不够好,被分手也是正常的。

    \n

    所以 TA 几乎上是认定了,你与 TA 的这段关系是不长久的。在这个思维的基础上,TA 才不怕分手,因为这已经是 TA 所能预见的最有可能的结局了。

    \n
      \n
    • 你和 TA 一起旅行或者出去玩
    • \n
    \n

    TA 外在的想法:每天都要和腻在一起,没有自己的空间,感觉好难受。

    \n

    TA 内在的潜意识:我付出和牺牲自己的生活,也很难让关系更好。

    \n
      \n
    • 你每天都关心 TA 的生活
    • \n
    \n

    TA 外在的想法:每天都要和你分享自己的生活,就像报告一样·,让人很烦。

    \n

    TA 内在的潜意识:我自己的生活节奏被打乱了,我没有办法掌控这段感情了。

    \n
      \n
    • 你希望 TA 能对你更上心一点,再多关心一下自己
    • \n
    \n

    TA 外在的想法:我自己一个人挺舒服,现在还要多照顾一个人,好麻烦啊。

    \n

    TA 内在的潜意识:我没有能力为别人的生活责任。

    \n

    你可以发现回避型依恋的人是很悲观的,这认知行为理论中,称为糟糕至极(Awflizing)。TA 会把你们这段感情看的很悲观,比如说 TA 的内心深处可能有这些想法:

    \n
      \n
    • “你肯定很难和我感同身受,根本不可能理解我”
    • \n
    • “我真的很难和你说一些内心的话,我说不出口”
    • \n
    • “如果我向你示弱了,你肯定就会伤害我,背叛我”
    • \n
    \n

    但是 TA 想不想和你亲近呢?——答案是肯定的,TA 当然也不想被车子撞到,也不想自己在亲密关系中永远都是悲剧的男 / 女主角。但是经验告诉 TA,不能多想,做好自己就行了。

    \n

    所以回避型依恋的人都处于一个很矛盾的境地中,TA 一方面因为想要摆脱悲剧色彩而极度想要亲密关系的帮助,但是一方又对亲密关系不抱期望。

    \n

    换句话说,TA 期望的是你,但是又对自己失望。而恰巧亲密关系又需要两个人共同承担责任,面对问题,所以回避型依恋的人往往会对亲密关系持有极度正面以及极度负面的两种态度。

    \n

    现在你应该知道了,回避型依恋的人在亲密关系中是有着大量的不安全感,甚至说带有很大程度的自我否定感。这种感觉渗透到了他们生活中的方方面面。TA 不想和你去旅游,不想更多的关心你,其实是因为 TA 潜意识觉得自己付不起这个责任,觉得自己和你的感情很难有一个完美的结果。

    \n

    二、对关系的焦虑源于对死亡的恐惧

    \n

    那这些潜意识又是从什么地方产生的呢?其实就是她的童年成长。客体关系理论(Object-Relations Theory)中讲,我们与外在客体的关系模式,如果一旦定型,那么我们之后对待别人,对待世界的方式都会遵循这种模式。

    \n

    简单来说,就是爸爸妈妈怎么对的你,你以后就会怎么对别人。回避型依恋的人,在童年早期很可能并没有受到父母很好地照顾。所以认识自我和别人时,可能会出现问题。

    \n

    温尼科特说:“每个婴儿都是在自己母亲眼眸中所映射的自己的影像中,找到自己的存在”。

    \n

    所以,回避型依恋的存在感和安全感,都是很缺失的。这种缺失在于重要养育人对自己照顾的疏忽,这种重大的早期经验带给了 TA 非常不安全的感觉。这也是迫使 TA 认为别人不可靠,只能靠自己的原因。

    \n

    所以说,在心理动力学的层面上,回避型依恋并不简简单单是一个性格的问题,也不是你给与一些安全感,或者照顾一下 TA 的感受,就能解决的问题。这个问题的根本,很可能是涉及到 TA 潜意识中对死亡的恐惧。

    \n

    当你要求 TA 每天报告自己的生活清单时、要求 TA 必须每天陪你多久多久时,TA 内心深处好像就回到了小时候,无法掌控自己生活的婴儿时期。让他重新再一次感受到了作为婴儿的无力感。

    \n

    当然,我们知道你并不是这个意思,甚至 TA 的意识层面也知道你不是这个意思。但是这并不影响 TA 的潜意识这样认为,而且 TA 的潜意识甚至会再度感觉到童年时期那种不被照顾,不被关心的状态。

    \n

    简单地说:作为一个回避型依恋的人,TA 已经成长为了一个事事只靠自己的独立个体。而亲密关系在一定程度上会让 TA 重新回到一个共有的关系之中,这种关系的变化让 TA 又一次感觉自己失去独立感,从而带来的就是无法掌握自己生活的恐惧感。

    \n

    这些最底层的恐惧感,甚至让 TA 即使想和你卿卿我我,但也没有办法违抗最本能的恐惧感。对于 TA 来说,“过度”的亲密就代表着不独立,就代表着没有独立活下去的可能。这些恐惧感的背后,其实是一次次童年创伤以及成长经历所累计起来的一种创伤后应激反应(PTSD)。

    \n

    三、回避型依恋要慢慢感化

    \n

    亲密关系中两个人甚至可以说是重温了童年时期父母的爱,但同时还有童年时期父母的伤害。你可以把 TA 的回避看做是在回避童年早期经验的伤害,TA 只是在潜意识中把你当做了 TA 的父母了。

    \n

    所以急于解决 TA 的回避行为,只会让 TA 感觉到更没有安全感。你可以试着相信 TA,接纳 TA。很多时候 TA 在怀疑你,伤害你的时候,其实也在怀疑自己,伤害自己。你可以表现出没有攻击性的一面,让 TA 慢慢能够主动地和你更加亲近。

    \n

    回避型在回避你时,其实是因为不相信你能够疗愈与自己,即使是能够疗愈自己,也不见得能够认同自己的孤独。当然,这些都是 TA 潜意识层面的恐惧和顾虑,TA 在具体生活中的表现就是喜欢一个人,不喜欢腻在一起。

    \n

    我有很多情侣的案例,两个人三天两头就要吵架。两个人对于吵架这个事情都已经很累了,很厌烦了,但为什么还要去做呢?其实很简单,当你对一个事情很烦很讨厌,但依然要继续做时,那说明这个事情只能是非做不可的。

    \n

    两个人通过吵架,通过矛盾来一次又一次的重新体验童年早期经验的创伤,最后又通过和好理解来达到童年创伤的疗愈。回避也是一样的道理,只是具体的情况与其他的类型稍有不同:别人都是爆发冲突,TA 是害怕冲突而躲避冲突,或者说这种回避其实就是 TA 所经历的创伤。

    \n

    所以当你下次再感觉到 TA 在回避的时候,你可以认为 TA 的内心现在为了寻求一些 TA 自己认为的安全空间而在疯狂的做着努力。而 TA 的潜意识深处,其实是希望你能帮助 TA 脱离这个苦海的,只是在脱离苦海的前一步是进入苦海。

    \n

    温尼科特还说过,他认为真正完美的亲密关系是:窝在爱人怀里的孤独(Dare to be lonely in someone else‘s arms)。

    \n

    Dare代表亲密关系是需要勇气的,Arms代表亲密关系是疗愈和信任,同时最重要的Lonely说明亲密关系中的个体,再如何亲密其内心——依然是孤独的。

    \n

    不要害怕 TA 这么回避你,你要知道的是:TA 正在尝试找到能够让你满意也能够让自己满意的关系距离。

    \n

    太远了你没有安全感,太近了他没有安全感,但 TA 相信会有那么一个距离能够同时满足你和 TA 两个人,所以 TA 也在为此努力之中。如果 TA 都如此相信,那么你又有什么理由不去相信呢。

    \n
    \n

    我是 @远叔 国家认证心理咨询师,成都精神分析协会会员、全网粉丝累计超 80w,从业 10 年,4000+ 咨询案例。 回避型创伤修复、焦虑型依恋成长、原生家庭疗愈、社交障碍解决、失恋疗愈........ 与其自己纠结,不如与我并肩,欢迎来到主角的世界→咨询请联系(vx:jyxfd001)

    \n
    \n

    关于回避型,我写过很多回答:

    \n

    01 回避型依恋者怎么谈恋爱?当喜欢的人也喜欢自己,想要逃跑?

    \n

    02 怎么追回避型依恋的女生?

    \n

    03 回避型依恋的人适合和什么人在一起?

    \n

    04 回避型依恋者在亲密关系中的需求是什么?他们希望伴侣给予他们什么?

    \n

    05 当回避型依恋开始回避你时她(他)的内心活动是怎样的?

    \n

    06 怎样摆脱焦虑型依恋?

    \n

    07 回避型的人为什么那么冷漠?

    \n

    08 回避型人格的人会真心爱上一个人吗?

    \n

    09 如何与回避型依恋的人谈恋爱?

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782524", - "creator": "", - "pubDate": "Sun, 13 Jul 2025 08:27:02 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "052d9ff428f7bbcde846d2cd16d98e16", - "highlights": [] - }, - { - "title": "为什么没熟透的香蕉总是皮厚肉少,而熟透的香蕉总是薄皮肉多?", - "description": "
    \"头图\"/
    \n

    让我们看下香蕉君の成熟之路。

    \n

    首先,我们都知道,香蕉苹果猕猴桃芒果等属于典型的呼吸跃变型水果。

    \n

    就是在绿熟期即可摘下,放一段时间自己会成熟。

    \n

    与之对应的就是非呼吸跃变型水果,比如樱桃草莓葡萄荔枝,

    \n

    出道即巅峰,多放一天坏一天。

    \n
    \"\"
    \n

    而促使呼吸跃变型水果成熟启动的主要信号分子大家都知道——乙烯[1]。

    \n

    乙烯的合成始于甲硫氨酸,

    \n

    想合成乙烯需要经过三次转化。

    \n
    首先是在 S - 腺苷甲硫氨酸合成酶作用下转化为 S - 腺苷甲硫氨酸(SAM),
    然后在 ACC 合成酶(ACS)催化下生成 1 - 氨基环丙烷 - 1 - 羧酸(ACC),
    最后在 ACC 氧化酶(ACO)作用下形成乙烯。
    \n
    \"\"
    乙烯生物合成与信号传导通路图 b 为信号传导通路图
    \n

    这个过程随着温度上升呼吸作用的加强而飙升,

    \n

    最终到达顶峰后迅速下降,被称为跃变期。[2]

    \n
    \"\"
    香蕉成熟度里乙烯和呼吸强度的速率,可以看到到了后期断崖式上升,下降
    \n

    而在这之前,香蕉刚被摘下来时还是只青涩的蕉,

    \n

    注意啦,

    \n

    青涩不是形容词,而是叙述词。

    \n

    此时果肉里 70%-80%是淀粉,结构紧密不说,

    \n

    这类淀粉人的肠胃很难消化吸收,可以说是又硬又难吃。

    \n

    同时,果肉里还含有不少单宁(鞣酸)和果胶,

    \n

    有小伙伴讲了:

    \n

    单宁我知道,干红葡萄酒里有,喝嘴里会产生褶皱感。

    \n

    没错,单宁具有强收敛作用,

    \n

    不光会让嘴巴产生褶皱感,还可能影响肠道功能,

    \n

    咱常吃的生柿子就含有不少,

    \n

    简单的说,吃起来不光涩,吃多了还容易便秘。

    \n
    所以生香蕉就压根不能吃,更不能减肥。
    \n

    香蕉皮就更别说了,果皮塞满了叶绿素 a 和 b,整个看起来是绿油油的,

    \n

    同时细胞壁由果胶基质 - 纤维素 - 半纤维素构成坚挺的网络,导致香蕉皮此时很硬,甚至很难扒开。

    \n

    这个阶段被称为青熟期。

    \n

    香蕉没法吃,但是已经满足收获的条件了。

    \n

    收获好的香蕉被运往全国各地,

    \n
    此时一段焦灼的小调响起,又到了奥德彪拉香蕉的时间。
    \n
    \"\"
    \n

    正常来说香蕉在树上会受到乙烯的刺激,触发自我催化。

    \n

    ACC 合成酶(ACS)和 ACC 氧化酶(ACO)基因表达上调,

    \n

    使乙烯爆发式增长,激活 ERF 转录因子调控成熟基因,

    \n

    此时,呼吸速率显著提高。

    \n

    乙烯激活了香蕉内部的淀粉酶、糖苷酶,淀粉水解为可溶性糖,果肉变软变甜。[3]

    \n

    香蕉表皮的叶绿素 a 和 b 被叶绿素酶降解,导致绿色褪去,

    \n
    \"\"
    成熟香蕉果皮力度叶绿素和可溶性固形物含量,可以看到叶绿色消失,而可溶性固形物大大增加。
    \n

    类胡萝卜素合成开始增加,类黄酮含量上升,使果皮被显现出黄色,

    \n

    部分品种还会积累花青素,出现红香蕉。[4]

    \n
    \"\"
    红香蕉长这样,变红是因为花青素。
    \n

    再之后,,,,,

    \n

    多聚半乳糖醛酸酶 (polygalaturonase,PG)催化果胶分子中的 α-1,4- 半乳糖苷键裂解,

    \n

    使得果胶降解,香蕉软了。

    \n

    α-L- 阿拉伯呋喃糖苷酶(α-L-Arabinofuranosidase, α-L-Af)降解细胞壁多糖中的阿拉伯糖残基,

    \n

    导致果胶溶解和细胞壁结构松散,香蕉更软了。[5]

    \n

    纤维素酶(Cellulase,CEL)和β-D- 木聚糖苷酶活性增强,干掉香蕉皮细胞壁中的部分骨架结构,

    \n

    使纤维素半纤维素降解,香蕉更更软了。

    \n

    香蕉皮中还积累了部分抗性淀粉,也也被降解成可溶性糖,用于给果皮代谢供能。

    \n

    更更更软了,所以,香蕉皮软了,也薄了。

    \n

    但是没变强。

    \n

    正常来说,这个过程随着气温升高而加快,

    \n
    \"\"
    香蕉在 20°C 和 30°C 里各种酶的变化,可以看到温度越高曲线越高
    \n

    但是过了 30°C 后,高温会抑制叶绿素酶的发挥,

    \n

    导致出现香蕉果肉熟了,果皮还是绿色的情况。[6]

    \n
    \"\"
    香蕉在 20°C 和 30°C 果实硬度和果皮色度变化,可以明显看到 30°C 果实软了,但是果皮颜色还是绿色。
    \n

    由于香蕉摘下后自然产出的乙烯含量明显降低,

    \n

    所以会在袋子里放入含有乙烯利(2- 氯乙基磷酸)的纸片。

    \n

    在运输过程中缓慢产出乙烯,模拟这一过程。

    \n
    \"\"
    常见乙烯利卡片,类似一张小纸片。
    \n

    而除了乙烯,呼吸作用也是促使香蕉后熟的重要原因。

    \n

    所以提高环境中的二氧化碳浓度(大概在 4% - 6% ),

    \n

    降低氧气浓度(大约 2% - 5% )会显著提高香蕉的保鲜期。

    \n

    这就是气调储藏的原理。

    \n

    气调包装听着挺高大上,咱也挺常见,香蕉箱里那个透明袋就是气调袋。

    \n
    \"\"
    香蕉气调袋
    \n

    当然了,万事皆有度,

    \n

    人工乙烯过度催熟,

    \n

    除了会因催熟不均导致部分单宁等物质未完全转化,使一些不是特别熟的香蕉发涩。

    \n

    还会导致香蕉后熟过快,

    \n

    而香蕉成熟的过程中代谢前体分解的过程会产生挥发性酯类化合物,是香蕉香味的来源。

    \n

    后熟过快会使得这些酯类化合物产出过少,失去香味。

    \n

    这就是为啥感觉有的香蕉熟了特别特别香,而有些香蕉却没味的原因。

    \n
    \"\"
    香蕉从青熟到成熟后的过程。
    \n

    那么,现在。

    \n

    大声告诉我,香蕉君变软变黄的原因是哈?!!!!

    \n

    是乙烯吗?

    \n

    不,是哲♂学!!!!!!

    \n
    \"\"
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    让我们看下香蕉君の成熟之路。

    \n

    首先,我们都知道,香蕉苹果猕猴桃芒果等属于典型的呼吸跃变型水果。

    \n

    就是在绿熟期即可摘下,放一段时间自己会成熟。

    \n

    与之对应的就是非呼吸跃变型水果,比如樱桃草莓葡萄荔枝,

    \n

    出道即巅峰,多放一天坏一天。

    \n
    \"\"
    \n

    而促使呼吸跃变型水果成熟启动的主要信号分子大家都知道——乙烯[1]。

    \n

    乙烯的合成始于甲硫氨酸,

    \n

    想合成乙烯需要经过三次转化。

    \n
    首先是在 S - 腺苷甲硫氨酸合成酶作用下转化为 S - 腺苷甲硫氨酸(SAM),
    然后在 ACC 合成酶(ACS)催化下生成 1 - 氨基环丙烷 - 1 - 羧酸(ACC),
    最后在 ACC 氧化酶(ACO)作用下形成乙烯。
    \n
    \"\"
    乙烯生物合成与信号传导通路图 b 为信号传导通路图
    \n

    这个过程随着温度上升呼吸作用的加强而飙升,

    \n

    最终到达顶峰后迅速下降,被称为跃变期。[2]

    \n
    \"\"
    香蕉成熟度里乙烯和呼吸强度的速率,可以看到到了后期断崖式上升,下降
    \n

    而在这之前,香蕉刚被摘下来时还是只青涩的蕉,

    \n

    注意啦,

    \n

    青涩不是形容词,而是叙述词。

    \n

    此时果肉里 70%-80%是淀粉,结构紧密不说,

    \n

    这类淀粉人的肠胃很难消化吸收,可以说是又硬又难吃。

    \n

    同时,果肉里还含有不少单宁(鞣酸)和果胶,

    \n

    有小伙伴讲了:

    \n

    单宁我知道,干红葡萄酒里有,喝嘴里会产生褶皱感。

    \n

    没错,单宁具有强收敛作用,

    \n

    不光会让嘴巴产生褶皱感,还可能影响肠道功能,

    \n

    咱常吃的生柿子就含有不少,

    \n

    简单的说,吃起来不光涩,吃多了还容易便秘。

    \n
    所以生香蕉就压根不能吃,更不能减肥。
    \n

    香蕉皮就更别说了,果皮塞满了叶绿素 a 和 b,整个看起来是绿油油的,

    \n

    同时细胞壁由果胶基质 - 纤维素 - 半纤维素构成坚挺的网络,导致香蕉皮此时很硬,甚至很难扒开。

    \n

    这个阶段被称为青熟期。

    \n

    香蕉没法吃,但是已经满足收获的条件了。

    \n

    收获好的香蕉被运往全国各地,

    \n
    此时一段焦灼的小调响起,又到了奥德彪拉香蕉的时间。
    \n
    \"\"
    \n

    正常来说香蕉在树上会受到乙烯的刺激,触发自我催化。

    \n

    ACC 合成酶(ACS)和 ACC 氧化酶(ACO)基因表达上调,

    \n

    使乙烯爆发式增长,激活 ERF 转录因子调控成熟基因,

    \n

    此时,呼吸速率显著提高。

    \n

    乙烯激活了香蕉内部的淀粉酶、糖苷酶,淀粉水解为可溶性糖,果肉变软变甜。[3]

    \n

    香蕉表皮的叶绿素 a 和 b 被叶绿素酶降解,导致绿色褪去,

    \n
    \"\"
    成熟香蕉果皮力度叶绿素和可溶性固形物含量,可以看到叶绿色消失,而可溶性固形物大大增加。
    \n

    类胡萝卜素合成开始增加,类黄酮含量上升,使果皮被显现出黄色,

    \n

    部分品种还会积累花青素,出现红香蕉。[4]

    \n
    \"\"
    红香蕉长这样,变红是因为花青素。
    \n

    再之后,,,,,

    \n

    多聚半乳糖醛酸酶 (polygalaturonase,PG)催化果胶分子中的 α-1,4- 半乳糖苷键裂解,

    \n

    使得果胶降解,香蕉软了。

    \n

    α-L- 阿拉伯呋喃糖苷酶(α-L-Arabinofuranosidase, α-L-Af)降解细胞壁多糖中的阿拉伯糖残基,

    \n

    导致果胶溶解和细胞壁结构松散,香蕉更软了。[5]

    \n

    纤维素酶(Cellulase,CEL)和β-D- 木聚糖苷酶活性增强,干掉香蕉皮细胞壁中的部分骨架结构,

    \n

    使纤维素半纤维素降解,香蕉更更软了。

    \n

    香蕉皮中还积累了部分抗性淀粉,也也被降解成可溶性糖,用于给果皮代谢供能。

    \n

    更更更软了,所以,香蕉皮软了,也薄了。

    \n

    但是没变强。

    \n

    正常来说,这个过程随着气温升高而加快,

    \n
    \"\"
    香蕉在 20°C 和 30°C 里各种酶的变化,可以看到温度越高曲线越高
    \n

    但是过了 30°C 后,高温会抑制叶绿素酶的发挥,

    \n

    导致出现香蕉果肉熟了,果皮还是绿色的情况。[6]

    \n
    \"\"
    香蕉在 20°C 和 30°C 果实硬度和果皮色度变化,可以明显看到 30°C 果实软了,但是果皮颜色还是绿色。
    \n

    由于香蕉摘下后自然产出的乙烯含量明显降低,

    \n

    所以会在袋子里放入含有乙烯利(2- 氯乙基磷酸)的纸片。

    \n

    在运输过程中缓慢产出乙烯,模拟这一过程。

    \n
    \"\"
    常见乙烯利卡片,类似一张小纸片。
    \n

    而除了乙烯,呼吸作用也是促使香蕉后熟的重要原因。

    \n

    所以提高环境中的二氧化碳浓度(大概在 4% - 6% ),

    \n

    降低氧气浓度(大约 2% - 5% )会显著提高香蕉的保鲜期。

    \n

    这就是气调储藏的原理。

    \n

    气调包装听着挺高大上,咱也挺常见,香蕉箱里那个透明袋就是气调袋。

    \n
    \"\"
    香蕉气调袋
    \n

    当然了,万事皆有度,

    \n

    人工乙烯过度催熟,

    \n

    除了会因催熟不均导致部分单宁等物质未完全转化,使一些不是特别熟的香蕉发涩。

    \n

    还会导致香蕉后熟过快,

    \n

    而香蕉成熟的过程中代谢前体分解的过程会产生挥发性酯类化合物,是香蕉香味的来源。

    \n

    后熟过快会使得这些酯类化合物产出过少,失去香味。

    \n

    这就是为啥感觉有的香蕉熟了特别特别香,而有些香蕉却没味的原因。

    \n
    \"\"
    香蕉从青熟到成熟后的过程。
    \n

    那么,现在。

    \n

    大声告诉我,香蕉君变软变黄的原因是哈?!!!!

    \n

    是乙烯吗?

    \n

    不,是哲♂学!!!!!!

    \n
    \"\"
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782525", - "creator": "", - "pubDate": "Sun, 13 Jul 2025 08:27:02 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "effd0addb60e241f3b0f566c8634b7ee", - "highlights": [] - }, - { - "title": "为什么热带鱼的颜色五彩缤纷,其它地带的就没有那么鲜艳呢", - "description": "
    \"头图\"/
    \n

    动物行为学的祖师爷康拉德·洛伦茨在他出版于 1963 年的《论攻击》一书里,也对热带鱼的颜色之鲜艳多变惊叹不已:

    \n
    \"\"
    \n
    \"\"
    \n

    所以这些鱼为什么有如此鲜艳的颜色呢?在潜水中,洛伦茨发现,这些鲜明的鱼有三个特性:

    \n

    1、它们定居在固定的地盘。

    \n

    2、它们用凶猛的攻击保护领地。

    \n

    3、除了捕食者猎食以外,它们只攻击同类的鱼。

    \n

    在实验室里,也出现了同样的现象,一个水族箱不能容下两条色彩鲜艳的鱼,否则会自相残杀到一条死去为止。

    \n

    为了进一步研究,洛伦茨和他的研究伙伴 Doris Zumpe 订做了一个两立方米的特大水缸,这样这些鱼都可以得到足够的空间建立自己的地盘。他们放进了 25 种小鱼,每种四条。Zumpe 经过统计发现,虽然鱼缸里同类的鱼只占很少的比例,每种鱼同类和异类之间咬架的频次之比为 85:15。

    \n

    所以答案就很明确了,鲜艳的色彩是同类互相争夺地盘时发出的信号,表示“别惹我!”。色彩越鲜明,同类越能清楚地感知到这一信息。

    \n
    \"\"
    \n

    那么为什么是热带的鱼而不是别的地方的鱼呢?下面是猫盟编辑的推测,未必全可信,但我想不会特别离题的。

    \n

    生物拥有两条基本的化学性质:

    \n

    1,所有生物控制生化活动的酶都对温度敏感,所以超出或者低于它们的最适温度,生命活性都会大打折扣。

    \n

    2,所有生物的生化活动都离不开水。

    \n

    另外还要加上第三条,大部分食物链是从绿色植物和藻类(光合作用)开始的,所以大部分生物离不开阳光。

    \n

    因此生命在什么样的地方最繁盛?集齐适宜的水、热、光三大因素的地方。所以庄稼在夏天生长而不是在冬天。

    \n

    热带的浅海就是具有丰富的水、热、光资源的地方。结果是这里的生物量和生物多样性都非常高,这是一个生命非常拥挤,或者说“卷”的地方。

    \n

    “卷”的环境有什么特征?

    \n

    你遭受到的压力大多是来自其他人,而不是来自物理环境的。

    \n

    同理,在一个生物密度非常高,生物之间的互动非常多的环境里,生物受到的自然选择大多是来自其他生物。

    \n

    于是在这种环境下,生物演化出大量的信号发给其他生物,颜色就是常用的一种发信号的方式。除了表示“从我的地盘滚开!”的颜色,还有表示“我有毒”的警告色。顺便一提,这些信号不一定意味着相互仇视,比如雄性动物可能有鲜艳颜色来吸引雌性,会给大鱼抓寄生虫的清洁鱼和清洁虾,也有鲜艳的条纹作为“医生制服”。

    \n

    类似的演化逻辑也适用于热带雨林。

    \n
    \"\"
    \n
    \"\"
    \n
    \"\"
    \n
    \"\"
    \n
    \"\"
    猫盟在云南考察中拍下的一些色彩鲜艳的动植物。
    \n

    反过来在缺乏某一条件的环境,比如冰原、荒漠,动物的颜色就要单调得多。

    \n

    而光照条件差的环境比如深海,不仅生物的数量少,而且视觉信号也很难发出,也就是“深海里黑咕隆咚,大家谁也看不见谁,随便长长就得了”。

    \n

    但是要说明这个原则不是绝对的。比如以色彩鲜艳著称的鸡形目鸟,很多都不是生活在热带地区。比如六盘山的气候属于温带半湿润大陆性气候,我们在这里拍到了很多的红腹锦鸡。

    \n
    \"\"
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    动物行为学的祖师爷康拉德·洛伦茨在他出版于 1963 年的《论攻击》一书里,也对热带鱼的颜色之鲜艳多变惊叹不已:

    \n
    \"\"
    \n
    \"\"
    \n

    所以这些鱼为什么有如此鲜艳的颜色呢?在潜水中,洛伦茨发现,这些鲜明的鱼有三个特性:

    \n

    1、它们定居在固定的地盘。

    \n

    2、它们用凶猛的攻击保护领地。

    \n

    3、除了捕食者猎食以外,它们只攻击同类的鱼。

    \n

    在实验室里,也出现了同样的现象,一个水族箱不能容下两条色彩鲜艳的鱼,否则会自相残杀到一条死去为止。

    \n

    为了进一步研究,洛伦茨和他的研究伙伴 Doris Zumpe 订做了一个两立方米的特大水缸,这样这些鱼都可以得到足够的空间建立自己的地盘。他们放进了 25 种小鱼,每种四条。Zumpe 经过统计发现,虽然鱼缸里同类的鱼只占很少的比例,每种鱼同类和异类之间咬架的频次之比为 85:15。

    \n

    所以答案就很明确了,鲜艳的色彩是同类互相争夺地盘时发出的信号,表示“别惹我!”。色彩越鲜明,同类越能清楚地感知到这一信息。

    \n
    \"\"
    \n

    那么为什么是热带的鱼而不是别的地方的鱼呢?下面是猫盟编辑的推测,未必全可信,但我想不会特别离题的。

    \n

    生物拥有两条基本的化学性质:

    \n

    1,所有生物控制生化活动的酶都对温度敏感,所以超出或者低于它们的最适温度,生命活性都会大打折扣。

    \n

    2,所有生物的生化活动都离不开水。

    \n

    另外还要加上第三条,大部分食物链是从绿色植物和藻类(光合作用)开始的,所以大部分生物离不开阳光。

    \n

    因此生命在什么样的地方最繁盛?集齐适宜的水、热、光三大因素的地方。所以庄稼在夏天生长而不是在冬天。

    \n

    热带的浅海就是具有丰富的水、热、光资源的地方。结果是这里的生物量和生物多样性都非常高,这是一个生命非常拥挤,或者说“卷”的地方。

    \n

    “卷”的环境有什么特征?

    \n

    你遭受到的压力大多是来自其他人,而不是来自物理环境的。

    \n

    同理,在一个生物密度非常高,生物之间的互动非常多的环境里,生物受到的自然选择大多是来自其他生物。

    \n

    于是在这种环境下,生物演化出大量的信号发给其他生物,颜色就是常用的一种发信号的方式。除了表示“从我的地盘滚开!”的颜色,还有表示“我有毒”的警告色。顺便一提,这些信号不一定意味着相互仇视,比如雄性动物可能有鲜艳颜色来吸引雌性,会给大鱼抓寄生虫的清洁鱼和清洁虾,也有鲜艳的条纹作为“医生制服”。

    \n

    类似的演化逻辑也适用于热带雨林。

    \n
    \"\"
    \n
    \"\"
    \n
    \"\"
    \n
    \"\"
    \n
    \"\"
    猫盟在云南考察中拍下的一些色彩鲜艳的动植物。
    \n

    反过来在缺乏某一条件的环境,比如冰原、荒漠,动物的颜色就要单调得多。

    \n

    而光照条件差的环境比如深海,不仅生物的数量少,而且视觉信号也很难发出,也就是“深海里黑咕隆咚,大家谁也看不见谁,随便长长就得了”。

    \n

    但是要说明这个原则不是绝对的。比如以色彩鲜艳著称的鸡形目鸟,很多都不是生活在热带地区。比如六盘山的气候属于温带半湿润大陆性气候,我们在这里拍到了很多的红腹锦鸡。

    \n
    \"\"
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782530", - "creator": "", - "pubDate": "Sun, 13 Jul 2025 08:27:02 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "565a00b28612b35d0e8b652eefd57d4e", - "highlights": [] - }, - { - "title": "为什么有时候无法控制自己的情绪?", - "description": "
    \"头图\"/
    \n

    由于天性敏感,成长至今我一直都在与强烈的情绪做对抗。管理情绪是我无时无刻都在做的事情,因为我相信:“ 驾驭情绪 = 驾驭人生。”

    \n

    如果一个人无法管理自己的情绪,任由情绪控制自己,不仅会伤到身边的人,更会伤到自己。无法控制情绪,有时候比生活无法自理后果更严重。

    \n

    当你意识到这个问题的存在,就已经是一件非常好的事情。以下是这些年我整理的一套对我自己适用的方法:

    \n

    1. 认识情绪 - 情绪圆盘

    \n

    应该有许多人和我一样,小时候并没有人教过我们情绪的种类。我在这几年养育自己的孩子时,因为他不会说话,所以我必须观察他的表情和动作,再给他的情绪进行命名,才知道如何去处理他的情绪。

    \n

    也就是在这个时候,我意识到我根本就不具备 “ 开心 ” “ 伤心 ” “ 生气 ” 等基础情绪词汇以外的词汇。这也就导致我在最初处理我孩子的情绪时,只能手忙脚乱的什么都给他,直到给到他要的那个东西为止。

    \n

    联想到我小时候,一件事情刺激了我的情绪时,我的大脑死机时只会会发生 “冻结 ” “ 攻击 ” “ 逃跑 ” 三种原始状态。为了高效识别我那还不会说话的孩子的需要,我第一次在人生中向自己提问,到底情绪有多少种?

    \n

    在无意间,我看到了这个:

    \n
    \"\"
    \n

    这张图叫作情绪圆盘(Emotion Wheel),又叫情绪之轮、情感轮盘、情绪图谱,最早由美国心理学家 Robert Plutchik 提出。他认为情绪像颜色一样有核心原色,也有混合、层级与强度。

    \n

    情绪圆盘的目的是帮助我们从模糊的 “我不太舒服” “我很烦”中,精准识别出情绪的种类、强度与成因,从而提升自我理解、沟通能力和情绪调节力。

    \n

    最基本的感受,Plutchik 定义为 8 种“情绪原色”:喜悦、信任、恐惧、惊讶、悲伤、厌恶、愤怒、期待。此外,还有衍生情绪与细化表达让情绪的定义更加丰富多彩。

    \n

    词汇量的限制让我们无法识别与命名自己的情绪,就导致我们无法控制情绪。所以我们首先需要去学会识别,在有情绪的那一秒,先问问自己:“ 你感受到了什么?” 才能逐渐去控制和驾驭自己的情绪。

    \n

    2. “ 你现在是什么感受?”

    \n

    这个问题,是无法控制情绪者直接跳过却最关键的问题。因为在我们的教育中,我们常常将被动的接受他人的感受视为一种礼仪与宽容。而我们常常忽略自己的感受,并将它压制在心底。一直到我们爆发为止。

    \n

    在我第一次教我孩子什么是情绪时,发现光说没用,于是我给他买了一个情绪小镜子。

    \n
    \"\"
    \n

    每当我感受到孩子的不同情绪时,我则会尽可能的用丰富的词汇帮他定义他此刻的感受。并且陪着他一起找到他真正想要做却自己做不到的事情。

    \n

    我的问题通常是三个:

    \n
      \n
    • “ 你怎么啦?”
    • \n
    • “ 为什么会这样?”
    • \n
    • “ 可以不可以指给我看你要什么?”
    • \n
    \n

    同理,每个人对待自己,应该好好问问自己心里的小孩为什么会愤怒、伤心、痛苦,除了闷在心里或者爆发,我们有没有别的方式去表达?

    \n

    情绪是我们与世界互动最直接的语言。当你能精准地说出情绪,就拥有了更强的 自我掌控力、沟通能力与人际穿透力。

    \n

    所以常常要问自己:“ 你怎么啦?”

    \n

    3. 未被处理的心理创伤

    \n

    弗洛伊德说:“ 人会反复寻找类似早年创伤场景来“重新演出”,试图这一次赢回掌控感、修复当年的无力。”

    \n

    有时候我们的情绪无法控制,也是因为小时候没有治愈与闭环的一个心理创伤的重演。我们选择的人,常常又一次让我们失望。这就叫作 “ 重演强迫(Repetition Compulsion)”

    \n

    你的反应不是“过度”,而是你小时候的那部分受伤的你,在今天被某句话、某个动作,激活了旧有痛点。于是在心理学上,我们使用 “ 内在小孩(Inner Child)疗法” 去识别当年我们的伤,并以成年人的方式完成闭环。

    \n

    4. 情绪管理实操4.1. 呼吸法

    \n

    很长时间以来,由于有正念练习的习惯,我控制自己强烈情绪的最常用方式就是深呼吸。快速激活副交感神经的方式,深而缓的吸气和呼气,可以激活迷走神经,让心率减慢从而平静情绪。除此之外可以调节血氧与二氧化碳平衡、让注意力回到身体。

    \n

    我的钢琴老师教给我的呼吸方式是在脑子里数数,每一秒一个数字。吸 6 下,停顿,呼 4 下,停顿。吸气时,肚子鼓起来,呼气时,肚子扁下去(腹式呼吸)。

    \n

    4.2. 5-4-3-2-1 情绪锚定法

    \n

    这种适用于激烈情绪来临,并且你已经快失控的时候。也可以用于焦虑症患者濒死感爆发、恐慌发作、失眠等等情景。

    \n
      \n
    • 看
    • \n
    \n

    环顾四周,说出你能看见的 5 个东西,详细描述外观

    \n
      \n
    • 碰
    • \n
    \n

    说出你现在能碰到的 4 个东西,详细描述质感

    \n
      \n
    • 听
    • \n
    \n

    并说出你现在能听到的 3 种声音,并描述它们的来源

    \n
      \n
    • 闻
    • \n
    \n

    说一说你现在能闻到的两种味道,并描述这种味道的来源

    \n
      \n
    • 尝
    • \n
    \n

    感受一下你嘴巴里的味道

    \n

    最后,慢慢吐气,反复一轮。

    \n

    4.3. 情绪小游戏

    \n

    这是我在一本叫《小学生心理手册》上看到的,由于我是教育学专业,课程中很大一部分占比是心理学。然而我觉得专业心理学知识其实并不适合每个人看。因为心理学是一个庞大的学科,里面包含了神经学、生物学、医学等交叉领域。很容易把自己看出问题,觉得自己有病。

    \n

    这本书是我在给孩子做情绪引导的时候真正会用的一本书,帮助他说出他想说的话。也在这个过程中,我找到了很多我小时候感觉受伤却不知道为什么的成因。这本书名字虽然很不怎么样,但是它其实同样适用于成年人,可以重新治愈一次内心小小的自己。

    \n
    \"\"
    \n

    这里面我最喜欢的游戏例如:

    \n
      \n
    • 写出能立即让自己开心的几件事情,例如:吃个冰激凌、吃个火锅、买一件新衣服等等
    • \n
    • 写出让自己恐惧的事情,
    • \n
    • 将自己现在的情绪全部都剪成小纸片,塞到一个瓶子里
    • \n
    \n

    时间久了你会发现,原来有情绪,并不是那么可怕的事情,甚至是有趣的。只是我们也许从小没有真正的经历过系统性的情绪管理训练,导致我们一直都觉得自己:

    \n

    有情绪 = 不稳定 = 有病。

    \n

    情绪的输出是必要的,也是健康的。我们要告诉自己,我们没有病,我们只是却不知道怎么表达自己的情绪。

    \n

    5. 允许自己有情绪才能更好的认识自己

    \n

    一个没有情绪的人,要么生病了,要么死了。真正的情绪稳定,并不是不发脾气压抑自己,而是能够直面情绪的存在与发生,并且接受它存在的合理性。

    \n

    即使是焦虑和恐惧,也都是原始社会中让人活命的必要情绪,否则你将识别不出危险。所以情绪的存在是必要的。而我们不能以绝对的方式去 “攻击” 或 “逃跑”, 而是要学会在不伤害他人的情况下,表明自己的情绪。

    \n

    记住,你的情绪,决定了你的命运。

    \n

    最后,请好好治愈你自己吧!愿每个像我一样的人,最终找到一个驾驭自己情绪的方式,快乐开心的生活。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", - "content": "
    \"头图\"/
    \n

    由于天性敏感,成长至今我一直都在与强烈的情绪做对抗。管理情绪是我无时无刻都在做的事情,因为我相信:“ 驾驭情绪 = 驾驭人生。”

    \n

    如果一个人无法管理自己的情绪,任由情绪控制自己,不仅会伤到身边的人,更会伤到自己。无法控制情绪,有时候比生活无法自理后果更严重。

    \n

    当你意识到这个问题的存在,就已经是一件非常好的事情。以下是这些年我整理的一套对我自己适用的方法:

    \n

    1. 认识情绪 - 情绪圆盘

    \n

    应该有许多人和我一样,小时候并没有人教过我们情绪的种类。我在这几年养育自己的孩子时,因为他不会说话,所以我必须观察他的表情和动作,再给他的情绪进行命名,才知道如何去处理他的情绪。

    \n

    也就是在这个时候,我意识到我根本就不具备 “ 开心 ” “ 伤心 ” “ 生气 ” 等基础情绪词汇以外的词汇。这也就导致我在最初处理我孩子的情绪时,只能手忙脚乱的什么都给他,直到给到他要的那个东西为止。

    \n

    联想到我小时候,一件事情刺激了我的情绪时,我的大脑死机时只会会发生 “冻结 ” “ 攻击 ” “ 逃跑 ” 三种原始状态。为了高效识别我那还不会说话的孩子的需要,我第一次在人生中向自己提问,到底情绪有多少种?

    \n

    在无意间,我看到了这个:

    \n
    \"\"
    \n

    这张图叫作情绪圆盘(Emotion Wheel),又叫情绪之轮、情感轮盘、情绪图谱,最早由美国心理学家 Robert Plutchik 提出。他认为情绪像颜色一样有核心原色,也有混合、层级与强度。

    \n

    情绪圆盘的目的是帮助我们从模糊的 “我不太舒服” “我很烦”中,精准识别出情绪的种类、强度与成因,从而提升自我理解、沟通能力和情绪调节力。

    \n

    最基本的感受,Plutchik 定义为 8 种“情绪原色”:喜悦、信任、恐惧、惊讶、悲伤、厌恶、愤怒、期待。此外,还有衍生情绪与细化表达让情绪的定义更加丰富多彩。

    \n

    词汇量的限制让我们无法识别与命名自己的情绪,就导致我们无法控制情绪。所以我们首先需要去学会识别,在有情绪的那一秒,先问问自己:“ 你感受到了什么?” 才能逐渐去控制和驾驭自己的情绪。

    \n

    2. “ 你现在是什么感受?”

    \n

    这个问题,是无法控制情绪者直接跳过却最关键的问题。因为在我们的教育中,我们常常将被动的接受他人的感受视为一种礼仪与宽容。而我们常常忽略自己的感受,并将它压制在心底。一直到我们爆发为止。

    \n

    在我第一次教我孩子什么是情绪时,发现光说没用,于是我给他买了一个情绪小镜子。

    \n
    \"\"
    \n

    每当我感受到孩子的不同情绪时,我则会尽可能的用丰富的词汇帮他定义他此刻的感受。并且陪着他一起找到他真正想要做却自己做不到的事情。

    \n

    我的问题通常是三个:

    \n
      \n
    • “ 你怎么啦?”
    • \n
    • “ 为什么会这样?”
    • \n
    • “ 可以不可以指给我看你要什么?”
    • \n
    \n

    同理,每个人对待自己,应该好好问问自己心里的小孩为什么会愤怒、伤心、痛苦,除了闷在心里或者爆发,我们有没有别的方式去表达?

    \n

    情绪是我们与世界互动最直接的语言。当你能精准地说出情绪,就拥有了更强的 自我掌控力、沟通能力与人际穿透力。

    \n

    所以常常要问自己:“ 你怎么啦?”

    \n

    3. 未被处理的心理创伤

    \n

    弗洛伊德说:“ 人会反复寻找类似早年创伤场景来“重新演出”,试图这一次赢回掌控感、修复当年的无力。”

    \n

    有时候我们的情绪无法控制,也是因为小时候没有治愈与闭环的一个心理创伤的重演。我们选择的人,常常又一次让我们失望。这就叫作 “ 重演强迫(Repetition Compulsion)”

    \n

    你的反应不是“过度”,而是你小时候的那部分受伤的你,在今天被某句话、某个动作,激活了旧有痛点。于是在心理学上,我们使用 “ 内在小孩(Inner Child)疗法” 去识别当年我们的伤,并以成年人的方式完成闭环。

    \n

    4. 情绪管理实操4.1. 呼吸法

    \n

    很长时间以来,由于有正念练习的习惯,我控制自己强烈情绪的最常用方式就是深呼吸。快速激活副交感神经的方式,深而缓的吸气和呼气,可以激活迷走神经,让心率减慢从而平静情绪。除此之外可以调节血氧与二氧化碳平衡、让注意力回到身体。

    \n

    我的钢琴老师教给我的呼吸方式是在脑子里数数,每一秒一个数字。吸 6 下,停顿,呼 4 下,停顿。吸气时,肚子鼓起来,呼气时,肚子扁下去(腹式呼吸)。

    \n

    4.2. 5-4-3-2-1 情绪锚定法

    \n

    这种适用于激烈情绪来临,并且你已经快失控的时候。也可以用于焦虑症患者濒死感爆发、恐慌发作、失眠等等情景。

    \n
      \n
    • 看
    • \n
    \n

    环顾四周,说出你能看见的 5 个东西,详细描述外观

    \n
      \n
    • 碰
    • \n
    \n

    说出你现在能碰到的 4 个东西,详细描述质感

    \n
      \n
    • 听
    • \n
    \n

    并说出你现在能听到的 3 种声音,并描述它们的来源

    \n
      \n
    • 闻
    • \n
    \n

    说一说你现在能闻到的两种味道,并描述这种味道的来源

    \n
      \n
    • 尝
    • \n
    \n

    感受一下你嘴巴里的味道

    \n

    最后,慢慢吐气,反复一轮。

    \n

    4.3. 情绪小游戏

    \n

    这是我在一本叫《小学生心理手册》上看到的,由于我是教育学专业,课程中很大一部分占比是心理学。然而我觉得专业心理学知识其实并不适合每个人看。因为心理学是一个庞大的学科,里面包含了神经学、生物学、医学等交叉领域。很容易把自己看出问题,觉得自己有病。

    \n

    这本书是我在给孩子做情绪引导的时候真正会用的一本书,帮助他说出他想说的话。也在这个过程中,我找到了很多我小时候感觉受伤却不知道为什么的成因。这本书名字虽然很不怎么样,但是它其实同样适用于成年人,可以重新治愈一次内心小小的自己。

    \n
    \"\"
    \n

    这里面我最喜欢的游戏例如:

    \n
      \n
    • 写出能立即让自己开心的几件事情,例如:吃个冰激凌、吃个火锅、买一件新衣服等等
    • \n
    • 写出让自己恐惧的事情,
    • \n
    • 将自己现在的情绪全部都剪成小纸片,塞到一个瓶子里
    • \n
    \n

    时间久了你会发现,原来有情绪,并不是那么可怕的事情,甚至是有趣的。只是我们也许从小没有真正的经历过系统性的情绪管理训练,导致我们一直都觉得自己:

    \n

    有情绪 = 不稳定 = 有病。

    \n

    情绪的输出是必要的,也是健康的。我们要告诉自己,我们没有病,我们只是却不知道怎么表达自己的情绪。

    \n

    5. 允许自己有情绪才能更好的认识自己

    \n

    一个没有情绪的人,要么生病了,要么死了。真正的情绪稳定,并不是不发脾气压抑自己,而是能够直面情绪的存在与发生,并且接受它存在的合理性。

    \n

    即使是焦虑和恐惧,也都是原始社会中让人活命的必要情绪,否则你将识别不出危险。所以情绪的存在是必要的。而我们不能以绝对的方式去 “攻击” 或 “逃跑”, 而是要学会在不伤害他人的情况下,表明自己的情绪。

    \n

    记住,你的情绪,决定了你的命运。

    \n

    最后,请好好治愈你自己吧!愿每个像我一样的人,最终找到一个驾驭自己情绪的方式,快乐开心的生活。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", - "category": "", - "link": "https://daily.zhihu.com/story/9782531", - "creator": "", - "pubDate": "Sun, 13 Jul 2025 08:27:02 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "a6edf8b3267afbd3606be90cf9096317", - "highlights": [] - }, - { - "title": "「祛魅」的本质是什么?不断暗示自己应该对理想化的感情「祛魅」、接受现实的不完美,这是正确的吗?", - "description": "
    \"头图\"/
    \n

    你就记着一个原则,凡是类似「祛魅」、「异化」、「物化」、「解构」等等,这种看上去很抽象很厉害的词儿,你都不能用二极管式的对错思维来进行判断。

    \n

    这是因为当我们将这些词汇从它们原来所存在的上下文抽取出来,用于形容我们具体的生活现象时,它们往往已经不再是其本意。

    \n

    所以讨论这些词本身的对错并没有太大的意义,这全看你怎么去认知它,怎么去构建它。

    \n

    而我,则更倾向用重新解释的方式,让这些词真正能帮到你,而不是成为一个单纯用来被肯定或否认的对象。

    \n
    \n

    比如,这个问题中问到的「祛魅」。

    \n

    它本来指的是现代社会对于宗教进行理性化和文化合理化解释的现象,后来被马克思·韦伯拿来描述现代社会理性化进程中,神秘、神圣的东西逐渐被科学和效率取代的现象,这本身是个宏观层面、社会层面的,很大的词汇。

    \n

    但好像就在一夜之间,所有人都开始念叨着要「祛魅」——对爱情祛魅,对工作祛魅,对人生的意义祛魅……

    \n

    仿佛只要把什么东西从神坛上拽下来,踩上两脚,吐口唾沫,自己就能立刻获得某种超然的清醒。

    \n

    「爱情?别傻了,都是荷尔蒙和多巴胺的骗局!」

    \n

    「理想?醒醒吧,996 和还不完的房贷才是你的宿命!」

    \n

    「婚姻?不过是经济共同体的契约罢了。」

    \n

    你看,只要善于祛魅,就能把自己活成一个清醒的悲观主义者,提前把所有美好的可能统统踩碎,然后骄傲的宣布:「看吧,我早知道会这样!」

    \n

    但问题是——你这是「祛魅」了吗?

    \n

    还是只是换了一种方式继续自我欺骗?

    \n
    \n

    我跟你讲,真落地到操作层面,比如说心理学中,最接近「日常祛魅」的词汇,叫做「防御机制」。

    \n

    想象一下,一个孩子第一次被朋友背叛,他可能会哭,会愤怒,会不解。

    \n

    但是到了第三次、第四次,他开始学会冷笑:「呵,人性本恶,我早该知道……」

    \n

    这不叫清醒,这叫麻木!

    \n

    祛魅者们的逻辑很简单:只要我先否定一切,就没人能伤害我。

    \n

    他们害怕失望,所以就干脆先让自己对一切不抱希望;

    \n

    他们害怕幻灭,所以就干脆先亲手打碎所有的幻想。

    \n

    你问我,这样的祛魅是正确的吗?

    \n

    要我说,这哪里是祛魅,不过是一场更高级的自我安慰罢了。

    \n
    \n

    所以我想斗胆重新定义一下祛魅这个词汇,

    \n

    我认为真正合理的祛魅,不是否认,而是重构。

    \n

    不是让你变成一个冷血的现实主义者,而是让你学会在幻灭之后,依然能建立起自己的信仰。

    \n

    爱情祛魅?不是让你相信「爱情不存在」,而是让你明白,爱情不是童话里的完美故事,是两个不完美的人,在泥潭里互相拉扯着向前走。

    \n

    理想祛魅?不是让你放弃追求,而是让你接受,理想不是一蹴而就的奇迹,而是你日复一日的枯燥的坚持。

    \n

    人生祛魅?不是让你变成行尸走肉,而是让你在看清生活的荒诞之后,依然能找到属于自己的那点微光。

    \n

    祛魅不是让你放弃相信,而是让你学会更坚韧的相信。

    \n

    所以,别再去纠结「祛魅」是对还是错了。

    \n

    也别在自欺欺人说「我已经祛魅了」。

    \n

    真正的祛魅,是让你学会在废墟之上,重新点燃自己的火把。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", - "content": "
    \"头图\"/
    \n

    你就记着一个原则,凡是类似「祛魅」、「异化」、「物化」、「解构」等等,这种看上去很抽象很厉害的词儿,你都不能用二极管式的对错思维来进行判断。

    \n

    这是因为当我们将这些词汇从它们原来所存在的上下文抽取出来,用于形容我们具体的生活现象时,它们往往已经不再是其本意。

    \n

    所以讨论这些词本身的对错并没有太大的意义,这全看你怎么去认知它,怎么去构建它。

    \n

    而我,则更倾向用重新解释的方式,让这些词真正能帮到你,而不是成为一个单纯用来被肯定或否认的对象。

    \n
    \n

    比如,这个问题中问到的「祛魅」。

    \n

    它本来指的是现代社会对于宗教进行理性化和文化合理化解释的现象,后来被马克思·韦伯拿来描述现代社会理性化进程中,神秘、神圣的东西逐渐被科学和效率取代的现象,这本身是个宏观层面、社会层面的,很大的词汇。

    \n

    但好像就在一夜之间,所有人都开始念叨着要「祛魅」——对爱情祛魅,对工作祛魅,对人生的意义祛魅……

    \n

    仿佛只要把什么东西从神坛上拽下来,踩上两脚,吐口唾沫,自己就能立刻获得某种超然的清醒。

    \n

    「爱情?别傻了,都是荷尔蒙和多巴胺的骗局!」

    \n

    「理想?醒醒吧,996 和还不完的房贷才是你的宿命!」

    \n

    「婚姻?不过是经济共同体的契约罢了。」

    \n

    你看,只要善于祛魅,就能把自己活成一个清醒的悲观主义者,提前把所有美好的可能统统踩碎,然后骄傲的宣布:「看吧,我早知道会这样!」

    \n

    但问题是——你这是「祛魅」了吗?

    \n

    还是只是换了一种方式继续自我欺骗?

    \n
    \n

    我跟你讲,真落地到操作层面,比如说心理学中,最接近「日常祛魅」的词汇,叫做「防御机制」。

    \n

    想象一下,一个孩子第一次被朋友背叛,他可能会哭,会愤怒,会不解。

    \n

    但是到了第三次、第四次,他开始学会冷笑:「呵,人性本恶,我早该知道……」

    \n

    这不叫清醒,这叫麻木!

    \n

    祛魅者们的逻辑很简单:只要我先否定一切,就没人能伤害我。

    \n

    他们害怕失望,所以就干脆先让自己对一切不抱希望;

    \n

    他们害怕幻灭,所以就干脆先亲手打碎所有的幻想。

    \n

    你问我,这样的祛魅是正确的吗?

    \n

    要我说,这哪里是祛魅,不过是一场更高级的自我安慰罢了。

    \n
    \n

    所以我想斗胆重新定义一下祛魅这个词汇,

    \n

    我认为真正合理的祛魅,不是否认,而是重构。

    \n

    不是让你变成一个冷血的现实主义者,而是让你学会在幻灭之后,依然能建立起自己的信仰。

    \n

    爱情祛魅?不是让你相信「爱情不存在」,而是让你明白,爱情不是童话里的完美故事,是两个不完美的人,在泥潭里互相拉扯着向前走。

    \n

    理想祛魅?不是让你放弃追求,而是让你接受,理想不是一蹴而就的奇迹,而是你日复一日的枯燥的坚持。

    \n

    人生祛魅?不是让你变成行尸走肉,而是让你在看清生活的荒诞之后,依然能找到属于自己的那点微光。

    \n

    祛魅不是让你放弃相信,而是让你学会更坚韧的相信。

    \n

    所以,别再去纠结「祛魅」是对还是错了。

    \n

    也别在自欺欺人说「我已经祛魅了」。

    \n

    真正的祛魅,是让你学会在废墟之上,重新点燃自己的火把。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", - "category": "", - "link": "https://daily.zhihu.com/story/9782493", - "creator": "", - "pubDate": "Sat, 12 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "987540095f46ac857587ce0bc25728dd", - "highlights": [] - }, - { - "title": "「卷又卷不动,躺又躺不平」?总是因为「放松」而感到自责,这是种怎样的心理?如何调节?", - "description": "
    \"头图\"/
    \n

    「卷又卷不动,躺又躺不平」,以及因此为「放松」感到自责的心理,恰恰是我在《倾尽全力去「敷衍」》一文中试图剖析的困境。这是一种被困在「得过且过者」和「拼命努力者」这两种无效模式之间的状态,其核心在于人们混淆了外部强加的「质量标尺」与自身真实的「偏好曲线」,并因此产生了不必要的内疚感。

    \n

    让我来解释一下这种心理:

    \n
      \n
    1. 内化了「应该拼命」的社会规训: 社会、家长、老师从小就向我们灌输「你应该尽力做到最好」、「努力奋斗是一种美德」的观念。这种观念让你觉得,任何时候,只要没有在某个(往往是他人定义的)「质量标尺」上向右推进(即追求更高质量、更多产出),你就是在犯错,就是「不够好」。于是,「放松」这种在质量标尺上看起来是「停滞」甚至「倒退」的行为,自然会引发自责。你觉得自己在「浪费时间」,没有「尽力」。

    2. \n
    3. 对「卷」的无效性有所察觉,但又无法彻底「躺平」: 「卷又卷不动」意味着你可能已经意识到,像个「拼命努力者」一样,不问目标、不计成本地在某个质量标尺上盲目追求极致,往往是「做无用功」,投入巨大却可能偏离了你真正的需求,或者让你精疲力尽,难以为继。 然而,「躺又躺不平」则是因为你内心深处依然被那种「应该拼命」的规训所束缚,或者你无法完全抛弃所有目标。你害怕彻底的「得过且过」会让你一事无成,或者受到他人的负面评价。这种状态下,即使你尝试放松,内心那个「应该努力」的声音也不会停止,于是自责感便油然而生。

    4. \n
    5. 目标模糊,导致评价标准混乱: 当你因为放松而自责时,很可能你并没有清晰地定义自己「真正想要实现的目标」以及达成该目标所需的「质量目标」。你只是笼统地觉得「应该做得更多更好」。没有明确的目标,你就无法判断当前的「放松」是必要的休整(为了更高效地达成目标),还是真正的懈怠(偏离了目标)。
    6. \n
    \n

    如何调节这种心理?关键在于采取我所说的「第三条路」——倾尽全力去「敷衍」:

    \n
      \n
    1. 明确你的真实目标: 首先,停下来,认真思考:对于你当前面对的任务或人生阶段,你真正想要的是什么?是为了拿到一个特定的证书?是为了学到某项具体技能?是为了维持一个舒适的生活水平?还是为了某个更宏大的理想?不要被社会或他人告诉你「应该」想要什么。

    2. \n
    3. 根据真实目标,设定清晰的「质量目标」: 一旦明确了真实目标,再据此设定一个恰到好处的质量目标。这个目标应该是「精确命中」,不多也不少。例如,如果你的目标只是通过一门考试,那么你的质量目标就是及格线,而不是完美无缺的满分。如果你的目标是学习知识,那么分数可能就不是最重要的,重要的是你是否吸收了你需要的信息。

    4. \n
    5. 以「最小代价」精确命中你的质量目标: 将你的精力和聪明才智用于「如何以最小的努力(时间、精力、资源)精确达成你设定的质量目标」。这本身就是一个有趣的优化问题。这包括了高效工作,也包括了必要的休息和放松,因为持续的疲劳会降低效率,反而增加达成目标的总代价。

    6. \n
    7. 重新定义「放松」的意义: 如果「放松」和「休息」是你为了以最小代价、可持续地达成你的真实目标所必需的环节,那么它就不是「浪费」,而是高效策略的一部分。就像一台机器需要保养才能更好地运转一样。这种情况下,因为必要的放松而自责是毫无道理的。

    8. \n
    9. 将完美主义导向「过程」而非「结果」: 如果你是个完美主义者,不要强迫自己去容忍低质量的产出(如果那确实低于你为自己设定的合理目标)。但是,你可以将你的完美主义倾向导向「以最小努力达成目标」这个过程。追求策略的完美、执行的完美、对沉没成本的果断放弃、以及对何时「恰到好处」的精准判断。

    10. \n
    11. 为「做无用功」而内疚,而非为「未达他人标准」而内疚: 如果你非要内疚,那么请为你「未能高效达成自己的目标」(比如投入了过多精力却收效甚微,或者因为不必要的拖延而错失良机)而内疚,而不是为没有将某个随意的、他人设定的质量标准当作自己的真实偏好而内疚。
    12. \n
    \n

    当你能清晰地知道自己要去哪里(真实目标),需要做到什么程度(质量目标),并且专注于如何最高效地到达那里时,「放松」就不再是让你自责的洪水猛兽,而是你智慧策略的一部分。你会发现,「卷」可以是有方向、有效率的,「躺」也可以是策略性的休整,而不是彻底的放弃。这样,你就能从「卷又卷不动,躺又躺不平」的困境中解脱出来。

    \n
    以上内容为 gemini-2.5-pro 生成的序言
    以下内容摘自 @Thoughts Memo 汉化组的译文《倾尽全力去「敷衍」》
    \n

    我经常接触许多有效利他主义者(EA)。他们中的许多人,其主要驱动力往往类似于内疚感(因自身坐拥优渥资源与机遇而他人仍在受苦)或羞愧感(因觉得自己做得不够)。说实话,我许多非 EA 圈的朋友,其主要动力也源于内疚或羞愧。

    \n

    我无意指摘这种由内疚 / 羞愧驱动的动机:我个人遵循这样一条原则,当有人为了让世界变得更美好而付出巨大努力或投入大量资金时,我会极力避免去评判他们的动机。内疚感和羞愧感或许是将人们从自满状态中警醒过来的有效工具。然而,我担心从长远来看,内疚和羞愧并非健康的动力来源。在我许多朋友身上,内疚和羞愧往往会引发执行力缺失(akrasia)、降低效率,并消耗积极性。因此,在未来几周,我将撰写系列文章,探讨如何摆脱内疚 / 羞愧驱动的动机,并代之以更强大的动力。

    \n

    1

    \n

    假设你是一名大学生,需要交一篇论文。论文的质量取决于你投入的精力。我们假定你对这个项目相当了解:只需适度努力便能拿到 A,而若投入巨大精力,你能写出远超普通 A 级水准的佳作。

    \n
    \"\"
    img
    \n

    教育环境总是潜移默化地试图让学生相信,他们的偏好应当永远指向质量标尺的右端。家长和老师会说「你应该尽力做到最好」之类的话,并对那些不奋力追求更高质量的人大加指责或令其羞愧。

    \n

    面对这种规训,人们通常有两种反应。第一类人(「得过且过者」)不认同质量越高越符合个人偏好这种看法。他们不在乎课程,不停抱怨必须做的那些毫无意义的无用功,马马虎虎地应付作业,交上去的东西要么勉强及格,要么干脆不及格。「得过且过者」往往对强迫他们写论文的权威感到不满。

    \n

    第二类人(「拼命努力者」)则认同质量越高越符合个人偏好这一前提,在质量标尺上不断追求更高。「拼命努力者」涵盖了各种能力水平的人:有的拼尽全力只为拿到 C,有的则以能创作出杰作为傲。有些人试图讨好老师,另一些人则是完美主义者,绝不允许自己交出任何未尽全力的作品。他们中有些是一丝不苟的人,即便拿了 A 仍感内疚,因为他们知道自己本可以做得更好,也认为本应做得更好。他们中有的谦逊,有的爱炫耀,但无一例外都在向右推进。

    \n

    社会花费了大量时间规训我们,让我们认为「拼命努力者」优于「得过且过者」。努力奋斗是一种美德。「得过且过者」没抓住教育的意义;他们待在学校干嘛呢?「拼命努力者」前途无量,「得过且过者」则一事无成。

    \n

    但实际上,这两类人的做法都有问题。

    \n

    如果你想变得真正高效,请记住你的奋斗目标是什么。

    \n

    而且,剧透一下,你的目标并非「写一篇高质量的论文」。那会是一个相当愚蠢的奋斗目标。

    \n

    你选修这门课的目标究竟是什么?也许是出于社会压力(父母要求的)、社会惯性(别人都上大学)以及一种模糊的信念——认为这是通往好工作和舒适生活的必经之路。又或许,你想要好成绩,以便将来获得大量金钱和权力去「屠龙」(实现宏伟目标)。再或许,你纯粹是出于对知识的渴求。但无论原因为何,这个原因都会在质量标尺上确定一个具体的目标点。因此,你的目标应该是精确命中那个质量目标——既不超出,也不低于。

    \n

    你的偏好并非「在质量标尺上越往右越好」。你的偏好是以最小的代价(努力)精确命中那个质量目标。

    \n
    \"\"
    img
    \n

    如果你只想通过这门课,那就用最少的精力去通过。其他的努力都是在做无用功。

    \n

    如果你想拿高分,那就用最少的精力去拿高分。其他的努力都是在做无用功。

    \n

    如果你想尽可能透彻地学习知识内容,那就从作业中汲取所有知识养分,不必纠结于分数。其他的努力都是在做无用功。

    \n

    如果你想同时达成多个目标:好成绩(作为能力信号)、赢得尊重(出于社交需求)、获取知识(为了种种益处),那么就精准定位那个能让你获得好成绩、给老师留下好印象、并学到知识的最低质量目标,并尽可能高效地达成它。任何超出的部分都是在做无用功。

    \n

    你的质量目标可能远低于 F 线(不及格)——比如,你早已通过该课程,这份作业无关紧要。你的质量目标也可能远高于 A 线——比如,你是为了学习知识内容,而分数膨胀意味着拿 A 比以信息量最大的方式完成作业要容易得多。但无论如何,你的真实目标总会对应一个质量目标。

    \n

    「得过且过者」和「拼命努力者」的目标都偏离了方向。「得过且过者」嘲笑「拼命努力者」,认为他们将人为设定的质量标准奉为圭臬,在过度努力上浪费精力。「拼命努力者」则嘲笑「得过且过者」,认为他们身在课堂却拒绝学习。而双方的嘲笑都有道理!因为他们都在做无用功。

    \n

    「得过且过者」未能全力以赴,因为他们意识到那条质量标尺并非他们的偏好曲线。「拼命努力者」则将全部力量投入错误的目标,试图在标尺上走得越远越好,将精力浪费在一场并不属于他们的战斗中。所以,请选择第三条路:记住你的奋斗目标。永远全力以赴,只为尽快达成你的质量目标。

    \n

    倾尽全力去「敷衍」一切。

    \n

    (我的老师们过去常说,只要我肯努力,定能成就一番事业。我则回应他们,如果想让我更努力,他们得先发明出比 A 更高的分数等级才行。)

    \n

    2

    \n

    一个常见的反对意见在此出现:

    \n
    有些事情太重要了,不能「敷衍了事」。有些事情就值得你全力以赴去争取。敷衍家庭作业是一回事,敷衍地救人命则是完全不同的另一回事。有时候,你确实想在质量标尺上走得越远越好。
    \n

    这种说法对也不对,因为它混淆了一些概念。对于任何项目,目标始终不应高于预设的质量目标,并且永远要追求以最小的代价(精力、资源)达成目标。无论你是在写学期论文、从火场救人,还是在创建跨星系的人类文明——目标永远是以最小代价达到某个质量目标。有效资源是稀缺的。

    \n

    话虽如此,质量目标可以设得非常非常高。事实上,质量目标有时甚至高不可攀。通常,我们根本没有能力达到我们设定的质量目标,在这些情况下,我们确实想要沿着偏好曲线尽可能地向右推进。

    \n
    \"\"
    img
    \n

    当你从事的工作相对于你的技能水平而言非常困难时,或者在竞争激烈的环境中,又或者当你在发出你「能吃苦耐劳」的信号时,这种情况会自然发生。但别搞混了。即使你是为热爱而写作,最终也必须停止修改,宣告完成。即使你正在从燃烧的建筑中救人,最终也会停止为确保此人存活而投入更多精力,转而将精力用于拯救其他濒危者。即使你在建设一个跨星系的文明,也需要在建设文明的投入与享受文明生活的投入之间做出权衡。

    \n

    对于某些目标,你可能无法达到预设的质量要求,在这些情况下,你会不断向右推进(尽力而为)。但是,太多人会下意识地认为,当权威人士划定一条质量标准线时,他们就「理应」尽可能地向右靠拢。他们认为自己「应该」在意质量本身。这是很傻的:现实世界的问题并非要生产出最高质量的产品。在各行各业,目标都是以最小的代价达到某个质量目标。

    \n

    当然,这只是对现实的一个模糊且不准确的描述。时间、精力、能量、注意力和质量之间的相对成本通常是不断变化的,并随着信息和环境的改变而改变。关键在于能够区分开环境所暗示的质量标尺与你真实的偏好曲线。

    \n
    \n

    需要澄清的是,我并非意在表达以下观点:如果你在上大学课程,我不是说你应该每次都「低空飞过」;如果你在救人,我不是说你应该重速度轻谨慎;总而言之,我绝不是说你总应该把那个你只能勉强接受的最差结果定为目标。

    \n

    我想说的是,不要将质量标尺与你的偏好曲线混为一谈。当老师给某个分数点贴上「及格」或「不及格」的标签时,不要感到困惑,因为那只是标签,你更深层次的目标可能与这些标签仅有间接关联。记住你真正想要实现的目标,明确你的质量目标,然后瞄准它:既不超出,也不低于。

    \n

    (另外,别忘了「规划谬误」的存在!如果你瞄准 D,结果可能只拿到 F。人类往往容易过度自信。选择目标时,务必谨慎,给自己留出足够的缓冲空间。)

    \n

    3

    \n

    常见的「得过且过者」式反驳是:

    \n
    但如果「尽快拿到最低及格分」这件事本身也很无聊呢?如果这个任务也毫无意义呢?
    \n

    那还上什么大学!

    \n

    我个人发现,追求最低可接受质量标准通常是很有趣的。做家庭作业本身可能很无聊,但探索如何用尽可能少的总精力把作业做到可接受的水平,却是一个真正能调动我智慧的、有趣的优化问题——一个我内心的完美主义倾向和叛逆倾向都能认同的优化问题。

    \n

    但有时候,即使你想起了自己的奋斗目标,整个项目看起来仍然毫无价值。有时候,「以最小努力获得最低及格分」这个目标,仍然散发着别人试图将他们随意的标准硬塞给你、当作你真实偏好的那股「馊味」。若是这种情况,不妨考虑退课。

    \n

    更普遍地说,如果「以最小努力达成某某目标」的任何一种形式都显得不值得去做,那么你可能需要彻底放弃那个目标。

    \n
    \n

    相比之下,常见的「拼命努力者」式反驳如下:

    \n
    可我是个完美主义者!我生理上就无法容忍低质量的产出。我情不自禁就想做到最好。
    \n

    太好了!那就驾驭你内心的完美主义倾向,并将其导向「以最小努力达成目标」这个方向。

    \n

    与其对论文成品追求完美,不如对写论文的过程追求完美。在识别有效策略、果断放弃沉没成本、忍痛割爱(删掉自己喜欢但不必要的部分)、判断何时适可而止等方面追求完美;在不浪费丝毫注意力上追求完美;在从错误中学习上追求完美。完美主义可以是一种强大的工具,但没必要将它用于在你并不在乎的指标上过度追求。

    \n

    4

    \n

    从某种意义上说,追求以最小代价精确命中质量目标,比一味地在质量标尺上追求极致要困难得多。人总是可以通过投入更多时间在质量标尺上走得更远:当你想写出一篇惊世之作时,总能投入更多时间和精力去修正瑕疵。但当你试图以最小化无用功的方式完成论文时,犯下的错误是无法挽回的,时间上的浪费无法弥补。

    \n

    在这个意义上,如果你开始为每一次无用功而感到内疚,那么从一个「拼命努力者」转变为一个「倾尽全力去『敷衍』的人」,反而可能比平时引发更多的内疚和羞愧感。

    \n

    然而,我看到太多太多的人因为未能在质量标尺上走得足够远而感到内疚和羞愧。他们为没有在(自己讨厌的)工作上尽心尽力而内疚;为没能成为足够好的朋友(在自己都快崩溃的时候)而内疚;为没能满足父母的期望(那些期望既荒谬又不切实际)而内疚。要想用内在动力取代内疚和羞愧,首先必须打破「得过且过者 / 拼命努力者」的二分法。如果你非要内疚,那么请为未能达成自己的目标而内疚,而不是为没有将某个随意的质量标准当作自己的真实偏好而内疚。前一种内疚感,才是我有可能着手处理的那一种。

    \n

    (致一丝不苟的朋友们:在此期间,请不要为做了无用功而感到内疚!请将其视为人类行动的自然过程中的一个重要部分,而非什么需要羞愧的事。未来的文章会进一步阐述这个观点。)

    \n

    5

    \n

    大多数人似乎有两种处理问题的模式:一种是「得过且过者」那种只求省力、「滑行通过」的模式;另一种是「拼命努力者」那种力求杰作、「过度达成」的模式。面对问题时,多数人要么只付出最低限度的努力,勉强过关,只要不惹恼相关权威就行;要么就全身心投入,倾尽所有。

    \n

    几乎每个人都曾在两种模式间切换。有些人在历史课上追求卓越,在语法课上则选择「滑行」。有些人在工作上力求完美,在维系人际关系上则敷衍了事。事实上,大多数讲述「坏学生也能是好人」的暖心故事,讲的都是那些在多数领域都得过且过的学生,如何在舞蹈 / 体育 / 音乐 / 数论这些方面私下里拼命努力。

    \n

    这当然也是「拼命努力者」式宣传的又一例证:「别担心,」电影试图告诉我们,「这些得过且过者并非坏人,因为他们在其他领域是秘密的努力者!」——好像你只有把某个随意的质量标准当作自己的真实偏好,才算得上是个好人似的。

    \n

    大多数人都困在「得过且过者 / 拼命努力者」的二分法中。他们要么只做最少量的、能蒙混过关的事,要么就竭尽所能做到最多。他们的目标要么是勉强达标,要么是争做第一。极少有人能够选择一个中间的目标点,然后倾尽全力去实现它。极少有人能够调动全部力量,只为尽可能高效地达成「恰到好处」的目标。

    \n

    拒绝这种二分法。着眼于你的偏好曲线。请记住,偏好曲线所指向的,只有这一点:

    \n

    成功,不做多余的动作。

    \n

    你内心的「得过且过者」反感无意义的任务,而你内心的「拼命努力者」追求完美。那么,就同时满足这两者:瞄准那个最低限度的必要目标,并尽可能高效地达成它。

    \n

    倘若你在某个情境下忘记了「成功」究竟意味着什么,不妨花点时间停下来,想一想你的奋斗目标是什么。

    \n
    \n

    下一篇:

    \n

    破罐破摔 - 知乎

    \n
    \n
    Thoughts Memo 汉化组译制
    感谢主要译者 gemini-2.5-pro-exp,校对 Jarrett Ye
    原文:Half-assing it with everything you've got
    作者:Nate Soares
    发布日期:2015 年 3 月 12 日
    \n
    \n

    相关专栏

    \n

    超越内疚 - 知乎

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    「卷又卷不动,躺又躺不平」,以及因此为「放松」感到自责的心理,恰恰是我在《倾尽全力去「敷衍」》一文中试图剖析的困境。这是一种被困在「得过且过者」和「拼命努力者」这两种无效模式之间的状态,其核心在于人们混淆了外部强加的「质量标尺」与自身真实的「偏好曲线」,并因此产生了不必要的内疚感。

    \n

    让我来解释一下这种心理:

    \n
      \n
    1. 内化了「应该拼命」的社会规训: 社会、家长、老师从小就向我们灌输「你应该尽力做到最好」、「努力奋斗是一种美德」的观念。这种观念让你觉得,任何时候,只要没有在某个(往往是他人定义的)「质量标尺」上向右推进(即追求更高质量、更多产出),你就是在犯错,就是「不够好」。于是,「放松」这种在质量标尺上看起来是「停滞」甚至「倒退」的行为,自然会引发自责。你觉得自己在「浪费时间」,没有「尽力」。

    2. \n
    3. 对「卷」的无效性有所察觉,但又无法彻底「躺平」: 「卷又卷不动」意味着你可能已经意识到,像个「拼命努力者」一样,不问目标、不计成本地在某个质量标尺上盲目追求极致,往往是「做无用功」,投入巨大却可能偏离了你真正的需求,或者让你精疲力尽,难以为继。 然而,「躺又躺不平」则是因为你内心深处依然被那种「应该拼命」的规训所束缚,或者你无法完全抛弃所有目标。你害怕彻底的「得过且过」会让你一事无成,或者受到他人的负面评价。这种状态下,即使你尝试放松,内心那个「应该努力」的声音也不会停止,于是自责感便油然而生。

    4. \n
    5. 目标模糊,导致评价标准混乱: 当你因为放松而自责时,很可能你并没有清晰地定义自己「真正想要实现的目标」以及达成该目标所需的「质量目标」。你只是笼统地觉得「应该做得更多更好」。没有明确的目标,你就无法判断当前的「放松」是必要的休整(为了更高效地达成目标),还是真正的懈怠(偏离了目标)。
    6. \n
    \n

    如何调节这种心理?关键在于采取我所说的「第三条路」——倾尽全力去「敷衍」:

    \n
      \n
    1. 明确你的真实目标: 首先,停下来,认真思考:对于你当前面对的任务或人生阶段,你真正想要的是什么?是为了拿到一个特定的证书?是为了学到某项具体技能?是为了维持一个舒适的生活水平?还是为了某个更宏大的理想?不要被社会或他人告诉你「应该」想要什么。

    2. \n
    3. 根据真实目标,设定清晰的「质量目标」: 一旦明确了真实目标,再据此设定一个恰到好处的质量目标。这个目标应该是「精确命中」,不多也不少。例如,如果你的目标只是通过一门考试,那么你的质量目标就是及格线,而不是完美无缺的满分。如果你的目标是学习知识,那么分数可能就不是最重要的,重要的是你是否吸收了你需要的信息。

    4. \n
    5. 以「最小代价」精确命中你的质量目标: 将你的精力和聪明才智用于「如何以最小的努力(时间、精力、资源)精确达成你设定的质量目标」。这本身就是一个有趣的优化问题。这包括了高效工作,也包括了必要的休息和放松,因为持续的疲劳会降低效率,反而增加达成目标的总代价。

    6. \n
    7. 重新定义「放松」的意义: 如果「放松」和「休息」是你为了以最小代价、可持续地达成你的真实目标所必需的环节,那么它就不是「浪费」,而是高效策略的一部分。就像一台机器需要保养才能更好地运转一样。这种情况下,因为必要的放松而自责是毫无道理的。

    8. \n
    9. 将完美主义导向「过程」而非「结果」: 如果你是个完美主义者,不要强迫自己去容忍低质量的产出(如果那确实低于你为自己设定的合理目标)。但是,你可以将你的完美主义倾向导向「以最小努力达成目标」这个过程。追求策略的完美、执行的完美、对沉没成本的果断放弃、以及对何时「恰到好处」的精准判断。

    10. \n
    11. 为「做无用功」而内疚,而非为「未达他人标准」而内疚: 如果你非要内疚,那么请为你「未能高效达成自己的目标」(比如投入了过多精力却收效甚微,或者因为不必要的拖延而错失良机)而内疚,而不是为没有将某个随意的、他人设定的质量标准当作自己的真实偏好而内疚。
    12. \n
    \n

    当你能清晰地知道自己要去哪里(真实目标),需要做到什么程度(质量目标),并且专注于如何最高效地到达那里时,「放松」就不再是让你自责的洪水猛兽,而是你智慧策略的一部分。你会发现,「卷」可以是有方向、有效率的,「躺」也可以是策略性的休整,而不是彻底的放弃。这样,你就能从「卷又卷不动,躺又躺不平」的困境中解脱出来。

    \n
    以上内容为 gemini-2.5-pro 生成的序言
    以下内容摘自 @Thoughts Memo 汉化组的译文《倾尽全力去「敷衍」》
    \n

    我经常接触许多有效利他主义者(EA)。他们中的许多人,其主要驱动力往往类似于内疚感(因自身坐拥优渥资源与机遇而他人仍在受苦)或羞愧感(因觉得自己做得不够)。说实话,我许多非 EA 圈的朋友,其主要动力也源于内疚或羞愧。

    \n

    我无意指摘这种由内疚 / 羞愧驱动的动机:我个人遵循这样一条原则,当有人为了让世界变得更美好而付出巨大努力或投入大量资金时,我会极力避免去评判他们的动机。内疚感和羞愧感或许是将人们从自满状态中警醒过来的有效工具。然而,我担心从长远来看,内疚和羞愧并非健康的动力来源。在我许多朋友身上,内疚和羞愧往往会引发执行力缺失(akrasia)、降低效率,并消耗积极性。因此,在未来几周,我将撰写系列文章,探讨如何摆脱内疚 / 羞愧驱动的动机,并代之以更强大的动力。

    \n

    1

    \n

    假设你是一名大学生,需要交一篇论文。论文的质量取决于你投入的精力。我们假定你对这个项目相当了解:只需适度努力便能拿到 A,而若投入巨大精力,你能写出远超普通 A 级水准的佳作。

    \n
    \"\"
    img
    \n

    教育环境总是潜移默化地试图让学生相信,他们的偏好应当永远指向质量标尺的右端。家长和老师会说「你应该尽力做到最好」之类的话,并对那些不奋力追求更高质量的人大加指责或令其羞愧。

    \n

    面对这种规训,人们通常有两种反应。第一类人(「得过且过者」)不认同质量越高越符合个人偏好这种看法。他们不在乎课程,不停抱怨必须做的那些毫无意义的无用功,马马虎虎地应付作业,交上去的东西要么勉强及格,要么干脆不及格。「得过且过者」往往对强迫他们写论文的权威感到不满。

    \n

    第二类人(「拼命努力者」)则认同质量越高越符合个人偏好这一前提,在质量标尺上不断追求更高。「拼命努力者」涵盖了各种能力水平的人:有的拼尽全力只为拿到 C,有的则以能创作出杰作为傲。有些人试图讨好老师,另一些人则是完美主义者,绝不允许自己交出任何未尽全力的作品。他们中有些是一丝不苟的人,即便拿了 A 仍感内疚,因为他们知道自己本可以做得更好,也认为本应做得更好。他们中有的谦逊,有的爱炫耀,但无一例外都在向右推进。

    \n

    社会花费了大量时间规训我们,让我们认为「拼命努力者」优于「得过且过者」。努力奋斗是一种美德。「得过且过者」没抓住教育的意义;他们待在学校干嘛呢?「拼命努力者」前途无量,「得过且过者」则一事无成。

    \n

    但实际上,这两类人的做法都有问题。

    \n

    如果你想变得真正高效,请记住你的奋斗目标是什么。

    \n

    而且,剧透一下,你的目标并非「写一篇高质量的论文」。那会是一个相当愚蠢的奋斗目标。

    \n

    你选修这门课的目标究竟是什么?也许是出于社会压力(父母要求的)、社会惯性(别人都上大学)以及一种模糊的信念——认为这是通往好工作和舒适生活的必经之路。又或许,你想要好成绩,以便将来获得大量金钱和权力去「屠龙」(实现宏伟目标)。再或许,你纯粹是出于对知识的渴求。但无论原因为何,这个原因都会在质量标尺上确定一个具体的目标点。因此,你的目标应该是精确命中那个质量目标——既不超出,也不低于。

    \n

    你的偏好并非「在质量标尺上越往右越好」。你的偏好是以最小的代价(努力)精确命中那个质量目标。

    \n
    \"\"
    img
    \n

    如果你只想通过这门课,那就用最少的精力去通过。其他的努力都是在做无用功。

    \n

    如果你想拿高分,那就用最少的精力去拿高分。其他的努力都是在做无用功。

    \n

    如果你想尽可能透彻地学习知识内容,那就从作业中汲取所有知识养分,不必纠结于分数。其他的努力都是在做无用功。

    \n

    如果你想同时达成多个目标:好成绩(作为能力信号)、赢得尊重(出于社交需求)、获取知识(为了种种益处),那么就精准定位那个能让你获得好成绩、给老师留下好印象、并学到知识的最低质量目标,并尽可能高效地达成它。任何超出的部分都是在做无用功。

    \n

    你的质量目标可能远低于 F 线(不及格)——比如,你早已通过该课程,这份作业无关紧要。你的质量目标也可能远高于 A 线——比如,你是为了学习知识内容,而分数膨胀意味着拿 A 比以信息量最大的方式完成作业要容易得多。但无论如何,你的真实目标总会对应一个质量目标。

    \n

    「得过且过者」和「拼命努力者」的目标都偏离了方向。「得过且过者」嘲笑「拼命努力者」,认为他们将人为设定的质量标准奉为圭臬,在过度努力上浪费精力。「拼命努力者」则嘲笑「得过且过者」,认为他们身在课堂却拒绝学习。而双方的嘲笑都有道理!因为他们都在做无用功。

    \n

    「得过且过者」未能全力以赴,因为他们意识到那条质量标尺并非他们的偏好曲线。「拼命努力者」则将全部力量投入错误的目标,试图在标尺上走得越远越好,将精力浪费在一场并不属于他们的战斗中。所以,请选择第三条路:记住你的奋斗目标。永远全力以赴,只为尽快达成你的质量目标。

    \n

    倾尽全力去「敷衍」一切。

    \n

    (我的老师们过去常说,只要我肯努力,定能成就一番事业。我则回应他们,如果想让我更努力,他们得先发明出比 A 更高的分数等级才行。)

    \n

    2

    \n

    一个常见的反对意见在此出现:

    \n
    有些事情太重要了,不能「敷衍了事」。有些事情就值得你全力以赴去争取。敷衍家庭作业是一回事,敷衍地救人命则是完全不同的另一回事。有时候,你确实想在质量标尺上走得越远越好。
    \n

    这种说法对也不对,因为它混淆了一些概念。对于任何项目,目标始终不应高于预设的质量目标,并且永远要追求以最小的代价(精力、资源)达成目标。无论你是在写学期论文、从火场救人,还是在创建跨星系的人类文明——目标永远是以最小代价达到某个质量目标。有效资源是稀缺的。

    \n

    话虽如此,质量目标可以设得非常非常高。事实上,质量目标有时甚至高不可攀。通常,我们根本没有能力达到我们设定的质量目标,在这些情况下,我们确实想要沿着偏好曲线尽可能地向右推进。

    \n
    \"\"
    img
    \n

    当你从事的工作相对于你的技能水平而言非常困难时,或者在竞争激烈的环境中,又或者当你在发出你「能吃苦耐劳」的信号时,这种情况会自然发生。但别搞混了。即使你是为热爱而写作,最终也必须停止修改,宣告完成。即使你正在从燃烧的建筑中救人,最终也会停止为确保此人存活而投入更多精力,转而将精力用于拯救其他濒危者。即使你在建设一个跨星系的文明,也需要在建设文明的投入与享受文明生活的投入之间做出权衡。

    \n

    对于某些目标,你可能无法达到预设的质量要求,在这些情况下,你会不断向右推进(尽力而为)。但是,太多人会下意识地认为,当权威人士划定一条质量标准线时,他们就「理应」尽可能地向右靠拢。他们认为自己「应该」在意质量本身。这是很傻的:现实世界的问题并非要生产出最高质量的产品。在各行各业,目标都是以最小的代价达到某个质量目标。

    \n

    当然,这只是对现实的一个模糊且不准确的描述。时间、精力、能量、注意力和质量之间的相对成本通常是不断变化的,并随着信息和环境的改变而改变。关键在于能够区分开环境所暗示的质量标尺与你真实的偏好曲线。

    \n
    \n

    需要澄清的是,我并非意在表达以下观点:如果你在上大学课程,我不是说你应该每次都「低空飞过」;如果你在救人,我不是说你应该重速度轻谨慎;总而言之,我绝不是说你总应该把那个你只能勉强接受的最差结果定为目标。

    \n

    我想说的是,不要将质量标尺与你的偏好曲线混为一谈。当老师给某个分数点贴上「及格」或「不及格」的标签时,不要感到困惑,因为那只是标签,你更深层次的目标可能与这些标签仅有间接关联。记住你真正想要实现的目标,明确你的质量目标,然后瞄准它:既不超出,也不低于。

    \n

    (另外,别忘了「规划谬误」的存在!如果你瞄准 D,结果可能只拿到 F。人类往往容易过度自信。选择目标时,务必谨慎,给自己留出足够的缓冲空间。)

    \n

    3

    \n

    常见的「得过且过者」式反驳是:

    \n
    但如果「尽快拿到最低及格分」这件事本身也很无聊呢?如果这个任务也毫无意义呢?
    \n

    那还上什么大学!

    \n

    我个人发现,追求最低可接受质量标准通常是很有趣的。做家庭作业本身可能很无聊,但探索如何用尽可能少的总精力把作业做到可接受的水平,却是一个真正能调动我智慧的、有趣的优化问题——一个我内心的完美主义倾向和叛逆倾向都能认同的优化问题。

    \n

    但有时候,即使你想起了自己的奋斗目标,整个项目看起来仍然毫无价值。有时候,「以最小努力获得最低及格分」这个目标,仍然散发着别人试图将他们随意的标准硬塞给你、当作你真实偏好的那股「馊味」。若是这种情况,不妨考虑退课。

    \n

    更普遍地说,如果「以最小努力达成某某目标」的任何一种形式都显得不值得去做,那么你可能需要彻底放弃那个目标。

    \n
    \n

    相比之下,常见的「拼命努力者」式反驳如下:

    \n
    可我是个完美主义者!我生理上就无法容忍低质量的产出。我情不自禁就想做到最好。
    \n

    太好了!那就驾驭你内心的完美主义倾向,并将其导向「以最小努力达成目标」这个方向。

    \n

    与其对论文成品追求完美,不如对写论文的过程追求完美。在识别有效策略、果断放弃沉没成本、忍痛割爱(删掉自己喜欢但不必要的部分)、判断何时适可而止等方面追求完美;在不浪费丝毫注意力上追求完美;在从错误中学习上追求完美。完美主义可以是一种强大的工具,但没必要将它用于在你并不在乎的指标上过度追求。

    \n

    4

    \n

    从某种意义上说,追求以最小代价精确命中质量目标,比一味地在质量标尺上追求极致要困难得多。人总是可以通过投入更多时间在质量标尺上走得更远:当你想写出一篇惊世之作时,总能投入更多时间和精力去修正瑕疵。但当你试图以最小化无用功的方式完成论文时,犯下的错误是无法挽回的,时间上的浪费无法弥补。

    \n

    在这个意义上,如果你开始为每一次无用功而感到内疚,那么从一个「拼命努力者」转变为一个「倾尽全力去『敷衍』的人」,反而可能比平时引发更多的内疚和羞愧感。

    \n

    然而,我看到太多太多的人因为未能在质量标尺上走得足够远而感到内疚和羞愧。他们为没有在(自己讨厌的)工作上尽心尽力而内疚;为没能成为足够好的朋友(在自己都快崩溃的时候)而内疚;为没能满足父母的期望(那些期望既荒谬又不切实际)而内疚。要想用内在动力取代内疚和羞愧,首先必须打破「得过且过者 / 拼命努力者」的二分法。如果你非要内疚,那么请为未能达成自己的目标而内疚,而不是为没有将某个随意的质量标准当作自己的真实偏好而内疚。前一种内疚感,才是我有可能着手处理的那一种。

    \n

    (致一丝不苟的朋友们:在此期间,请不要为做了无用功而感到内疚!请将其视为人类行动的自然过程中的一个重要部分,而非什么需要羞愧的事。未来的文章会进一步阐述这个观点。)

    \n

    5

    \n

    大多数人似乎有两种处理问题的模式:一种是「得过且过者」那种只求省力、「滑行通过」的模式;另一种是「拼命努力者」那种力求杰作、「过度达成」的模式。面对问题时,多数人要么只付出最低限度的努力,勉强过关,只要不惹恼相关权威就行;要么就全身心投入,倾尽所有。

    \n

    几乎每个人都曾在两种模式间切换。有些人在历史课上追求卓越,在语法课上则选择「滑行」。有些人在工作上力求完美,在维系人际关系上则敷衍了事。事实上,大多数讲述「坏学生也能是好人」的暖心故事,讲的都是那些在多数领域都得过且过的学生,如何在舞蹈 / 体育 / 音乐 / 数论这些方面私下里拼命努力。

    \n

    这当然也是「拼命努力者」式宣传的又一例证:「别担心,」电影试图告诉我们,「这些得过且过者并非坏人,因为他们在其他领域是秘密的努力者!」——好像你只有把某个随意的质量标准当作自己的真实偏好,才算得上是个好人似的。

    \n

    大多数人都困在「得过且过者 / 拼命努力者」的二分法中。他们要么只做最少量的、能蒙混过关的事,要么就竭尽所能做到最多。他们的目标要么是勉强达标,要么是争做第一。极少有人能够选择一个中间的目标点,然后倾尽全力去实现它。极少有人能够调动全部力量,只为尽可能高效地达成「恰到好处」的目标。

    \n

    拒绝这种二分法。着眼于你的偏好曲线。请记住,偏好曲线所指向的,只有这一点:

    \n

    成功,不做多余的动作。

    \n

    你内心的「得过且过者」反感无意义的任务,而你内心的「拼命努力者」追求完美。那么,就同时满足这两者:瞄准那个最低限度的必要目标,并尽可能高效地达成它。

    \n

    倘若你在某个情境下忘记了「成功」究竟意味着什么,不妨花点时间停下来,想一想你的奋斗目标是什么。

    \n
    \n

    下一篇:

    \n

    破罐破摔 - 知乎

    \n
    \n
    Thoughts Memo 汉化组译制
    感谢主要译者 gemini-2.5-pro-exp,校对 Jarrett Ye
    原文:Half-assing it with everything you've got
    作者:Nate Soares
    发布日期:2015 年 3 月 12 日
    \n
    \n

    相关专栏

    \n

    超越内疚 - 知乎

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782503", - "creator": "", - "pubDate": "Sat, 12 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7347ea4a725b254aac33e0555bd76f65", - "highlights": [] - }, - { - "title": "从进化的角度看,人和动物为何会产生抑郁?", - "description": "
    \"头图\"/
    \n

    你想象一下,假设十万年前,你无缘无故被部落首领爆揍了一顿,你会怎么做?

    \n

    那只大型直立无毛猿能成为首领,一定是有理由的,理由就写在他的肱二头肌的肌肉量上,所以你肯定不能硬上。

    \n

    因而你只能躲到你自己的山洞里面生闷气,减少在你首领面前现眼的机会,以避免再被揍一顿。

    \n

    你肯定还在琢磨着如何翻盘,心里嘀咕着等老子发达了,这个仇可一定得报!

    \n

    你可能还会一把鼻涕一把泪的向其它族人控诉首领的暴行,传递「快来看看老子有多惨」的信号。

    \n

    在弱肉强食的时代,这个场景是不是还挺自然的?

    \n
    \n

    咱逐条分析一下:

    \n

    你躲到山洞里避免再次挨揍,这个叫做「行为关闭模型(Behavioral shutdown model)」[1],指的是生物面临某项活动时,其风险大于回报,那么最佳策略就是退出这些活动。

    \n

    你躲到山洞里谋划着翻盘,这个叫做「分析性反思假说(Analytical rumination hypothesis)」[2],这个假说认为抑郁是一种适应性变化,它会使个体集中注意力,专注于某个复杂问题,以便分析解决它。

    \n

    你一把鼻涕一把泪的控诉首领的无理行为,传递求关注求同情的信号,这个叫做「诚实信号理论(Honest signaling theory)」[3],指的是当发生重大负面事件的时候,一些基础的情绪表现,比如哭泣、愤怒等「廉价」的需求信号可能被忽略,而抑郁这种极其痛苦代价极其高昂的信号,可以传递自己真正需求帮助的诚实可信的信号。

    \n
    \n

    好,现在,你把这个场景挪回现在。

    \n

    某天,你被你老板无缘无故骂了一顿……

    \n

    你肯定不能硬刚他,因为你下个月的房贷还指望着他发的工资。

    \n

    于是你躲到厕所,一边儿脑补着各种咸鱼翻身 Diao 丝逆袭的爽文情节,一边儿在朋友圈里发着「都毁灭吧,哥累了」的状态——顺便把你老板屏蔽掉。

    \n

    你看,这是不是一个套路?

    \n
    \n

    咱再把视角放宽一些,类似抑郁的行为表现,并不是人类的专属。

    \n

    你完全可以把一只老鼠搞抑郁,方法也挺简单,你就把它放笼子里不停电击它,开始的时候它会乱窜,当它发现无论怎么躲也都会被电的时候,它就直接躺平了,你把它笼子门打开它也不会跑。这个就是「习得性无助(Learned Helplessness)」[4],抑郁症的核心机制之一。

    \n

    这个机制似乎也很好理解,在自然界,如果大脑判断某个威胁无法避免,那么躺平无疑是比挣扎更好的选择。

    \n

    可是放到当下,你会发现生活中的「电击」都不是致命的或是不可避免的,比如 KPI、房贷、社交压力等等,只是你的大脑适应了这套打不过就躺平的机制,于是误判了这些「电击」的危险等级。

    \n
    \n

    你再看,在高度社会化和等级化的动物群体,比如狼群中,如果某只狼在争夺头狼的过程中失败,它也会表现出典型的抑郁症症,比如不再争抢食物、独自蜷缩在角落,也不再与其它狼交往。

    \n

    这其实是一种生存策略,减少攻击性是避免自己被赶尽杀绝,降低存在感是等待翻盘的机会。

    \n

    这个行为范式放到今天就是被领导打压后自动边缘化,被排挤后主动退出社交圈。

    \n

    这种生物的保命程序放到现在,就成了适应不良。

    \n
    \n

    写到这里,总结一下。

    \n

    抑郁原本是一种生物的短期应急程序。

    \n

    只是远古的压力是短期的、可预测的,而现代的压力是长期的、不可控的。

    \n

    食物短缺的旱季会结束,再凶猛的敌人也会离开,可是你的房贷却要还上 30 年,朋友圈里总能刷到各种精修的人设,钉钉总是在凌晨 3 点响起,职场的竞争也看上去绵绵无绝期。

    \n

    在这种情况下,你大脑的节能模式、战败者策略都无法自动关闭,就会导致长期的低动力和消极思维,也就是抑郁。

    \n

    那些在远古让我们的祖先活下来的抑郁特质,比如敏感、谨慎、过度反思,现在正批量制造着心理咨询的客户。

    \n

    从进化视角来看,抑郁症并不是大脑的系统故障,也不是脆弱,而是我们大脑一直运行的那套过时的生存算法,在当下这个时代导致的系统过载。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    你想象一下,假设十万年前,你无缘无故被部落首领爆揍了一顿,你会怎么做?

    \n

    那只大型直立无毛猿能成为首领,一定是有理由的,理由就写在他的肱二头肌的肌肉量上,所以你肯定不能硬上。

    \n

    因而你只能躲到你自己的山洞里面生闷气,减少在你首领面前现眼的机会,以避免再被揍一顿。

    \n

    你肯定还在琢磨着如何翻盘,心里嘀咕着等老子发达了,这个仇可一定得报!

    \n

    你可能还会一把鼻涕一把泪的向其它族人控诉首领的暴行,传递「快来看看老子有多惨」的信号。

    \n

    在弱肉强食的时代,这个场景是不是还挺自然的?

    \n
    \n

    咱逐条分析一下:

    \n

    你躲到山洞里避免再次挨揍,这个叫做「行为关闭模型(Behavioral shutdown model)」[1],指的是生物面临某项活动时,其风险大于回报,那么最佳策略就是退出这些活动。

    \n

    你躲到山洞里谋划着翻盘,这个叫做「分析性反思假说(Analytical rumination hypothesis)」[2],这个假说认为抑郁是一种适应性变化,它会使个体集中注意力,专注于某个复杂问题,以便分析解决它。

    \n

    你一把鼻涕一把泪的控诉首领的无理行为,传递求关注求同情的信号,这个叫做「诚实信号理论(Honest signaling theory)」[3],指的是当发生重大负面事件的时候,一些基础的情绪表现,比如哭泣、愤怒等「廉价」的需求信号可能被忽略,而抑郁这种极其痛苦代价极其高昂的信号,可以传递自己真正需求帮助的诚实可信的信号。

    \n
    \n

    好,现在,你把这个场景挪回现在。

    \n

    某天,你被你老板无缘无故骂了一顿……

    \n

    你肯定不能硬刚他,因为你下个月的房贷还指望着他发的工资。

    \n

    于是你躲到厕所,一边儿脑补着各种咸鱼翻身 Diao 丝逆袭的爽文情节,一边儿在朋友圈里发着「都毁灭吧,哥累了」的状态——顺便把你老板屏蔽掉。

    \n

    你看,这是不是一个套路?

    \n
    \n

    咱再把视角放宽一些,类似抑郁的行为表现,并不是人类的专属。

    \n

    你完全可以把一只老鼠搞抑郁,方法也挺简单,你就把它放笼子里不停电击它,开始的时候它会乱窜,当它发现无论怎么躲也都会被电的时候,它就直接躺平了,你把它笼子门打开它也不会跑。这个就是「习得性无助(Learned Helplessness)」[4],抑郁症的核心机制之一。

    \n

    这个机制似乎也很好理解,在自然界,如果大脑判断某个威胁无法避免,那么躺平无疑是比挣扎更好的选择。

    \n

    可是放到当下,你会发现生活中的「电击」都不是致命的或是不可避免的,比如 KPI、房贷、社交压力等等,只是你的大脑适应了这套打不过就躺平的机制,于是误判了这些「电击」的危险等级。

    \n
    \n

    你再看,在高度社会化和等级化的动物群体,比如狼群中,如果某只狼在争夺头狼的过程中失败,它也会表现出典型的抑郁症症,比如不再争抢食物、独自蜷缩在角落,也不再与其它狼交往。

    \n

    这其实是一种生存策略,减少攻击性是避免自己被赶尽杀绝,降低存在感是等待翻盘的机会。

    \n

    这个行为范式放到今天就是被领导打压后自动边缘化,被排挤后主动退出社交圈。

    \n

    这种生物的保命程序放到现在,就成了适应不良。

    \n
    \n

    写到这里,总结一下。

    \n

    抑郁原本是一种生物的短期应急程序。

    \n

    只是远古的压力是短期的、可预测的,而现代的压力是长期的、不可控的。

    \n

    食物短缺的旱季会结束,再凶猛的敌人也会离开,可是你的房贷却要还上 30 年,朋友圈里总能刷到各种精修的人设,钉钉总是在凌晨 3 点响起,职场的竞争也看上去绵绵无绝期。

    \n

    在这种情况下,你大脑的节能模式、战败者策略都无法自动关闭,就会导致长期的低动力和消极思维,也就是抑郁。

    \n

    那些在远古让我们的祖先活下来的抑郁特质,比如敏感、谨慎、过度反思,现在正批量制造着心理咨询的客户。

    \n

    从进化视角来看,抑郁症并不是大脑的系统故障,也不是脆弱,而是我们大脑一直运行的那套过时的生存算法,在当下这个时代导致的系统过载。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782509", - "creator": "", - "pubDate": "Sat, 12 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "a07e49354573e8171fa8dc96e3dd8c6e", - "highlights": [] - }, - { - "title": "为什么除了人类,哺乳动物拉屎的时间都是 12 秒?", - "description": "
    \"头图\"/
    \n

    先说结论:人类也是 12 秒

    \n

    所有哺乳动物,包括人类,排便时间都是 12 秒左右[1]。

    \n

    这是乔治亚理工学院的研究团队,花了好几年时间,跑遍动物园,收集了 34 种哺乳动物的粪便数据得出的结论。

    \n

    从猫咪到大象,23 个物种的排便时间都在 12±7 秒之间[2]。

    \n

    人类的速度?每秒 2 厘米。

    \n

    正好在狗(每秒 1 厘米)和大象(每秒 6 厘米)之间。

    \n
    \"\"
    \n

    一只小猫,直肠长度 4 厘米。一头大象,直肠长度 40 厘米。体型差距 1000 倍。但排便时间?几乎一样。

    \n

    大象粪便体积 20 升,狗只有 10 毫升,相差近 1000 倍。

    \n

    为什么

    \n

    答案藏在一个你从未注意过的地方——大肠

    \n

    覆盖在大肠壁上的超薄黏液层,厚度只有头发丝般细微。

    \n

    科学家们怎么测量这么薄的东西?

    \n

    等粪便上的黏液蒸发,然后称重。就这么简单粗暴。但别小看这层黏液。它的黏度比粪便低 100 倍。

    \n

    什么概念?

    \n
    想象粪便是厚重的蜂蜜。黏液就像水一样滑溜。
    粪便在肠道里滑行,就像雪橇在冰道上飞驰。
    \n

    这是作者的原话。

    \n

    大动物有更多粪便要排出。

    \n

    按常理,应该需要更长时间才对。但进化论说不给。

    \n

    所以体型大的动物有更厚的黏液层。

    \n
    小动物黏液薄,但粪便也小。
    大动物黏液厚,粪便虽大但滑得更快。
    \n

    结果完成时间一样。

    \n

    大动物用同样的压力,却能达到更高的排便速度。

    \n

    这就是为什么大象能以每秒 6 厘米的速度飞速完成任务,而小狗只能慢慢悠悠每秒 1 厘米。

    \n
    \"\"
    \n

    我们人类完全符合这个规律。

    \n
    研究者明确指出,人类和大象、猫咪一样,都排出圆柱形粪便,遵循相同的物理定律。
    \n

    人类排便速度每秒 2 厘米,恰好处在狗和大象之间。

    \n

    我们的直肠长度、黏液厚度、排便压力,都完美契合这个 12 秒公式。

    \n
    \"\"
    \n

    这项研究不是随便测几个动物就下结论。

    \n

    研究团队跑到亚特兰大动物园,亲自拍摄大象、大熊猫、疣猪的排便过程。

    \n

    还在公园里偷偷观察狗狗。

    \n

    他们还用“流变仪”——一种精密搅拌器,可以测量粪便的密度和黏度。

    \n

    顺便发现了:食肉动物的粪便是“沉底派”,食草动物的是“漂浮派”。

    \n

    还给粪便臭味排了个名:老虎和犀牛最臭,熊猫最“香”。

    \n
    \"\"
    \n

    研究团队建立了一个数学模型。

    \n
    排便时间 = 粪便长度 ÷ 排便速度。
    \n

    粪便长度是直肠长度的两倍,说明不仅直肠,连结肠都在储存粪便。

    \n

    排便时,粪便像固体栓塞一样整体移动。

    \n

    大部分哺乳动物的直肠都是水平的,所以重力作用可以忽略。

    \n

    一切都靠肌肉压力和黏液润滑。

    \n
    \"\"
    \n

    腹泻时会怎样?

    \n

    研究团队计算出,一个 70 公斤的成年人腹泻时只需要 0.5 秒就能完成。

    \n

    因为此时不需要肌肉用力,重力就够了。

    \n

    便秘呢?

    \n

    最严重情况下,可能需要 6 小时才能完成。因为黏液被吸收,失去润滑作用。

    \n

    但实际上肠壁会变形帮助推进,时间不会这么长。

    \n
    \"\"
    \n

    你可能觉得这种研究很无聊。

    \n

    错了。

    \n

    这些排便数据帮助设计了宇航员专用尿布,在 NASA 太空排便挑战赛闯到最后一关。。

    \n
    \"\"
    \n

    理解黏液的作用机制,还可以开发出治疗便秘的新药物。

    \n

    如果便秘是黏液缺乏导致的,那么模拟黏液的药物可能就是治疗便秘的良药。。

    \n
    \"\"
    \n

    这个团队还有什么发现?

    \n

    同一个研究团队之前发现了另一个规律。

    \n

    所有重量超过 3 公斤的哺乳动物,排尿时间都是 21 秒。

    \n

    这项发现让他们获得了 2015 年搞笑诺贝尔奖[3]。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "content": "
    \"头图\"/
    \n

    先说结论:人类也是 12 秒

    \n

    所有哺乳动物,包括人类,排便时间都是 12 秒左右[1]。

    \n

    这是乔治亚理工学院的研究团队,花了好几年时间,跑遍动物园,收集了 34 种哺乳动物的粪便数据得出的结论。

    \n

    从猫咪到大象,23 个物种的排便时间都在 12±7 秒之间[2]。

    \n

    人类的速度?每秒 2 厘米。

    \n

    正好在狗(每秒 1 厘米)和大象(每秒 6 厘米)之间。

    \n
    \"\"
    \n

    一只小猫,直肠长度 4 厘米。一头大象,直肠长度 40 厘米。体型差距 1000 倍。但排便时间?几乎一样。

    \n

    大象粪便体积 20 升,狗只有 10 毫升,相差近 1000 倍。

    \n

    为什么

    \n

    答案藏在一个你从未注意过的地方——大肠

    \n

    覆盖在大肠壁上的超薄黏液层,厚度只有头发丝般细微。

    \n

    科学家们怎么测量这么薄的东西?

    \n

    等粪便上的黏液蒸发,然后称重。就这么简单粗暴。但别小看这层黏液。它的黏度比粪便低 100 倍。

    \n

    什么概念?

    \n
    想象粪便是厚重的蜂蜜。黏液就像水一样滑溜。
    粪便在肠道里滑行,就像雪橇在冰道上飞驰。
    \n

    这是作者的原话。

    \n

    大动物有更多粪便要排出。

    \n

    按常理,应该需要更长时间才对。但进化论说不给。

    \n

    所以体型大的动物有更厚的黏液层。

    \n
    小动物黏液薄,但粪便也小。
    大动物黏液厚,粪便虽大但滑得更快。
    \n

    结果完成时间一样。

    \n

    大动物用同样的压力,却能达到更高的排便速度。

    \n

    这就是为什么大象能以每秒 6 厘米的速度飞速完成任务,而小狗只能慢慢悠悠每秒 1 厘米。

    \n
    \"\"
    \n

    我们人类完全符合这个规律。

    \n
    研究者明确指出,人类和大象、猫咪一样,都排出圆柱形粪便,遵循相同的物理定律。
    \n

    人类排便速度每秒 2 厘米,恰好处在狗和大象之间。

    \n

    我们的直肠长度、黏液厚度、排便压力,都完美契合这个 12 秒公式。

    \n
    \"\"
    \n

    这项研究不是随便测几个动物就下结论。

    \n

    研究团队跑到亚特兰大动物园,亲自拍摄大象、大熊猫、疣猪的排便过程。

    \n

    还在公园里偷偷观察狗狗。

    \n

    他们还用“流变仪”——一种精密搅拌器,可以测量粪便的密度和黏度。

    \n

    顺便发现了:食肉动物的粪便是“沉底派”,食草动物的是“漂浮派”。

    \n

    还给粪便臭味排了个名:老虎和犀牛最臭,熊猫最“香”。

    \n
    \"\"
    \n

    研究团队建立了一个数学模型。

    \n
    排便时间 = 粪便长度 ÷ 排便速度。
    \n

    粪便长度是直肠长度的两倍,说明不仅直肠,连结肠都在储存粪便。

    \n

    排便时,粪便像固体栓塞一样整体移动。

    \n

    大部分哺乳动物的直肠都是水平的,所以重力作用可以忽略。

    \n

    一切都靠肌肉压力和黏液润滑。

    \n
    \"\"
    \n

    腹泻时会怎样?

    \n

    研究团队计算出,一个 70 公斤的成年人腹泻时只需要 0.5 秒就能完成。

    \n

    因为此时不需要肌肉用力,重力就够了。

    \n

    便秘呢?

    \n

    最严重情况下,可能需要 6 小时才能完成。因为黏液被吸收,失去润滑作用。

    \n

    但实际上肠壁会变形帮助推进,时间不会这么长。

    \n
    \"\"
    \n

    你可能觉得这种研究很无聊。

    \n

    错了。

    \n

    这些排便数据帮助设计了宇航员专用尿布,在 NASA 太空排便挑战赛闯到最后一关。。

    \n
    \"\"
    \n

    理解黏液的作用机制,还可以开发出治疗便秘的新药物。

    \n

    如果便秘是黏液缺乏导致的,那么模拟黏液的药物可能就是治疗便秘的良药。。

    \n
    \"\"
    \n

    这个团队还有什么发现?

    \n

    同一个研究团队之前发现了另一个规律。

    \n

    所有重量超过 3 公斤的哺乳动物,排尿时间都是 21 秒。

    \n

    这项发现让他们获得了 2015 年搞笑诺贝尔奖[3]。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", - "category": "", - "link": "https://daily.zhihu.com/story/9782515", - "creator": "", - "pubDate": "Sat, 12 Jul 2025 08:27:03 +0800", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "资讯", - "feed": "知乎", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "b2b15d64c3e1f11c9dfe48553fe12c12", - "highlights": [] - }, { "title": "China urges U.S. to abandon excessive use of national security concept", "description": "

    BEIJING, June 5 (Xinhua) -- China has urged the United States to abandon its generalized and excessive use of the national security concept, and to collaborate with all parties in maintaining a rules-based multilateral trading system, the Ministry of Commerce said on Thursday.

    At a regular press conference, He Yongqian, spokesperson for the ministry, made the remarks when asked to comment on the U.S. decision to raise tariffs on imported steel, aluminium and their derivative products from 25 percent to 50 percent.

    He said that such U.S. moves not only harm others and itself, but also will severely disrupt the stability of global industrial and supply chains.

    The United States should abandon the zero-sum mentality, address respective concerns through equal dialogue, and jointly maintain the stability of global industrial and supply chains, He said.

    Source: Xinhua

    ", @@ -2576,6 +2136,226 @@ "tags": [], "hash": "70391c560d13fa2ded36785145ef6474", "highlights": [] + }, + { + "title": "非洲有 15 万只鸵鸟,为什么狮子不去吃鸵鸟?", + "description": "
    \"头图\"/
    \n

    看下图,一头狮子被迫逃到树上瑟瑟发抖,底下有什么可怕的动物?

    \n
    \"\"
    \n

    答案是非洲野牛。

    \n

    这一幕发生在肯尼亚马赛马拉国家公园,由挪威摄影师 Olav Thokle 拍摄,经过数小时的对峙,野牛才慢慢离去,本就爬树本领普通的狮子,为了牢牢固定身躯,爪子都疼的厉害。

    \n

    在我们的印象中,非洲野牛是狮子的猎物,虽然它们是食草动物,但战斗力却不容小觑,一头成年非洲野牛体长约为 2.1~3.4 米,平均身高在 1.5 米左右,体重 500~800 公斤。

    \n
    \"\"
    \n

    最致命的莫过于那一对锋利且坚硬的牛角,每年都有大量狮子在捕猎野牛时,被锋利的牛角划伤或刺穿,又或者遭受一招“野牛冲撞”,要知道两头成年野牛碰撞的冲击力,那力量就像被一辆时速 50 公里汽车撞上来。

    \n

    大自然没有医院,所以每年都有大量狮子在狩猎野牛的过程中因伤死亡,然而有个奇怪的现象,那就是非洲明明有约 15 万只鸵鸟,为什么狮子不去猎杀鸵鸟呢?

    \n
    \"\"
    \n

    非洲鸵鸟体长约 180~300 公分,身高 240~280 公分,体重 130-150 公斤,平均寿命长达 60 年,并且没有非洲野牛一样的攻击性“武器”,从图片不难看出,鸵鸟的肉不少。

    \n

    然而在狮子的食谱中,牛科动物占比高达 65%,长颈鹿斑马综合占比 21%,疣猪角马综合占比 11%,其他动物占比 3%,而鸵鸟的占比连 1%都不到,这是为什么?原因主要有以下几点:

    \n
    \"\"
    \n

    1.鸵鸟警惕性高

    \n

    鸵鸟不会飞行,虽然在演化过程中因体型过大,逐渐丧失了飞行能力,但仍然属于鸟纲类,而鸟类的警惕性,从我们身边的麻雀、斑鸠、喜鹊等常见鸟类就能窥一斑而见全豹。

    \n
    \"\"
    \n

    鸵鸟的警惕性远超非洲野牛、长颈鹿、斑马等,即便在喝水时,也会有专门的鸵鸟负责放哨。

    \n

    非洲大草原地势平坦,而非洲鸵鸟体高 180~300 公分,就算平均 2.5 米,如此高度的鸵鸟能轻松获得辽阔的视野,失去了层峦叠嶂的地形,再加上狮子是集体狩猎,但凡狮群靠近,鸵鸟就能轻松发现并逃跑。

    \n
    \"\"
    \n

    2.鸵鸟奔跑速度快

    \n

    物种演化无时无刻都在进行,鸵鸟虽然失去了飞行能力,但动辄 150 公斤的体重压在两条腿上,使得鸵鸟的腿部肌肉极其发达。

    \n

    鸵鸟每一步的距离可达 3~5 公尺,奔跑速度可达 70km/h,想象一下你开着一辆车,脚踩油门到 70km/h 的速度,就能明白鸵鸟的奔跑速度有多快。

    \n
    \"\"
    \n

    再来看狮子的奔跑速度,据靠谱一点的数据显示,狮子奔跑速度可达 80km/h,看似狮子的速度超过鸵鸟,但狮子没有任何优势。

    \n

    鸵鸟占据视野优势,老远就能发现狮群,而狮子虽然速度高达 80km/h,但因体型过大,体力有限,通常只能维持 3 分钟,否则身体会因过热崩溃。

    \n

    而鸵鸟能以 70km/h 的速度持续奔跑 5 分钟以上,有些甚至超过 10 分钟,在耐力方面鸵鸟肯定完胜狮子。

    \n
    \"\"
    \n

    3.鸵鸟的反击

    \n

    狮群在狩猎时,即便猎杀野牛,基本上也会优先选择年迈的野牛或小牛犊下手,并且牛的反应相当迟钝,跟鸵鸟完全不是一个层面。

    \n
    \"\"
    \n

    之所以不敢跟壮年野牛硬碰硬,是因为越是食物链顶端的生物,越懂得趋利避害,但凡被野牛撞断一根骨头或者划伤一个口子,在野外都可能是致命伤。

    \n

    鸵鸟在反击时,会利用粗壮的小腿进行踢打,它们的大腿骨肌肉十分发达,并且腿很长,看下图,鸵鸟的双脚趾结构,能进一步提高攻击力,狮子一旦被鸵鸟踹一脚,也可能升级成致命伤。

    \n
    \"\"
    \n

    综合总结

    \n

    a.狮群还没靠近鸵鸟,就被鸵鸟发现,狩猎行动失败。

    \n

    b.狮群好不容易靠近鸵鸟,但还有一段距离,此时狮群开足马力奔袭,结果鸵鸟撒腿就跑,双方你追我逃,当追捕时间超过 3 分钟,狮群非但浪费了巨大能量,而且还没有收获,狩猎行动非但失败,还憋了一肚子气。

    \n
    \"\"
    \n

    c.狮群艰难的捕捉到一只鸵鸟,结果被鸵鸟踹了一脚,骂骂咧咧的吃着带羽毛的肉,一瘸一拐的回到老巢,没过几天因伤去世。

    \n

    狮子只有在食物极度匮乏,没有多余选择的情况下,才会想到去捕猎鸵鸟,例如生活在纳米布沙漠的狮子,但这支狮群的数量不超过 100 头,而绝大多数狮子都会选择 190-550 公斤区间的猎物,这是在非洲这片土地上长期演化出来的食物选择,必然有一定道理。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    看下图,一头狮子被迫逃到树上瑟瑟发抖,底下有什么可怕的动物?

    \n
    \"\"
    \n

    答案是非洲野牛。

    \n

    这一幕发生在肯尼亚马赛马拉国家公园,由挪威摄影师 Olav Thokle 拍摄,经过数小时的对峙,野牛才慢慢离去,本就爬树本领普通的狮子,为了牢牢固定身躯,爪子都疼的厉害。

    \n

    在我们的印象中,非洲野牛是狮子的猎物,虽然它们是食草动物,但战斗力却不容小觑,一头成年非洲野牛体长约为 2.1~3.4 米,平均身高在 1.5 米左右,体重 500~800 公斤。

    \n
    \"\"
    \n

    最致命的莫过于那一对锋利且坚硬的牛角,每年都有大量狮子在捕猎野牛时,被锋利的牛角划伤或刺穿,又或者遭受一招“野牛冲撞”,要知道两头成年野牛碰撞的冲击力,那力量就像被一辆时速 50 公里汽车撞上来。

    \n

    大自然没有医院,所以每年都有大量狮子在狩猎野牛的过程中因伤死亡,然而有个奇怪的现象,那就是非洲明明有约 15 万只鸵鸟,为什么狮子不去猎杀鸵鸟呢?

    \n
    \"\"
    \n

    非洲鸵鸟体长约 180~300 公分,身高 240~280 公分,体重 130-150 公斤,平均寿命长达 60 年,并且没有非洲野牛一样的攻击性“武器”,从图片不难看出,鸵鸟的肉不少。

    \n

    然而在狮子的食谱中,牛科动物占比高达 65%,长颈鹿斑马综合占比 21%,疣猪角马综合占比 11%,其他动物占比 3%,而鸵鸟的占比连 1%都不到,这是为什么?原因主要有以下几点:

    \n
    \"\"
    \n

    1.鸵鸟警惕性高

    \n

    鸵鸟不会飞行,虽然在演化过程中因体型过大,逐渐丧失了飞行能力,但仍然属于鸟纲类,而鸟类的警惕性,从我们身边的麻雀、斑鸠、喜鹊等常见鸟类就能窥一斑而见全豹。

    \n
    \"\"
    \n

    鸵鸟的警惕性远超非洲野牛、长颈鹿、斑马等,即便在喝水时,也会有专门的鸵鸟负责放哨。

    \n

    非洲大草原地势平坦,而非洲鸵鸟体高 180~300 公分,就算平均 2.5 米,如此高度的鸵鸟能轻松获得辽阔的视野,失去了层峦叠嶂的地形,再加上狮子是集体狩猎,但凡狮群靠近,鸵鸟就能轻松发现并逃跑。

    \n
    \"\"
    \n

    2.鸵鸟奔跑速度快

    \n

    物种演化无时无刻都在进行,鸵鸟虽然失去了飞行能力,但动辄 150 公斤的体重压在两条腿上,使得鸵鸟的腿部肌肉极其发达。

    \n

    鸵鸟每一步的距离可达 3~5 公尺,奔跑速度可达 70km/h,想象一下你开着一辆车,脚踩油门到 70km/h 的速度,就能明白鸵鸟的奔跑速度有多快。

    \n
    \"\"
    \n

    再来看狮子的奔跑速度,据靠谱一点的数据显示,狮子奔跑速度可达 80km/h,看似狮子的速度超过鸵鸟,但狮子没有任何优势。

    \n

    鸵鸟占据视野优势,老远就能发现狮群,而狮子虽然速度高达 80km/h,但因体型过大,体力有限,通常只能维持 3 分钟,否则身体会因过热崩溃。

    \n

    而鸵鸟能以 70km/h 的速度持续奔跑 5 分钟以上,有些甚至超过 10 分钟,在耐力方面鸵鸟肯定完胜狮子。

    \n
    \"\"
    \n

    3.鸵鸟的反击

    \n

    狮群在狩猎时,即便猎杀野牛,基本上也会优先选择年迈的野牛或小牛犊下手,并且牛的反应相当迟钝,跟鸵鸟完全不是一个层面。

    \n
    \"\"
    \n

    之所以不敢跟壮年野牛硬碰硬,是因为越是食物链顶端的生物,越懂得趋利避害,但凡被野牛撞断一根骨头或者划伤一个口子,在野外都可能是致命伤。

    \n

    鸵鸟在反击时,会利用粗壮的小腿进行踢打,它们的大腿骨肌肉十分发达,并且腿很长,看下图,鸵鸟的双脚趾结构,能进一步提高攻击力,狮子一旦被鸵鸟踹一脚,也可能升级成致命伤。

    \n
    \"\"
    \n

    综合总结

    \n

    a.狮群还没靠近鸵鸟,就被鸵鸟发现,狩猎行动失败。

    \n

    b.狮群好不容易靠近鸵鸟,但还有一段距离,此时狮群开足马力奔袭,结果鸵鸟撒腿就跑,双方你追我逃,当追捕时间超过 3 分钟,狮群非但浪费了巨大能量,而且还没有收获,狩猎行动非但失败,还憋了一肚子气。

    \n
    \"\"
    \n

    c.狮群艰难的捕捉到一只鸵鸟,结果被鸵鸟踹了一脚,骂骂咧咧的吃着带羽毛的肉,一瘸一拐的回到老巢,没过几天因伤去世。

    \n

    狮子只有在食物极度匮乏,没有多余选择的情况下,才会想到去捕猎鸵鸟,例如生活在纳米布沙漠的狮子,但这支狮群的数量不超过 100 头,而绝大多数狮子都会选择 190-550 公斤区间的猎物,这是在非洲这片土地上长期演化出来的食物选择,必然有一定道理。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782587", + "creator": "", + "pubDate": "Wed, 16 Jul 2025 08:27:03 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "432e133ac8c51dd02c10043413734b7d", + "highlights": [] + }, + { + "title": "斑马的斑到底有什么用?", + "description": "
    \"头图\"/
    \n

    斑马的黑白条纹可能是破坏边缘完整性的伪装色,主要作用于吸血昆虫。在野生斑马经常出没的地区,狮子、猎豹等捕食者看起来并未受到斑马黑白条纹的明显影响。

    \n
      \n
    • 在非洲,马蝇、采采蝇等吸血昆虫传播多种流行病。斑马稀疏的毛发不擅长抵御吸血昆虫的叮咬,但是吸血昆虫对斑马的侵袭强度较低。2014 年,Caro 等进行了较大规模的统计,认为斑马的黑白条纹主要用于降低被吸血昆虫叮咬的概率[1]。
    • \n
    \n

    在此基础上,斑马的黑白条纹可能有助于体温调节[2]。

    \n
      \n
    • 参考 2 称,斑马身上黑色毛发的温度可以比白色毛发高 12 至 15 摄氏度,在局部产生有规律的气流。马属动物的汗液含有泡沫蛋白,汗液的表面张力较低,有助于毛发前端的蒸发冷却。观察显示,斑马可以在白色毛发保持倒伏的同时将黑色毛发竖立起来,这大概可以和上述汗液搭配散热。此外,在气温较低时,黑色毛发可能有助于吸热。
    • \n
    \n
    \n

    不限于斑马,破坏轮廓完整性的伪装示意图:

    \n
    \"\"
    By Hugh B. Cott - Adaptive Coloration in Animals; image available at http://camouflage.osu.edu/cott.html, Fair use, https://en.wikipedia.org/w/index.php?curid=35274594
    \n

    2019 年,一项实验显示,在牛身上画出类似斑马的条纹,会降低螫蝇、角蝇等双翅目吸血昆虫叮咬牛的频率。斑马状条纹可能干扰吸血昆虫视觉系统的运动检测,让它们着陆在牛身上的成功率下降[3]。

    \n
    \"\"
    实验用牛
    \n
    \"\"
    CONT:无条纹牛,B and W:黑白条纹牛,B:黑条纹牛
    \n

    吸血昆虫仍被有条纹的牛的视觉特征、气味吸引,可以多次尝试降落,不会简单地放弃叮咬有条纹的牛。条纹在实验中提供的保护效果并不强于看起来更平凡的杀虫剂。

    \n

    读者亦可参考熊猫:

    \n

    熊猫身体和四肢的配色在较远距离上会有效地破坏轮廓完整性、发挥伪装功能,在较近距离上通过背景匹配(黑色皮毛与树干、阴影匹配,白色皮毛与树叶、雪匹配,其余皮毛[4]与岩石、地面匹配)在一定程度上发挥伪装功能[5]。

    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/1 未经严格筛选的图片
    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/2
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    斑马的黑白条纹可能是破坏边缘完整性的伪装色,主要作用于吸血昆虫。在野生斑马经常出没的地区,狮子、猎豹等捕食者看起来并未受到斑马黑白条纹的明显影响。

    \n
      \n
    • 在非洲,马蝇、采采蝇等吸血昆虫传播多种流行病。斑马稀疏的毛发不擅长抵御吸血昆虫的叮咬,但是吸血昆虫对斑马的侵袭强度较低。2014 年,Caro 等进行了较大规模的统计,认为斑马的黑白条纹主要用于降低被吸血昆虫叮咬的概率[1]。
    • \n
    \n

    在此基础上,斑马的黑白条纹可能有助于体温调节[2]。

    \n
      \n
    • 参考 2 称,斑马身上黑色毛发的温度可以比白色毛发高 12 至 15 摄氏度,在局部产生有规律的气流。马属动物的汗液含有泡沫蛋白,汗液的表面张力较低,有助于毛发前端的蒸发冷却。观察显示,斑马可以在白色毛发保持倒伏的同时将黑色毛发竖立起来,这大概可以和上述汗液搭配散热。此外,在气温较低时,黑色毛发可能有助于吸热。
    • \n
    \n
    \n

    不限于斑马,破坏轮廓完整性的伪装示意图:

    \n
    \"\"
    By Hugh B. Cott - Adaptive Coloration in Animals; image available at http://camouflage.osu.edu/cott.html, Fair use, https://en.wikipedia.org/w/index.php?curid=35274594
    \n

    2019 年,一项实验显示,在牛身上画出类似斑马的条纹,会降低螫蝇、角蝇等双翅目吸血昆虫叮咬牛的频率。斑马状条纹可能干扰吸血昆虫视觉系统的运动检测,让它们着陆在牛身上的成功率下降[3]。

    \n
    \"\"
    实验用牛
    \n
    \"\"
    CONT:无条纹牛,B and W:黑白条纹牛,B:黑条纹牛
    \n

    吸血昆虫仍被有条纹的牛的视觉特征、气味吸引,可以多次尝试降落,不会简单地放弃叮咬有条纹的牛。条纹在实验中提供的保护效果并不强于看起来更平凡的杀虫剂。

    \n

    读者亦可参考熊猫:

    \n

    熊猫身体和四肢的配色在较远距离上会有效地破坏轮廓完整性、发挥伪装功能,在较近距离上通过背景匹配(黑色皮毛与树干、阴影匹配,白色皮毛与树叶、雪匹配,其余皮毛[4]与岩石、地面匹配)在一定程度上发挥伪装功能[5]。

    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/1 未经严格筛选的图片
    \n
    \"\"
    https://www.nature.com/articles/s41598-021-00742-4/figures/2
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782601", + "creator": "", + "pubDate": "Wed, 16 Jul 2025 08:27:03 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "2c5dce9634a6cbf53698f206807d80b3", + "highlights": [] + }, + { + "title": "发明魔芋的前辈是经历了什么?", + "description": "
    \"头图\"/
    \n

    其实没有那么夸张,最重要的就是水煮。

    \n

    我们可以对照土法加工魔芋的步骤来看看祖先的研发过程。

    \n

    1.首先是外观。

    \n

    大型块茎,切开乳白色含有大量淀粉状物质,

    \n

    这对于人类来说基本就是“千方百计想要吃”的食材样子了。

    \n

    剩下的问题就是“怎么吃,好吃么?”

    \n
    \"\"
    \n

    魔芋这个东西有毒,但毒性其实不大。

    \n

    生吃的话,少量会出现恶心、呕吐、腹泻、出汗,对于时常饥荒连草根、树皮都能吃的古代人来说就算是“可以付出的代价了”。

    \n

    而且只要不是剧毒,就可以不断尝试各种处理方法,看看怎么让吃了之后的副作用减弱。

    \n
    提示:如果大量食用生魔芋,严重时也会呼吸中枢完全麻痹而导致死亡。大家不要轻易尝试。
    \n

    2.切碎和浸泡。

    \n

    这步算是处理大部分弱毒性食材的标准方式。

    \n
    \"\"
    \n

    因为植物的毒性很大程度是生物碱,生物碱的分子量通常较小,所以容易溶解于水。

    \n

    比如马铃薯去毒法里面,就有一种水泡法。浸泡 12 小时候可以去马铃薯毒性。

    \n
    发芽的马铃薯最好还是扔掉,不值当冒险,这里只是说理论的去毒方法。
    \n

    而块茎一般含有多糖、淀粉,是比较不容易溶解于水里的,

    \n

    所以浸泡投洗算是古代比较常见的植物脱毒预处理方式。也最简单容易操作。

    \n
    魔芋含有的葡甘聚糖(KGM),也是一种具有特殊理化性质的天然高分子多糖。
    \n

    3.磨碎熬煮。

    \n

    磨碎是为了进一步增加反应速度,加热熬煮则是人类掌握比较成熟的脱毒方式。

    \n
    \"\"
    \n

    像是四季豆、扁豆、金针菇、木薯、蚕豆、黄花菜等,都是必须彻底加热才能吃的食材。

    \n

    这几种植物原理不同,比如豆角是皂素和红细胞凝集素;蚕豆是巢菜碱苷成分及蚕豆嘧啶葡糖苷;木薯是亚麻仁苦苷,金针菇和黄花菜是秋水仙碱,还有一些植物含有较高草酸。

    \n

    而破坏生物碱的方式,古代人类最容易掌握的就是加热。

    \n

    虽然也有不少毒素,比如不少菌类含有的毒素异常稳定,具有耐高温的特性,但这更多是一种“偶然”,因为在自然界中植物不需要面对一百度的高温烹煮。

    \n

    魔芋的毒性主要应该是生物碱糖苷,这类物质比较常见于植物块茎里。

    \n

    比如土豆里含有的龙葵碱,就是种典型的生物碱糖苷,难于被胃肠道吸收,会导致肠胃不适。

    \n

    因为他们对人体的肠胃膜结构油一定破坏作用,还能抑制胆碱酯酶的消化。

    \n

    所以,凉拌土豆丝是焯水后凉拌的,厨房菜鸟切记。

    \n
    \"\"
    \n

    好,我们回到魔芋加工过程。

    \n

    4.点碱水。

    \n

    这一步其实和“去毒”应该没有关系。

    \n

    因为中和生物碱一般是用酸,而加碱显然无助于分解。

    \n

    如果不考虑外形,煮熟后的魔芋糊糊也是可以吃的。但是不好保存。

    \n
    \"\"
    \n

    很可能古人是先吃了很多年的魔芋糊,然后才逐步研究怎么让这个东西凝结,变成类似豆腐的形状,方便保存和携带。

    \n

    魔芋加碱水的主要原因是为了改善其质地和口感。

    \n

    让碱水和魔芋中的谷蛋白酶反应,失去活性,从而凝固魔芋,增加其黏度和弹性。‌

    \n

    农村的这一步是用草木灰(主要成分是碳酸钾(K2CO3))浸泡过滤的水来“点”魔芋。

    \n
    现在食品工艺,大都加入碱性的氢氧化钙来处理。
    显然氢氧化钙更干净、安全,而且是残留量不需限定的加工助剂。
    \n
    \"\"
    \n

    用草木灰来凝固蛋白、脱水,也算是古人掌握的一种常见加工方法。

    \n

    比如用在鸭蛋上,草木灰包裹可以制造松花蛋(蛋白变性作用),把豆腐包裹可以制造出灰培豆腐(脱水作用)。

    \n

    同时,因为草木灰相对卫生(燃烧后相当于消毒),可以调节食物酸碱度让口感更好,还能长期保存食物(吸水让食物表面干燥),所以古人在食材加工中经常会尝试添加。

    \n
    哪怕加错了就是多喝了点碱水,也没有大问题。
    \n

    比如“碱水粽”是用草木灰水浸泡糯米,桑叶凉粉是用草木灰水与桑叶汁制作。在四川,还有用草木灰水和大米制作的“灰水馍馍”。

    \n

    这些显示出我们的祖先做食物时,经常会尝试添加草木灰,看看会有什么变化。

    \n
    \"\"
    \n

    5.成型切分。

    \n

    用碱水点过之后,快速搅拌、冷却,魔芋就会凝结成块状。可以用竹篾划开。

    \n

    就成了块状的土法魔芋了,因为草木灰和过滤不彻底,经常是灰褐色的。

    \n
    \"\"
    草木灰魔芋
    \n

    这里说一下碱水让魔芋成型的化学原理,不感兴趣的可以跳过。

    \n
    魔芋的主要成分是葡甘露聚糖,由葡萄糖和甘露糖按一定比例结合而成的的长链大分子。
    在这个大分子上,除了主链上的葡萄糖和甘露糖之外,还有一些特别的乙酰基。
    正是这些乙酰基的存在,阻止了魔芋多糖分子的“亲密聚合”,所以加工之前的魔芋并不是魔芋块、魔芋丝那样 Q 弹的样子。
    只有加碱性物质才能把乙酰基的阻拦作用“抵消”,让魔芋多糖分子聚集凝固,并且把很多水分锁在其中,最终摇身一变成为魔芋丝、魔芋豆腐等弹滑的状态。
    \n

    古人显然不懂这些深奥原理,但不阻碍他们在实验草木灰水的时候,发现了效果。

    \n

    至此,魔芋就成了我们比较常见的样子,颜色深浅要看熬煮过程的火候和碱水。

    \n

    使用草木灰的会比较灰暗,颜色深,而使用食用碱来做添加剂,魔芋会更透亮,好看。

    \n
    \"\"
    土法碱水魔芋
    \n

    一般在魔芋凉了切块后,食用前还会进行二次煮制。

    \n

    这样可以让口感更有弹性。也防止表面滋生细菌。

    \n

    总结一下,

    \n

    古人应该不是一步到位把魔芋的制作过程发明的。

    \n

    而是发现了可食用的块茎,先凑活生着吃,发现少量毒不死,但吃多了恶心、呕吐、拉肚子。

    \n

    于是试着洗一洗,发现好像好一点,再试试烤熟了、煮熟了吃,发现又好一些。

    \n

    等吃腻了糊糊,试着往里面加点木炭粉、草木灰,乱七八糟厨房附近有的,吃不死人的东西。

    \n

    发现居然变成块了,更容易保存吃好几天。

    \n

    下次试试只加草木灰的过滤水,原来也可以。颜色更好看了。

    \n

    于是,经过漫长的摸索,这种“新型豆腐”的加工方法就算定型了。

    \n

    不得不过,古代人为了吃点好东西,的确是能发动各种研究精神啊。

    \n
    关注也说,阅读更多有趣的思想。
    \n

    当年苏联挖地球为什么挖到 12262 米就停止了?明明不开车为啥还被称为副驾驶?假如忽然火了?怎么接住泼天的富贵。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    其实没有那么夸张,最重要的就是水煮。

    \n

    我们可以对照土法加工魔芋的步骤来看看祖先的研发过程。

    \n

    1.首先是外观。

    \n

    大型块茎,切开乳白色含有大量淀粉状物质,

    \n

    这对于人类来说基本就是“千方百计想要吃”的食材样子了。

    \n

    剩下的问题就是“怎么吃,好吃么?”

    \n
    \"\"
    \n

    魔芋这个东西有毒,但毒性其实不大。

    \n

    生吃的话,少量会出现恶心、呕吐、腹泻、出汗,对于时常饥荒连草根、树皮都能吃的古代人来说就算是“可以付出的代价了”。

    \n

    而且只要不是剧毒,就可以不断尝试各种处理方法,看看怎么让吃了之后的副作用减弱。

    \n
    提示:如果大量食用生魔芋,严重时也会呼吸中枢完全麻痹而导致死亡。大家不要轻易尝试。
    \n

    2.切碎和浸泡。

    \n

    这步算是处理大部分弱毒性食材的标准方式。

    \n
    \"\"
    \n

    因为植物的毒性很大程度是生物碱,生物碱的分子量通常较小,所以容易溶解于水。

    \n

    比如马铃薯去毒法里面,就有一种水泡法。浸泡 12 小时候可以去马铃薯毒性。

    \n
    发芽的马铃薯最好还是扔掉,不值当冒险,这里只是说理论的去毒方法。
    \n

    而块茎一般含有多糖、淀粉,是比较不容易溶解于水里的,

    \n

    所以浸泡投洗算是古代比较常见的植物脱毒预处理方式。也最简单容易操作。

    \n
    魔芋含有的葡甘聚糖(KGM),也是一种具有特殊理化性质的天然高分子多糖。
    \n

    3.磨碎熬煮。

    \n

    磨碎是为了进一步增加反应速度,加热熬煮则是人类掌握比较成熟的脱毒方式。

    \n
    \"\"
    \n

    像是四季豆、扁豆、金针菇、木薯、蚕豆、黄花菜等,都是必须彻底加热才能吃的食材。

    \n

    这几种植物原理不同,比如豆角是皂素和红细胞凝集素;蚕豆是巢菜碱苷成分及蚕豆嘧啶葡糖苷;木薯是亚麻仁苦苷,金针菇和黄花菜是秋水仙碱,还有一些植物含有较高草酸。

    \n

    而破坏生物碱的方式,古代人类最容易掌握的就是加热。

    \n

    虽然也有不少毒素,比如不少菌类含有的毒素异常稳定,具有耐高温的特性,但这更多是一种“偶然”,因为在自然界中植物不需要面对一百度的高温烹煮。

    \n

    魔芋的毒性主要应该是生物碱糖苷,这类物质比较常见于植物块茎里。

    \n

    比如土豆里含有的龙葵碱,就是种典型的生物碱糖苷,难于被胃肠道吸收,会导致肠胃不适。

    \n

    因为他们对人体的肠胃膜结构油一定破坏作用,还能抑制胆碱酯酶的消化。

    \n

    所以,凉拌土豆丝是焯水后凉拌的,厨房菜鸟切记。

    \n
    \"\"
    \n

    好,我们回到魔芋加工过程。

    \n

    4.点碱水。

    \n

    这一步其实和“去毒”应该没有关系。

    \n

    因为中和生物碱一般是用酸,而加碱显然无助于分解。

    \n

    如果不考虑外形,煮熟后的魔芋糊糊也是可以吃的。但是不好保存。

    \n
    \"\"
    \n

    很可能古人是先吃了很多年的魔芋糊,然后才逐步研究怎么让这个东西凝结,变成类似豆腐的形状,方便保存和携带。

    \n

    魔芋加碱水的主要原因是为了改善其质地和口感。

    \n

    让碱水和魔芋中的谷蛋白酶反应,失去活性,从而凝固魔芋,增加其黏度和弹性。‌

    \n

    农村的这一步是用草木灰(主要成分是碳酸钾(K2CO3))浸泡过滤的水来“点”魔芋。

    \n
    现在食品工艺,大都加入碱性的氢氧化钙来处理。
    显然氢氧化钙更干净、安全,而且是残留量不需限定的加工助剂。
    \n
    \"\"
    \n

    用草木灰来凝固蛋白、脱水,也算是古人掌握的一种常见加工方法。

    \n

    比如用在鸭蛋上,草木灰包裹可以制造松花蛋(蛋白变性作用),把豆腐包裹可以制造出灰培豆腐(脱水作用)。

    \n

    同时,因为草木灰相对卫生(燃烧后相当于消毒),可以调节食物酸碱度让口感更好,还能长期保存食物(吸水让食物表面干燥),所以古人在食材加工中经常会尝试添加。

    \n
    哪怕加错了就是多喝了点碱水,也没有大问题。
    \n

    比如“碱水粽”是用草木灰水浸泡糯米,桑叶凉粉是用草木灰水与桑叶汁制作。在四川,还有用草木灰水和大米制作的“灰水馍馍”。

    \n

    这些显示出我们的祖先做食物时,经常会尝试添加草木灰,看看会有什么变化。

    \n
    \"\"
    \n

    5.成型切分。

    \n

    用碱水点过之后,快速搅拌、冷却,魔芋就会凝结成块状。可以用竹篾划开。

    \n

    就成了块状的土法魔芋了,因为草木灰和过滤不彻底,经常是灰褐色的。

    \n
    \"\"
    草木灰魔芋
    \n

    这里说一下碱水让魔芋成型的化学原理,不感兴趣的可以跳过。

    \n
    魔芋的主要成分是葡甘露聚糖,由葡萄糖和甘露糖按一定比例结合而成的的长链大分子。
    在这个大分子上,除了主链上的葡萄糖和甘露糖之外,还有一些特别的乙酰基。
    正是这些乙酰基的存在,阻止了魔芋多糖分子的“亲密聚合”,所以加工之前的魔芋并不是魔芋块、魔芋丝那样 Q 弹的样子。
    只有加碱性物质才能把乙酰基的阻拦作用“抵消”,让魔芋多糖分子聚集凝固,并且把很多水分锁在其中,最终摇身一变成为魔芋丝、魔芋豆腐等弹滑的状态。
    \n

    古人显然不懂这些深奥原理,但不阻碍他们在实验草木灰水的时候,发现了效果。

    \n

    至此,魔芋就成了我们比较常见的样子,颜色深浅要看熬煮过程的火候和碱水。

    \n

    使用草木灰的会比较灰暗,颜色深,而使用食用碱来做添加剂,魔芋会更透亮,好看。

    \n
    \"\"
    土法碱水魔芋
    \n

    一般在魔芋凉了切块后,食用前还会进行二次煮制。

    \n

    这样可以让口感更有弹性。也防止表面滋生细菌。

    \n

    总结一下,

    \n

    古人应该不是一步到位把魔芋的制作过程发明的。

    \n

    而是发现了可食用的块茎,先凑活生着吃,发现少量毒不死,但吃多了恶心、呕吐、拉肚子。

    \n

    于是试着洗一洗,发现好像好一点,再试试烤熟了、煮熟了吃,发现又好一些。

    \n

    等吃腻了糊糊,试着往里面加点木炭粉、草木灰,乱七八糟厨房附近有的,吃不死人的东西。

    \n

    发现居然变成块了,更容易保存吃好几天。

    \n

    下次试试只加草木灰的过滤水,原来也可以。颜色更好看了。

    \n

    于是,经过漫长的摸索,这种“新型豆腐”的加工方法就算定型了。

    \n

    不得不过,古代人为了吃点好东西,的确是能发动各种研究精神啊。

    \n
    关注也说,阅读更多有趣的思想。
    \n

    当年苏联挖地球为什么挖到 12262 米就停止了?明明不开车为啥还被称为副驾驶?假如忽然火了?怎么接住泼天的富贵。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782557", + "creator": "", + "pubDate": "Tue, 15 Jul 2025 08:27:03 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "e55b066bd5cb0fc524a10242af37695b", + "highlights": [] + }, + { + "title": "孩子因基因突变出生几个月后眼睛变成蓝色,如何从医学角度解释这种现象?哪些因素会导致基因突变?", + "description": "
    \"头图\"/
    \n

    目前当事人已经说明,孩子的蓝眼是由瓦登伯格综合征(Waardenburg Syndrome)引起的。

    \n

    但仍然有网友玩梗说到”“这小孩怕不是混血”的玩笑式推测,如果单看结果,这种推测符合来自对“蓝眼=欧美血统”的印象。

    \n

    不过从医学角度来看,蓝色眼睛并非某一人种的专属特征,也不仅仅是基因突变带来的病理表现。

    \n

    有些宝宝一开始眼睛偏灰偏蓝,随着黑色素增加,会慢慢变深;而也有少数孩子,黑色素合成减少,眼睛反而变浅、变蓝。

    \n

    实际上,蓝眼睛的形成机制要复杂得多。除了特定基因突变导致的病理性浅色虹膜,更多时候,眼睛颜色取决于父母双方遗传给孩子的多个基因组合——这些基因共同决定了色素细胞的数量、活性以及色素的种类和沉积程度。

    \n

    生理性方面,可以以这个顺序来理解:虹膜→肤色 / 血统→黑色素→基因

    \n

    我们来先说下生理的蓝眼睛是如何形成的。新生儿的眼睛颜色和肤色都受到黑色素含量的影响。总体上,浅肤色人群(如白人)新生儿更可能出生时眼睛呈蓝色或灰色,而深肤色人群(如亚洲人、非洲人)则多出生时即为棕色或深色眼睛。

    \n

    一种观点认为,人类眼睛颜色的地理分布可能与光照强度有关。在阳光充足的赤道附近,人群普遍虹膜色素较深,可能有助于阻挡部分紫外线;而在高纬度地区,虹膜颜色较浅,或许有利于增加光线透过率。不过,这仍属于演化假说,目前尚无确凿证据说明人眼色进化是光照压力直接导致的。

    \n

    目前普遍认可虹膜的颜色主要由黑色素含量决定。当黑色素含量高时眼睛呈现棕色,含量低时则呈现蓝色或绿色,不同类型的黑色素以及色素体的密度和结构会影响最终颜色。而再深层次探讨,黑色素又由基因决定,浅肤色人群(如白人)主要是由于OCA2 和 HERC2 基因的变异。

    \n
    \"\"
    \n

    OCA2 编码 P 蛋白,HERC2 某些调控区变异可抑制 OCA2 表达,从而减少黑色素,导致蓝眼形成。简单的来说,就是携带 HERC2 基因的婴儿眼睛呈蓝色,并且倾向于保持蓝色;而携带 OCA2 基因的婴儿眼睛则呈绿色或棕色。

    \n

    Punnett Square(庞尼特方格 / 庞氏表)来预测宝宝的眼睛颜色是很多人常见的做法,但在现代遗传学视角下,这种方法只能作为一个非常初步、简化的工具,实际上没有万无一失的方法。

    \n
    \"\"
    \n

    比如以上这个眼睛颜色预测图(Punnett square )虽然第一组表明两个蓝眼睛的父母极生出棕色眼睛的孩子的概率很低,但如果父母双方都携带棕色眼睛的隐性 DNA 变异,他们的孩子仍然有可能遗传棕色眼睛,毕竟父母的眼睛颜色(表型)不等于他们的基因组合(基因型),在多基因性状中,还有隐藏的等位基因,此外还存在基因互作、调控表达、表观遗传等复杂机制。

    \n

    换句话说,孩子的眼睛颜色,不只是“妈妈是黑眼,爸爸是棕眼”这么简单的加法题,而是涉及复杂的遗传表达和调控机制,不可能完全准确预测。

    \n

    而在某些特殊情况下,比如像本新闻中的瓦登伯格综合征[1],则是由于调控色素合成的关键基因发生突变,导致虹膜黑色素缺失或显著减少,进而呈现出显著的浅蓝或异色双眼。这类改变,虽然稀有,但确实存在于亚洲人群中。

    \n

    瓦登伯格综合征并不是一个生理情况下的蓝眼睛,而是一种罕见的遗传性疾病,主要由基因突变引起,常见的相关基因包括 PAX3、MITF、SOX10 等。

    \n

    这些基因在胚胎发育过程中起着关键作用,当这些基因发生突变时,会影响黑色素细胞的正常发育和功能,产生包括、但不限于——色素沉着异常、听力系统发育障碍等等。当虹膜中黑色素含量减少,光线在虹膜表面发生散射,从而呈现出蓝色。也就是说,瓦登伯格综合征的蓝眼睛是疾病的表现形式之一。

    \n

    那还有没有其他变成蓝眼睛的可能原因呢?当然也有可能。

    \n

    白化病患者由于 OCA2 严重突变导致全身黑色素合成缺陷,虹膜淡蓝、灰色甚至透出眼底血管的颜色。由于患者虹膜因色素缺失,透光性增强,眼睛会对强光异常敏感,所以我们通常建议需佩戴防紫外线眼镜保护眼睛,这也是大家不常注意到他们虹膜的原因。

    \n

    还有一些欧美人的婴儿在出生时眼睛是蓝灰色(因为彩虹膜内的黑色素尚未完全生成或分布,其结构容易让光线散射,造成“蓝色外观”),等随着孩子慢慢长大(一般在出生后 6~12 个月内),随着黑色素合成的进行,眼睛会逐步变为棕色、绿色或保持蓝色。这个就和突变没什么关系了。

    \n

    此外也不能排除环境因素和染色体异常。怀孕期间如果母亲接触到放射线、有害化学物质、某些药物或病毒感染,也可能干扰胎儿 DNA 结构,引起突变。所以这也是为什么产科的医生非常强调孕妇进行遗传咨询和相关检测的原因。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    目前当事人已经说明,孩子的蓝眼是由瓦登伯格综合征(Waardenburg Syndrome)引起的。

    \n

    但仍然有网友玩梗说到”“这小孩怕不是混血”的玩笑式推测,如果单看结果,这种推测符合来自对“蓝眼=欧美血统”的印象。

    \n

    不过从医学角度来看,蓝色眼睛并非某一人种的专属特征,也不仅仅是基因突变带来的病理表现。

    \n

    有些宝宝一开始眼睛偏灰偏蓝,随着黑色素增加,会慢慢变深;而也有少数孩子,黑色素合成减少,眼睛反而变浅、变蓝。

    \n

    实际上,蓝眼睛的形成机制要复杂得多。除了特定基因突变导致的病理性浅色虹膜,更多时候,眼睛颜色取决于父母双方遗传给孩子的多个基因组合——这些基因共同决定了色素细胞的数量、活性以及色素的种类和沉积程度。

    \n

    生理性方面,可以以这个顺序来理解:虹膜→肤色 / 血统→黑色素→基因

    \n

    我们来先说下生理的蓝眼睛是如何形成的。新生儿的眼睛颜色和肤色都受到黑色素含量的影响。总体上,浅肤色人群(如白人)新生儿更可能出生时眼睛呈蓝色或灰色,而深肤色人群(如亚洲人、非洲人)则多出生时即为棕色或深色眼睛。

    \n

    一种观点认为,人类眼睛颜色的地理分布可能与光照强度有关。在阳光充足的赤道附近,人群普遍虹膜色素较深,可能有助于阻挡部分紫外线;而在高纬度地区,虹膜颜色较浅,或许有利于增加光线透过率。不过,这仍属于演化假说,目前尚无确凿证据说明人眼色进化是光照压力直接导致的。

    \n

    目前普遍认可虹膜的颜色主要由黑色素含量决定。当黑色素含量高时眼睛呈现棕色,含量低时则呈现蓝色或绿色,不同类型的黑色素以及色素体的密度和结构会影响最终颜色。而再深层次探讨,黑色素又由基因决定,浅肤色人群(如白人)主要是由于OCA2 和 HERC2 基因的变异。

    \n
    \"\"
    \n

    OCA2 编码 P 蛋白,HERC2 某些调控区变异可抑制 OCA2 表达,从而减少黑色素,导致蓝眼形成。简单的来说,就是携带 HERC2 基因的婴儿眼睛呈蓝色,并且倾向于保持蓝色;而携带 OCA2 基因的婴儿眼睛则呈绿色或棕色。

    \n

    Punnett Square(庞尼特方格 / 庞氏表)来预测宝宝的眼睛颜色是很多人常见的做法,但在现代遗传学视角下,这种方法只能作为一个非常初步、简化的工具,实际上没有万无一失的方法。

    \n
    \"\"
    \n

    比如以上这个眼睛颜色预测图(Punnett square )虽然第一组表明两个蓝眼睛的父母极生出棕色眼睛的孩子的概率很低,但如果父母双方都携带棕色眼睛的隐性 DNA 变异,他们的孩子仍然有可能遗传棕色眼睛,毕竟父母的眼睛颜色(表型)不等于他们的基因组合(基因型),在多基因性状中,还有隐藏的等位基因,此外还存在基因互作、调控表达、表观遗传等复杂机制。

    \n

    换句话说,孩子的眼睛颜色,不只是“妈妈是黑眼,爸爸是棕眼”这么简单的加法题,而是涉及复杂的遗传表达和调控机制,不可能完全准确预测。

    \n

    而在某些特殊情况下,比如像本新闻中的瓦登伯格综合征[1],则是由于调控色素合成的关键基因发生突变,导致虹膜黑色素缺失或显著减少,进而呈现出显著的浅蓝或异色双眼。这类改变,虽然稀有,但确实存在于亚洲人群中。

    \n

    瓦登伯格综合征并不是一个生理情况下的蓝眼睛,而是一种罕见的遗传性疾病,主要由基因突变引起,常见的相关基因包括 PAX3、MITF、SOX10 等。

    \n

    这些基因在胚胎发育过程中起着关键作用,当这些基因发生突变时,会影响黑色素细胞的正常发育和功能,产生包括、但不限于——色素沉着异常、听力系统发育障碍等等。当虹膜中黑色素含量减少,光线在虹膜表面发生散射,从而呈现出蓝色。也就是说,瓦登伯格综合征的蓝眼睛是疾病的表现形式之一。

    \n

    那还有没有其他变成蓝眼睛的可能原因呢?当然也有可能。

    \n

    白化病患者由于 OCA2 严重突变导致全身黑色素合成缺陷,虹膜淡蓝、灰色甚至透出眼底血管的颜色。由于患者虹膜因色素缺失,透光性增强,眼睛会对强光异常敏感,所以我们通常建议需佩戴防紫外线眼镜保护眼睛,这也是大家不常注意到他们虹膜的原因。

    \n

    还有一些欧美人的婴儿在出生时眼睛是蓝灰色(因为彩虹膜内的黑色素尚未完全生成或分布,其结构容易让光线散射,造成“蓝色外观”),等随着孩子慢慢长大(一般在出生后 6~12 个月内),随着黑色素合成的进行,眼睛会逐步变为棕色、绿色或保持蓝色。这个就和突变没什么关系了。

    \n

    此外也不能排除环境因素和染色体异常。怀孕期间如果母亲接触到放射线、有害化学物质、某些药物或病毒感染,也可能干扰胎儿 DNA 结构,引起突变。所以这也是为什么产科的医生非常强调孕妇进行遗传咨询和相关检测的原因。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782571", + "creator": "", + "pubDate": "Tue, 15 Jul 2025 08:27:03 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "2232eb02b1f04636ab86673493880117", + "highlights": [] + }, + { + "title": "父母会嫉妒自己的子女吗?为什么?", + "description": "
    \"头图\"/
    \n
    “你也得吃点苦,才知道生活不容易。”
    “我小时候哪有你这待遇?”
    “我妈也从来不管我,我不也长大了?”
    “这有什么的,我也是这么被养大的,我不也好好吗?”
    \n

    心理咨询中,父母可能会这样说。但真的是这样吗,你真的“好好的”吗?这听起来像是在自证,实际上却往往是对伤痛的否认与传递。

    \n

    这些说辞的背后,是父母不愿被看见的伤痛,因为从未被真正处理过,就只能以另一种形式延续下去。心理创伤不会因为扛过来了就自动痊愈,反而可能成为父母控制孩子、否定孩子、阻碍孩子发展的潜在动力。

    \n

    而那些看起来毫无道理的控制与打压的行为,背后往往藏着人性中最复杂的情绪之一——父母对孩子的嫉妒。

    \n

    01 隐藏在爱背后的嫉妒

    \n

    “你还真会享受。”

    \n

    听起来好像是父母在感叹孩子的美好生活,但可能隐藏着嫉妒的情绪。更准确地说,是一种混杂了悲伤、羡慕、愤怒、失落、无力的复杂感受。

    \n

    当一个孩子有了父母从未拥有过的幸福、自由和选择权,这对父母来说,可能不只会带来欣慰的感觉,还可能是一种提醒:我从未拥有过这些,我失去了我的幸福,而你有了。

    \n

    就像一个小时候饿过很久的人,即使现在已经不用饿肚子了,但看到别的小孩丰盛地吃着饭,会不由自主地泛起不满:你咋这么幸运呢,凭什么?孩子的快乐,在一些父母眼中,是不公平的证据。

    \n

    他们感到自己的苦无人知晓,也会怀疑:“孩子是不是就此要离开我了?”他们焦虑,随着孩子越发独立自主和成功,自己可能就再也无法掌控这个孩子了。

    \n

    于是,孩子想走向光亮的一步,就被一句“我看也不过如此。”泼了冷水。孩子想分享自己的幸福,就换来一句“你可真会享福,我可享不到这些喽”的阴阳怪气。

    \n

    这种情绪的核心,不是不够爱孩子,而是创伤太深。

    \n

    02 “你比我幸福,那我算什么?”

    \n

    在一些家庭中,父母对子女的态度夹杂着微妙的竞争色彩。

    \n

    有时是回避或拒绝帮助:

    \n
    “我小时候也没人帮我。”
    \n

    有时是明目张胆的控制:

    \n
    “你听我的就不会错。”
    \n

    有时则是更隐秘的拉扯:

    \n
    “你以为你现在就比我强了吗?”
    \n

    他们并不是在计较一顿饭或者一句赞扬。

    \n

    他们在意的可能是:你是否正在活出我从未拥有过的人生?这会让一些父母觉得自己失败、无力、被超越,而这一切,恰好都是他们最害怕面对的情绪。

    \n

    最常见的解决方式不是面对自己的伤痛和失败,因为这太痛苦了,更轻松的方法是把孩子“拉下来”,用否定、指责、打压的方式,恢复自己对孩子的掌控感。

    \n

    潜意识中,如果孩子永远不超过他们、依赖他们,他们会更好受。

    \n

    03 孩子不是附属品,更不是补偿

    \n

    一位母亲说:“孩子拥有了我没拥有过的一切,就像是我的幸福被抢走了一样。

    \n

    这并不是她不爱孩子,而是她内心那个委屈的小孩从未有机会疗愈。

    \n

    自体心理学中称之为“自体虚弱”,他们从小缺乏被理解、被肯定的经验,内心长时间处于压抑和否认的状态,所以只能通过孩子的依赖,来补偿自己的匮乏。当孩子不再需要他们时,他们就会感到无比痛苦、无价值,甚至失控。

    \n

    于是,一些父母会将孩子当作自己的延伸,必须听话、忠诚、感恩。他们很难接受孩子的分化、独立,更不能接受孩子“不属于自己”。

    \n

    但孩子是独立的个体,他们不是父母未竟梦想的载体,也不是父母人生的安慰奖。

    \n

    04 “我爸妈见不得我好”,这不是错觉

    \n

    “我爸妈见不得我开心,每次我有点好事,他们就要来挑刺。”

    \n

    “有一次我正在超级开心的疯玩儿,妈妈突然过来揪住我说:我小时候从来不会像你这样胡闹。”

    \n

    这些声音反映了孩子真实的情感创伤:自己最初的欢欣和成就,常常换来的不是父母的共鸣和欣慰,而是冷漠与怀疑,甚至打压。

    \n

    于是这些孩子开始学会报喜不报忧、降低存在感,学会为了换取爱而牺牲自己的一部分。久而久之,成就带来愧疚,幸福也会带来不安。

    \n

    这并不正常,这是因为你习惯了隐藏,害怕真实的自己会“太刺眼”,引来不满或攻击。

    \n

    05 “背叛”父母,是一种必要的成长

    \n

    如果你成长在这样的环境中,请先告诉自己一件事:你没有疯,你没错。

    \n

    你所感受到的那些嫉妒、控制、冷漠、否定,是真实存在的情感,它们对你产生了影响,而这不是你的责任。你不需要强迫自己原谅和理解,不需要合理化那些伤害。你首先需要的是:看见自己,接纳自己。

    \n

    看见父母也是受伤的个体,但不代表你要继续承受他们的伤痛。看见那些控制背后的无力和痛苦,但不代表你要牺牲自己来安抚他们的脆弱。看见那句“我小时候也这样”,其实不是教育方式的证明,而是创伤的延续。

    \n

    改变,不是反抗父母,而是开始选择为自己而活。当你试图做回自己,找到自己时,你可能会感到一种对父母的背叛感,但这不是对父母的抛弃,而是对自己的诚实,不必愧疚。

    \n

    你会开始设定边界,明确告诉自己哪些是你愿意接受的,哪些不是。你会不再急于讨好,不再急于证明,不再把自己的生活建立在“获得他们认可”的基础上。

    \n

    学着为自己的情绪负责,不再无条件承接他们的情绪。当遭遇贬低、抱怨或嘲讽时,区分“这是他们的课题”而非你的缺陷,不再自责、压抑、或陷入争辩的漩涡。

    \n

    你会发现,当你真的不再执着于父母的爱与认可,你反而更有能力去理解和拥抱他们,也更能看到他们曾经的局限。

    \n

    因为你终于从他们的影子里,走出来了。

    \n

    06 孩子是镜子,让我们看见自己

    \n

    对于父母来说,孩子常常像一面镜子,照见我们内心深处那些未曾被满足的愿望。看到孩子无拘无束地表达自己、追求喜欢的事物,我们有时会泛起复杂的情绪。那不是恨,而是对自己某些被压抑太久的渴望的隐隐心疼。

    \n

    孩子的自由,是我未曾拥有过的自由。孩子的快乐,是我曾被剥夺过的快乐。孩子的强大,是我渴望又无法实现的强大。

    \n

    但这面镜子并不是来指责的,而是来提醒的。孩子不仅带着我们向前走,也让我们回头看,他们唤醒了我们未竟的部分。当我们愿意看见自己,承认那份遗憾,也许就能不再被这些情绪带着走。

    \n

    你眼中看似比你幸福一百倍的孩子,也必然有他们自己需要去面对的痛苦和缺憾。在苦难面前,父母和孩子都是无辜的、需要被爱的人。只有当你愿意面对那个不完美的自己,接纳自己缺憾的人生,才能真正停止对孩子的控制和投射。

    \n

    而我们自己,也才能开始活出属于自己的人生。

    \n

    * 相关阅读推荐

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态? - 知乎

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态?

    \n
    \"\"
    \n

    文 / 红树林心理咨询中心 吴凡

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", + "content": "
    \"头图\"/
    \n
    “你也得吃点苦,才知道生活不容易。”
    “我小时候哪有你这待遇?”
    “我妈也从来不管我,我不也长大了?”
    “这有什么的,我也是这么被养大的,我不也好好吗?”
    \n

    心理咨询中,父母可能会这样说。但真的是这样吗,你真的“好好的”吗?这听起来像是在自证,实际上却往往是对伤痛的否认与传递。

    \n

    这些说辞的背后,是父母不愿被看见的伤痛,因为从未被真正处理过,就只能以另一种形式延续下去。心理创伤不会因为扛过来了就自动痊愈,反而可能成为父母控制孩子、否定孩子、阻碍孩子发展的潜在动力。

    \n

    而那些看起来毫无道理的控制与打压的行为,背后往往藏着人性中最复杂的情绪之一——父母对孩子的嫉妒。

    \n

    01 隐藏在爱背后的嫉妒

    \n

    “你还真会享受。”

    \n

    听起来好像是父母在感叹孩子的美好生活,但可能隐藏着嫉妒的情绪。更准确地说,是一种混杂了悲伤、羡慕、愤怒、失落、无力的复杂感受。

    \n

    当一个孩子有了父母从未拥有过的幸福、自由和选择权,这对父母来说,可能不只会带来欣慰的感觉,还可能是一种提醒:我从未拥有过这些,我失去了我的幸福,而你有了。

    \n

    就像一个小时候饿过很久的人,即使现在已经不用饿肚子了,但看到别的小孩丰盛地吃着饭,会不由自主地泛起不满:你咋这么幸运呢,凭什么?孩子的快乐,在一些父母眼中,是不公平的证据。

    \n

    他们感到自己的苦无人知晓,也会怀疑:“孩子是不是就此要离开我了?”他们焦虑,随着孩子越发独立自主和成功,自己可能就再也无法掌控这个孩子了。

    \n

    于是,孩子想走向光亮的一步,就被一句“我看也不过如此。”泼了冷水。孩子想分享自己的幸福,就换来一句“你可真会享福,我可享不到这些喽”的阴阳怪气。

    \n

    这种情绪的核心,不是不够爱孩子,而是创伤太深。

    \n

    02 “你比我幸福,那我算什么?”

    \n

    在一些家庭中,父母对子女的态度夹杂着微妙的竞争色彩。

    \n

    有时是回避或拒绝帮助:

    \n
    “我小时候也没人帮我。”
    \n

    有时是明目张胆的控制:

    \n
    “你听我的就不会错。”
    \n

    有时则是更隐秘的拉扯:

    \n
    “你以为你现在就比我强了吗?”
    \n

    他们并不是在计较一顿饭或者一句赞扬。

    \n

    他们在意的可能是:你是否正在活出我从未拥有过的人生?这会让一些父母觉得自己失败、无力、被超越,而这一切,恰好都是他们最害怕面对的情绪。

    \n

    最常见的解决方式不是面对自己的伤痛和失败,因为这太痛苦了,更轻松的方法是把孩子“拉下来”,用否定、指责、打压的方式,恢复自己对孩子的掌控感。

    \n

    潜意识中,如果孩子永远不超过他们、依赖他们,他们会更好受。

    \n

    03 孩子不是附属品,更不是补偿

    \n

    一位母亲说:“孩子拥有了我没拥有过的一切,就像是我的幸福被抢走了一样。

    \n

    这并不是她不爱孩子,而是她内心那个委屈的小孩从未有机会疗愈。

    \n

    自体心理学中称之为“自体虚弱”,他们从小缺乏被理解、被肯定的经验,内心长时间处于压抑和否认的状态,所以只能通过孩子的依赖,来补偿自己的匮乏。当孩子不再需要他们时,他们就会感到无比痛苦、无价值,甚至失控。

    \n

    于是,一些父母会将孩子当作自己的延伸,必须听话、忠诚、感恩。他们很难接受孩子的分化、独立,更不能接受孩子“不属于自己”。

    \n

    但孩子是独立的个体,他们不是父母未竟梦想的载体,也不是父母人生的安慰奖。

    \n

    04 “我爸妈见不得我好”,这不是错觉

    \n

    “我爸妈见不得我开心,每次我有点好事,他们就要来挑刺。”

    \n

    “有一次我正在超级开心的疯玩儿,妈妈突然过来揪住我说:我小时候从来不会像你这样胡闹。”

    \n

    这些声音反映了孩子真实的情感创伤:自己最初的欢欣和成就,常常换来的不是父母的共鸣和欣慰,而是冷漠与怀疑,甚至打压。

    \n

    于是这些孩子开始学会报喜不报忧、降低存在感,学会为了换取爱而牺牲自己的一部分。久而久之,成就带来愧疚,幸福也会带来不安。

    \n

    这并不正常,这是因为你习惯了隐藏,害怕真实的自己会“太刺眼”,引来不满或攻击。

    \n

    05 “背叛”父母,是一种必要的成长

    \n

    如果你成长在这样的环境中,请先告诉自己一件事:你没有疯,你没错。

    \n

    你所感受到的那些嫉妒、控制、冷漠、否定,是真实存在的情感,它们对你产生了影响,而这不是你的责任。你不需要强迫自己原谅和理解,不需要合理化那些伤害。你首先需要的是:看见自己,接纳自己。

    \n

    看见父母也是受伤的个体,但不代表你要继续承受他们的伤痛。看见那些控制背后的无力和痛苦,但不代表你要牺牲自己来安抚他们的脆弱。看见那句“我小时候也这样”,其实不是教育方式的证明,而是创伤的延续。

    \n

    改变,不是反抗父母,而是开始选择为自己而活。当你试图做回自己,找到自己时,你可能会感到一种对父母的背叛感,但这不是对父母的抛弃,而是对自己的诚实,不必愧疚。

    \n

    你会开始设定边界,明确告诉自己哪些是你愿意接受的,哪些不是。你会不再急于讨好,不再急于证明,不再把自己的生活建立在“获得他们认可”的基础上。

    \n

    学着为自己的情绪负责,不再无条件承接他们的情绪。当遭遇贬低、抱怨或嘲讽时,区分“这是他们的课题”而非你的缺陷,不再自责、压抑、或陷入争辩的漩涡。

    \n

    你会发现,当你真的不再执着于父母的爱与认可,你反而更有能力去理解和拥抱他们,也更能看到他们曾经的局限。

    \n

    因为你终于从他们的影子里,走出来了。

    \n

    06 孩子是镜子,让我们看见自己

    \n

    对于父母来说,孩子常常像一面镜子,照见我们内心深处那些未曾被满足的愿望。看到孩子无拘无束地表达自己、追求喜欢的事物,我们有时会泛起复杂的情绪。那不是恨,而是对自己某些被压抑太久的渴望的隐隐心疼。

    \n

    孩子的自由,是我未曾拥有过的自由。孩子的快乐,是我曾被剥夺过的快乐。孩子的强大,是我渴望又无法实现的强大。

    \n

    但这面镜子并不是来指责的,而是来提醒的。孩子不仅带着我们向前走,也让我们回头看,他们唤醒了我们未竟的部分。当我们愿意看见自己,承认那份遗憾,也许就能不再被这些情绪带着走。

    \n

    你眼中看似比你幸福一百倍的孩子,也必然有他们自己需要去面对的痛苦和缺憾。在苦难面前,父母和孩子都是无辜的、需要被爱的人。只有当你愿意面对那个不完美的自己,接纳自己缺憾的人生,才能真正停止对孩子的控制和投射。

    \n

    而我们自己,也才能开始活出属于自己的人生。

    \n

    * 相关阅读推荐

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态? - 知乎

    \n

    有一种心理叫「不允许自己快乐」,这到底是种什么心态?

    \n
    \"\"
    \n

    文 / 红树林心理咨询中心 吴凡

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", + "category": "", + "link": "https://daily.zhihu.com/story/9782536", + "creator": "", + "pubDate": "Mon, 14 Jul 2025 08:27:04 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "e1cdb642d7fa16d2ca26c309c22c9f18", + "highlights": [] + }, + { + "title": "孩子只在父母面前「情绪失控」,在外却近乎「完美」,正常吗?该如何引导?", + "description": "
    \"头图\"/
    \n

    弗洛伊德认为:“攻击性如同是一个人的生命力,如果一个人不能活出自己的攻击性,就会出现心理问题。”

    \n

    即使环境很糟糕,只要一个人能够正常表达攻击性,就能够保护自我不受外界蹂躏。

    \n

    心理学研究表明:孩子在很小的时候会强烈地依恋父母或其他养育者,当孩子接触外部世界时,失去这种依恋会使他产生一种不安全感,从而使孩子胆小。

    \n

    但是如果孩子上学以后对外界表现出过分“完美”“懂事”“胆怯”,很大可能就是家庭教育的问题。

    \n

    我邻居家的孩子就是这样,在家里,脾气大得惊人。和妈妈顶嘴,对弟弟妹妹呼来喝去,翻脸比翻书还快。

    \n

    爸妈一说他一句,他能当场怼回几句,搞得全家都不安生。

    \n

    可一旦出了门,到了学校或者外人面前,立马变脸。

    \n

    不说话,胆小,做事缩手缩脚,老师点个名都吓一跳,像换了个人。

    \n

    说白了,孩子在家里发横,是因为他知道自己“横得起”;在外面发怂,是因为他不知道能不能“撑得住”。

    \n

    而这种反差,很多时候不是性格问题,是家庭结构的问题。

    \n

    家长要反思自己给孩子是否创造了足够安全的生活环境。例如:夫妻之间的吵架、对孩子言语的伤害或者是过度保护孩子,都是有可能让孩子出现这一表现的原因。

    \n

    如果想要改变,从这五点做起吧!

    \n

    一、不过分溺爱,做有原则有底线的父母

    \n

    “爱孩子”和“立规矩”,从来不是一道单选题。

    \n

    明确规则,不被孩子牵着鼻子走,不能因为孩子哭闹,就主动打破规则的执行,和善而坚定地对孩子说“不”。让孩子明白,边界感的所在。

    \n
    \"\"
    在孩子的成长过程中,要让他知道:除了爱之外,还要有敬畏
    \n

    二、每天花 15 分钟的时间和孩子聊天,问问他,学校都发生了什么。

    \n

    三、每周抽时间给孩子拍一段视频,让他听自己的声音,看自己的表现,发现问题及时调整。

    \n
    \"\"
    \n

    四、周末邀请孩子的好朋友到家里来玩,给孩子创造多种社交机会和条件,提升孩子的社交能力。

    \n

    五、在孩子愿意的前提下,给孩子创造一些上台表演的机会,通过正向的实践提升孩子的自信心。

    \n
    \"\"
    提升孩子自信心的 5 句话
    \n

    亲测,这几个方法对提高孩子自信心,让孩子变得有原则有担当非常有帮助。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    弗洛伊德认为:“攻击性如同是一个人的生命力,如果一个人不能活出自己的攻击性,就会出现心理问题。”

    \n

    即使环境很糟糕,只要一个人能够正常表达攻击性,就能够保护自我不受外界蹂躏。

    \n

    心理学研究表明:孩子在很小的时候会强烈地依恋父母或其他养育者,当孩子接触外部世界时,失去这种依恋会使他产生一种不安全感,从而使孩子胆小。

    \n

    但是如果孩子上学以后对外界表现出过分“完美”“懂事”“胆怯”,很大可能就是家庭教育的问题。

    \n

    我邻居家的孩子就是这样,在家里,脾气大得惊人。和妈妈顶嘴,对弟弟妹妹呼来喝去,翻脸比翻书还快。

    \n

    爸妈一说他一句,他能当场怼回几句,搞得全家都不安生。

    \n

    可一旦出了门,到了学校或者外人面前,立马变脸。

    \n

    不说话,胆小,做事缩手缩脚,老师点个名都吓一跳,像换了个人。

    \n

    说白了,孩子在家里发横,是因为他知道自己“横得起”;在外面发怂,是因为他不知道能不能“撑得住”。

    \n

    而这种反差,很多时候不是性格问题,是家庭结构的问题。

    \n

    家长要反思自己给孩子是否创造了足够安全的生活环境。例如:夫妻之间的吵架、对孩子言语的伤害或者是过度保护孩子,都是有可能让孩子出现这一表现的原因。

    \n

    如果想要改变,从这五点做起吧!

    \n

    一、不过分溺爱,做有原则有底线的父母

    \n

    “爱孩子”和“立规矩”,从来不是一道单选题。

    \n

    明确规则,不被孩子牵着鼻子走,不能因为孩子哭闹,就主动打破规则的执行,和善而坚定地对孩子说“不”。让孩子明白,边界感的所在。

    \n
    \"\"
    在孩子的成长过程中,要让他知道:除了爱之外,还要有敬畏
    \n

    二、每天花 15 分钟的时间和孩子聊天,问问他,学校都发生了什么。

    \n

    三、每周抽时间给孩子拍一段视频,让他听自己的声音,看自己的表现,发现问题及时调整。

    \n
    \"\"
    \n

    四、周末邀请孩子的好朋友到家里来玩,给孩子创造多种社交机会和条件,提升孩子的社交能力。

    \n

    五、在孩子愿意的前提下,给孩子创造一些上台表演的机会,通过正向的实践提升孩子的自信心。

    \n
    \"\"
    提升孩子自信心的 5 句话
    \n

    亲测,这几个方法对提高孩子自信心,让孩子变得有原则有担当非常有帮助。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782552", + "creator": "", + "pubDate": "Mon, 14 Jul 2025 08:27:04 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "54d622541f4f473a8dd14f6e4d7644c7", + "highlights": [] + }, + { + "title": "为什么没熟透的香蕉总是皮厚肉少,而熟透的香蕉总是薄皮肉多?", + "description": "
    \"头图\"/
    \n

    让我们看下香蕉君の成熟之路。

    \n

    首先,我们都知道,香蕉苹果猕猴桃芒果等属于典型的呼吸跃变型水果。

    \n

    就是在绿熟期即可摘下,放一段时间自己会成熟。

    \n

    与之对应的就是非呼吸跃变型水果,比如樱桃草莓葡萄荔枝,

    \n

    出道即巅峰,多放一天坏一天。

    \n
    \"\"
    \n

    而促使呼吸跃变型水果成熟启动的主要信号分子大家都知道——乙烯[1]。

    \n

    乙烯的合成始于甲硫氨酸,

    \n

    想合成乙烯需要经过三次转化。

    \n
    首先是在 S - 腺苷甲硫氨酸合成酶作用下转化为 S - 腺苷甲硫氨酸(SAM),
    然后在 ACC 合成酶(ACS)催化下生成 1 - 氨基环丙烷 - 1 - 羧酸(ACC),
    最后在 ACC 氧化酶(ACO)作用下形成乙烯。
    \n
    \"\"
    乙烯生物合成与信号传导通路图 b 为信号传导通路图
    \n

    这个过程随着温度上升呼吸作用的加强而飙升,

    \n

    最终到达顶峰后迅速下降,被称为跃变期。[2]

    \n
    \"\"
    香蕉成熟度里乙烯和呼吸强度的速率,可以看到到了后期断崖式上升,下降
    \n

    而在这之前,香蕉刚被摘下来时还是只青涩的蕉,

    \n

    注意啦,

    \n

    青涩不是形容词,而是叙述词。

    \n

    此时果肉里 70%-80%是淀粉,结构紧密不说,

    \n

    这类淀粉人的肠胃很难消化吸收,可以说是又硬又难吃。

    \n

    同时,果肉里还含有不少单宁(鞣酸)和果胶,

    \n

    有小伙伴讲了:

    \n

    单宁我知道,干红葡萄酒里有,喝嘴里会产生褶皱感。

    \n

    没错,单宁具有强收敛作用,

    \n

    不光会让嘴巴产生褶皱感,还可能影响肠道功能,

    \n

    咱常吃的生柿子就含有不少,

    \n

    简单的说,吃起来不光涩,吃多了还容易便秘。

    \n
    所以生香蕉就压根不能吃,更不能减肥。
    \n

    香蕉皮就更别说了,果皮塞满了叶绿素 a 和 b,整个看起来是绿油油的,

    \n

    同时细胞壁由果胶基质 - 纤维素 - 半纤维素构成坚挺的网络,导致香蕉皮此时很硬,甚至很难扒开。

    \n

    这个阶段被称为青熟期。

    \n

    香蕉没法吃,但是已经满足收获的条件了。

    \n

    收获好的香蕉被运往全国各地,

    \n
    此时一段焦灼的小调响起,又到了奥德彪拉香蕉的时间。
    \n
    \"\"
    \n

    正常来说香蕉在树上会受到乙烯的刺激,触发自我催化。

    \n

    ACC 合成酶(ACS)和 ACC 氧化酶(ACO)基因表达上调,

    \n

    使乙烯爆发式增长,激活 ERF 转录因子调控成熟基因,

    \n

    此时,呼吸速率显著提高。

    \n

    乙烯激活了香蕉内部的淀粉酶、糖苷酶,淀粉水解为可溶性糖,果肉变软变甜。[3]

    \n

    香蕉表皮的叶绿素 a 和 b 被叶绿素酶降解,导致绿色褪去,

    \n
    \"\"
    成熟香蕉果皮力度叶绿素和可溶性固形物含量,可以看到叶绿色消失,而可溶性固形物大大增加。
    \n

    类胡萝卜素合成开始增加,类黄酮含量上升,使果皮被显现出黄色,

    \n

    部分品种还会积累花青素,出现红香蕉。[4]

    \n
    \"\"
    红香蕉长这样,变红是因为花青素。
    \n

    再之后,,,,,

    \n

    多聚半乳糖醛酸酶 (polygalaturonase,PG)催化果胶分子中的 α-1,4- 半乳糖苷键裂解,

    \n

    使得果胶降解,香蕉软了。

    \n

    α-L- 阿拉伯呋喃糖苷酶(α-L-Arabinofuranosidase, α-L-Af)降解细胞壁多糖中的阿拉伯糖残基,

    \n

    导致果胶溶解和细胞壁结构松散,香蕉更软了。[5]

    \n

    纤维素酶(Cellulase,CEL)和β-D- 木聚糖苷酶活性增强,干掉香蕉皮细胞壁中的部分骨架结构,

    \n

    使纤维素半纤维素降解,香蕉更更软了。

    \n

    香蕉皮中还积累了部分抗性淀粉,也也被降解成可溶性糖,用于给果皮代谢供能。

    \n

    更更更软了,所以,香蕉皮软了,也薄了。

    \n

    但是没变强。

    \n

    正常来说,这个过程随着气温升高而加快,

    \n
    \"\"
    香蕉在 20°C 和 30°C 里各种酶的变化,可以看到温度越高曲线越高
    \n

    但是过了 30°C 后,高温会抑制叶绿素酶的发挥,

    \n

    导致出现香蕉果肉熟了,果皮还是绿色的情况。[6]

    \n
    \"\"
    香蕉在 20°C 和 30°C 果实硬度和果皮色度变化,可以明显看到 30°C 果实软了,但是果皮颜色还是绿色。
    \n

    由于香蕉摘下后自然产出的乙烯含量明显降低,

    \n

    所以会在袋子里放入含有乙烯利(2- 氯乙基磷酸)的纸片。

    \n

    在运输过程中缓慢产出乙烯,模拟这一过程。

    \n
    \"\"
    常见乙烯利卡片,类似一张小纸片。
    \n

    而除了乙烯,呼吸作用也是促使香蕉后熟的重要原因。

    \n

    所以提高环境中的二氧化碳浓度(大概在 4% - 6% ),

    \n

    降低氧气浓度(大约 2% - 5% )会显著提高香蕉的保鲜期。

    \n

    这就是气调储藏的原理。

    \n

    气调包装听着挺高大上,咱也挺常见,香蕉箱里那个透明袋就是气调袋。

    \n
    \"\"
    香蕉气调袋
    \n

    当然了,万事皆有度,

    \n

    人工乙烯过度催熟,

    \n

    除了会因催熟不均导致部分单宁等物质未完全转化,使一些不是特别熟的香蕉发涩。

    \n

    还会导致香蕉后熟过快,

    \n

    而香蕉成熟的过程中代谢前体分解的过程会产生挥发性酯类化合物,是香蕉香味的来源。

    \n

    后熟过快会使得这些酯类化合物产出过少,失去香味。

    \n

    这就是为啥感觉有的香蕉熟了特别特别香,而有些香蕉却没味的原因。

    \n
    \"\"
    香蕉从青熟到成熟后的过程。
    \n

    那么,现在。

    \n

    大声告诉我,香蕉君变软变黄的原因是哈?!!!!

    \n

    是乙烯吗?

    \n

    不,是哲♂学!!!!!!

    \n
    \"\"
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    让我们看下香蕉君の成熟之路。

    \n

    首先,我们都知道,香蕉苹果猕猴桃芒果等属于典型的呼吸跃变型水果。

    \n

    就是在绿熟期即可摘下,放一段时间自己会成熟。

    \n

    与之对应的就是非呼吸跃变型水果,比如樱桃草莓葡萄荔枝,

    \n

    出道即巅峰,多放一天坏一天。

    \n
    \"\"
    \n

    而促使呼吸跃变型水果成熟启动的主要信号分子大家都知道——乙烯[1]。

    \n

    乙烯的合成始于甲硫氨酸,

    \n

    想合成乙烯需要经过三次转化。

    \n
    首先是在 S - 腺苷甲硫氨酸合成酶作用下转化为 S - 腺苷甲硫氨酸(SAM),
    然后在 ACC 合成酶(ACS)催化下生成 1 - 氨基环丙烷 - 1 - 羧酸(ACC),
    最后在 ACC 氧化酶(ACO)作用下形成乙烯。
    \n
    \"\"
    乙烯生物合成与信号传导通路图 b 为信号传导通路图
    \n

    这个过程随着温度上升呼吸作用的加强而飙升,

    \n

    最终到达顶峰后迅速下降,被称为跃变期。[2]

    \n
    \"\"
    香蕉成熟度里乙烯和呼吸强度的速率,可以看到到了后期断崖式上升,下降
    \n

    而在这之前,香蕉刚被摘下来时还是只青涩的蕉,

    \n

    注意啦,

    \n

    青涩不是形容词,而是叙述词。

    \n

    此时果肉里 70%-80%是淀粉,结构紧密不说,

    \n

    这类淀粉人的肠胃很难消化吸收,可以说是又硬又难吃。

    \n

    同时,果肉里还含有不少单宁(鞣酸)和果胶,

    \n

    有小伙伴讲了:

    \n

    单宁我知道,干红葡萄酒里有,喝嘴里会产生褶皱感。

    \n

    没错,单宁具有强收敛作用,

    \n

    不光会让嘴巴产生褶皱感,还可能影响肠道功能,

    \n

    咱常吃的生柿子就含有不少,

    \n

    简单的说,吃起来不光涩,吃多了还容易便秘。

    \n
    所以生香蕉就压根不能吃,更不能减肥。
    \n

    香蕉皮就更别说了,果皮塞满了叶绿素 a 和 b,整个看起来是绿油油的,

    \n

    同时细胞壁由果胶基质 - 纤维素 - 半纤维素构成坚挺的网络,导致香蕉皮此时很硬,甚至很难扒开。

    \n

    这个阶段被称为青熟期。

    \n

    香蕉没法吃,但是已经满足收获的条件了。

    \n

    收获好的香蕉被运往全国各地,

    \n
    此时一段焦灼的小调响起,又到了奥德彪拉香蕉的时间。
    \n
    \"\"
    \n

    正常来说香蕉在树上会受到乙烯的刺激,触发自我催化。

    \n

    ACC 合成酶(ACS)和 ACC 氧化酶(ACO)基因表达上调,

    \n

    使乙烯爆发式增长,激活 ERF 转录因子调控成熟基因,

    \n

    此时,呼吸速率显著提高。

    \n

    乙烯激活了香蕉内部的淀粉酶、糖苷酶,淀粉水解为可溶性糖,果肉变软变甜。[3]

    \n

    香蕉表皮的叶绿素 a 和 b 被叶绿素酶降解,导致绿色褪去,

    \n
    \"\"
    成熟香蕉果皮力度叶绿素和可溶性固形物含量,可以看到叶绿色消失,而可溶性固形物大大增加。
    \n

    类胡萝卜素合成开始增加,类黄酮含量上升,使果皮被显现出黄色,

    \n

    部分品种还会积累花青素,出现红香蕉。[4]

    \n
    \"\"
    红香蕉长这样,变红是因为花青素。
    \n

    再之后,,,,,

    \n

    多聚半乳糖醛酸酶 (polygalaturonase,PG)催化果胶分子中的 α-1,4- 半乳糖苷键裂解,

    \n

    使得果胶降解,香蕉软了。

    \n

    α-L- 阿拉伯呋喃糖苷酶(α-L-Arabinofuranosidase, α-L-Af)降解细胞壁多糖中的阿拉伯糖残基,

    \n

    导致果胶溶解和细胞壁结构松散,香蕉更软了。[5]

    \n

    纤维素酶(Cellulase,CEL)和β-D- 木聚糖苷酶活性增强,干掉香蕉皮细胞壁中的部分骨架结构,

    \n

    使纤维素半纤维素降解,香蕉更更软了。

    \n

    香蕉皮中还积累了部分抗性淀粉,也也被降解成可溶性糖,用于给果皮代谢供能。

    \n

    更更更软了,所以,香蕉皮软了,也薄了。

    \n

    但是没变强。

    \n

    正常来说,这个过程随着气温升高而加快,

    \n
    \"\"
    香蕉在 20°C 和 30°C 里各种酶的变化,可以看到温度越高曲线越高
    \n

    但是过了 30°C 后,高温会抑制叶绿素酶的发挥,

    \n

    导致出现香蕉果肉熟了,果皮还是绿色的情况。[6]

    \n
    \"\"
    香蕉在 20°C 和 30°C 果实硬度和果皮色度变化,可以明显看到 30°C 果实软了,但是果皮颜色还是绿色。
    \n

    由于香蕉摘下后自然产出的乙烯含量明显降低,

    \n

    所以会在袋子里放入含有乙烯利(2- 氯乙基磷酸)的纸片。

    \n

    在运输过程中缓慢产出乙烯,模拟这一过程。

    \n
    \"\"
    常见乙烯利卡片,类似一张小纸片。
    \n

    而除了乙烯,呼吸作用也是促使香蕉后熟的重要原因。

    \n

    所以提高环境中的二氧化碳浓度(大概在 4% - 6% ),

    \n

    降低氧气浓度(大约 2% - 5% )会显著提高香蕉的保鲜期。

    \n

    这就是气调储藏的原理。

    \n

    气调包装听着挺高大上,咱也挺常见,香蕉箱里那个透明袋就是气调袋。

    \n
    \"\"
    香蕉气调袋
    \n

    当然了,万事皆有度,

    \n

    人工乙烯过度催熟,

    \n

    除了会因催熟不均导致部分单宁等物质未完全转化,使一些不是特别熟的香蕉发涩。

    \n

    还会导致香蕉后熟过快,

    \n

    而香蕉成熟的过程中代谢前体分解的过程会产生挥发性酯类化合物,是香蕉香味的来源。

    \n

    后熟过快会使得这些酯类化合物产出过少,失去香味。

    \n

    这就是为啥感觉有的香蕉熟了特别特别香,而有些香蕉却没味的原因。

    \n
    \"\"
    香蕉从青熟到成熟后的过程。
    \n

    那么,现在。

    \n

    大声告诉我,香蕉君变软变黄的原因是哈?!!!!

    \n

    是乙烯吗?

    \n

    不,是哲♂学!!!!!!

    \n
    \"\"
    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782525", + "creator": "", + "pubDate": "Sun, 13 Jul 2025 08:27:02 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "effd0addb60e241f3b0f566c8634b7ee", + "highlights": [] + }, + { + "title": "为什么有时候无法控制自己的情绪?", + "description": "
    \"头图\"/
    \n

    由于天性敏感,成长至今我一直都在与强烈的情绪做对抗。管理情绪是我无时无刻都在做的事情,因为我相信:“ 驾驭情绪 = 驾驭人生。”

    \n

    如果一个人无法管理自己的情绪,任由情绪控制自己,不仅会伤到身边的人,更会伤到自己。无法控制情绪,有时候比生活无法自理后果更严重。

    \n

    当你意识到这个问题的存在,就已经是一件非常好的事情。以下是这些年我整理的一套对我自己适用的方法:

    \n

    1. 认识情绪 - 情绪圆盘

    \n

    应该有许多人和我一样,小时候并没有人教过我们情绪的种类。我在这几年养育自己的孩子时,因为他不会说话,所以我必须观察他的表情和动作,再给他的情绪进行命名,才知道如何去处理他的情绪。

    \n

    也就是在这个时候,我意识到我根本就不具备 “ 开心 ” “ 伤心 ” “ 生气 ” 等基础情绪词汇以外的词汇。这也就导致我在最初处理我孩子的情绪时,只能手忙脚乱的什么都给他,直到给到他要的那个东西为止。

    \n

    联想到我小时候,一件事情刺激了我的情绪时,我的大脑死机时只会会发生 “冻结 ” “ 攻击 ” “ 逃跑 ” 三种原始状态。为了高效识别我那还不会说话的孩子的需要,我第一次在人生中向自己提问,到底情绪有多少种?

    \n

    在无意间,我看到了这个:

    \n
    \"\"
    \n

    这张图叫作情绪圆盘(Emotion Wheel),又叫情绪之轮、情感轮盘、情绪图谱,最早由美国心理学家 Robert Plutchik 提出。他认为情绪像颜色一样有核心原色,也有混合、层级与强度。

    \n

    情绪圆盘的目的是帮助我们从模糊的 “我不太舒服” “我很烦”中,精准识别出情绪的种类、强度与成因,从而提升自我理解、沟通能力和情绪调节力。

    \n

    最基本的感受,Plutchik 定义为 8 种“情绪原色”:喜悦、信任、恐惧、惊讶、悲伤、厌恶、愤怒、期待。此外,还有衍生情绪与细化表达让情绪的定义更加丰富多彩。

    \n

    词汇量的限制让我们无法识别与命名自己的情绪,就导致我们无法控制情绪。所以我们首先需要去学会识别,在有情绪的那一秒,先问问自己:“ 你感受到了什么?” 才能逐渐去控制和驾驭自己的情绪。

    \n

    2. “ 你现在是什么感受?”

    \n

    这个问题,是无法控制情绪者直接跳过却最关键的问题。因为在我们的教育中,我们常常将被动的接受他人的感受视为一种礼仪与宽容。而我们常常忽略自己的感受,并将它压制在心底。一直到我们爆发为止。

    \n

    在我第一次教我孩子什么是情绪时,发现光说没用,于是我给他买了一个情绪小镜子。

    \n
    \"\"
    \n

    每当我感受到孩子的不同情绪时,我则会尽可能的用丰富的词汇帮他定义他此刻的感受。并且陪着他一起找到他真正想要做却自己做不到的事情。

    \n

    我的问题通常是三个:

    \n
      \n
    • “ 你怎么啦?”
    • \n
    • “ 为什么会这样?”
    • \n
    • “ 可以不可以指给我看你要什么?”
    • \n
    \n

    同理,每个人对待自己,应该好好问问自己心里的小孩为什么会愤怒、伤心、痛苦,除了闷在心里或者爆发,我们有没有别的方式去表达?

    \n

    情绪是我们与世界互动最直接的语言。当你能精准地说出情绪,就拥有了更强的 自我掌控力、沟通能力与人际穿透力。

    \n

    所以常常要问自己:“ 你怎么啦?”

    \n

    3. 未被处理的心理创伤

    \n

    弗洛伊德说:“ 人会反复寻找类似早年创伤场景来“重新演出”,试图这一次赢回掌控感、修复当年的无力。”

    \n

    有时候我们的情绪无法控制,也是因为小时候没有治愈与闭环的一个心理创伤的重演。我们选择的人,常常又一次让我们失望。这就叫作 “ 重演强迫(Repetition Compulsion)”

    \n

    你的反应不是“过度”,而是你小时候的那部分受伤的你,在今天被某句话、某个动作,激活了旧有痛点。于是在心理学上,我们使用 “ 内在小孩(Inner Child)疗法” 去识别当年我们的伤,并以成年人的方式完成闭环。

    \n

    4. 情绪管理实操4.1. 呼吸法

    \n

    很长时间以来,由于有正念练习的习惯,我控制自己强烈情绪的最常用方式就是深呼吸。快速激活副交感神经的方式,深而缓的吸气和呼气,可以激活迷走神经,让心率减慢从而平静情绪。除此之外可以调节血氧与二氧化碳平衡、让注意力回到身体。

    \n

    我的钢琴老师教给我的呼吸方式是在脑子里数数,每一秒一个数字。吸 6 下,停顿,呼 4 下,停顿。吸气时,肚子鼓起来,呼气时,肚子扁下去(腹式呼吸)。

    \n

    4.2. 5-4-3-2-1 情绪锚定法

    \n

    这种适用于激烈情绪来临,并且你已经快失控的时候。也可以用于焦虑症患者濒死感爆发、恐慌发作、失眠等等情景。

    \n
      \n
    • 看
    • \n
    \n

    环顾四周,说出你能看见的 5 个东西,详细描述外观

    \n
      \n
    • 碰
    • \n
    \n

    说出你现在能碰到的 4 个东西,详细描述质感

    \n
      \n
    • 听
    • \n
    \n

    并说出你现在能听到的 3 种声音,并描述它们的来源

    \n
      \n
    • 闻
    • \n
    \n

    说一说你现在能闻到的两种味道,并描述这种味道的来源

    \n
      \n
    • 尝
    • \n
    \n

    感受一下你嘴巴里的味道

    \n

    最后,慢慢吐气,反复一轮。

    \n

    4.3. 情绪小游戏

    \n

    这是我在一本叫《小学生心理手册》上看到的,由于我是教育学专业,课程中很大一部分占比是心理学。然而我觉得专业心理学知识其实并不适合每个人看。因为心理学是一个庞大的学科,里面包含了神经学、生物学、医学等交叉领域。很容易把自己看出问题,觉得自己有病。

    \n

    这本书是我在给孩子做情绪引导的时候真正会用的一本书,帮助他说出他想说的话。也在这个过程中,我找到了很多我小时候感觉受伤却不知道为什么的成因。这本书名字虽然很不怎么样,但是它其实同样适用于成年人,可以重新治愈一次内心小小的自己。

    \n
    \"\"
    \n

    这里面我最喜欢的游戏例如:

    \n
      \n
    • 写出能立即让自己开心的几件事情,例如:吃个冰激凌、吃个火锅、买一件新衣服等等
    • \n
    • 写出让自己恐惧的事情,
    • \n
    • 将自己现在的情绪全部都剪成小纸片,塞到一个瓶子里
    • \n
    \n

    时间久了你会发现,原来有情绪,并不是那么可怕的事情,甚至是有趣的。只是我们也许从小没有真正的经历过系统性的情绪管理训练,导致我们一直都觉得自己:

    \n

    有情绪 = 不稳定 = 有病。

    \n

    情绪的输出是必要的,也是健康的。我们要告诉自己,我们没有病,我们只是却不知道怎么表达自己的情绪。

    \n

    5. 允许自己有情绪才能更好的认识自己

    \n

    一个没有情绪的人,要么生病了,要么死了。真正的情绪稳定,并不是不发脾气压抑自己,而是能够直面情绪的存在与发生,并且接受它存在的合理性。

    \n

    即使是焦虑和恐惧,也都是原始社会中让人活命的必要情绪,否则你将识别不出危险。所以情绪的存在是必要的。而我们不能以绝对的方式去 “攻击” 或 “逃跑”, 而是要学会在不伤害他人的情况下,表明自己的情绪。

    \n

    记住,你的情绪,决定了你的命运。

    \n

    最后,请好好治愈你自己吧!愿每个像我一样的人,最终找到一个驾驭自己情绪的方式,快乐开心的生活。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", + "content": "
    \"头图\"/
    \n

    由于天性敏感,成长至今我一直都在与强烈的情绪做对抗。管理情绪是我无时无刻都在做的事情,因为我相信:“ 驾驭情绪 = 驾驭人生。”

    \n

    如果一个人无法管理自己的情绪,任由情绪控制自己,不仅会伤到身边的人,更会伤到自己。无法控制情绪,有时候比生活无法自理后果更严重。

    \n

    当你意识到这个问题的存在,就已经是一件非常好的事情。以下是这些年我整理的一套对我自己适用的方法:

    \n

    1. 认识情绪 - 情绪圆盘

    \n

    应该有许多人和我一样,小时候并没有人教过我们情绪的种类。我在这几年养育自己的孩子时,因为他不会说话,所以我必须观察他的表情和动作,再给他的情绪进行命名,才知道如何去处理他的情绪。

    \n

    也就是在这个时候,我意识到我根本就不具备 “ 开心 ” “ 伤心 ” “ 生气 ” 等基础情绪词汇以外的词汇。这也就导致我在最初处理我孩子的情绪时,只能手忙脚乱的什么都给他,直到给到他要的那个东西为止。

    \n

    联想到我小时候,一件事情刺激了我的情绪时,我的大脑死机时只会会发生 “冻结 ” “ 攻击 ” “ 逃跑 ” 三种原始状态。为了高效识别我那还不会说话的孩子的需要,我第一次在人生中向自己提问,到底情绪有多少种?

    \n

    在无意间,我看到了这个:

    \n
    \"\"
    \n

    这张图叫作情绪圆盘(Emotion Wheel),又叫情绪之轮、情感轮盘、情绪图谱,最早由美国心理学家 Robert Plutchik 提出。他认为情绪像颜色一样有核心原色,也有混合、层级与强度。

    \n

    情绪圆盘的目的是帮助我们从模糊的 “我不太舒服” “我很烦”中,精准识别出情绪的种类、强度与成因,从而提升自我理解、沟通能力和情绪调节力。

    \n

    最基本的感受,Plutchik 定义为 8 种“情绪原色”:喜悦、信任、恐惧、惊讶、悲伤、厌恶、愤怒、期待。此外,还有衍生情绪与细化表达让情绪的定义更加丰富多彩。

    \n

    词汇量的限制让我们无法识别与命名自己的情绪,就导致我们无法控制情绪。所以我们首先需要去学会识别,在有情绪的那一秒,先问问自己:“ 你感受到了什么?” 才能逐渐去控制和驾驭自己的情绪。

    \n

    2. “ 你现在是什么感受?”

    \n

    这个问题,是无法控制情绪者直接跳过却最关键的问题。因为在我们的教育中,我们常常将被动的接受他人的感受视为一种礼仪与宽容。而我们常常忽略自己的感受,并将它压制在心底。一直到我们爆发为止。

    \n

    在我第一次教我孩子什么是情绪时,发现光说没用,于是我给他买了一个情绪小镜子。

    \n
    \"\"
    \n

    每当我感受到孩子的不同情绪时,我则会尽可能的用丰富的词汇帮他定义他此刻的感受。并且陪着他一起找到他真正想要做却自己做不到的事情。

    \n

    我的问题通常是三个:

    \n
      \n
    • “ 你怎么啦?”
    • \n
    • “ 为什么会这样?”
    • \n
    • “ 可以不可以指给我看你要什么?”
    • \n
    \n

    同理,每个人对待自己,应该好好问问自己心里的小孩为什么会愤怒、伤心、痛苦,除了闷在心里或者爆发,我们有没有别的方式去表达?

    \n

    情绪是我们与世界互动最直接的语言。当你能精准地说出情绪,就拥有了更强的 自我掌控力、沟通能力与人际穿透力。

    \n

    所以常常要问自己:“ 你怎么啦?”

    \n

    3. 未被处理的心理创伤

    \n

    弗洛伊德说:“ 人会反复寻找类似早年创伤场景来“重新演出”,试图这一次赢回掌控感、修复当年的无力。”

    \n

    有时候我们的情绪无法控制,也是因为小时候没有治愈与闭环的一个心理创伤的重演。我们选择的人,常常又一次让我们失望。这就叫作 “ 重演强迫(Repetition Compulsion)”

    \n

    你的反应不是“过度”,而是你小时候的那部分受伤的你,在今天被某句话、某个动作,激活了旧有痛点。于是在心理学上,我们使用 “ 内在小孩(Inner Child)疗法” 去识别当年我们的伤,并以成年人的方式完成闭环。

    \n

    4. 情绪管理实操4.1. 呼吸法

    \n

    很长时间以来,由于有正念练习的习惯,我控制自己强烈情绪的最常用方式就是深呼吸。快速激活副交感神经的方式,深而缓的吸气和呼气,可以激活迷走神经,让心率减慢从而平静情绪。除此之外可以调节血氧与二氧化碳平衡、让注意力回到身体。

    \n

    我的钢琴老师教给我的呼吸方式是在脑子里数数,每一秒一个数字。吸 6 下,停顿,呼 4 下,停顿。吸气时,肚子鼓起来,呼气时,肚子扁下去(腹式呼吸)。

    \n

    4.2. 5-4-3-2-1 情绪锚定法

    \n

    这种适用于激烈情绪来临,并且你已经快失控的时候。也可以用于焦虑症患者濒死感爆发、恐慌发作、失眠等等情景。

    \n
      \n
    • 看
    • \n
    \n

    环顾四周,说出你能看见的 5 个东西,详细描述外观

    \n
      \n
    • 碰
    • \n
    \n

    说出你现在能碰到的 4 个东西,详细描述质感

    \n
      \n
    • 听
    • \n
    \n

    并说出你现在能听到的 3 种声音,并描述它们的来源

    \n
      \n
    • 闻
    • \n
    \n

    说一说你现在能闻到的两种味道,并描述这种味道的来源

    \n
      \n
    • 尝
    • \n
    \n

    感受一下你嘴巴里的味道

    \n

    最后,慢慢吐气,反复一轮。

    \n

    4.3. 情绪小游戏

    \n

    这是我在一本叫《小学生心理手册》上看到的,由于我是教育学专业,课程中很大一部分占比是心理学。然而我觉得专业心理学知识其实并不适合每个人看。因为心理学是一个庞大的学科,里面包含了神经学、生物学、医学等交叉领域。很容易把自己看出问题,觉得自己有病。

    \n

    这本书是我在给孩子做情绪引导的时候真正会用的一本书,帮助他说出他想说的话。也在这个过程中,我找到了很多我小时候感觉受伤却不知道为什么的成因。这本书名字虽然很不怎么样,但是它其实同样适用于成年人,可以重新治愈一次内心小小的自己。

    \n
    \"\"
    \n

    这里面我最喜欢的游戏例如:

    \n
      \n
    • 写出能立即让自己开心的几件事情,例如:吃个冰激凌、吃个火锅、买一件新衣服等等
    • \n
    • 写出让自己恐惧的事情,
    • \n
    • 将自己现在的情绪全部都剪成小纸片,塞到一个瓶子里
    • \n
    \n

    时间久了你会发现,原来有情绪,并不是那么可怕的事情,甚至是有趣的。只是我们也许从小没有真正的经历过系统性的情绪管理训练,导致我们一直都觉得自己:

    \n

    有情绪 = 不稳定 = 有病。

    \n

    情绪的输出是必要的,也是健康的。我们要告诉自己,我们没有病,我们只是却不知道怎么表达自己的情绪。

    \n

    5. 允许自己有情绪才能更好的认识自己

    \n

    一个没有情绪的人,要么生病了,要么死了。真正的情绪稳定,并不是不发脾气压抑自己,而是能够直面情绪的存在与发生,并且接受它存在的合理性。

    \n

    即使是焦虑和恐惧,也都是原始社会中让人活命的必要情绪,否则你将识别不出危险。所以情绪的存在是必要的。而我们不能以绝对的方式去 “攻击” 或 “逃跑”, 而是要学会在不伤害他人的情况下,表明自己的情绪。

    \n

    记住,你的情绪,决定了你的命运。

    \n

    最后,请好好治愈你自己吧!愿每个像我一样的人,最终找到一个驾驭自己情绪的方式,快乐开心的生活。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n

    ", + "category": "", + "link": "https://daily.zhihu.com/story/9782531", + "creator": "", + "pubDate": "Sun, 13 Jul 2025 08:27:02 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "a6edf8b3267afbd3606be90cf9096317", + "highlights": [] + }, + { + "title": "「卷又卷不动,躺又躺不平」?总是因为「放松」而感到自责,这是种怎样的心理?如何调节?", + "description": "
    \"头图\"/
    \n

    「卷又卷不动,躺又躺不平」,以及因此为「放松」感到自责的心理,恰恰是我在《倾尽全力去「敷衍」》一文中试图剖析的困境。这是一种被困在「得过且过者」和「拼命努力者」这两种无效模式之间的状态,其核心在于人们混淆了外部强加的「质量标尺」与自身真实的「偏好曲线」,并因此产生了不必要的内疚感。

    \n

    让我来解释一下这种心理:

    \n
      \n
    1. 内化了「应该拼命」的社会规训: 社会、家长、老师从小就向我们灌输「你应该尽力做到最好」、「努力奋斗是一种美德」的观念。这种观念让你觉得,任何时候,只要没有在某个(往往是他人定义的)「质量标尺」上向右推进(即追求更高质量、更多产出),你就是在犯错,就是「不够好」。于是,「放松」这种在质量标尺上看起来是「停滞」甚至「倒退」的行为,自然会引发自责。你觉得自己在「浪费时间」,没有「尽力」。

    2. \n
    3. 对「卷」的无效性有所察觉,但又无法彻底「躺平」: 「卷又卷不动」意味着你可能已经意识到,像个「拼命努力者」一样,不问目标、不计成本地在某个质量标尺上盲目追求极致,往往是「做无用功」,投入巨大却可能偏离了你真正的需求,或者让你精疲力尽,难以为继。 然而,「躺又躺不平」则是因为你内心深处依然被那种「应该拼命」的规训所束缚,或者你无法完全抛弃所有目标。你害怕彻底的「得过且过」会让你一事无成,或者受到他人的负面评价。这种状态下,即使你尝试放松,内心那个「应该努力」的声音也不会停止,于是自责感便油然而生。

    4. \n
    5. 目标模糊,导致评价标准混乱: 当你因为放松而自责时,很可能你并没有清晰地定义自己「真正想要实现的目标」以及达成该目标所需的「质量目标」。你只是笼统地觉得「应该做得更多更好」。没有明确的目标,你就无法判断当前的「放松」是必要的休整(为了更高效地达成目标),还是真正的懈怠(偏离了目标)。
    6. \n
    \n

    如何调节这种心理?关键在于采取我所说的「第三条路」——倾尽全力去「敷衍」:

    \n
      \n
    1. 明确你的真实目标: 首先,停下来,认真思考:对于你当前面对的任务或人生阶段,你真正想要的是什么?是为了拿到一个特定的证书?是为了学到某项具体技能?是为了维持一个舒适的生活水平?还是为了某个更宏大的理想?不要被社会或他人告诉你「应该」想要什么。

    2. \n
    3. 根据真实目标,设定清晰的「质量目标」: 一旦明确了真实目标,再据此设定一个恰到好处的质量目标。这个目标应该是「精确命中」,不多也不少。例如,如果你的目标只是通过一门考试,那么你的质量目标就是及格线,而不是完美无缺的满分。如果你的目标是学习知识,那么分数可能就不是最重要的,重要的是你是否吸收了你需要的信息。

    4. \n
    5. 以「最小代价」精确命中你的质量目标: 将你的精力和聪明才智用于「如何以最小的努力(时间、精力、资源)精确达成你设定的质量目标」。这本身就是一个有趣的优化问题。这包括了高效工作,也包括了必要的休息和放松,因为持续的疲劳会降低效率,反而增加达成目标的总代价。

    6. \n
    7. 重新定义「放松」的意义: 如果「放松」和「休息」是你为了以最小代价、可持续地达成你的真实目标所必需的环节,那么它就不是「浪费」,而是高效策略的一部分。就像一台机器需要保养才能更好地运转一样。这种情况下,因为必要的放松而自责是毫无道理的。

    8. \n
    9. 将完美主义导向「过程」而非「结果」: 如果你是个完美主义者,不要强迫自己去容忍低质量的产出(如果那确实低于你为自己设定的合理目标)。但是,你可以将你的完美主义倾向导向「以最小努力达成目标」这个过程。追求策略的完美、执行的完美、对沉没成本的果断放弃、以及对何时「恰到好处」的精准判断。

    10. \n
    11. 为「做无用功」而内疚,而非为「未达他人标准」而内疚: 如果你非要内疚,那么请为你「未能高效达成自己的目标」(比如投入了过多精力却收效甚微,或者因为不必要的拖延而错失良机)而内疚,而不是为没有将某个随意的、他人设定的质量标准当作自己的真实偏好而内疚。
    12. \n
    \n

    当你能清晰地知道自己要去哪里(真实目标),需要做到什么程度(质量目标),并且专注于如何最高效地到达那里时,「放松」就不再是让你自责的洪水猛兽,而是你智慧策略的一部分。你会发现,「卷」可以是有方向、有效率的,「躺」也可以是策略性的休整,而不是彻底的放弃。这样,你就能从「卷又卷不动,躺又躺不平」的困境中解脱出来。

    \n
    以上内容为 gemini-2.5-pro 生成的序言
    以下内容摘自 @Thoughts Memo 汉化组的译文《倾尽全力去「敷衍」》
    \n

    我经常接触许多有效利他主义者(EA)。他们中的许多人,其主要驱动力往往类似于内疚感(因自身坐拥优渥资源与机遇而他人仍在受苦)或羞愧感(因觉得自己做得不够)。说实话,我许多非 EA 圈的朋友,其主要动力也源于内疚或羞愧。

    \n

    我无意指摘这种由内疚 / 羞愧驱动的动机:我个人遵循这样一条原则,当有人为了让世界变得更美好而付出巨大努力或投入大量资金时,我会极力避免去评判他们的动机。内疚感和羞愧感或许是将人们从自满状态中警醒过来的有效工具。然而,我担心从长远来看,内疚和羞愧并非健康的动力来源。在我许多朋友身上,内疚和羞愧往往会引发执行力缺失(akrasia)、降低效率,并消耗积极性。因此,在未来几周,我将撰写系列文章,探讨如何摆脱内疚 / 羞愧驱动的动机,并代之以更强大的动力。

    \n

    1

    \n

    假设你是一名大学生,需要交一篇论文。论文的质量取决于你投入的精力。我们假定你对这个项目相当了解:只需适度努力便能拿到 A,而若投入巨大精力,你能写出远超普通 A 级水准的佳作。

    \n
    \"\"
    img
    \n

    教育环境总是潜移默化地试图让学生相信,他们的偏好应当永远指向质量标尺的右端。家长和老师会说「你应该尽力做到最好」之类的话,并对那些不奋力追求更高质量的人大加指责或令其羞愧。

    \n

    面对这种规训,人们通常有两种反应。第一类人(「得过且过者」)不认同质量越高越符合个人偏好这种看法。他们不在乎课程,不停抱怨必须做的那些毫无意义的无用功,马马虎虎地应付作业,交上去的东西要么勉强及格,要么干脆不及格。「得过且过者」往往对强迫他们写论文的权威感到不满。

    \n

    第二类人(「拼命努力者」)则认同质量越高越符合个人偏好这一前提,在质量标尺上不断追求更高。「拼命努力者」涵盖了各种能力水平的人:有的拼尽全力只为拿到 C,有的则以能创作出杰作为傲。有些人试图讨好老师,另一些人则是完美主义者,绝不允许自己交出任何未尽全力的作品。他们中有些是一丝不苟的人,即便拿了 A 仍感内疚,因为他们知道自己本可以做得更好,也认为本应做得更好。他们中有的谦逊,有的爱炫耀,但无一例外都在向右推进。

    \n

    社会花费了大量时间规训我们,让我们认为「拼命努力者」优于「得过且过者」。努力奋斗是一种美德。「得过且过者」没抓住教育的意义;他们待在学校干嘛呢?「拼命努力者」前途无量,「得过且过者」则一事无成。

    \n

    但实际上,这两类人的做法都有问题。

    \n

    如果你想变得真正高效,请记住你的奋斗目标是什么。

    \n

    而且,剧透一下,你的目标并非「写一篇高质量的论文」。那会是一个相当愚蠢的奋斗目标。

    \n

    你选修这门课的目标究竟是什么?也许是出于社会压力(父母要求的)、社会惯性(别人都上大学)以及一种模糊的信念——认为这是通往好工作和舒适生活的必经之路。又或许,你想要好成绩,以便将来获得大量金钱和权力去「屠龙」(实现宏伟目标)。再或许,你纯粹是出于对知识的渴求。但无论原因为何,这个原因都会在质量标尺上确定一个具体的目标点。因此,你的目标应该是精确命中那个质量目标——既不超出,也不低于。

    \n

    你的偏好并非「在质量标尺上越往右越好」。你的偏好是以最小的代价(努力)精确命中那个质量目标。

    \n
    \"\"
    img
    \n

    如果你只想通过这门课,那就用最少的精力去通过。其他的努力都是在做无用功。

    \n

    如果你想拿高分,那就用最少的精力去拿高分。其他的努力都是在做无用功。

    \n

    如果你想尽可能透彻地学习知识内容,那就从作业中汲取所有知识养分,不必纠结于分数。其他的努力都是在做无用功。

    \n

    如果你想同时达成多个目标:好成绩(作为能力信号)、赢得尊重(出于社交需求)、获取知识(为了种种益处),那么就精准定位那个能让你获得好成绩、给老师留下好印象、并学到知识的最低质量目标,并尽可能高效地达成它。任何超出的部分都是在做无用功。

    \n

    你的质量目标可能远低于 F 线(不及格)——比如,你早已通过该课程,这份作业无关紧要。你的质量目标也可能远高于 A 线——比如,你是为了学习知识内容,而分数膨胀意味着拿 A 比以信息量最大的方式完成作业要容易得多。但无论如何,你的真实目标总会对应一个质量目标。

    \n

    「得过且过者」和「拼命努力者」的目标都偏离了方向。「得过且过者」嘲笑「拼命努力者」,认为他们将人为设定的质量标准奉为圭臬,在过度努力上浪费精力。「拼命努力者」则嘲笑「得过且过者」,认为他们身在课堂却拒绝学习。而双方的嘲笑都有道理!因为他们都在做无用功。

    \n

    「得过且过者」未能全力以赴,因为他们意识到那条质量标尺并非他们的偏好曲线。「拼命努力者」则将全部力量投入错误的目标,试图在标尺上走得越远越好,将精力浪费在一场并不属于他们的战斗中。所以,请选择第三条路:记住你的奋斗目标。永远全力以赴,只为尽快达成你的质量目标。

    \n

    倾尽全力去「敷衍」一切。

    \n

    (我的老师们过去常说,只要我肯努力,定能成就一番事业。我则回应他们,如果想让我更努力,他们得先发明出比 A 更高的分数等级才行。)

    \n

    2

    \n

    一个常见的反对意见在此出现:

    \n
    有些事情太重要了,不能「敷衍了事」。有些事情就值得你全力以赴去争取。敷衍家庭作业是一回事,敷衍地救人命则是完全不同的另一回事。有时候,你确实想在质量标尺上走得越远越好。
    \n

    这种说法对也不对,因为它混淆了一些概念。对于任何项目,目标始终不应高于预设的质量目标,并且永远要追求以最小的代价(精力、资源)达成目标。无论你是在写学期论文、从火场救人,还是在创建跨星系的人类文明——目标永远是以最小代价达到某个质量目标。有效资源是稀缺的。

    \n

    话虽如此,质量目标可以设得非常非常高。事实上,质量目标有时甚至高不可攀。通常,我们根本没有能力达到我们设定的质量目标,在这些情况下,我们确实想要沿着偏好曲线尽可能地向右推进。

    \n
    \"\"
    img
    \n

    当你从事的工作相对于你的技能水平而言非常困难时,或者在竞争激烈的环境中,又或者当你在发出你「能吃苦耐劳」的信号时,这种情况会自然发生。但别搞混了。即使你是为热爱而写作,最终也必须停止修改,宣告完成。即使你正在从燃烧的建筑中救人,最终也会停止为确保此人存活而投入更多精力,转而将精力用于拯救其他濒危者。即使你在建设一个跨星系的文明,也需要在建设文明的投入与享受文明生活的投入之间做出权衡。

    \n

    对于某些目标,你可能无法达到预设的质量要求,在这些情况下,你会不断向右推进(尽力而为)。但是,太多人会下意识地认为,当权威人士划定一条质量标准线时,他们就「理应」尽可能地向右靠拢。他们认为自己「应该」在意质量本身。这是很傻的:现实世界的问题并非要生产出最高质量的产品。在各行各业,目标都是以最小的代价达到某个质量目标。

    \n

    当然,这只是对现实的一个模糊且不准确的描述。时间、精力、能量、注意力和质量之间的相对成本通常是不断变化的,并随着信息和环境的改变而改变。关键在于能够区分开环境所暗示的质量标尺与你真实的偏好曲线。

    \n
    \n

    需要澄清的是,我并非意在表达以下观点:如果你在上大学课程,我不是说你应该每次都「低空飞过」;如果你在救人,我不是说你应该重速度轻谨慎;总而言之,我绝不是说你总应该把那个你只能勉强接受的最差结果定为目标。

    \n

    我想说的是,不要将质量标尺与你的偏好曲线混为一谈。当老师给某个分数点贴上「及格」或「不及格」的标签时,不要感到困惑,因为那只是标签,你更深层次的目标可能与这些标签仅有间接关联。记住你真正想要实现的目标,明确你的质量目标,然后瞄准它:既不超出,也不低于。

    \n

    (另外,别忘了「规划谬误」的存在!如果你瞄准 D,结果可能只拿到 F。人类往往容易过度自信。选择目标时,务必谨慎,给自己留出足够的缓冲空间。)

    \n

    3

    \n

    常见的「得过且过者」式反驳是:

    \n
    但如果「尽快拿到最低及格分」这件事本身也很无聊呢?如果这个任务也毫无意义呢?
    \n

    那还上什么大学!

    \n

    我个人发现,追求最低可接受质量标准通常是很有趣的。做家庭作业本身可能很无聊,但探索如何用尽可能少的总精力把作业做到可接受的水平,却是一个真正能调动我智慧的、有趣的优化问题——一个我内心的完美主义倾向和叛逆倾向都能认同的优化问题。

    \n

    但有时候,即使你想起了自己的奋斗目标,整个项目看起来仍然毫无价值。有时候,「以最小努力获得最低及格分」这个目标,仍然散发着别人试图将他们随意的标准硬塞给你、当作你真实偏好的那股「馊味」。若是这种情况,不妨考虑退课。

    \n

    更普遍地说,如果「以最小努力达成某某目标」的任何一种形式都显得不值得去做,那么你可能需要彻底放弃那个目标。

    \n
    \n

    相比之下,常见的「拼命努力者」式反驳如下:

    \n
    可我是个完美主义者!我生理上就无法容忍低质量的产出。我情不自禁就想做到最好。
    \n

    太好了!那就驾驭你内心的完美主义倾向,并将其导向「以最小努力达成目标」这个方向。

    \n

    与其对论文成品追求完美,不如对写论文的过程追求完美。在识别有效策略、果断放弃沉没成本、忍痛割爱(删掉自己喜欢但不必要的部分)、判断何时适可而止等方面追求完美;在不浪费丝毫注意力上追求完美;在从错误中学习上追求完美。完美主义可以是一种强大的工具,但没必要将它用于在你并不在乎的指标上过度追求。

    \n

    4

    \n

    从某种意义上说,追求以最小代价精确命中质量目标,比一味地在质量标尺上追求极致要困难得多。人总是可以通过投入更多时间在质量标尺上走得更远:当你想写出一篇惊世之作时,总能投入更多时间和精力去修正瑕疵。但当你试图以最小化无用功的方式完成论文时,犯下的错误是无法挽回的,时间上的浪费无法弥补。

    \n

    在这个意义上,如果你开始为每一次无用功而感到内疚,那么从一个「拼命努力者」转变为一个「倾尽全力去『敷衍』的人」,反而可能比平时引发更多的内疚和羞愧感。

    \n

    然而,我看到太多太多的人因为未能在质量标尺上走得足够远而感到内疚和羞愧。他们为没有在(自己讨厌的)工作上尽心尽力而内疚;为没能成为足够好的朋友(在自己都快崩溃的时候)而内疚;为没能满足父母的期望(那些期望既荒谬又不切实际)而内疚。要想用内在动力取代内疚和羞愧,首先必须打破「得过且过者 / 拼命努力者」的二分法。如果你非要内疚,那么请为未能达成自己的目标而内疚,而不是为没有将某个随意的质量标准当作自己的真实偏好而内疚。前一种内疚感,才是我有可能着手处理的那一种。

    \n

    (致一丝不苟的朋友们:在此期间,请不要为做了无用功而感到内疚!请将其视为人类行动的自然过程中的一个重要部分,而非什么需要羞愧的事。未来的文章会进一步阐述这个观点。)

    \n

    5

    \n

    大多数人似乎有两种处理问题的模式:一种是「得过且过者」那种只求省力、「滑行通过」的模式;另一种是「拼命努力者」那种力求杰作、「过度达成」的模式。面对问题时,多数人要么只付出最低限度的努力,勉强过关,只要不惹恼相关权威就行;要么就全身心投入,倾尽所有。

    \n

    几乎每个人都曾在两种模式间切换。有些人在历史课上追求卓越,在语法课上则选择「滑行」。有些人在工作上力求完美,在维系人际关系上则敷衍了事。事实上,大多数讲述「坏学生也能是好人」的暖心故事,讲的都是那些在多数领域都得过且过的学生,如何在舞蹈 / 体育 / 音乐 / 数论这些方面私下里拼命努力。

    \n

    这当然也是「拼命努力者」式宣传的又一例证:「别担心,」电影试图告诉我们,「这些得过且过者并非坏人,因为他们在其他领域是秘密的努力者!」——好像你只有把某个随意的质量标准当作自己的真实偏好,才算得上是个好人似的。

    \n

    大多数人都困在「得过且过者 / 拼命努力者」的二分法中。他们要么只做最少量的、能蒙混过关的事,要么就竭尽所能做到最多。他们的目标要么是勉强达标,要么是争做第一。极少有人能够选择一个中间的目标点,然后倾尽全力去实现它。极少有人能够调动全部力量,只为尽可能高效地达成「恰到好处」的目标。

    \n

    拒绝这种二分法。着眼于你的偏好曲线。请记住,偏好曲线所指向的,只有这一点:

    \n

    成功,不做多余的动作。

    \n

    你内心的「得过且过者」反感无意义的任务,而你内心的「拼命努力者」追求完美。那么,就同时满足这两者:瞄准那个最低限度的必要目标,并尽可能高效地达成它。

    \n

    倘若你在某个情境下忘记了「成功」究竟意味着什么,不妨花点时间停下来,想一想你的奋斗目标是什么。

    \n
    \n

    下一篇:

    \n

    破罐破摔 - 知乎

    \n
    \n
    Thoughts Memo 汉化组译制
    感谢主要译者 gemini-2.5-pro-exp,校对 Jarrett Ye
    原文:Half-assing it with everything you've got
    作者:Nate Soares
    发布日期:2015 年 3 月 12 日
    \n
    \n

    相关专栏

    \n

    超越内疚 - 知乎

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    「卷又卷不动,躺又躺不平」,以及因此为「放松」感到自责的心理,恰恰是我在《倾尽全力去「敷衍」》一文中试图剖析的困境。这是一种被困在「得过且过者」和「拼命努力者」这两种无效模式之间的状态,其核心在于人们混淆了外部强加的「质量标尺」与自身真实的「偏好曲线」,并因此产生了不必要的内疚感。

    \n

    让我来解释一下这种心理:

    \n
      \n
    1. 内化了「应该拼命」的社会规训: 社会、家长、老师从小就向我们灌输「你应该尽力做到最好」、「努力奋斗是一种美德」的观念。这种观念让你觉得,任何时候,只要没有在某个(往往是他人定义的)「质量标尺」上向右推进(即追求更高质量、更多产出),你就是在犯错,就是「不够好」。于是,「放松」这种在质量标尺上看起来是「停滞」甚至「倒退」的行为,自然会引发自责。你觉得自己在「浪费时间」,没有「尽力」。

    2. \n
    3. 对「卷」的无效性有所察觉,但又无法彻底「躺平」: 「卷又卷不动」意味着你可能已经意识到,像个「拼命努力者」一样,不问目标、不计成本地在某个质量标尺上盲目追求极致,往往是「做无用功」,投入巨大却可能偏离了你真正的需求,或者让你精疲力尽,难以为继。 然而,「躺又躺不平」则是因为你内心深处依然被那种「应该拼命」的规训所束缚,或者你无法完全抛弃所有目标。你害怕彻底的「得过且过」会让你一事无成,或者受到他人的负面评价。这种状态下,即使你尝试放松,内心那个「应该努力」的声音也不会停止,于是自责感便油然而生。

    4. \n
    5. 目标模糊,导致评价标准混乱: 当你因为放松而自责时,很可能你并没有清晰地定义自己「真正想要实现的目标」以及达成该目标所需的「质量目标」。你只是笼统地觉得「应该做得更多更好」。没有明确的目标,你就无法判断当前的「放松」是必要的休整(为了更高效地达成目标),还是真正的懈怠(偏离了目标)。
    6. \n
    \n

    如何调节这种心理?关键在于采取我所说的「第三条路」——倾尽全力去「敷衍」:

    \n
      \n
    1. 明确你的真实目标: 首先,停下来,认真思考:对于你当前面对的任务或人生阶段,你真正想要的是什么?是为了拿到一个特定的证书?是为了学到某项具体技能?是为了维持一个舒适的生活水平?还是为了某个更宏大的理想?不要被社会或他人告诉你「应该」想要什么。

    2. \n
    3. 根据真实目标,设定清晰的「质量目标」: 一旦明确了真实目标,再据此设定一个恰到好处的质量目标。这个目标应该是「精确命中」,不多也不少。例如,如果你的目标只是通过一门考试,那么你的质量目标就是及格线,而不是完美无缺的满分。如果你的目标是学习知识,那么分数可能就不是最重要的,重要的是你是否吸收了你需要的信息。

    4. \n
    5. 以「最小代价」精确命中你的质量目标: 将你的精力和聪明才智用于「如何以最小的努力(时间、精力、资源)精确达成你设定的质量目标」。这本身就是一个有趣的优化问题。这包括了高效工作,也包括了必要的休息和放松,因为持续的疲劳会降低效率,反而增加达成目标的总代价。

    6. \n
    7. 重新定义「放松」的意义: 如果「放松」和「休息」是你为了以最小代价、可持续地达成你的真实目标所必需的环节,那么它就不是「浪费」,而是高效策略的一部分。就像一台机器需要保养才能更好地运转一样。这种情况下,因为必要的放松而自责是毫无道理的。

    8. \n
    9. 将完美主义导向「过程」而非「结果」: 如果你是个完美主义者,不要强迫自己去容忍低质量的产出(如果那确实低于你为自己设定的合理目标)。但是,你可以将你的完美主义倾向导向「以最小努力达成目标」这个过程。追求策略的完美、执行的完美、对沉没成本的果断放弃、以及对何时「恰到好处」的精准判断。

    10. \n
    11. 为「做无用功」而内疚,而非为「未达他人标准」而内疚: 如果你非要内疚,那么请为你「未能高效达成自己的目标」(比如投入了过多精力却收效甚微,或者因为不必要的拖延而错失良机)而内疚,而不是为没有将某个随意的、他人设定的质量标准当作自己的真实偏好而内疚。
    12. \n
    \n

    当你能清晰地知道自己要去哪里(真实目标),需要做到什么程度(质量目标),并且专注于如何最高效地到达那里时,「放松」就不再是让你自责的洪水猛兽,而是你智慧策略的一部分。你会发现,「卷」可以是有方向、有效率的,「躺」也可以是策略性的休整,而不是彻底的放弃。这样,你就能从「卷又卷不动,躺又躺不平」的困境中解脱出来。

    \n
    以上内容为 gemini-2.5-pro 生成的序言
    以下内容摘自 @Thoughts Memo 汉化组的译文《倾尽全力去「敷衍」》
    \n

    我经常接触许多有效利他主义者(EA)。他们中的许多人,其主要驱动力往往类似于内疚感(因自身坐拥优渥资源与机遇而他人仍在受苦)或羞愧感(因觉得自己做得不够)。说实话,我许多非 EA 圈的朋友,其主要动力也源于内疚或羞愧。

    \n

    我无意指摘这种由内疚 / 羞愧驱动的动机:我个人遵循这样一条原则,当有人为了让世界变得更美好而付出巨大努力或投入大量资金时,我会极力避免去评判他们的动机。内疚感和羞愧感或许是将人们从自满状态中警醒过来的有效工具。然而,我担心从长远来看,内疚和羞愧并非健康的动力来源。在我许多朋友身上,内疚和羞愧往往会引发执行力缺失(akrasia)、降低效率,并消耗积极性。因此,在未来几周,我将撰写系列文章,探讨如何摆脱内疚 / 羞愧驱动的动机,并代之以更强大的动力。

    \n

    1

    \n

    假设你是一名大学生,需要交一篇论文。论文的质量取决于你投入的精力。我们假定你对这个项目相当了解:只需适度努力便能拿到 A,而若投入巨大精力,你能写出远超普通 A 级水准的佳作。

    \n
    \"\"
    img
    \n

    教育环境总是潜移默化地试图让学生相信,他们的偏好应当永远指向质量标尺的右端。家长和老师会说「你应该尽力做到最好」之类的话,并对那些不奋力追求更高质量的人大加指责或令其羞愧。

    \n

    面对这种规训,人们通常有两种反应。第一类人(「得过且过者」)不认同质量越高越符合个人偏好这种看法。他们不在乎课程,不停抱怨必须做的那些毫无意义的无用功,马马虎虎地应付作业,交上去的东西要么勉强及格,要么干脆不及格。「得过且过者」往往对强迫他们写论文的权威感到不满。

    \n

    第二类人(「拼命努力者」)则认同质量越高越符合个人偏好这一前提,在质量标尺上不断追求更高。「拼命努力者」涵盖了各种能力水平的人:有的拼尽全力只为拿到 C,有的则以能创作出杰作为傲。有些人试图讨好老师,另一些人则是完美主义者,绝不允许自己交出任何未尽全力的作品。他们中有些是一丝不苟的人,即便拿了 A 仍感内疚,因为他们知道自己本可以做得更好,也认为本应做得更好。他们中有的谦逊,有的爱炫耀,但无一例外都在向右推进。

    \n

    社会花费了大量时间规训我们,让我们认为「拼命努力者」优于「得过且过者」。努力奋斗是一种美德。「得过且过者」没抓住教育的意义;他们待在学校干嘛呢?「拼命努力者」前途无量,「得过且过者」则一事无成。

    \n

    但实际上,这两类人的做法都有问题。

    \n

    如果你想变得真正高效,请记住你的奋斗目标是什么。

    \n

    而且,剧透一下,你的目标并非「写一篇高质量的论文」。那会是一个相当愚蠢的奋斗目标。

    \n

    你选修这门课的目标究竟是什么?也许是出于社会压力(父母要求的)、社会惯性(别人都上大学)以及一种模糊的信念——认为这是通往好工作和舒适生活的必经之路。又或许,你想要好成绩,以便将来获得大量金钱和权力去「屠龙」(实现宏伟目标)。再或许,你纯粹是出于对知识的渴求。但无论原因为何,这个原因都会在质量标尺上确定一个具体的目标点。因此,你的目标应该是精确命中那个质量目标——既不超出,也不低于。

    \n

    你的偏好并非「在质量标尺上越往右越好」。你的偏好是以最小的代价(努力)精确命中那个质量目标。

    \n
    \"\"
    img
    \n

    如果你只想通过这门课,那就用最少的精力去通过。其他的努力都是在做无用功。

    \n

    如果你想拿高分,那就用最少的精力去拿高分。其他的努力都是在做无用功。

    \n

    如果你想尽可能透彻地学习知识内容,那就从作业中汲取所有知识养分,不必纠结于分数。其他的努力都是在做无用功。

    \n

    如果你想同时达成多个目标:好成绩(作为能力信号)、赢得尊重(出于社交需求)、获取知识(为了种种益处),那么就精准定位那个能让你获得好成绩、给老师留下好印象、并学到知识的最低质量目标,并尽可能高效地达成它。任何超出的部分都是在做无用功。

    \n

    你的质量目标可能远低于 F 线(不及格)——比如,你早已通过该课程,这份作业无关紧要。你的质量目标也可能远高于 A 线——比如,你是为了学习知识内容,而分数膨胀意味着拿 A 比以信息量最大的方式完成作业要容易得多。但无论如何,你的真实目标总会对应一个质量目标。

    \n

    「得过且过者」和「拼命努力者」的目标都偏离了方向。「得过且过者」嘲笑「拼命努力者」,认为他们将人为设定的质量标准奉为圭臬,在过度努力上浪费精力。「拼命努力者」则嘲笑「得过且过者」,认为他们身在课堂却拒绝学习。而双方的嘲笑都有道理!因为他们都在做无用功。

    \n

    「得过且过者」未能全力以赴,因为他们意识到那条质量标尺并非他们的偏好曲线。「拼命努力者」则将全部力量投入错误的目标,试图在标尺上走得越远越好,将精力浪费在一场并不属于他们的战斗中。所以,请选择第三条路:记住你的奋斗目标。永远全力以赴,只为尽快达成你的质量目标。

    \n

    倾尽全力去「敷衍」一切。

    \n

    (我的老师们过去常说,只要我肯努力,定能成就一番事业。我则回应他们,如果想让我更努力,他们得先发明出比 A 更高的分数等级才行。)

    \n

    2

    \n

    一个常见的反对意见在此出现:

    \n
    有些事情太重要了,不能「敷衍了事」。有些事情就值得你全力以赴去争取。敷衍家庭作业是一回事,敷衍地救人命则是完全不同的另一回事。有时候,你确实想在质量标尺上走得越远越好。
    \n

    这种说法对也不对,因为它混淆了一些概念。对于任何项目,目标始终不应高于预设的质量目标,并且永远要追求以最小的代价(精力、资源)达成目标。无论你是在写学期论文、从火场救人,还是在创建跨星系的人类文明——目标永远是以最小代价达到某个质量目标。有效资源是稀缺的。

    \n

    话虽如此,质量目标可以设得非常非常高。事实上,质量目标有时甚至高不可攀。通常,我们根本没有能力达到我们设定的质量目标,在这些情况下,我们确实想要沿着偏好曲线尽可能地向右推进。

    \n
    \"\"
    img
    \n

    当你从事的工作相对于你的技能水平而言非常困难时,或者在竞争激烈的环境中,又或者当你在发出你「能吃苦耐劳」的信号时,这种情况会自然发生。但别搞混了。即使你是为热爱而写作,最终也必须停止修改,宣告完成。即使你正在从燃烧的建筑中救人,最终也会停止为确保此人存活而投入更多精力,转而将精力用于拯救其他濒危者。即使你在建设一个跨星系的文明,也需要在建设文明的投入与享受文明生活的投入之间做出权衡。

    \n

    对于某些目标,你可能无法达到预设的质量要求,在这些情况下,你会不断向右推进(尽力而为)。但是,太多人会下意识地认为,当权威人士划定一条质量标准线时,他们就「理应」尽可能地向右靠拢。他们认为自己「应该」在意质量本身。这是很傻的:现实世界的问题并非要生产出最高质量的产品。在各行各业,目标都是以最小的代价达到某个质量目标。

    \n

    当然,这只是对现实的一个模糊且不准确的描述。时间、精力、能量、注意力和质量之间的相对成本通常是不断变化的,并随着信息和环境的改变而改变。关键在于能够区分开环境所暗示的质量标尺与你真实的偏好曲线。

    \n
    \n

    需要澄清的是,我并非意在表达以下观点:如果你在上大学课程,我不是说你应该每次都「低空飞过」;如果你在救人,我不是说你应该重速度轻谨慎;总而言之,我绝不是说你总应该把那个你只能勉强接受的最差结果定为目标。

    \n

    我想说的是,不要将质量标尺与你的偏好曲线混为一谈。当老师给某个分数点贴上「及格」或「不及格」的标签时,不要感到困惑,因为那只是标签,你更深层次的目标可能与这些标签仅有间接关联。记住你真正想要实现的目标,明确你的质量目标,然后瞄准它:既不超出,也不低于。

    \n

    (另外,别忘了「规划谬误」的存在!如果你瞄准 D,结果可能只拿到 F。人类往往容易过度自信。选择目标时,务必谨慎,给自己留出足够的缓冲空间。)

    \n

    3

    \n

    常见的「得过且过者」式反驳是:

    \n
    但如果「尽快拿到最低及格分」这件事本身也很无聊呢?如果这个任务也毫无意义呢?
    \n

    那还上什么大学!

    \n

    我个人发现,追求最低可接受质量标准通常是很有趣的。做家庭作业本身可能很无聊,但探索如何用尽可能少的总精力把作业做到可接受的水平,却是一个真正能调动我智慧的、有趣的优化问题——一个我内心的完美主义倾向和叛逆倾向都能认同的优化问题。

    \n

    但有时候,即使你想起了自己的奋斗目标,整个项目看起来仍然毫无价值。有时候,「以最小努力获得最低及格分」这个目标,仍然散发着别人试图将他们随意的标准硬塞给你、当作你真实偏好的那股「馊味」。若是这种情况,不妨考虑退课。

    \n

    更普遍地说,如果「以最小努力达成某某目标」的任何一种形式都显得不值得去做,那么你可能需要彻底放弃那个目标。

    \n
    \n

    相比之下,常见的「拼命努力者」式反驳如下:

    \n
    可我是个完美主义者!我生理上就无法容忍低质量的产出。我情不自禁就想做到最好。
    \n

    太好了!那就驾驭你内心的完美主义倾向,并将其导向「以最小努力达成目标」这个方向。

    \n

    与其对论文成品追求完美,不如对写论文的过程追求完美。在识别有效策略、果断放弃沉没成本、忍痛割爱(删掉自己喜欢但不必要的部分)、判断何时适可而止等方面追求完美;在不浪费丝毫注意力上追求完美;在从错误中学习上追求完美。完美主义可以是一种强大的工具,但没必要将它用于在你并不在乎的指标上过度追求。

    \n

    4

    \n

    从某种意义上说,追求以最小代价精确命中质量目标,比一味地在质量标尺上追求极致要困难得多。人总是可以通过投入更多时间在质量标尺上走得更远:当你想写出一篇惊世之作时,总能投入更多时间和精力去修正瑕疵。但当你试图以最小化无用功的方式完成论文时,犯下的错误是无法挽回的,时间上的浪费无法弥补。

    \n

    在这个意义上,如果你开始为每一次无用功而感到内疚,那么从一个「拼命努力者」转变为一个「倾尽全力去『敷衍』的人」,反而可能比平时引发更多的内疚和羞愧感。

    \n

    然而,我看到太多太多的人因为未能在质量标尺上走得足够远而感到内疚和羞愧。他们为没有在(自己讨厌的)工作上尽心尽力而内疚;为没能成为足够好的朋友(在自己都快崩溃的时候)而内疚;为没能满足父母的期望(那些期望既荒谬又不切实际)而内疚。要想用内在动力取代内疚和羞愧,首先必须打破「得过且过者 / 拼命努力者」的二分法。如果你非要内疚,那么请为未能达成自己的目标而内疚,而不是为没有将某个随意的质量标准当作自己的真实偏好而内疚。前一种内疚感,才是我有可能着手处理的那一种。

    \n

    (致一丝不苟的朋友们:在此期间,请不要为做了无用功而感到内疚!请将其视为人类行动的自然过程中的一个重要部分,而非什么需要羞愧的事。未来的文章会进一步阐述这个观点。)

    \n

    5

    \n

    大多数人似乎有两种处理问题的模式:一种是「得过且过者」那种只求省力、「滑行通过」的模式;另一种是「拼命努力者」那种力求杰作、「过度达成」的模式。面对问题时,多数人要么只付出最低限度的努力,勉强过关,只要不惹恼相关权威就行;要么就全身心投入,倾尽所有。

    \n

    几乎每个人都曾在两种模式间切换。有些人在历史课上追求卓越,在语法课上则选择「滑行」。有些人在工作上力求完美,在维系人际关系上则敷衍了事。事实上,大多数讲述「坏学生也能是好人」的暖心故事,讲的都是那些在多数领域都得过且过的学生,如何在舞蹈 / 体育 / 音乐 / 数论这些方面私下里拼命努力。

    \n

    这当然也是「拼命努力者」式宣传的又一例证:「别担心,」电影试图告诉我们,「这些得过且过者并非坏人,因为他们在其他领域是秘密的努力者!」——好像你只有把某个随意的质量标准当作自己的真实偏好,才算得上是个好人似的。

    \n

    大多数人都困在「得过且过者 / 拼命努力者」的二分法中。他们要么只做最少量的、能蒙混过关的事,要么就竭尽所能做到最多。他们的目标要么是勉强达标,要么是争做第一。极少有人能够选择一个中间的目标点,然后倾尽全力去实现它。极少有人能够调动全部力量,只为尽可能高效地达成「恰到好处」的目标。

    \n

    拒绝这种二分法。着眼于你的偏好曲线。请记住,偏好曲线所指向的,只有这一点:

    \n

    成功,不做多余的动作。

    \n

    你内心的「得过且过者」反感无意义的任务,而你内心的「拼命努力者」追求完美。那么,就同时满足这两者:瞄准那个最低限度的必要目标,并尽可能高效地达成它。

    \n

    倘若你在某个情境下忘记了「成功」究竟意味着什么,不妨花点时间停下来,想一想你的奋斗目标是什么。

    \n
    \n

    下一篇:

    \n

    破罐破摔 - 知乎

    \n
    \n
    Thoughts Memo 汉化组译制
    感谢主要译者 gemini-2.5-pro-exp,校对 Jarrett Ye
    原文:Half-assing it with everything you've got
    作者:Nate Soares
    发布日期:2015 年 3 月 12 日
    \n
    \n

    相关专栏

    \n

    超越内疚 - 知乎

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782503", + "creator": "", + "pubDate": "Sat, 12 Jul 2025 08:27:03 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7347ea4a725b254aac33e0555bd76f65", + "highlights": [] + }, + { + "title": "为什么除了人类,哺乳动物拉屎的时间都是 12 秒?", + "description": "
    \"头图\"/
    \n

    先说结论:人类也是 12 秒

    \n

    所有哺乳动物,包括人类,排便时间都是 12 秒左右[1]。

    \n

    这是乔治亚理工学院的研究团队,花了好几年时间,跑遍动物园,收集了 34 种哺乳动物的粪便数据得出的结论。

    \n

    从猫咪到大象,23 个物种的排便时间都在 12±7 秒之间[2]。

    \n

    人类的速度?每秒 2 厘米。

    \n

    正好在狗(每秒 1 厘米)和大象(每秒 6 厘米)之间。

    \n
    \"\"
    \n

    一只小猫,直肠长度 4 厘米。一头大象,直肠长度 40 厘米。体型差距 1000 倍。但排便时间?几乎一样。

    \n

    大象粪便体积 20 升,狗只有 10 毫升,相差近 1000 倍。

    \n

    为什么

    \n

    答案藏在一个你从未注意过的地方——大肠

    \n

    覆盖在大肠壁上的超薄黏液层,厚度只有头发丝般细微。

    \n

    科学家们怎么测量这么薄的东西?

    \n

    等粪便上的黏液蒸发,然后称重。就这么简单粗暴。但别小看这层黏液。它的黏度比粪便低 100 倍。

    \n

    什么概念?

    \n
    想象粪便是厚重的蜂蜜。黏液就像水一样滑溜。
    粪便在肠道里滑行,就像雪橇在冰道上飞驰。
    \n

    这是作者的原话。

    \n

    大动物有更多粪便要排出。

    \n

    按常理,应该需要更长时间才对。但进化论说不给。

    \n

    所以体型大的动物有更厚的黏液层。

    \n
    小动物黏液薄,但粪便也小。
    大动物黏液厚,粪便虽大但滑得更快。
    \n

    结果完成时间一样。

    \n

    大动物用同样的压力,却能达到更高的排便速度。

    \n

    这就是为什么大象能以每秒 6 厘米的速度飞速完成任务,而小狗只能慢慢悠悠每秒 1 厘米。

    \n
    \"\"
    \n

    我们人类完全符合这个规律。

    \n
    研究者明确指出,人类和大象、猫咪一样,都排出圆柱形粪便,遵循相同的物理定律。
    \n

    人类排便速度每秒 2 厘米,恰好处在狗和大象之间。

    \n

    我们的直肠长度、黏液厚度、排便压力,都完美契合这个 12 秒公式。

    \n
    \"\"
    \n

    这项研究不是随便测几个动物就下结论。

    \n

    研究团队跑到亚特兰大动物园,亲自拍摄大象、大熊猫、疣猪的排便过程。

    \n

    还在公园里偷偷观察狗狗。

    \n

    他们还用“流变仪”——一种精密搅拌器,可以测量粪便的密度和黏度。

    \n

    顺便发现了:食肉动物的粪便是“沉底派”,食草动物的是“漂浮派”。

    \n

    还给粪便臭味排了个名:老虎和犀牛最臭,熊猫最“香”。

    \n
    \"\"
    \n

    研究团队建立了一个数学模型。

    \n
    排便时间 = 粪便长度 ÷ 排便速度。
    \n

    粪便长度是直肠长度的两倍,说明不仅直肠,连结肠都在储存粪便。

    \n

    排便时,粪便像固体栓塞一样整体移动。

    \n

    大部分哺乳动物的直肠都是水平的,所以重力作用可以忽略。

    \n

    一切都靠肌肉压力和黏液润滑。

    \n
    \"\"
    \n

    腹泻时会怎样?

    \n

    研究团队计算出,一个 70 公斤的成年人腹泻时只需要 0.5 秒就能完成。

    \n

    因为此时不需要肌肉用力,重力就够了。

    \n

    便秘呢?

    \n

    最严重情况下,可能需要 6 小时才能完成。因为黏液被吸收,失去润滑作用。

    \n

    但实际上肠壁会变形帮助推进,时间不会这么长。

    \n
    \"\"
    \n

    你可能觉得这种研究很无聊。

    \n

    错了。

    \n

    这些排便数据帮助设计了宇航员专用尿布,在 NASA 太空排便挑战赛闯到最后一关。。

    \n
    \"\"
    \n

    理解黏液的作用机制,还可以开发出治疗便秘的新药物。

    \n

    如果便秘是黏液缺乏导致的,那么模拟黏液的药物可能就是治疗便秘的良药。。

    \n
    \"\"
    \n

    这个团队还有什么发现?

    \n

    同一个研究团队之前发现了另一个规律。

    \n

    所有重量超过 3 公斤的哺乳动物,排尿时间都是 21 秒。

    \n

    这项发现让他们获得了 2015 年搞笑诺贝尔奖[3]。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "content": "
    \"头图\"/
    \n

    先说结论:人类也是 12 秒

    \n

    所有哺乳动物,包括人类,排便时间都是 12 秒左右[1]。

    \n

    这是乔治亚理工学院的研究团队,花了好几年时间,跑遍动物园,收集了 34 种哺乳动物的粪便数据得出的结论。

    \n

    从猫咪到大象,23 个物种的排便时间都在 12±7 秒之间[2]。

    \n

    人类的速度?每秒 2 厘米。

    \n

    正好在狗(每秒 1 厘米)和大象(每秒 6 厘米)之间。

    \n
    \"\"
    \n

    一只小猫,直肠长度 4 厘米。一头大象,直肠长度 40 厘米。体型差距 1000 倍。但排便时间?几乎一样。

    \n

    大象粪便体积 20 升,狗只有 10 毫升,相差近 1000 倍。

    \n

    为什么

    \n

    答案藏在一个你从未注意过的地方——大肠

    \n

    覆盖在大肠壁上的超薄黏液层,厚度只有头发丝般细微。

    \n

    科学家们怎么测量这么薄的东西?

    \n

    等粪便上的黏液蒸发,然后称重。就这么简单粗暴。但别小看这层黏液。它的黏度比粪便低 100 倍。

    \n

    什么概念?

    \n
    想象粪便是厚重的蜂蜜。黏液就像水一样滑溜。
    粪便在肠道里滑行,就像雪橇在冰道上飞驰。
    \n

    这是作者的原话。

    \n

    大动物有更多粪便要排出。

    \n

    按常理,应该需要更长时间才对。但进化论说不给。

    \n

    所以体型大的动物有更厚的黏液层。

    \n
    小动物黏液薄,但粪便也小。
    大动物黏液厚,粪便虽大但滑得更快。
    \n

    结果完成时间一样。

    \n

    大动物用同样的压力,却能达到更高的排便速度。

    \n

    这就是为什么大象能以每秒 6 厘米的速度飞速完成任务,而小狗只能慢慢悠悠每秒 1 厘米。

    \n
    \"\"
    \n

    我们人类完全符合这个规律。

    \n
    研究者明确指出,人类和大象、猫咪一样,都排出圆柱形粪便,遵循相同的物理定律。
    \n

    人类排便速度每秒 2 厘米,恰好处在狗和大象之间。

    \n

    我们的直肠长度、黏液厚度、排便压力,都完美契合这个 12 秒公式。

    \n
    \"\"
    \n

    这项研究不是随便测几个动物就下结论。

    \n

    研究团队跑到亚特兰大动物园,亲自拍摄大象、大熊猫、疣猪的排便过程。

    \n

    还在公园里偷偷观察狗狗。

    \n

    他们还用“流变仪”——一种精密搅拌器,可以测量粪便的密度和黏度。

    \n

    顺便发现了:食肉动物的粪便是“沉底派”,食草动物的是“漂浮派”。

    \n

    还给粪便臭味排了个名:老虎和犀牛最臭,熊猫最“香”。

    \n
    \"\"
    \n

    研究团队建立了一个数学模型。

    \n
    排便时间 = 粪便长度 ÷ 排便速度。
    \n

    粪便长度是直肠长度的两倍,说明不仅直肠,连结肠都在储存粪便。

    \n

    排便时,粪便像固体栓塞一样整体移动。

    \n

    大部分哺乳动物的直肠都是水平的,所以重力作用可以忽略。

    \n

    一切都靠肌肉压力和黏液润滑。

    \n
    \"\"
    \n

    腹泻时会怎样?

    \n

    研究团队计算出,一个 70 公斤的成年人腹泻时只需要 0.5 秒就能完成。

    \n

    因为此时不需要肌肉用力,重力就够了。

    \n

    便秘呢?

    \n

    最严重情况下,可能需要 6 小时才能完成。因为黏液被吸收,失去润滑作用。

    \n

    但实际上肠壁会变形帮助推进,时间不会这么长。

    \n
    \"\"
    \n

    你可能觉得这种研究很无聊。

    \n

    错了。

    \n

    这些排便数据帮助设计了宇航员专用尿布,在 NASA 太空排便挑战赛闯到最后一关。。

    \n
    \"\"
    \n

    理解黏液的作用机制,还可以开发出治疗便秘的新药物。

    \n

    如果便秘是黏液缺乏导致的,那么模拟黏液的药物可能就是治疗便秘的良药。。

    \n
    \"\"
    \n

    这个团队还有什么发现?

    \n

    同一个研究团队之前发现了另一个规律。

    \n

    所有重量超过 3 公斤的哺乳动物,排尿时间都是 21 秒。

    \n

    这项发现让他们获得了 2015 年搞笑诺贝尔奖[3]。

    \n
    \n
    \n\n\n\n\n
    \n\n\n\n", + "category": "", + "link": "https://daily.zhihu.com/story/9782515", + "creator": "", + "pubDate": "Sat, 12 Jul 2025 08:27:03 +0800", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "资讯", + "feed": "知乎", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b2b15d64c3e1f11c9dfe48553fe12c12", + "highlights": [] } ], "folder": "资讯", @@ -2590,138 +2370,6 @@ "image": null, "description": "知乎日报全文RSS。获取更多全文RSS:https://feedx.net", "items": [ - { - "title": "独腿博士研发智能假肢,让更多残疾人穿得起Wear robotic knees", - "description": "幼时截肢的他,最终发明、制造出一种独特而“有思想”的智能假肢!", - "content": "幼时截肢的他,最终发明、制造出一种独特而“有思想”的智能假肢!", - "category": "人物", - "link": "http://www.i21st.cn/story/3805.html", - "creator": "www.i21st.cn", - "pubDate": "Fri, 2 Sep 2022 07:00:00", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "676d7c24905f895766b5d18b3fa0fd8c", - "highlights": [] - }, - { - "title": "侯逸凡:最年轻的“棋后”Conquering the world of chess", - "description": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!", - "content": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!", - "category": "人物", - "link": "http://www.i21st.cn/story/3807.html", - "creator": "www.i21st.cn", - "pubDate": "Thu, 1 Sep 2022 17:00:02", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "3372e349617e8cdb5732ee4da3cdcdce", - "highlights": [] - }, - { - "title": "炫酷魔术背后隐藏的科学Spilling the magic beans", - "description": "空中飘物、液体消失、纸张燃烧……这些神奇的魔术背后都隐藏着什么科学原理?", - "content": "空中飘物、液体消失、纸张燃烧……这些神奇的魔术背后都隐藏着什么科学原理?", - "category": "科技", - "link": "http://www.i21st.cn/story/3806.html", - "creator": "www.i21st.cn", - "pubDate": "Wed, 17 Aug 2022 11:09:58", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "e0627db8d1ede2acddc4a5574cefd5c9", - "highlights": [] - }, - { - "title": "“大老虎”被拿下!中共中央决定对周永康严重违纪问题立案审查", - "description": "", - "content": "", - "category": "", - "link": "/article/translate/5913_1.html", - "creator": "www.i21st.cn", - "pubDate": "Wed, 30 Jul 2014 10:35:02", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "9f21f8fa51704a71191c0219c9793433", - "highlights": [] - }, - { - "title": "廖凡加冕柏林电影节影帝", - "description": "Berlin International Film Festival", - "content": "Berlin International Film Festival", - "category": "", - "link": "http://www.i21st.cn/article/translate/4929_1.html", - "creator": "www.i21st.cn", - "pubDate": "Mon, 17 Feb 2014 11:22:15", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "f58695c9a7cdaddb9ab71b5698627132", - "highlights": [] - }, - { - "title": "索契冬奥会李坚柔夺中国首金", - "description": "Short track speed skating", - "content": "Short track speed skating", - "category": "", - "link": "http://www.i21st.cn/article/translate/4927_1.html", - "creator": "www.i21st.cn", - "pubDate": "Fri, 14 Feb 2014 10:50:53", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "zh", - "folder": "双语", - "feed": "21世纪", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7371f6dbcab15edaf9642e52b8d5ac96", - "highlights": [] - }, { "title": "瞎扯 · 如何正确地吐槽", "description": "
    \"头图\"/
    \n\n
    \n
    @小队长 :你这话说的,就算全世界国家都提倡吃屎健康,老子也不会吃。
    \n
    \n\n
    \n
    @定序王子 :很明显的造谣,编都不会编,非常低级的那种。 8 亿只是什么概念? 2023 年 ,广东常住人口达 1.27 亿人,算下来平均一人一年只吃 6 只鸡。 改成 300 亿就比较可信了。
    \n
    \n\n
    \n
    @宠物王大拿 :被公司辞退了!! 越想越气!! 然后跑到公司楼下把公司里的小流浪猫打劫走了!!!
    \n
    \n\n
    \n
    @Anjicn :儿子第一次喝可乐,说:就像蜘蛛在舌头上织网。
    \n
    \n\n
    \n
    @摸摸狗头 :有个大胆的想法:每年把珠穆朗玛峰加高 4cm ,是不是就相当于月球就没离开?
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n

    ", @@ -3162,6 +2810,72 @@ "hash": "b2b15d64c3e1f11c9dfe48553fe12c12", "highlights": [] }, + { + "title": "侯逸凡:最年轻的“棋后”Conquering the world of chess", + "description": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!", + "content": "16岁就成为最年轻的国际象棋世界“棋后”,她是真人版的《后翼弃兵》!", + "category": "人物", + "link": "http://www.i21st.cn/story/3807.html", + "creator": "www.i21st.cn", + "pubDate": "Thu, 1 Sep 2022 17:00:02", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "zh", + "folder": "双语", + "feed": "21世纪", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "3372e349617e8cdb5732ee4da3cdcdce", + "highlights": [] + }, + { + "title": "“大老虎”被拿下!中共中央决定对周永康严重违纪问题立案审查", + "description": "", + "content": "", + "category": "", + "link": "/article/translate/5913_1.html", + "creator": "www.i21st.cn", + "pubDate": "Wed, 30 Jul 2014 10:35:02", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "zh", + "folder": "双语", + "feed": "21世纪", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "9f21f8fa51704a71191c0219c9793433", + "highlights": [] + }, + { + "title": "索契冬奥会李坚柔夺中国首金", + "description": "Short track speed skating", + "content": "Short track speed skating", + "category": "", + "link": "http://www.i21st.cn/article/translate/4927_1.html", + "creator": "www.i21st.cn", + "pubDate": "Fri, 14 Feb 2014 10:50:53", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "zh", + "folder": "双语", + "feed": "21世纪", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7371f6dbcab15edaf9642e52b8d5ac96", + "highlights": [] + }, { "title": "瞎扯 · 如何正确地吐槽", "description": "
    \"头图\"/
    \n\n
    \n
    @蓝梦梦 :我胆子小,别说巨物,大物就能让我吓得不轻。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @EGO :今天在 X 上看到了一张图,一开始没看懂,后来笑个不停。
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \"\"\n
     
    \n
     
    \n
    \n
    \n
    \n
    \n
    \n
    \n
     
    \n
    \n
    \n\n
    \n
    @lunia :舍友的猫经常抓死老鼠到我枕头边, 看我不吃就开始放活老鼠了。
    \n
    \n\n
    \n
    @小酸菜 :小朋友摸头疑问? 「老师,这个小兔子滑滑板是什么字?」 一看,是我名字里的「逸」。 ૮ ///▽/// ა
    \n
    \n\n
    \n
    第一,安徽芜湖,芜湖起飞,代表着国家已然腾飞。 第二,安徽蚌埠,蚌埠住了,代表着起飞的趋势已势不可挡。 第三,安徽合肥,经济发展之迅速让世界震惊。 第四,安徽马鞍山,李白去世的地方,代表中国古代诗歌文化的巅峰。 第五,南京,作为上面四个城市的老大哥,理应上榜。
    \n
    \n
    \n
    \n\n\n
    \n\n\n\n

    ", @@ -3879,116 +3593,6 @@ "image": "\n\t\t", "description": "中英文双语热点新闻,配以地道音频及词汇解析, 经典美剧赏析, 热门词汇翻译,分享最地道的英语表达, 国内外新鲜英语趣闻及时事热点- 21英语", "items": [ - { - "title": "研究:置身大自然会对你体验时间的方式产生深远影响", - "description": "
    \n\n \n\n \n \n\n

    研究发现,置身大自然会让你感觉时间过得更慢,有助于将你的注意力从眼前转移到未来的需求上。你将能够延迟即时满足感,转而追求长期回报,而不是永远生活在“只求过得去”的状态中。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Do you ever get that feeling that there aren't enough hours in the day? That time is somehow racing away from you, and it is impossible to fit everything in. But then, you step outside into the countryside and suddenly everything seems slower, more relaxed, like time has somehow changed.

    \n

    你是否有过这样的感觉:一天的时间不够用?时间不知不觉地从你身边溜走,不可能把所有事情都安排好。但是,当你走到郊外,突然间一切都变得缓慢、轻松起来,就好像时间发生了某种变化。

    \n

     

    \n

    It's not just you – recent research showed nature can regulate our sense of time.

    \n

    不仅仅是你,最近的研究表明,大自然可以调节我们的时间感。

    \n

     

    \n

    For many of us, the combined demands of work, home and family mean that we are always feeling like we don't have enough time. Time poverty has also been exacerbated by digital technologies. Permanent connectivity extends working hours and can make it difficult to switch off from the demands of friends and family.

    \n

    对我们许多人来说,工作、家庭和家人的综合需求意味着我们总是感觉时间不够用。数字技术也加剧了时间贫乏。永久连接延长了工作时间,也使我们难以摆脱朋友和家人的要求。

    \n

     

    \n

    Recent research suggests that the antidote to our lack of time may lie in the natural world. Psychologist Richardo Correia, at the University of Turku in Finland, found that being in nature may change how we experience time and, perhaps, even give us the sense of time abundance.

    \n

    最新研究表明,解决我们时间匮乏问题的良方可能在于自然世界。芬兰图尔库大学的心理学家理查多·科雷亚发现,身处在大自然中可能会改变我们对时间的体验方式,甚至可能让我们感觉到时间的充裕。

    \n

     

    \n

    Correia examined research which compared people's experiences of time when they performed different types of tasks in urban and natural environments. These studies consistently showed that people report a sense of expanded time when they were in nature compared to when they were in an urban environment.

    \n

    科雷亚查阅了比较人们在城市和自然环境中执行不同类型任务时对时间体验的研究。这些研究一致表明,与在城市环境中相比,人们在大自然中会有时间更充裕的感觉。

    \n

     

    \n

    For example, people are more likely to perceive a walk in the countryside as longer than a walk of the same length in the city. Similarly, people report perceiving time as passing more slowly while performing tasks in natural green environments than in urban environments. Nature seems to slow and expand our sense of time.

    \n

    例如,与在城市中散步相比,人们更倾向于认为在郊外散步的时间更长。同样,与城市环境相比,人们在绿色自然环境中执行任务时会觉得时间过得更慢。大自然似乎减缓并扩展了我们的时间感。

    \n

     

    \n

    It's not just our sense of time in the moment which appears to be altered by the natural world, it's also our sense of the past and future. Previous research shows that spending time in nature helps to shift our focus from the immediate moment towards our future needs. So rather than focusing on the stress of the demands on our time, nature helps us to see the bigger picture.

    \n

    自然世界似乎不仅改变了我们当下的时间感,还改变了我们对过去和未来的时间感。先前的研究表明,在大自然中度过的时间有助于将我们的注意力从眼前转移到未来的需求上。因此,大自然会帮助我们看到更广阔的前景,而不是专注于时间要求带给我们的压力。

    \n

     

    \n

    This can help us to prioritise our actions so that we meet our long-term goals rather than living in a perpetual state of \"just about keeping our head above water\".

    \n

    这可以帮助我们确定行动的轻重缓急,从而实现我们的长期目标,而不是永远生活在“只求过得去”的状态中。

    \n

     

    \n

    This is in part because spending time in nature appears to make us less impulsive, enabling us to delay instant gratification in favour of long-term rewards.

    \n

    这在一定程度上是因为在大自然中度过的时间似乎会让我们不那么冲动,使我们能够延迟即时满足感,转而追求长期回报。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Why does nature affect our sense of time?

    \n

    为什么大自然会影响我们的时间观念?

    \n

     

    \n

    Spending time in nature is known to have many benefits for health and wellbeing. Having access to natural spaces such as beaches, parks and woodlands is associated with reduced anxiety and depression, improved sleep, reduced levels of obesity and cardiovascular disease, and improved wellbeing.

    \n

    众所周知,在大自然中度过时光对健康和幸福有很多好处。拥有海滩、公园和林地等自然空间与减少焦虑和抑郁、改善睡眠、降低肥胖和心血管疾病水平以及提高幸福感有关。

    \n

     

    \n

    Some of these benefits may explain why being in nature alters our experience of time.

    \n

    其中一些好处或许可以解释为什么身处大自然中会改变我们对时间的体验。

    \n

     

    \n

    The way we experience time is shaped by our internal biological state and the events going on in the world around us. As a result, emotions such as stress, anxiety and fear can distort our sense of the passage of time.

    \n

    我们体验时间的方式是由我们的内在生理状态和周围世界发生的事件决定的。因此,压力、焦虑和恐惧等情绪会扭曲我们对时间流逝的感知。

    \n

     

    \n

    The relaxing effect of natural environments may counter stress and anxiety, resulting in a more stable experience of time. Indeed, the absence of access to nature during COVID-19 may help to explain why people's sense of time became so distorted during the pandemic lockdowns.

    \n

    自然环境的放松效果可以抵消压力和焦虑,使我们对时间的体验更加稳定。事实上,在新冠疫情期间无法接触大自然可能有助于解释为什么在大流行病封锁期间人们的时间感会变得如此扭曲。

    \n

     

    \n

    In the short term, being away from the demands of modern day life may provide the respite needed to re-prioritise life, and reduce time pressure by focusing on what actually needs to be done. In the longer term, time in nature may help to enhance our memory and attention capacity, making us better able to deal with the demands on our time.

    \n

    从短期来看,远离现代生活的需求可以让我们得到喘息的机会,从而重新确定生活的优先次序,并通过专注于真正需要做的事情来减轻时间压力。从长远来看,在大自然中度过的时间可能有助于增强我们的记忆力和注意力,使我们能够更好地处理对时间的需求。

    \n

     

    \n

    Accessing nature

    \n

    亲近大自然

    \n

     

    \n

    Getting out into nature may sound like a simple fix, but for many people, particularly those living in urban areas, nature can be hard to access. Green infrastructure such as trees, woodlands, parks and allotments in and around towns and cities are essential to making sure the benefits of time in nature are accessible to everyone.

    \n

    到大自然中去听起来似乎很简单,但对很多人来说,尤其是生活在城市地区的人,可能很难接触到大自然。要确保每个人都能享受到大自然带来的益处,城镇及周边地区的树木、林地、公园和种植园等绿色基础设施是必不可少的。

    \n

     

    \n

    If spending time in nature isn't possible for you, there are other ways that you can regain control of your time. Start by closely examining how you use time throughout your week. Auditing your time can help you see where time is being wasted and to identify action to help you to free up more time in your life.

    \n

    如果您无法在大自然中度过美好时光,您还可以通过其他方式重新掌控自己的时间。首先,仔细检查自己一周中如何利用时间。审核时间可以帮助您发现时间浪费在哪里,并确定行动,帮助您在生活中腾出更多时间。

    \n

     

    \n

    Alternatively, try to set yourself some boundaries in how you use time. This could be limiting when you access emails and social media, or it could be booking in time in your calendar to take a break. Taking control of your time and how you use it can help to you overcome the sense that time is running away from you.

    \n

    或者,在如何使用时间方面为自己设定一些界限。这可以是限制您访问电子邮件和社交媒体的时间,也可以是在您的日历中预定休息时间。控制好自己的时间和使用方式,有助于克服 “时间正在离你远去”的感觉。

    \n

     

    \n

    来源:The Conversation、Science Alert、煎蛋网

    \n

    编辑:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", - "content": "
    \n\n \n\n \n \n\n

    研究发现,置身大自然会让你感觉时间过得更慢,有助于将你的注意力从眼前转移到未来的需求上。你将能够延迟即时满足感,转而追求长期回报,而不是永远生活在“只求过得去”的状态中。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Do you ever get that feeling that there aren't enough hours in the day? That time is somehow racing away from you, and it is impossible to fit everything in. But then, you step outside into the countryside and suddenly everything seems slower, more relaxed, like time has somehow changed.

    \n

    你是否有过这样的感觉:一天的时间不够用?时间不知不觉地从你身边溜走,不可能把所有事情都安排好。但是,当你走到郊外,突然间一切都变得缓慢、轻松起来,就好像时间发生了某种变化。

    \n

     

    \n

    It's not just you – recent research showed nature can regulate our sense of time.

    \n

    不仅仅是你,最近的研究表明,大自然可以调节我们的时间感。

    \n

     

    \n

    For many of us, the combined demands of work, home and family mean that we are always feeling like we don't have enough time. Time poverty has also been exacerbated by digital technologies. Permanent connectivity extends working hours and can make it difficult to switch off from the demands of friends and family.

    \n

    对我们许多人来说,工作、家庭和家人的综合需求意味着我们总是感觉时间不够用。数字技术也加剧了时间贫乏。永久连接延长了工作时间,也使我们难以摆脱朋友和家人的要求。

    \n

     

    \n

    Recent research suggests that the antidote to our lack of time may lie in the natural world. Psychologist Richardo Correia, at the University of Turku in Finland, found that being in nature may change how we experience time and, perhaps, even give us the sense of time abundance.

    \n

    最新研究表明,解决我们时间匮乏问题的良方可能在于自然世界。芬兰图尔库大学的心理学家理查多·科雷亚发现,身处在大自然中可能会改变我们对时间的体验方式,甚至可能让我们感觉到时间的充裕。

    \n

     

    \n

    Correia examined research which compared people's experiences of time when they performed different types of tasks in urban and natural environments. These studies consistently showed that people report a sense of expanded time when they were in nature compared to when they were in an urban environment.

    \n

    科雷亚查阅了比较人们在城市和自然环境中执行不同类型任务时对时间体验的研究。这些研究一致表明,与在城市环境中相比,人们在大自然中会有时间更充裕的感觉。

    \n

     

    \n

    For example, people are more likely to perceive a walk in the countryside as longer than a walk of the same length in the city. Similarly, people report perceiving time as passing more slowly while performing tasks in natural green environments than in urban environments. Nature seems to slow and expand our sense of time.

    \n

    例如,与在城市中散步相比,人们更倾向于认为在郊外散步的时间更长。同样,与城市环境相比,人们在绿色自然环境中执行任务时会觉得时间过得更慢。大自然似乎减缓并扩展了我们的时间感。

    \n

     

    \n

    It's not just our sense of time in the moment which appears to be altered by the natural world, it's also our sense of the past and future. Previous research shows that spending time in nature helps to shift our focus from the immediate moment towards our future needs. So rather than focusing on the stress of the demands on our time, nature helps us to see the bigger picture.

    \n

    自然世界似乎不仅改变了我们当下的时间感,还改变了我们对过去和未来的时间感。先前的研究表明,在大自然中度过的时间有助于将我们的注意力从眼前转移到未来的需求上。因此,大自然会帮助我们看到更广阔的前景,而不是专注于时间要求带给我们的压力。

    \n

     

    \n

    This can help us to prioritise our actions so that we meet our long-term goals rather than living in a perpetual state of \"just about keeping our head above water\".

    \n

    这可以帮助我们确定行动的轻重缓急,从而实现我们的长期目标,而不是永远生活在“只求过得去”的状态中。

    \n

     

    \n

    This is in part because spending time in nature appears to make us less impulsive, enabling us to delay instant gratification in favour of long-term rewards.

    \n

    这在一定程度上是因为在大自然中度过的时间似乎会让我们不那么冲动,使我们能够延迟即时满足感,转而追求长期回报。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Why does nature affect our sense of time?

    \n

    为什么大自然会影响我们的时间观念?

    \n

     

    \n

    Spending time in nature is known to have many benefits for health and wellbeing. Having access to natural spaces such as beaches, parks and woodlands is associated with reduced anxiety and depression, improved sleep, reduced levels of obesity and cardiovascular disease, and improved wellbeing.

    \n

    众所周知,在大自然中度过时光对健康和幸福有很多好处。拥有海滩、公园和林地等自然空间与减少焦虑和抑郁、改善睡眠、降低肥胖和心血管疾病水平以及提高幸福感有关。

    \n

     

    \n

    Some of these benefits may explain why being in nature alters our experience of time.

    \n

    其中一些好处或许可以解释为什么身处大自然中会改变我们对时间的体验。

    \n

     

    \n

    The way we experience time is shaped by our internal biological state and the events going on in the world around us. As a result, emotions such as stress, anxiety and fear can distort our sense of the passage of time.

    \n

    我们体验时间的方式是由我们的内在生理状态和周围世界发生的事件决定的。因此,压力、焦虑和恐惧等情绪会扭曲我们对时间流逝的感知。

    \n

     

    \n

    The relaxing effect of natural environments may counter stress and anxiety, resulting in a more stable experience of time. Indeed, the absence of access to nature during COVID-19 may help to explain why people's sense of time became so distorted during the pandemic lockdowns.

    \n

    自然环境的放松效果可以抵消压力和焦虑,使我们对时间的体验更加稳定。事实上,在新冠疫情期间无法接触大自然可能有助于解释为什么在大流行病封锁期间人们的时间感会变得如此扭曲。

    \n

     

    \n

    In the short term, being away from the demands of modern day life may provide the respite needed to re-prioritise life, and reduce time pressure by focusing on what actually needs to be done. In the longer term, time in nature may help to enhance our memory and attention capacity, making us better able to deal with the demands on our time.

    \n

    从短期来看,远离现代生活的需求可以让我们得到喘息的机会,从而重新确定生活的优先次序,并通过专注于真正需要做的事情来减轻时间压力。从长远来看,在大自然中度过的时间可能有助于增强我们的记忆力和注意力,使我们能够更好地处理对时间的需求。

    \n

     

    \n

    Accessing nature

    \n

    亲近大自然

    \n

     

    \n

    Getting out into nature may sound like a simple fix, but for many people, particularly those living in urban areas, nature can be hard to access. Green infrastructure such as trees, woodlands, parks and allotments in and around towns and cities are essential to making sure the benefits of time in nature are accessible to everyone.

    \n

    到大自然中去听起来似乎很简单,但对很多人来说,尤其是生活在城市地区的人,可能很难接触到大自然。要确保每个人都能享受到大自然带来的益处,城镇及周边地区的树木、林地、公园和种植园等绿色基础设施是必不可少的。

    \n

     

    \n

    If spending time in nature isn't possible for you, there are other ways that you can regain control of your time. Start by closely examining how you use time throughout your week. Auditing your time can help you see where time is being wasted and to identify action to help you to free up more time in your life.

    \n

    如果您无法在大自然中度过美好时光,您还可以通过其他方式重新掌控自己的时间。首先,仔细检查自己一周中如何利用时间。审核时间可以帮助您发现时间浪费在哪里,并确定行动,帮助您在生活中腾出更多时间。

    \n

     

    \n

    Alternatively, try to set yourself some boundaries in how you use time. This could be limiting when you access emails and social media, or it could be booking in time in your calendar to take a break. Taking control of your time and how you use it can help to you overcome the sense that time is running away from you.

    \n

    或者,在如何使用时间方面为自己设定一些界限。这可以是限制您访问电子邮件和社交媒体的时间,也可以是在您的日历中预定休息时间。控制好自己的时间和使用方式,有助于克服 “时间正在离你远去”的感觉。

    \n

     

    \n

    来源:The Conversation、Science Alert、煎蛋网

    \n

    编辑:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", - "category": "", - "link": "https://language.chinadaily.com.cn/a/202409/05/WS66d95738a3108f29c1fca5a6.html", - "creator": "", - "pubDate": "", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "双语", - "feed": "ChinaDaily", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "0ce69d63efd46364201bea63d1a192ab", - "highlights": [] - }, - { - "title": "双语百科:为什么鸟儿在黎明歌唱?", - "description": "
    \n\n \n\n \n \n\n

    清晨悦耳的鸟鸣让人心旷神怡,但是一天中的其他时间却很少能听到鸟叫。为什么鸟儿都喜欢在清晨歌唱?来本文中寻找答案吧。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Wake up early enough and, depending on where you live, you’ll likely hear a pleasant chorus of birds chirping their tiny hearts out. This am avian arrangement is instinctual behavior for birds, but why?
    早上起得够早的话,在你所住的地方也许能听到一阵悦耳的鸟鸣。在清晨歌唱是鸟的本能行为,但是鸟鸣为什么都在清晨呢?

    \n

     

    \n

    According to the Woodland Trust, this early singing is known as the dawn chorus, and it can start as early as 4 am and last for several hours. Birds do it to attract mates and warn other birds to avoid their turf. One theory as to why they opt for the wee hours to communicate these important messages is because the low visibility makes it hard to do other bird activities, like foraging. Keeping their activity level low, they opt to sing instead.
    林地信托机构称,鸟儿在清晨鸣叫最早从凌晨4点开始,可持续数个小时。鸟鸣叫是为了吸引配偶,也是为了警告其他鸟不要入侵自己的领地。关于鸟类为什么选择在凌晨传递这些重要信息,有一个理论是,凌晨能见度低,鸟类难以进行觅食等其他活动,既然无事可做,那么鸟儿就转而选择鸣叫。

    \n

     

    \n

    Another theory argues that birds use the morning vocals to project an image of strength. By singing with fervor, they’re letting other birds know they survived the night—no guarantee in nature—and would make for an excellent mate.
    另一种理论认为,鸟类利用晨鸣来展示自己的力量。通过热情地歌唱,它们让其他鸟儿知道自己已经安然度过黑夜——要知道自然界的动物过着朝不保夕的日子,不一定能看见明天的太阳——并能够成为出色的伴侣。

    \n

     

    \n

    Like a good recording studio, the early morning hours also allow birds to transmit a clear tune thanks to the cooler, drier air. Because birds have distinctive chirps, that clarity helps them be more easily identified by birds within listening distance.
    清晨的空气更凉爽、更干燥,就像一个效果很好的录音棚,鸟儿在此时歌唱能传递出清晰的音质。因为鸟儿的声音各有不同,这种清晰度可以让听得见的鸟儿更容易识别出它们的声音。

    \n

     

    \n

    There used to be a prevailing theory that birds sang so much in the mornings because the sounds could travel greater distances due to less atmospheric turbulence, but it was disproven by researchers at the University of Western Ontario in 2003. They played recordings of sparrows at dawn and midday. The songs didn’t travel farther, but they were more consistent.
    过去有一个流行的理论认为,鸟儿最爱在清晨鸣叫是因为在气流稳定的时候声音能传播得更远。但是西安大略大学的研究人员在2003年否定了这一理论。研究人员在黎明和中午分别播放了麻雀的录音。然而麻雀声音并没有传播得更远,只不过黎明时分麻雀的叫声更连贯。

    \n

     

    \n

    Because birds only have so much energy to belt one out, singing when they stand the best chance of being heard makes sense. For a bird, an early morning session is like having the perfect acoustic environment for their performance.
    因为鸟儿只能用有限的精力来鸣叫,它们自然会选择在最可能被听到的时候歌唱。对一只鸟儿来说,清晨鸣叫相当于在最佳音效环境中表演。

    \n

     

    \n

    英文来源:Mental Floss

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", - "content": "
    \n\n \n\n \n \n\n

    清晨悦耳的鸟鸣让人心旷神怡,但是一天中的其他时间却很少能听到鸟叫。为什么鸟儿都喜欢在清晨歌唱?来本文中寻找答案吧。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Wake up early enough and, depending on where you live, you’ll likely hear a pleasant chorus of birds chirping their tiny hearts out. This am avian arrangement is instinctual behavior for birds, but why?
    早上起得够早的话,在你所住的地方也许能听到一阵悦耳的鸟鸣。在清晨歌唱是鸟的本能行为,但是鸟鸣为什么都在清晨呢?

    \n

     

    \n

    According to the Woodland Trust, this early singing is known as the dawn chorus, and it can start as early as 4 am and last for several hours. Birds do it to attract mates and warn other birds to avoid their turf. One theory as to why they opt for the wee hours to communicate these important messages is because the low visibility makes it hard to do other bird activities, like foraging. Keeping their activity level low, they opt to sing instead.
    林地信托机构称,鸟儿在清晨鸣叫最早从凌晨4点开始,可持续数个小时。鸟鸣叫是为了吸引配偶,也是为了警告其他鸟不要入侵自己的领地。关于鸟类为什么选择在凌晨传递这些重要信息,有一个理论是,凌晨能见度低,鸟类难以进行觅食等其他活动,既然无事可做,那么鸟儿就转而选择鸣叫。

    \n

     

    \n

    Another theory argues that birds use the morning vocals to project an image of strength. By singing with fervor, they’re letting other birds know they survived the night—no guarantee in nature—and would make for an excellent mate.
    另一种理论认为,鸟类利用晨鸣来展示自己的力量。通过热情地歌唱,它们让其他鸟儿知道自己已经安然度过黑夜——要知道自然界的动物过着朝不保夕的日子,不一定能看见明天的太阳——并能够成为出色的伴侣。

    \n

     

    \n

    Like a good recording studio, the early morning hours also allow birds to transmit a clear tune thanks to the cooler, drier air. Because birds have distinctive chirps, that clarity helps them be more easily identified by birds within listening distance.
    清晨的空气更凉爽、更干燥,就像一个效果很好的录音棚,鸟儿在此时歌唱能传递出清晰的音质。因为鸟儿的声音各有不同,这种清晰度可以让听得见的鸟儿更容易识别出它们的声音。

    \n

     

    \n

    There used to be a prevailing theory that birds sang so much in the mornings because the sounds could travel greater distances due to less atmospheric turbulence, but it was disproven by researchers at the University of Western Ontario in 2003. They played recordings of sparrows at dawn and midday. The songs didn’t travel farther, but they were more consistent.
    过去有一个流行的理论认为,鸟儿最爱在清晨鸣叫是因为在气流稳定的时候声音能传播得更远。但是西安大略大学的研究人员在2003年否定了这一理论。研究人员在黎明和中午分别播放了麻雀的录音。然而麻雀声音并没有传播得更远,只不过黎明时分麻雀的叫声更连贯。

    \n

     

    \n

    Because birds only have so much energy to belt one out, singing when they stand the best chance of being heard makes sense. For a bird, an early morning session is like having the perfect acoustic environment for their performance.
    因为鸟儿只能用有限的精力来鸣叫,它们自然会选择在最可能被听到的时候歌唱。对一只鸟儿来说,清晨鸣叫相当于在最佳音效环境中表演。

    \n

     

    \n

    英文来源:Mental Floss

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", - "category": "", - "link": "https://language.chinadaily.com.cn/a/202409/04/WS66d7fb2da3108f29c1fca198.html", - "creator": "", - "pubDate": "", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "双语", - "feed": "ChinaDaily", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "ce6345bc9ae331d44d7f2c1699c0a3c6", - "highlights": [] - }, - { - "title": "【双语财讯】“中国造”体育用品出口火热 中国已成为全球最大体育用品出口国", - "description": "
    \n\n \n\n \n \n\n

    海关总署近日发布的数据显示,今年上半年,中国体育用品及设备出口同比增长16.7%,高出同期出口整体增速9.8个百分点。世界贸易组织发布的数据报告显示,全球范围内的体育用品贸易在过去近30年里增长了近3倍,而在这30年间,中国已成为全球最大的体育用品出口国。

    \n
    \n \n
    \n A foreign businessman (right) picks ball products at the Yiwu International Trade City in Yiwu, Zhejiang province, on April 15, 2024. [Photo/VCG] \n
    \n
    \n

    The exports of China's sporting goods and equipment surged 16.7 percent year-on-year in the first half of 2024, outpacing the overall export growth during the same period by a whopping 9.8 percentage points, according to data recently released by the General Administration of Customs (GAC).
    海关总署近日发布的数据显示,今年上半年,中国体育用品及设备出口同比增长16.7%,高出同期出口整体增速9.8个百分点。

    \n

    Data from the World Trade Organization showed that global trade in sporting goods has nearly tripled in almost 30 years, and China has become the world's top exporter of sporting goods.
    世界贸易组织发布的数据显示,全球范围内的体育用品贸易在过去近30年里增长了近3倍,而在这30年间,中国已成为全球最大的体育用品出口国。

    \n

    In Jinping county of southwest China's Guizhou Province, a global production hub for badminton shuttlecocks, more than 100,000 shuttlecocks are sold worldwide a day.
    在全球重要的羽毛球生产基地——贵州省锦屏县,每天超过10万只羽毛球从这里“飞”向全球。

    \n

    \"We've calculated that about one in every 10 shuttlecocks in the world comes from Jinping,\" said Hu Bing, production manager of Guizhou RSL Sports Culture Development Co., Ltd.
    贵州亚狮龙体育文化产业发展有限公司生产经理胡兵说:“我们统计过,全球大约每10只羽毛球,就有1只产自锦屏。”

    \n

    Last year, the company produced over 4 million dozen shuttlecocks, generating a staggering output value of 340 million yuan ($47.73 million) and exporting nearly $9 million worth of shuttlecocks to over 60 countries and regions, Hu noted.
    胡兵说,公司去年产值3.4亿元,生产羽毛球超400多万打,出口总额近900万美元,产品销往60多个国家和地区。

    \n

    The first half of 2024 saw the company achieve even more remarkable growth, with the output value of shuttlecocks reaching 185 million yuan and exports skyrocketing by around 40 percent compared to the same period last year.
    今年上半年,该公司营业额进一步增长,产值达1.85亿元,出口比去年同期增长了40%左右。

    \n

    In the first quarter of 2024, China's exports of footballs, basketballs, and volleyballs saw a year-on-year increase of 33.57 percent in volume and 17.99 percent in value, while that of table tennis, badminton, and tennis equipment increased 0.93 percent from the same period last year to $204 million, according to GAC data.
    根据海关总署数据,2024年第一季度,中国足球、篮球、排球出口量同比增长33.57%,出口额同比增长17.99%;乒乓球、羽毛球、网球及相关用品累计出口额2.04亿美元,同比增长0.93%。

    \n

    In the first three months of this year, the country's exports of roller skates and skateboards surged 30.85 percent and 50.21 percent year-on-year, respectively. The inclusion of skateboarding as an Olympic sport has further fueled demand, particularly in countries like Russia and Japan.
    今年一季度,中国旱冰鞋和滑板出口量同比分别大幅增长30.85%和50.21%。随着滑板成为奥运项目,带动俄罗斯、日本等国消费,滑板出口额增长显著。

    \n

    In addition, treadmill exports jumped by 44.94 percent year-on-year in the first quarter, while artificial turf exports grew by 15.64 percent from the same period last year.
    此外,一季度跑步机和人造草同比也分别增长44.94%和15.64%。

    \n

    To boost the pace of \"going global,\" Chinese sporting goods companies need to rely on greener sporting goods with higher technological content, said Bao Mingxiao, director of the China Sports Policy Research Institute at Beijing Sport University.
    北京体育大学中国体育政策研究院院长鲍明晓表示,企业出海的步伐要更加坚实有力,靠的是更具科技含量、更加绿色环保的“硬实力”。

    \n

    Dingqi Sports Goods (Huai'an) Co., Ltd. in Huai'an city, east China's Jiangsu Province specializes in the production of ball bladders, including those used in the production of footballs, volleyballs, basketballs and rugby balls. 70 percent of its products are exported overseas. For the Paris Olympics, the company exported products made from 70 percent bio-based materials.
    江苏淮安的顶碁运动用品(淮安)有限公司专门生产运动用足球、排球、篮球、橄榄球等球类产品内胆,产品70%出口海外。巴黎奥运会就使用了这家企业研发的含有70%生物基的产品。

    \n

    \"This type of football is equipped with a chip capable of making 500 identifications per second to assist in determining a handball or offside instances,\" said Zhou Hongda, general manager of the company, adding that it produces ball bladders made from recycled and bio-based materials.
    顶碁运动用品(淮安)有限公司总经理周宏达表示:“这款足球植入了芯片,1秒内能做500次识别动作,通过实时数据辅助判断是否手球、越位等。” 他介绍,该公司的足球内胆用回收材料、生物基材料制成。

    \n

    Since the start of this year, the company has exported 4.07 million balls for training and games, including those used in the UEFA European Championship, Copa America, and the Paris Olympics.
    今年以来,这家公司已出口欧洲杯、美洲杯、奥运会等赛事用球及训练用球407万个。

    \n

    Zhou believes that the key to the popularity of \"Made-in-China\" sporting goods overseas lies in continuous innovation, higher technological content, and adapting to new market demand.
    周宏达认为,“中国制造”体育用品赢得海外市场的关键就在于不断创新,增加产品的科技含量,适应市场新需求。

    \n

    Wen Jia, deputy general secretary of the China Sporting Goods Federation, said fierce competition in the domestic market makes enterprises and merchants provide customized and personalized products and services by meeting customer demand and leveraging technologies.
    中国体育用品业联合会副秘书长温嘉表示,国内市场竞争激烈,倒逼企业和商家从客户需求出发,利用科技手段提供定制化、个性化的产品和服务。

    \n

    The booming sports event economy has attracted buyers across the world to purchase all kinds of sporting goods in Yiwu, known as the \"World's Supermarket\" in east China's Zhejiang Province. In the city, the improved efficiency of customs supervision provides a strong boost for Chinese companies to go global.
    赛事经济的带动下,世界各地的采购商抓住商机,来到“世界超市”浙江义乌采购各式各样的体育产品。在这里,海关监管效率的提升也为中国企业走出去提供了强大助力。

    \n

    Chinese enterprises are not just exporting sporting goods, but also technology, services, and brands.
    中国企业不仅出口体育产品,同时也出口技术、服务和品牌。

    \n

    \"Many foreign clients recognize our manufacturing capabilities and hope to introduce Chinese production technology to their own countries. Our future may not solely involve product exports, but also technology, service, and brand exports,\" said Yang Lei, general manager of the foreign trade department at Hebei Jadeqi Sports Goods Co Ltd.
    河北杰帝奇体育用品有限公司外贸部总经理杨磊表示:“国外很多客商对我们的制造业水平很认可,他们也希望把中国的生产技术引进过去。我们以后可能不单纯地进行产品出口,也要进行技术、服务、品牌的出口。”

    \n

    \"Our overseas strategy aligns with the Belt and Road Initiative. We not only produce products but also offer services and comprehensive solutions, facilitating integration with other industries and making our operations more convenient. Recently, we've been considering building a production base in Serbia, having just visited there, and found the environment and market conditions favorable,\" Yang added.
    杨磊说:“我们的出海思路其实就是跟着‘一带一路’走。因为我们不仅做产品,也做服务、做一体化的解决方式,这样可以更好地和其他行业进行整合,对我们来说也更便利。最近,我们正在研究去塞尔维亚建生产基地,刚去那里考察过,环境和市场都不错,很适合做市场。”

    \n

    英文来源:人民网
    编译:丹妮
    审校:万月英、齐磊

    \n\n
    ", - "content": "
    \n\n \n\n \n \n\n

    海关总署近日发布的数据显示,今年上半年,中国体育用品及设备出口同比增长16.7%,高出同期出口整体增速9.8个百分点。世界贸易组织发布的数据报告显示,全球范围内的体育用品贸易在过去近30年里增长了近3倍,而在这30年间,中国已成为全球最大的体育用品出口国。

    \n
    \n \n
    \n A foreign businessman (right) picks ball products at the Yiwu International Trade City in Yiwu, Zhejiang province, on April 15, 2024. [Photo/VCG] \n
    \n
    \n

    The exports of China's sporting goods and equipment surged 16.7 percent year-on-year in the first half of 2024, outpacing the overall export growth during the same period by a whopping 9.8 percentage points, according to data recently released by the General Administration of Customs (GAC).
    海关总署近日发布的数据显示,今年上半年,中国体育用品及设备出口同比增长16.7%,高出同期出口整体增速9.8个百分点。

    \n

    Data from the World Trade Organization showed that global trade in sporting goods has nearly tripled in almost 30 years, and China has become the world's top exporter of sporting goods.
    世界贸易组织发布的数据显示,全球范围内的体育用品贸易在过去近30年里增长了近3倍,而在这30年间,中国已成为全球最大的体育用品出口国。

    \n

    In Jinping county of southwest China's Guizhou Province, a global production hub for badminton shuttlecocks, more than 100,000 shuttlecocks are sold worldwide a day.
    在全球重要的羽毛球生产基地——贵州省锦屏县,每天超过10万只羽毛球从这里“飞”向全球。

    \n

    \"We've calculated that about one in every 10 shuttlecocks in the world comes from Jinping,\" said Hu Bing, production manager of Guizhou RSL Sports Culture Development Co., Ltd.
    贵州亚狮龙体育文化产业发展有限公司生产经理胡兵说:“我们统计过,全球大约每10只羽毛球,就有1只产自锦屏。”

    \n

    Last year, the company produced over 4 million dozen shuttlecocks, generating a staggering output value of 340 million yuan ($47.73 million) and exporting nearly $9 million worth of shuttlecocks to over 60 countries and regions, Hu noted.
    胡兵说,公司去年产值3.4亿元,生产羽毛球超400多万打,出口总额近900万美元,产品销往60多个国家和地区。

    \n

    The first half of 2024 saw the company achieve even more remarkable growth, with the output value of shuttlecocks reaching 185 million yuan and exports skyrocketing by around 40 percent compared to the same period last year.
    今年上半年,该公司营业额进一步增长,产值达1.85亿元,出口比去年同期增长了40%左右。

    \n

    In the first quarter of 2024, China's exports of footballs, basketballs, and volleyballs saw a year-on-year increase of 33.57 percent in volume and 17.99 percent in value, while that of table tennis, badminton, and tennis equipment increased 0.93 percent from the same period last year to $204 million, according to GAC data.
    根据海关总署数据,2024年第一季度,中国足球、篮球、排球出口量同比增长33.57%,出口额同比增长17.99%;乒乓球、羽毛球、网球及相关用品累计出口额2.04亿美元,同比增长0.93%。

    \n

    In the first three months of this year, the country's exports of roller skates and skateboards surged 30.85 percent and 50.21 percent year-on-year, respectively. The inclusion of skateboarding as an Olympic sport has further fueled demand, particularly in countries like Russia and Japan.
    今年一季度,中国旱冰鞋和滑板出口量同比分别大幅增长30.85%和50.21%。随着滑板成为奥运项目,带动俄罗斯、日本等国消费,滑板出口额增长显著。

    \n

    In addition, treadmill exports jumped by 44.94 percent year-on-year in the first quarter, while artificial turf exports grew by 15.64 percent from the same period last year.
    此外,一季度跑步机和人造草同比也分别增长44.94%和15.64%。

    \n

    To boost the pace of \"going global,\" Chinese sporting goods companies need to rely on greener sporting goods with higher technological content, said Bao Mingxiao, director of the China Sports Policy Research Institute at Beijing Sport University.
    北京体育大学中国体育政策研究院院长鲍明晓表示,企业出海的步伐要更加坚实有力,靠的是更具科技含量、更加绿色环保的“硬实力”。

    \n

    Dingqi Sports Goods (Huai'an) Co., Ltd. in Huai'an city, east China's Jiangsu Province specializes in the production of ball bladders, including those used in the production of footballs, volleyballs, basketballs and rugby balls. 70 percent of its products are exported overseas. For the Paris Olympics, the company exported products made from 70 percent bio-based materials.
    江苏淮安的顶碁运动用品(淮安)有限公司专门生产运动用足球、排球、篮球、橄榄球等球类产品内胆,产品70%出口海外。巴黎奥运会就使用了这家企业研发的含有70%生物基的产品。

    \n

    \"This type of football is equipped with a chip capable of making 500 identifications per second to assist in determining a handball or offside instances,\" said Zhou Hongda, general manager of the company, adding that it produces ball bladders made from recycled and bio-based materials.
    顶碁运动用品(淮安)有限公司总经理周宏达表示:“这款足球植入了芯片,1秒内能做500次识别动作,通过实时数据辅助判断是否手球、越位等。” 他介绍,该公司的足球内胆用回收材料、生物基材料制成。

    \n

    Since the start of this year, the company has exported 4.07 million balls for training and games, including those used in the UEFA European Championship, Copa America, and the Paris Olympics.
    今年以来,这家公司已出口欧洲杯、美洲杯、奥运会等赛事用球及训练用球407万个。

    \n

    Zhou believes that the key to the popularity of \"Made-in-China\" sporting goods overseas lies in continuous innovation, higher technological content, and adapting to new market demand.
    周宏达认为,“中国制造”体育用品赢得海外市场的关键就在于不断创新,增加产品的科技含量,适应市场新需求。

    \n

    Wen Jia, deputy general secretary of the China Sporting Goods Federation, said fierce competition in the domestic market makes enterprises and merchants provide customized and personalized products and services by meeting customer demand and leveraging technologies.
    中国体育用品业联合会副秘书长温嘉表示,国内市场竞争激烈,倒逼企业和商家从客户需求出发,利用科技手段提供定制化、个性化的产品和服务。

    \n

    The booming sports event economy has attracted buyers across the world to purchase all kinds of sporting goods in Yiwu, known as the \"World's Supermarket\" in east China's Zhejiang Province. In the city, the improved efficiency of customs supervision provides a strong boost for Chinese companies to go global.
    赛事经济的带动下,世界各地的采购商抓住商机,来到“世界超市”浙江义乌采购各式各样的体育产品。在这里,海关监管效率的提升也为中国企业走出去提供了强大助力。

    \n

    Chinese enterprises are not just exporting sporting goods, but also technology, services, and brands.
    中国企业不仅出口体育产品,同时也出口技术、服务和品牌。

    \n

    \"Many foreign clients recognize our manufacturing capabilities and hope to introduce Chinese production technology to their own countries. Our future may not solely involve product exports, but also technology, service, and brand exports,\" said Yang Lei, general manager of the foreign trade department at Hebei Jadeqi Sports Goods Co Ltd.
    河北杰帝奇体育用品有限公司外贸部总经理杨磊表示:“国外很多客商对我们的制造业水平很认可,他们也希望把中国的生产技术引进过去。我们以后可能不单纯地进行产品出口,也要进行技术、服务、品牌的出口。”

    \n

    \"Our overseas strategy aligns with the Belt and Road Initiative. We not only produce products but also offer services and comprehensive solutions, facilitating integration with other industries and making our operations more convenient. Recently, we've been considering building a production base in Serbia, having just visited there, and found the environment and market conditions favorable,\" Yang added.
    杨磊说:“我们的出海思路其实就是跟着‘一带一路’走。因为我们不仅做产品,也做服务、做一体化的解决方式,这样可以更好地和其他行业进行整合,对我们来说也更便利。最近,我们正在研究去塞尔维亚建生产基地,刚去那里考察过,环境和市场都不错,很适合做市场。”

    \n

    英文来源:人民网
    编译:丹妮
    审校:万月英、齐磊

    \n\n
    ", - "category": "", - "link": "https://language.chinadaily.com.cn/a/202409/03/WS66d6b777a3108f29c1fc9e35.html", - "creator": "", - "pubDate": "", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "双语", - "feed": "ChinaDaily", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "9305b1b5e2881a059053edec7adb453b", - "highlights": [] - }, - { - "title": "开学啦!来看看新学期的正确打开方式", - "description": "
    \n\n \n\n \n \n\n

    A new semester means a fresh start. Get your semester started right by practicing these strategies, and your productivity will soar.
    新学期意味着新的开始。掌握了新学期的正确打开方式,你的学习效率将会直线上升。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    1. Get organized
    让一切井井有条

    \n

    Organization helps you reduce chaos and stress, thus making you more productive. Develop a system at the start of your semester. This may include:
    条理性可以帮助你减少混乱和压力,从而让你做事更有效率。在开学时把一切都整理得井井有条,包括:

    \n

    --Color coded notebooks and/or folders for each class
    ——给每门课程准备一个彩页笔记本和文件夹;

    \n

    -- A planner with important dates and deadlines filled out
    ——准备一个日程表,标注出重要的日子和各项任务的截止日期;

    \n

    --Cleaning out your backpack, desk, and dorm room to reduce clutter from previous semesters
    ——清理背包、书桌和宿舍,把前几个学期积攒下来的无用之物处理掉;

    \n

    --Organizing your computer files (e.g., by school year, semester, course, and assignment type or project)
    ——整理电脑文件,可以按照学年、学期、课程、作业或项目分门别类;

    \n

    If you keep track of deadlines, know where to find everything, and maintain a well-organized space, you free up your mind to focus on learning and achieving.
    如果你对截止日期了如指掌,知道每样东西放在哪儿,把空间整理得井井有条,你就可以把脑子腾出来专心学习,做出成绩。

    \n

     

    \n

    2. Get into a routine
    做事有规律

    \n

    Like being organized, establishing a routine helps your life run smoothly.
    和条理性一样,做事有规律可以让你的生活更顺利。

    \n

    It’s easier said than done, but try waking up and going to sleep around the same time each day (or at least on weekdays). Schedule time for the gym, any clubs or activities you participate in, and studying. Instead of waiting until the last minute to work on assignments or cram in information, set aside studying/homework blocks each day. Choose a time of day when you feel especially productive.
    尽管说起来容易做起来难,但是你可以试着每天都在同一时间起床和睡觉(至少在工作日如此)。规划好去健身、去参加社团或其他活动以及学习的时间。每天都要留出一整块时间用于学习和做作业,不要等到最后一刻才赶作业或背书。选择一天中你自认为效率最高的时间来学习。

    \n

    Start each day on a positive note by preparing the night before. For instance, set out the outfit you’ll wear to class and pack your backpack with the supplies you’ll need that day. Instead of frantically scrambling around in the morning, you’ll begin the day feeling confident and prepared. Ultimately, these small habits make a big difference in your overall mood and performance.
    通过在前一天晚上做好准备,以积极的态度开始每一天。举例而言,准备好你明天上课要穿的衣服,在书包里放好明天需要的东西。这样,你就可以在准备充分的情况下自信地开始新的一天,而不是一大早紧张忙乱地到处找东西。最终,这些小习惯将会让你的整体情绪状态和表现大为改观。

    \n

     

    \n

    3. Surround yourself with motivated peers
    结交好学的同伴

    \n

    Maybe you’ve heard the saying, “Show me your friends and I’ll show you your future.” It may sound dramatic, but it’s true that the people you spend the most time with have a major influence on you. If your friends are partying every night, skipping class, and seemingly unconcerned about their grades, staying motivated will be an uphill battle for you.
    也许你听过这句话:“你身边的朋友决定你的未来。”这也许听起来有些夸张,但是你与之交往时间最长的人对你会产生重大影响,这是事实。如果你的朋友夜夜狂欢,逃课,对成绩毫不在意,那么保持斗志对你来说会非常困难。

    \n

    Try to make at least one positive friend in every class. Meet ambitious people with clearly defined goals, good study habits, and healthy lifestyles. These friends can help you stay accountable, and they make great study buddies too.
    你应该试着每门课程都结交至少一位好学的朋友。结交那些有明确目标、良好学习习惯和健康生活方式的有志向的人。这些朋友可以帮助你保持责任心,也可以成为很好的学伴。

    \n

     

    \n

    4. Take good care of yourself
    照顾好自己

    \n

    Finally, remember to practice self-care and healthy habits. When you eat poorly and don’t get enough sleep, it impacts your mood and your mind. You may feel fuzzy and forgetful, and you’ll have a tough time learning new concepts. Obviously, this is not helpful for a successful semester.
    最后,记得要照顾好自己,养成健康的生活习惯。如果你吃不好,睡眠不足,就会影响你的情绪和头脑。你可能会觉得脑子迷迷糊糊,变得健忘,在学习新概念时也会感到费劲。显然,这对于成功开展新学期有害无益。

    \n

    Eat nutritious meals (as often as you can), exercise, and get plenty of rest. Studying in small chunks instead of relying on cram sessions is one way to ensure you sleep enough.
    平常多吃有营养的饭菜,坚持锻炼,充分休息。每天学一点,而不是临时抱佛脚,也是确保你睡眠充足的一个方式。

    \n

    Creating new habits is tough at first. Stick with it, and you’ll find that you’re far more productive and successful—and probably happier, too.
    养成新习惯一开始很难。坚持下来,你会发现你远比以前效率更高、更成功,应该也会更快乐。

    \n

     

    \n

    英文来源:Niche

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", - "content": "
    \n\n \n\n \n \n\n

    A new semester means a fresh start. Get your semester started right by practicing these strategies, and your productivity will soar.
    新学期意味着新的开始。掌握了新学期的正确打开方式,你的学习效率将会直线上升。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    1. Get organized
    让一切井井有条

    \n

    Organization helps you reduce chaos and stress, thus making you more productive. Develop a system at the start of your semester. This may include:
    条理性可以帮助你减少混乱和压力,从而让你做事更有效率。在开学时把一切都整理得井井有条,包括:

    \n

    --Color coded notebooks and/or folders for each class
    ——给每门课程准备一个彩页笔记本和文件夹;

    \n

    -- A planner with important dates and deadlines filled out
    ——准备一个日程表,标注出重要的日子和各项任务的截止日期;

    \n

    --Cleaning out your backpack, desk, and dorm room to reduce clutter from previous semesters
    ——清理背包、书桌和宿舍,把前几个学期积攒下来的无用之物处理掉;

    \n

    --Organizing your computer files (e.g., by school year, semester, course, and assignment type or project)
    ——整理电脑文件,可以按照学年、学期、课程、作业或项目分门别类;

    \n

    If you keep track of deadlines, know where to find everything, and maintain a well-organized space, you free up your mind to focus on learning and achieving.
    如果你对截止日期了如指掌,知道每样东西放在哪儿,把空间整理得井井有条,你就可以把脑子腾出来专心学习,做出成绩。

    \n

     

    \n

    2. Get into a routine
    做事有规律

    \n

    Like being organized, establishing a routine helps your life run smoothly.
    和条理性一样,做事有规律可以让你的生活更顺利。

    \n

    It’s easier said than done, but try waking up and going to sleep around the same time each day (or at least on weekdays). Schedule time for the gym, any clubs or activities you participate in, and studying. Instead of waiting until the last minute to work on assignments or cram in information, set aside studying/homework blocks each day. Choose a time of day when you feel especially productive.
    尽管说起来容易做起来难,但是你可以试着每天都在同一时间起床和睡觉(至少在工作日如此)。规划好去健身、去参加社团或其他活动以及学习的时间。每天都要留出一整块时间用于学习和做作业,不要等到最后一刻才赶作业或背书。选择一天中你自认为效率最高的时间来学习。

    \n

    Start each day on a positive note by preparing the night before. For instance, set out the outfit you’ll wear to class and pack your backpack with the supplies you’ll need that day. Instead of frantically scrambling around in the morning, you’ll begin the day feeling confident and prepared. Ultimately, these small habits make a big difference in your overall mood and performance.
    通过在前一天晚上做好准备,以积极的态度开始每一天。举例而言,准备好你明天上课要穿的衣服,在书包里放好明天需要的东西。这样,你就可以在准备充分的情况下自信地开始新的一天,而不是一大早紧张忙乱地到处找东西。最终,这些小习惯将会让你的整体情绪状态和表现大为改观。

    \n

     

    \n

    3. Surround yourself with motivated peers
    结交好学的同伴

    \n

    Maybe you’ve heard the saying, “Show me your friends and I’ll show you your future.” It may sound dramatic, but it’s true that the people you spend the most time with have a major influence on you. If your friends are partying every night, skipping class, and seemingly unconcerned about their grades, staying motivated will be an uphill battle for you.
    也许你听过这句话:“你身边的朋友决定你的未来。”这也许听起来有些夸张,但是你与之交往时间最长的人对你会产生重大影响,这是事实。如果你的朋友夜夜狂欢,逃课,对成绩毫不在意,那么保持斗志对你来说会非常困难。

    \n

    Try to make at least one positive friend in every class. Meet ambitious people with clearly defined goals, good study habits, and healthy lifestyles. These friends can help you stay accountable, and they make great study buddies too.
    你应该试着每门课程都结交至少一位好学的朋友。结交那些有明确目标、良好学习习惯和健康生活方式的有志向的人。这些朋友可以帮助你保持责任心,也可以成为很好的学伴。

    \n

     

    \n

    4. Take good care of yourself
    照顾好自己

    \n

    Finally, remember to practice self-care and healthy habits. When you eat poorly and don’t get enough sleep, it impacts your mood and your mind. You may feel fuzzy and forgetful, and you’ll have a tough time learning new concepts. Obviously, this is not helpful for a successful semester.
    最后,记得要照顾好自己,养成健康的生活习惯。如果你吃不好,睡眠不足,就会影响你的情绪和头脑。你可能会觉得脑子迷迷糊糊,变得健忘,在学习新概念时也会感到费劲。显然,这对于成功开展新学期有害无益。

    \n

    Eat nutritious meals (as often as you can), exercise, and get plenty of rest. Studying in small chunks instead of relying on cram sessions is one way to ensure you sleep enough.
    平常多吃有营养的饭菜,坚持锻炼,充分休息。每天学一点,而不是临时抱佛脚,也是确保你睡眠充足的一个方式。

    \n

    Creating new habits is tough at first. Stick with it, and you’ll find that you’re far more productive and successful—and probably happier, too.
    养成新习惯一开始很难。坚持下来,你会发现你远比以前效率更高、更成功,应该也会更快乐。

    \n

     

    \n

    英文来源:Niche

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", - "category": "", - "link": "https://language.chinadaily.com.cn/a/202409/02/WS66d5837ba3108f29c1fc9a74.html", - "creator": "", - "pubDate": "", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "双语", - "feed": "ChinaDaily", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "c93cd7fea5ef9801a585814b525d20a3", - "highlights": [] - }, - { - "title": "【双语财讯】美经济学家警告:美国多个经济衰退“红灯”亮起", - "description": "
    \n\n \n\n \n \n\n
    \n \n
    \n
    \n

    美国商业内幕网8月30日报道称,美国知名经济学家、罗森伯格研究公司总裁大卫·罗森伯格表示,近期一系列信号提示,美国经济陷入衰退的可能性正在上升。文章摘编如下:

    \n

    The probability of a recession hitting the US economy is rising after a flurry of signals have flashed in recent weeks and months.
    在近期(最近几周和数月内)一系列信号亮起后,美国经济陷入衰退的可能性正在上升。

    \n

    That's according to economist David Rosenberg of Rosenberg Research, who compiled a list of recessionary indicators in a note on Friday.
    美国罗森伯格研究公司总裁大卫·罗森伯格在8月30日发布的一份报告中汇编了一份衰退指标清单。

    \n

    \"What is the best recession indicator? That's a hard question to answer — why not dodge it completely and just look at all of them?\" Rosenberg asked.
    他提出:“最准确的衰退指标是什么?这是一个很难回答的问题——为什么不避开这个问题,看看所有这些指标呢?”

    \n

    According to Rosenberg, some worrying signals have historically only flashed on the precipice of an economic downturn.
    罗森伯格表示,在历史上,一些令人担忧的信号只有在经济即将陷入衰退时才会出现。

    \n

    \"The 'indicator of indicators' indicates recession,\" Rosenberg said.
    罗森伯格称:“‘指标的指标’预示着经济衰退。”

    \n

    Of the 20 recession indicators compiled by Rosenberg, nine have been triggered.
    罗森伯格编制的20个衰退指标中,有9个已经触发。

    \n

    Some of the recession signals that have flashed include the Sahm Rule, the Leading Economic Indicator Index, and the inverted yield curve, among others.
    被触发的衰退指标包括萨姆规则、先行指数和倒挂的收益率曲线等。

    \n

    \"Currently, 45% of the recession indicators we tracked have been triggered. Going back to 1999, that's never happened without a recession occurring,\" Rosenberg said.
    罗森伯格说:“目前,我们追踪的经济衰退指标中有45%已经触发。自1999年以来,从来没有出现这种情况而不发生衰退的。”

    \n

    The list of signals flashing has steadily risen since 2022, when only 10% were triggered. That rose to about 25% in 2023 and the first half of 2024.
    自2022年以来,预示美国经济陷入衰退的信号数量一直都在稳步上升,当时只有10%被触发。2023年和2024年上半年,这一比例上升到了25%左右。

    \n

    But since then, the recession warnings have been growing.
    而自那以后,关于美国经济衰退的警告越来越多。

    \n

    \"Sometimes more is more, and this is a case in point. Looking at recession thresholds across different sectors of the economy makes it clear that something has been changing since mid-2024 — the long-anticipated slowdown may finally be arriving,\" Rosenberg said.
    罗森伯格说:“有时更多就是更多,这就是一个很好的例证。观察不同经济部门的衰退阈值可以清楚地看出,自2024年中期以来,一些事情一直在发生变化——经济衰退可能真的要来了。”

    \n

    编辑:董静
    审校:陈丹妮 万月英

    \n

     

    \n\n
    ", - "content": "
    \n\n \n\n \n \n\n
    \n \n
    \n
    \n

    美国商业内幕网8月30日报道称,美国知名经济学家、罗森伯格研究公司总裁大卫·罗森伯格表示,近期一系列信号提示,美国经济陷入衰退的可能性正在上升。文章摘编如下:

    \n

    The probability of a recession hitting the US economy is rising after a flurry of signals have flashed in recent weeks and months.
    在近期(最近几周和数月内)一系列信号亮起后,美国经济陷入衰退的可能性正在上升。

    \n

    That's according to economist David Rosenberg of Rosenberg Research, who compiled a list of recessionary indicators in a note on Friday.
    美国罗森伯格研究公司总裁大卫·罗森伯格在8月30日发布的一份报告中汇编了一份衰退指标清单。

    \n

    \"What is the best recession indicator? That's a hard question to answer — why not dodge it completely and just look at all of them?\" Rosenberg asked.
    他提出:“最准确的衰退指标是什么?这是一个很难回答的问题——为什么不避开这个问题,看看所有这些指标呢?”

    \n

    According to Rosenberg, some worrying signals have historically only flashed on the precipice of an economic downturn.
    罗森伯格表示,在历史上,一些令人担忧的信号只有在经济即将陷入衰退时才会出现。

    \n

    \"The 'indicator of indicators' indicates recession,\" Rosenberg said.
    罗森伯格称:“‘指标的指标’预示着经济衰退。”

    \n

    Of the 20 recession indicators compiled by Rosenberg, nine have been triggered.
    罗森伯格编制的20个衰退指标中,有9个已经触发。

    \n

    Some of the recession signals that have flashed include the Sahm Rule, the Leading Economic Indicator Index, and the inverted yield curve, among others.
    被触发的衰退指标包括萨姆规则、先行指数和倒挂的收益率曲线等。

    \n

    \"Currently, 45% of the recession indicators we tracked have been triggered. Going back to 1999, that's never happened without a recession occurring,\" Rosenberg said.
    罗森伯格说:“目前,我们追踪的经济衰退指标中有45%已经触发。自1999年以来,从来没有出现这种情况而不发生衰退的。”

    \n

    The list of signals flashing has steadily risen since 2022, when only 10% were triggered. That rose to about 25% in 2023 and the first half of 2024.
    自2022年以来,预示美国经济陷入衰退的信号数量一直都在稳步上升,当时只有10%被触发。2023年和2024年上半年,这一比例上升到了25%左右。

    \n

    But since then, the recession warnings have been growing.
    而自那以后,关于美国经济衰退的警告越来越多。

    \n

    \"Sometimes more is more, and this is a case in point. Looking at recession thresholds across different sectors of the economy makes it clear that something has been changing since mid-2024 — the long-anticipated slowdown may finally be arriving,\" Rosenberg said.
    罗森伯格说:“有时更多就是更多,这就是一个很好的例证。观察不同经济部门的衰退阈值可以清楚地看出,自2024年中期以来,一些事情一直在发生变化——经济衰退可能真的要来了。”

    \n

    编辑:董静
    审校:陈丹妮 万月英

    \n

     

    \n\n
    ", - "category": "", - "link": "https://language.chinadaily.com.cn/a/202409/02/WS66d582b8a3108f29c1fc9a70.html", - "creator": "", - "pubDate": "", - "enclosure": "", - "enclosureType": "", - "image": "", - "id": "", - "language": "", - "folder": "双语", - "feed": "ChinaDaily", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "99b651d543cad1d20b6bf4c9c9210913", - "highlights": [] - }, { "title": "独腿博士研发智能假肢,让更多残疾人穿得起Wear robotic knees", "description": "幼时截肢的他,最终发明、制造出一种独特而“有思想”的智能假肢!", @@ -4122,25 +3726,47 @@ "highlights": [] }, { - "title": "美国国家队名单出炉", - "description": "5月26日当地时间,美国国家队选拔赛老年团体赛2025年6月1日,美国桥牌协会(USBF)公布了参加2025年世界桥牌团体锦标赛的8支美国队参赛名单。由于美国选拔赛允许一名选手报名多项比赛,因此在选拔赛全部结束后,各个美国国家队进行了调整。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 2025年6月1日,美国桥牌协会(USBF)公布了参加2025年世界桥牌团体锦标赛的8支美国队参赛名单。\n \n

    \n

    \n \n 美国国家队选拔赛从4月24日开始,先后经历了公开团体、女子团体、混合团体、老年团体四个项目的选拔赛,产生了每个项目2支,共8支美国队。由于美国选拔赛允许一名选手报名多项比赛,因此在所选拔出来的原始团队中有需要更换队员和增加队员的。在选拔赛全部结束后,进行了调整。\n \n

    \n

    \n \n 根据美国国家队选拔规则,每名队员可以报名参加多个项目,但必须提前告知所参加项目的优先顺序,比如某位队员同时报名公开团体和混合团体项目,他需要选择哪一个项目是第一顺位,如果选择混合团体是第一顺位,则在公开团体入选后,仍然可以参加混合团体的选拔,如果混合团体选中,则必须代表混合团体放弃公开团体,如果混合团体没有选中,则可以代表公开团体。如果选择公开团体是第一顺位,在公开团体选中后,就不需要参加混合团体的选拔了。\n \n

    \n

    \n \n 这种现象,在公开团体选拔结束后,发生在了美国2队罗森塔尔队中,他们队中的大部分牌手都同时报名了公开团体和混合团体,优先顺序是公开团体,在入选公开团体美国2队后,该队队员都不再参加混合团体的选拔了。\n \n

    \n
    \n

    \n \n 下面是美国国家队的全部名单:\n \n

    \n

    \n \n Bermuda Bowl (Open teams):\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Adam Kaplan - Finn Kolesnik\n \n
    \n \n Adam Grossack - Eddie Wold\n \n
    \n \n Kevin Bathurst* - John Hurd\n \n
    \n \n NPC:Bob Morris\n \n

    \n

    \n \n \n 由于美国1队是4人队入选,其中Bathurst/Hurd是他们增加的队员。\n \n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Andrew Rosenthal - Aaron Silverstein\n \n
    \n \n Eldad Ginossar - Chris Wilenken\n \n
    \n \n Zach Grossack - Michael Rosenberg\n \n
    \n \n NPC:Rob Barrington\n \n

    \n

    \n \n Venice Cup (Women's Teams):\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Lynn Baker - Olivia Schireson\n \n
    \n \n Amber Lin - Debbie Rosenberg\n \n
    \n \n Emma Kolesnik* - JoAnna Stansby*\n \n
    \n \n NPC:Joe Stokes\n \n

    \n

    \n \n \n 威尼斯杯美国1队入选的队员还有瑞典Rimstedt姐妹,但她们的第一优先权是混合团体,同时又入选了混合团体美国2队,所以威尼斯杯美国1队增加了Kolesnik/Stansby一对。\n \n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Susan Zhang - Sylvia Shi\n \n
    \n \n Jill Meyers - Kerri Sanborn\n \n
    \n \n Janice Molson - Migry Campanile*\n \n
    \n \n NPC:Josh Donn\n \n

    \n

    \n \n \n 同样原因,苏珊·张的团队中Jenny Wolpert同时入选了混合团体美国1队,因此苏珊·张队增加了Campanile作为新队员。\n \n \n

    \n

    \n \n Wuhan Cup (Mixed Teams)\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Stewart Rubenstein - Anam Tebha\n \n
    \n \n Giorgia Botta - John Kranyak\n \n
    \n \n Vince Demuy - Jenny Wolpert\n \n
    \n \n NPC: Harrison Luba\n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Joan Millens - Shan Huang\n \n
    \n \n Cecilia Dwyer Rimstedt - Kevin Dwyer Rimstedt\n \n
    \n \n Sandra Rimstedt - Joe Grue*\n \n
    \n \n NPC: Alex Hudson\n \n

    \n

    \n \n \n 混合团体美国2队是5人队参赛,增加了Joe Grue作为新队员。\n \n \n

    \n

    \n \n D'Orsi Senior Trophy (Senior Teams)\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Jeff Wolfson - Steve Garner\n \n
    \n \n David Berkowitz - Larry Cohen\n \n
    \n \n Michael Kamil - Jeff Meckstroth\n \n
    \n \n NPC: Jan Martel\n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Hemant Lall - Reese Milner\n \n
    \n \n Bobby Levin - Eric Rodwell\n \n
    \n \n Zia Mahmood - Alan Sontag*\n \n
    \n \n NPC: Phil Clayton\n \n

    \n

    \n \n \n 老年团体美国2队更换了一位队员,Alan Sontag替换了Sam Lev。\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n

    \n \n 相关链接:\n \n 美国老年队选拔赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 美国混团选拔赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 美国混团选拔赛第一轮淘汰赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 公开组美国2队与美国女队产生\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——走过路过不要错过3NT\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——及时转舵、躲开障眼法\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——魏因斯坦的狡诈\n \n \n

    \n

    \n \n 相关链接:\n \n 小虎队直扑日德兰——卡普兰队获得美国1队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 转载:通往努沙杜瓦——如风少年冲向巴厘岛——记Kranyak队获得美国1队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——老麦与小芬传统与现代的差别\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——弗老板失去平衡\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——时机和控制\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——当老麦遇上老罗\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——小罗森博格的诈叫\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——致命的猜断\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——正常开叫还是阻击开叫\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 老罗重回世锦赛——美国老年队、女队选拔赛结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 美国混团选拔赛结束,苏珊·张队赢得资格\n \n \n \n

    \n

    \n \n 相关链接:\n \n 弗雷舍获得2024年美国队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 2024年美国国家队选拔赛开赛\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2023年美国国家队选拔赛争议中结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2022年美国国家队选拔赛结束\n \n \n \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 尼克尔队率先拿到百慕大杯美国1队资格\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 平板电脑还是纸牌?职业牌手有分歧\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 通往武汉之路:美国国家队选拔赛\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "title": "双语百科:为什么鸟儿在黎明歌唱?", + "description": "
    \n\n \n\n \n \n\n

    清晨悦耳的鸟鸣让人心旷神怡,但是一天中的其他时间却很少能听到鸟叫。为什么鸟儿都喜欢在清晨歌唱?来本文中寻找答案吧。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Wake up early enough and, depending on where you live, you’ll likely hear a pleasant chorus of birds chirping their tiny hearts out. This am avian arrangement is instinctual behavior for birds, but why?
    早上起得够早的话,在你所住的地方也许能听到一阵悦耳的鸟鸣。在清晨歌唱是鸟的本能行为,但是鸟鸣为什么都在清晨呢?

    \n

     

    \n

    According to the Woodland Trust, this early singing is known as the dawn chorus, and it can start as early as 4 am and last for several hours. Birds do it to attract mates and warn other birds to avoid their turf. One theory as to why they opt for the wee hours to communicate these important messages is because the low visibility makes it hard to do other bird activities, like foraging. Keeping their activity level low, they opt to sing instead.
    林地信托机构称,鸟儿在清晨鸣叫最早从凌晨4点开始,可持续数个小时。鸟鸣叫是为了吸引配偶,也是为了警告其他鸟不要入侵自己的领地。关于鸟类为什么选择在凌晨传递这些重要信息,有一个理论是,凌晨能见度低,鸟类难以进行觅食等其他活动,既然无事可做,那么鸟儿就转而选择鸣叫。

    \n

     

    \n

    Another theory argues that birds use the morning vocals to project an image of strength. By singing with fervor, they’re letting other birds know they survived the night—no guarantee in nature—and would make for an excellent mate.
    另一种理论认为,鸟类利用晨鸣来展示自己的力量。通过热情地歌唱,它们让其他鸟儿知道自己已经安然度过黑夜——要知道自然界的动物过着朝不保夕的日子,不一定能看见明天的太阳——并能够成为出色的伴侣。

    \n

     

    \n

    Like a good recording studio, the early morning hours also allow birds to transmit a clear tune thanks to the cooler, drier air. Because birds have distinctive chirps, that clarity helps them be more easily identified by birds within listening distance.
    清晨的空气更凉爽、更干燥,就像一个效果很好的录音棚,鸟儿在此时歌唱能传递出清晰的音质。因为鸟儿的声音各有不同,这种清晰度可以让听得见的鸟儿更容易识别出它们的声音。

    \n

     

    \n

    There used to be a prevailing theory that birds sang so much in the mornings because the sounds could travel greater distances due to less atmospheric turbulence, but it was disproven by researchers at the University of Western Ontario in 2003. They played recordings of sparrows at dawn and midday. The songs didn’t travel farther, but they were more consistent.
    过去有一个流行的理论认为,鸟儿最爱在清晨鸣叫是因为在气流稳定的时候声音能传播得更远。但是西安大略大学的研究人员在2003年否定了这一理论。研究人员在黎明和中午分别播放了麻雀的录音。然而麻雀声音并没有传播得更远,只不过黎明时分麻雀的叫声更连贯。

    \n

     

    \n

    Because birds only have so much energy to belt one out, singing when they stand the best chance of being heard makes sense. For a bird, an early morning session is like having the perfect acoustic environment for their performance.
    因为鸟儿只能用有限的精力来鸣叫,它们自然会选择在最可能被听到的时候歌唱。对一只鸟儿来说,清晨鸣叫相当于在最佳音效环境中表演。

    \n

     

    \n

    英文来源:Mental Floss

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", + "content": "
    \n\n \n\n \n \n\n

    清晨悦耳的鸟鸣让人心旷神怡,但是一天中的其他时间却很少能听到鸟叫。为什么鸟儿都喜欢在清晨歌唱?来本文中寻找答案吧。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Wake up early enough and, depending on where you live, you’ll likely hear a pleasant chorus of birds chirping their tiny hearts out. This am avian arrangement is instinctual behavior for birds, but why?
    早上起得够早的话,在你所住的地方也许能听到一阵悦耳的鸟鸣。在清晨歌唱是鸟的本能行为,但是鸟鸣为什么都在清晨呢?

    \n

     

    \n

    According to the Woodland Trust, this early singing is known as the dawn chorus, and it can start as early as 4 am and last for several hours. Birds do it to attract mates and warn other birds to avoid their turf. One theory as to why they opt for the wee hours to communicate these important messages is because the low visibility makes it hard to do other bird activities, like foraging. Keeping their activity level low, they opt to sing instead.
    林地信托机构称,鸟儿在清晨鸣叫最早从凌晨4点开始,可持续数个小时。鸟鸣叫是为了吸引配偶,也是为了警告其他鸟不要入侵自己的领地。关于鸟类为什么选择在凌晨传递这些重要信息,有一个理论是,凌晨能见度低,鸟类难以进行觅食等其他活动,既然无事可做,那么鸟儿就转而选择鸣叫。

    \n

     

    \n

    Another theory argues that birds use the morning vocals to project an image of strength. By singing with fervor, they’re letting other birds know they survived the night—no guarantee in nature—and would make for an excellent mate.
    另一种理论认为,鸟类利用晨鸣来展示自己的力量。通过热情地歌唱,它们让其他鸟儿知道自己已经安然度过黑夜——要知道自然界的动物过着朝不保夕的日子,不一定能看见明天的太阳——并能够成为出色的伴侣。

    \n

     

    \n

    Like a good recording studio, the early morning hours also allow birds to transmit a clear tune thanks to the cooler, drier air. Because birds have distinctive chirps, that clarity helps them be more easily identified by birds within listening distance.
    清晨的空气更凉爽、更干燥,就像一个效果很好的录音棚,鸟儿在此时歌唱能传递出清晰的音质。因为鸟儿的声音各有不同,这种清晰度可以让听得见的鸟儿更容易识别出它们的声音。

    \n

     

    \n

    There used to be a prevailing theory that birds sang so much in the mornings because the sounds could travel greater distances due to less atmospheric turbulence, but it was disproven by researchers at the University of Western Ontario in 2003. They played recordings of sparrows at dawn and midday. The songs didn’t travel farther, but they were more consistent.
    过去有一个流行的理论认为,鸟儿最爱在清晨鸣叫是因为在气流稳定的时候声音能传播得更远。但是西安大略大学的研究人员在2003年否定了这一理论。研究人员在黎明和中午分别播放了麻雀的录音。然而麻雀声音并没有传播得更远,只不过黎明时分麻雀的叫声更连贯。

    \n

     

    \n

    Because birds only have so much energy to belt one out, singing when they stand the best chance of being heard makes sense. For a bird, an early morning session is like having the perfect acoustic environment for their performance.
    因为鸟儿只能用有限的精力来鸣叫,它们自然会选择在最可能被听到的时候歌唱。对一只鸟儿来说,清晨鸣叫相当于在最佳音效环境中表演。

    \n

     

    \n

    英文来源:Mental Floss

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", "category": "", - "link": "https://mp.weixin.qq.com/s/GhzYkoR_DU1jwpJEaWo7yQ", - "creator": "标兵桥牌", - "pubDate": "Sun, 08 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDR7X9icVUiczjyqmaA8vgG0PGfZLhCfDludjw1D8I8qm28RhEg2ibgWIey41EY5icTic2IQboZhr6qqf3A/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDR7X9icVUiczjyqmaA8vgG0PGfZLhCfDludjw1D8I8qm28RhEg2ibgWIey41EY5icTic2IQboZhr6qqf3A/0?wx_fmt=jpeg", - "id": "2247512604_1", + "link": "https://language.chinadaily.com.cn/a/202409/04/WS66d7fb2da3108f29c1fca198.html", + "creator": "", + "pubDate": "", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", + "folder": "双语", + "feed": "ChinaDaily", "read": false, "favorite": false, "created": false, "tags": [], - "hash": "904cfda1cd5a396451f15015355b3b1e", + "hash": "ce6345bc9ae331d44d7f2c1699c0a3c6", + "highlights": [] + }, + { + "title": "开学啦!来看看新学期的正确打开方式", + "description": "
    \n\n \n\n \n \n\n

    A new semester means a fresh start. Get your semester started right by practicing these strategies, and your productivity will soar.
    新学期意味着新的开始。掌握了新学期的正确打开方式,你的学习效率将会直线上升。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    1. Get organized
    让一切井井有条

    \n

    Organization helps you reduce chaos and stress, thus making you more productive. Develop a system at the start of your semester. This may include:
    条理性可以帮助你减少混乱和压力,从而让你做事更有效率。在开学时把一切都整理得井井有条,包括:

    \n

    --Color coded notebooks and/or folders for each class
    ——给每门课程准备一个彩页笔记本和文件夹;

    \n

    -- A planner with important dates and deadlines filled out
    ——准备一个日程表,标注出重要的日子和各项任务的截止日期;

    \n

    --Cleaning out your backpack, desk, and dorm room to reduce clutter from previous semesters
    ——清理背包、书桌和宿舍,把前几个学期积攒下来的无用之物处理掉;

    \n

    --Organizing your computer files (e.g., by school year, semester, course, and assignment type or project)
    ——整理电脑文件,可以按照学年、学期、课程、作业或项目分门别类;

    \n

    If you keep track of deadlines, know where to find everything, and maintain a well-organized space, you free up your mind to focus on learning and achieving.
    如果你对截止日期了如指掌,知道每样东西放在哪儿,把空间整理得井井有条,你就可以把脑子腾出来专心学习,做出成绩。

    \n

     

    \n

    2. Get into a routine
    做事有规律

    \n

    Like being organized, establishing a routine helps your life run smoothly.
    和条理性一样,做事有规律可以让你的生活更顺利。

    \n

    It’s easier said than done, but try waking up and going to sleep around the same time each day (or at least on weekdays). Schedule time for the gym, any clubs or activities you participate in, and studying. Instead of waiting until the last minute to work on assignments or cram in information, set aside studying/homework blocks each day. Choose a time of day when you feel especially productive.
    尽管说起来容易做起来难,但是你可以试着每天都在同一时间起床和睡觉(至少在工作日如此)。规划好去健身、去参加社团或其他活动以及学习的时间。每天都要留出一整块时间用于学习和做作业,不要等到最后一刻才赶作业或背书。选择一天中你自认为效率最高的时间来学习。

    \n

    Start each day on a positive note by preparing the night before. For instance, set out the outfit you’ll wear to class and pack your backpack with the supplies you’ll need that day. Instead of frantically scrambling around in the morning, you’ll begin the day feeling confident and prepared. Ultimately, these small habits make a big difference in your overall mood and performance.
    通过在前一天晚上做好准备,以积极的态度开始每一天。举例而言,准备好你明天上课要穿的衣服,在书包里放好明天需要的东西。这样,你就可以在准备充分的情况下自信地开始新的一天,而不是一大早紧张忙乱地到处找东西。最终,这些小习惯将会让你的整体情绪状态和表现大为改观。

    \n

     

    \n

    3. Surround yourself with motivated peers
    结交好学的同伴

    \n

    Maybe you’ve heard the saying, “Show me your friends and I’ll show you your future.” It may sound dramatic, but it’s true that the people you spend the most time with have a major influence on you. If your friends are partying every night, skipping class, and seemingly unconcerned about their grades, staying motivated will be an uphill battle for you.
    也许你听过这句话:“你身边的朋友决定你的未来。”这也许听起来有些夸张,但是你与之交往时间最长的人对你会产生重大影响,这是事实。如果你的朋友夜夜狂欢,逃课,对成绩毫不在意,那么保持斗志对你来说会非常困难。

    \n

    Try to make at least one positive friend in every class. Meet ambitious people with clearly defined goals, good study habits, and healthy lifestyles. These friends can help you stay accountable, and they make great study buddies too.
    你应该试着每门课程都结交至少一位好学的朋友。结交那些有明确目标、良好学习习惯和健康生活方式的有志向的人。这些朋友可以帮助你保持责任心,也可以成为很好的学伴。

    \n

     

    \n

    4. Take good care of yourself
    照顾好自己

    \n

    Finally, remember to practice self-care and healthy habits. When you eat poorly and don’t get enough sleep, it impacts your mood and your mind. You may feel fuzzy and forgetful, and you’ll have a tough time learning new concepts. Obviously, this is not helpful for a successful semester.
    最后,记得要照顾好自己,养成健康的生活习惯。如果你吃不好,睡眠不足,就会影响你的情绪和头脑。你可能会觉得脑子迷迷糊糊,变得健忘,在学习新概念时也会感到费劲。显然,这对于成功开展新学期有害无益。

    \n

    Eat nutritious meals (as often as you can), exercise, and get plenty of rest. Studying in small chunks instead of relying on cram sessions is one way to ensure you sleep enough.
    平常多吃有营养的饭菜,坚持锻炼,充分休息。每天学一点,而不是临时抱佛脚,也是确保你睡眠充足的一个方式。

    \n

    Creating new habits is tough at first. Stick with it, and you’ll find that you’re far more productive and successful—and probably happier, too.
    养成新习惯一开始很难。坚持下来,你会发现你远比以前效率更高、更成功,应该也会更快乐。

    \n

     

    \n

    英文来源:Niche

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", + "content": "
    \n\n \n\n \n \n\n

    A new semester means a fresh start. Get your semester started right by practicing these strategies, and your productivity will soar.
    新学期意味着新的开始。掌握了新学期的正确打开方式,你的学习效率将会直线上升。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    1. Get organized
    让一切井井有条

    \n

    Organization helps you reduce chaos and stress, thus making you more productive. Develop a system at the start of your semester. This may include:
    条理性可以帮助你减少混乱和压力,从而让你做事更有效率。在开学时把一切都整理得井井有条,包括:

    \n

    --Color coded notebooks and/or folders for each class
    ——给每门课程准备一个彩页笔记本和文件夹;

    \n

    -- A planner with important dates and deadlines filled out
    ——准备一个日程表,标注出重要的日子和各项任务的截止日期;

    \n

    --Cleaning out your backpack, desk, and dorm room to reduce clutter from previous semesters
    ——清理背包、书桌和宿舍,把前几个学期积攒下来的无用之物处理掉;

    \n

    --Organizing your computer files (e.g., by school year, semester, course, and assignment type or project)
    ——整理电脑文件,可以按照学年、学期、课程、作业或项目分门别类;

    \n

    If you keep track of deadlines, know where to find everything, and maintain a well-organized space, you free up your mind to focus on learning and achieving.
    如果你对截止日期了如指掌,知道每样东西放在哪儿,把空间整理得井井有条,你就可以把脑子腾出来专心学习,做出成绩。

    \n

     

    \n

    2. Get into a routine
    做事有规律

    \n

    Like being organized, establishing a routine helps your life run smoothly.
    和条理性一样,做事有规律可以让你的生活更顺利。

    \n

    It’s easier said than done, but try waking up and going to sleep around the same time each day (or at least on weekdays). Schedule time for the gym, any clubs or activities you participate in, and studying. Instead of waiting until the last minute to work on assignments or cram in information, set aside studying/homework blocks each day. Choose a time of day when you feel especially productive.
    尽管说起来容易做起来难,但是你可以试着每天都在同一时间起床和睡觉(至少在工作日如此)。规划好去健身、去参加社团或其他活动以及学习的时间。每天都要留出一整块时间用于学习和做作业,不要等到最后一刻才赶作业或背书。选择一天中你自认为效率最高的时间来学习。

    \n

    Start each day on a positive note by preparing the night before. For instance, set out the outfit you’ll wear to class and pack your backpack with the supplies you’ll need that day. Instead of frantically scrambling around in the morning, you’ll begin the day feeling confident and prepared. Ultimately, these small habits make a big difference in your overall mood and performance.
    通过在前一天晚上做好准备,以积极的态度开始每一天。举例而言,准备好你明天上课要穿的衣服,在书包里放好明天需要的东西。这样,你就可以在准备充分的情况下自信地开始新的一天,而不是一大早紧张忙乱地到处找东西。最终,这些小习惯将会让你的整体情绪状态和表现大为改观。

    \n

     

    \n

    3. Surround yourself with motivated peers
    结交好学的同伴

    \n

    Maybe you’ve heard the saying, “Show me your friends and I’ll show you your future.” It may sound dramatic, but it’s true that the people you spend the most time with have a major influence on you. If your friends are partying every night, skipping class, and seemingly unconcerned about their grades, staying motivated will be an uphill battle for you.
    也许你听过这句话:“你身边的朋友决定你的未来。”这也许听起来有些夸张,但是你与之交往时间最长的人对你会产生重大影响,这是事实。如果你的朋友夜夜狂欢,逃课,对成绩毫不在意,那么保持斗志对你来说会非常困难。

    \n

    Try to make at least one positive friend in every class. Meet ambitious people with clearly defined goals, good study habits, and healthy lifestyles. These friends can help you stay accountable, and they make great study buddies too.
    你应该试着每门课程都结交至少一位好学的朋友。结交那些有明确目标、良好学习习惯和健康生活方式的有志向的人。这些朋友可以帮助你保持责任心,也可以成为很好的学伴。

    \n

     

    \n

    4. Take good care of yourself
    照顾好自己

    \n

    Finally, remember to practice self-care and healthy habits. When you eat poorly and don’t get enough sleep, it impacts your mood and your mind. You may feel fuzzy and forgetful, and you’ll have a tough time learning new concepts. Obviously, this is not helpful for a successful semester.
    最后,记得要照顾好自己,养成健康的生活习惯。如果你吃不好,睡眠不足,就会影响你的情绪和头脑。你可能会觉得脑子迷迷糊糊,变得健忘,在学习新概念时也会感到费劲。显然,这对于成功开展新学期有害无益。

    \n

    Eat nutritious meals (as often as you can), exercise, and get plenty of rest. Studying in small chunks instead of relying on cram sessions is one way to ensure you sleep enough.
    平常多吃有营养的饭菜,坚持锻炼,充分休息。每天学一点,而不是临时抱佛脚,也是确保你睡眠充足的一个方式。

    \n

    Creating new habits is tough at first. Stick with it, and you’ll find that you’re far more productive and successful—and probably happier, too.
    养成新习惯一开始很难。坚持下来,你会发现你远比以前效率更高、更成功,应该也会更快乐。

    \n

     

    \n

    英文来源:Niche

    \n

    编译:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", + "category": "", + "link": "https://language.chinadaily.com.cn/a/202409/02/WS66d5837ba3108f29c1fc9a74.html", + "creator": "", + "pubDate": "", + "enclosure": "", + "enclosureType": "", + "image": "", + "id": "", + "language": "", + "folder": "双语", + "feed": "ChinaDaily", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "c93cd7fea5ef9801a585814b525d20a3", "highlights": [] } ], @@ -4156,534 +3782,6 @@ "image": null, "description": "", "items": [ - { - "title": "第十九届世界青年桥牌团体锦标赛即将开赛", - "description": "第十九届世界青年桥牌团体锦标赛(19th World Youth Team Championships)将于7月12-17日在意大利萨尔索马焦雷举办。共有来自世界各地的94支青年队参加U26,U21,U26女子,U16,U31五个组别的比赛", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n
    \n \n
    \n
    \n \n 世青赛即将开赛\n \n
    \n
    \n

    \n \n 第十九届世界青年桥牌团体锦标赛(19th World Youth Team Championships)将于7月12日-17日在意大利萨尔索马焦雷举办。共有来自世界各地的94支青年队参加U26,U21,U26女子,U16,U31五个组别的比赛。\n \n

    \n

    \n \n 这五个组别分别是:\n \n

    \n

    \n \n U26公开团体、冠军奖杯为帕蒂诺杯;\n \n

    \n

    \n \n U21公开团体、冠军奖杯为达米亚尼杯;\n \n

    \n

    \n \n U26女子团体、冠军奖杯为罗纳杯;\n \n

    \n

    \n \n U16公开团体、冠军奖杯为科驰大学杯;\n \n

    \n

    \n \n U31公开团体、冠军奖杯为豪威斯杯。\n \n

    \n

    \n \n 与双数年举办的世界青年跨国桥牌锦标赛(World Youth Transnational Bridge Championships)不同的是,WYTC每个世界桥联会员单位只能派一个队参加一个组别的比赛,因此这是代表国家和地区荣誉的世界青年比赛。与世界桥牌团体锦标赛一样的流程,参加世界青年桥牌团体锦标赛的参赛队必须通过世界桥联下属大区的选拔赛才能参加。\n \n

    \n

    \n \n 本次比赛中国将参加全部5个组别的比赛,5支中国代表队均是通过2025年初举办的全国青少年团体赛选拔产生,继续在2025年5月举办的亚太青年桥牌锦标赛拿到世青赛参赛资格的。\n \n

    \n

    \n \n 本次世青赛U26、 U21、U31组各有20支队,U26女子组有16队, U16有18队参加。比赛的办法是预赛进行单循环,前8名进入淘汰赛,经过1/4淘汰赛、半决赛、决赛产生最后的冠军。\n \n

    \n

    \n \n 中国队在世界青年桥牌团体锦标赛上最好成绩是2018年,在江苏吴江举办的第十七届世界青年桥牌团体锦标赛上,中国队获得了U26女子团体和U16公开团体两项冠军,这是中国青年队首次在世青赛上夺冠。\n \n

    \n

    \n \n 本次比赛世界桥联依然使用“平板叫牌、纸牌打牌”的比赛方式,这种方式对于青少年来说可能更为适合。\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 第八届世界青年跨国桥牌锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第十八届世界青年桥牌团体锦标赛闭幕,欧洲瓜分五大冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第十八届世界青年桥牌团体锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 世界青年桥牌大赛产生团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 世界青年桥牌大赛结束双人赛争夺\n \n \n \n
    \n
    \n

    \n

    \n \n \n 相关链接:世界青年桥牌大赛今日开赛\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/t0X7c2vCHHEfbl4ZMBZf9g", - "creator": "标兵桥牌", - "pubDate": "Thu, 10 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTjauh0lK8VQ3veVyoLen2EPQQTSPaNn8uxPWCZlBFqMtsplTiakVeTL8qE7FgXWO685E5aicMvr7MQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTjauh0lK8VQ3veVyoLen2EPQQTSPaNn8uxPWCZlBFqMtsplTiakVeTL8qE7FgXWO685E5aicMvr7MQ/0?wx_fmt=jpeg", - "id": "2247512710_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "f5d9ae560fa138188f746b83f0493403", - "highlights": [] - }, - { - "title": "欧公赛决赛的两副牌", - "description": "这副牌非常关键,这是第二节的最后一副,此前土耳其人一路飙升,打出一波凌厉的攻势,将比分从落后近30IMP变为领先15IMP,在上半场结束前的最后一副,齐老板将比分追回13IMP,总比分才落后2分,至关重要。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 下面两副牌,出现在决赛中,先看叫牌问题:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 北家叫什么\n \n
    \n
    \n

    \n \n 你是北家,叫牌简单的,开叫1NT,同伴2♣,你2♦没有高花,同伴3♦自然,现在你准备怎么叫?\n \n

    \n

    \n \n 同伴显示♦的同时,还有4张高花,因为他开始用的是斯台曼,无论是4张哪一门高花,如果你叫3NT,都有可能有危险,但你又不能轻易越过3NT,所以你准备怎么办呢?\n \n

    \n

    \n \n 实战中,土耳其牌手选择叫3NT,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 土耳其北家3NT\n \n
    \n
    \n

    \n \n ♥是2-2,不幸的是东家天然做出♥首攻,3NT打不成。\n \n

    \n

    \n \n 你又能怎么办呢?\n \n

    \n

    \n \n 来看齐老板的搭档诺沃萨德茨基是怎么处理的:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 齐老板的搭档叫3♠\n \n
    \n
    \n

    \n \n 诺沃萨德茨基面临的局面与土耳其人一样,但他没选择叫3NT,而是叫个3♠,3♠的好处是,在表示♦有配合的同时,如果同伴的高花是♥,3♠有抑制首攻的作用,而如果同伴的高花是♠,他巧妙地表示了♥的弱点,可谓一举三得。\n \n

    \n

    \n \n 齐老板知道同伴是3张♠,而且也知道同伴的♥不好,所以选择4♠。\n \n

    \n

    \n \n 由于将牌分布友好,4♠是个不错的定约,实战中也做成了。\n \n

    \n

    \n \n 这副牌非常关键,这是第二节的最后一副,此前土耳其人一路飙升,打出一波凌厉的攻势,将比分从落后近30IMP变为领先15IMP,在上半场结束前的最后一副,齐老板将比分追回13IMP,总比分才落后2分,至关重要。\n \n

    \n
    \n

    \n \n 再看首攻问题:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 你是东家,首攻哪一张\n \n
    \n
    \n

    \n \n 这里的叫牌也是自然性的,2NT是邀请,同伴加倍3NT,你是东家,准备首攻哪一张?\n \n

    \n

    \n \n 现在要搞清楚对方是什么类型的牌,然后再研究同伴是为何加倍。\n \n

    \n

    \n \n 同伴有加倍但不能争叫的实力,第一感觉是♦长套,无法叫牌,所以是不是要首攻♦?\n \n

    \n

    \n \n 不过,一般来说,开叫1♦的人2NT是邀请,如果是18-19点的平均型,应该直接3NT,而如果是♦套,则可以叫3♦,所以2NT大概是(4-3)-5-1或者4-4-4-1、4-4-5-0等♣短的非均型,点力在15-16点之间。\n \n

    \n

    \n \n 而同伴是♣长套,有没有可能不争叫呢?从你的♣结构来看,也不是不可能,而同伴是♦长套的可能性不高,因为叫1NT的人有♦张数,开叫人也有♦张数,你还有3张,所以综合考虑,同伴是♣的可能性大。\n \n

    \n

    \n \n 实战中, 卡利塔首攻♦,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 卡利塔首攻♦,轻松超一\n \n
    \n
    \n

    \n \n ♦的位置不利,定约人轻松超一。虽然首攻♣也无法击败定约,但只能说是卡酷司机加倍太激进了,而他所希望的,则是应该攻♣。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 齐老板首夺欧洲公开桥牌锦标赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 齐老板与土耳其进入决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 瑞波土法打进欧公赛半决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 当舒柏林遇见舒柏林\n \n \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/y-1dlbaX_Ochsj5wyC8RzA", - "creator": "标兵桥牌", - "pubDate": "Tue, 08 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512705_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "6c66baaf54362bf7e0ae12c2ceeae462", - "highlights": [] - }, - { - "title": "齐老板首夺欧洲公开桥牌锦标赛冠军", - "description": "经过8天鏖战,齐老板率领的瑞士队决赛战胜土耳其的Jeo Hidro队夺得欧洲公开桥牌锦标赛公开团体赛冠军,这是齐老板的大鳄队首次在该比赛中夺得冠军。来自波兰的Rafal Marks/Jakub Wojcieszek获得公开双人赛冠军。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 经过8天鏖战,齐老板率领的瑞士队决赛战胜土耳其的Jeo Hidro队夺得欧洲公开桥牌锦标赛公开团体赛冠军,这是齐老板的大鳄队首次在该比赛中夺得冠军。来自波兰的Rafal Marks/Jakub Wojcieszek获得公开双人赛冠军,女子双人赛冠军是Cathy/Sophia Baldysz,公开一副一比团体赛冠军由Daisy Chain队获得。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 齐老板队击败土耳其团队获得冠军\n \n
    \n
    \n

    \n \n 虽然齐老板的团队已经蝉联两届百慕大杯的冠军,但在欧洲公开桥牌锦标赛这一长达22年的赛事中却从未夺冠,本次比赛齐老板队在预赛中勇夺第一,淘汰赛也算顺利,决赛迎战来自土耳其的团队,开局也不错,不过第二节被土耳其团队反超,打到决胜节中,快到比赛结束时遇到一副满贯,如果土耳其选手首攻正确,将会给巴司机带来一些麻烦,比赛还有悬念,但随着满贯做成,比赛也提前结束。\n \n

    \n

    \n \n 这一冠军不光是齐老板团队的第一个冠军,也成就了巴司机和舒柏林两位在一次大赛中同时拿到混团和公团两项冠军的伟业,他们在前后15天的比赛中都是从头打到尾,这一成绩也是迄今为止首次在综合锦标赛上连夺两大团体赛冠军的纪录。\n \n

    \n
    \n

    \n \n 下面两副牌,出现在决赛中,一副是叫牌问题,一副是首攻问题:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 北家叫什么?\n \n
    \n
    \n

    \n \n 你是北家,叫牌简单的,开叫1NT,同伴2♣,你2♦没有高花,同伴3♦自然,现在你准备怎么叫?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 你是东家,首攻哪一张\n \n
    \n
    \n

    \n \n 这里的叫牌也是自然性的,2NT是邀请,同伴加倍3NT,你是东家,准备首攻哪一张?\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 齐老板与土耳其进入决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 瑞波土法打进欧公赛半决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 当舒柏林遇见舒柏林\n \n \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/1asxdMpKOlbBDgCeiMwCwQ", - "creator": "标兵桥牌", - "pubDate": "Mon, 07 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512692_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "56af1ade66565c9c643b6bcf9bd96f7d", - "highlights": [] - }, - { - "title": "齐老板与土耳其进入决赛", - "description": "欧洲公开桥牌锦标赛公团结束1/4淘汰赛,齐老板的瑞士队、波兰的Naukabrydzapl队、土耳其的JEO Hidro队、法国绿队进入半决赛。对于一个有123个队参加的跨国比赛来说,最终的四强恰好均由同一国家团队组成,是很少见的。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 欧洲公开桥牌锦标赛公团半决赛结束,齐老板率领的瑞士军团战胜波兰梅花教父贾瑟姆的家庭桥牌队,奥斯曼土耳其部队击败法国人,两队相会决赛。\n \n

    \n

    \n \n 齐老板与波兰队的半决赛在第一节就奠定了胜局,齐老板与巴舒上阵打出了71:14IMP的比分,队中主力KK组合还没出场就领先超过50IMP,后来的比赛就进入到了松弛时间,最后3节波兰团队还赢了5分。\n \n

    \n

    \n \n 与齐老板轻松获胜不同,土法大战非常激烈,双方比分一直非常接近,直到最后一节的第25副牌,也就是全场比赛的第倒数第4副,土耳其人面临首攻局面:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 6♦定约首攻哪张\n \n
    \n
    \n

    \n \n 假如你是东家,右手方开叫1♦,你争叫2♠,左手方3NT,右手方拉出4♦,然后他们叫到6♦,你准备首攻什么?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家首攻♣,击败满贯\n \n
    \n
    \n

    \n \n 实战中土耳其东家基兹洛克首攻♣9,一击命中,击败对方的满贯。实际上,只要不首攻♠,满贯都打不成。\n \n

    \n

    \n \n 这副牌也成为半决赛决定胜负的关键,如果法国人做成满贯,最后获胜的就是法国人。\n \n

    \n

    \n \n 在另外一场半决赛中,齐老板队和贾瑟姆队都叫到满贯,但首攻都是♥,定约同样没有做成。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 卡利塔首攻♥\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n 波兰人首攻♥\n \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 瑞波土法打进欧公赛半决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 当舒柏林遇见舒柏林\n \n \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/1eNZvX1Cy9F56u7fZpeU8A", - "creator": "标兵桥牌", - "pubDate": "Sun, 06 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512687_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "f8a177f20f224372b56418786352912a", - "highlights": [] - }, - { - "title": "瑞波土法打进欧公赛半决赛", - "description": "欧洲公开桥牌锦标赛公团结束1/4淘汰赛,齐老板的瑞士队、波兰的Naukabrydzapl队、土耳其的JEO Hidro队、法国绿队进入半决赛。对于一个有123个队参加的跨国比赛来说,最终的四强恰好均由同一国家团队组成,是很少见的。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 欧洲公开桥牌锦标赛公团结束1/4淘汰赛,齐老板的瑞士队、波兰的Naukabrydzapl队、土耳其的JEO Hidro队、法国绿队进入半决赛。对于一个有123个队参加的跨国比赛来说,最终的四强恰好均由同一国家团队组成,是很少见的。\n \n

    \n

    \n \n 在女子团体决赛中,美国/波兰联军Parker队战胜意大利的Tersch队获得冠军。\n \n

    \n
    \n

    \n \n 齐老板队1/4淘汰赛的对手是保加利亚队,齐老板从开局就领先,始终将主动权握在手中,在比赛的最后一节,出现了这样一副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 3♠后东家如何叫牌?\n \n
    \n
    \n

    \n \n 北家开叫2♠,你是东家,选择加倍,南家加叫3♠到你这里,选择什么叫品?\n \n

    \n

    \n \n 可以选择的叫品大概有:\n \n

    \n

    \n \n 加倍\n \n

    \n

    \n \n 4♦\n \n

    \n

    \n \n 5♦\n \n

    \n

    \n \n 4♠/4NT等显示3套牌的叫品\n \n

    \n
    \n

    \n \n 我觉得4♦ 和5♦应该第一个被排除,因为这牌不是♦单套,而是还有♥和♣可以打,特别是♥定约不应该被忽视。\n \n

    \n

    \n \n 加倍的好处是可以照顾到♥,如果同伴选择♣,再回到♦上来,但问题是万一同伴没什么好叫的,就可能Pass,对方9张以上将牌,加上位置因素,防守3♠可能不是那么合算。\n \n

    \n

    \n \n 如果认为同伴有些实力并且在♠上没什么点力,那么这牌可以积极一些,考虑往满贯走,办法是4♠或者4NT,取决于你们的约定。\n \n

    \n

    \n \n 另一个问题,无论选择加倍还是4♠、4NT,同伴叫牌后,这牌是满足成局,还是往满贯走?\n \n

    \n

    \n \n 实战中共有3桌遇到了这一进程,他们的选择都不相同。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 卡利塔选择继续加倍\n \n
    \n
    \n

    \n \n 东西方是齐老板队的KK组合,卡利塔第二次叫牌选择加倍,卡酷司机60%的点力都在♠上,他虽然有♥张数,但还是Pass,得到800分。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 斯特法诺夫选择4NT\n \n
    \n
    \n

    \n \n 保加利亚的斯特法诺夫非常积极,他先叫4NT,同伴5♣,他叫5♦,显示还有♥,然后在同伴选择5♥后扣叫5♠表示大满贯兴趣,后面他们的叫牌发生了误会,西家5NT显然是Pickup-Slam,让同伴在♦和♥中选择满贯,但斯特法诺夫觉得5NT是有大满贯兴趣,直叫7♥。\n \n

    \n

    \n \n 我觉得即使斯特法诺夫不认为5NT是选满贯,也应该考虑到,同伴没有叫6♣,没有♣K,将牌最多4-4,还是应该谨慎,而西家的5NT叫得很好,6♦定约要更加安全一些。斯特法诺夫叫品前后矛盾,他的5♦是可以停下来的,但听到同伴♥有配合就想打大满贯,这符合逻辑吗?根据统计,在阻击叫后,进攻性叫牌要低一格通常是比较合适的策略。这副牌也是,东西方停在小满贯上就能赢11-12分,而不是现在输14分。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 土耳其人叫4♠显示有♥的满贯兴趣\n \n
    \n
    \n

    \n \n 这一桌东西方是土耳其选手,东家第二次叫牌选择的是4♠,他们的约定是有♥,西家选5♥,东家直接加叫6♥。这进程也可以再探讨,此时的5NT应该仍然是Pickup-Slam,防止西家♥没有J10的时候,打到错误的满贯。\n \n

    \n

    \n \n 如果不准备往满贯走,现在KK组合的800分就是不错的结果。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 当舒柏林遇见舒柏林\n \n \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/eA-wD7vnZ1ZS4yp7pWCkVQ", - "creator": "标兵桥牌", - "pubDate": "Sat, 05 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512681_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "c7547f58f9af78c31a0279f5bd363abd", - "highlights": [] - }, - { - "title": "当舒柏林遇见舒柏林", - "description": "荷兰小将是舒柏林巴司机的晚辈,各种技巧自然也学得滚瓜纯属,德莱昂在单方无局第三家,觉得开叫3♥没什么用,于是祭起了舒柏林的独门法宝,没想到舒柏林遇见舒柏林,马上被舒柏林识破,可惜的是舒柏林没能完成3NT,他还是失败了。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 欧洲公开桥牌锦标赛公团比赛7月2日产生8强,在介绍比赛进程之前,先看下面这副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 没轮到你,上家先开叫2NT\n \n
    \n
    \n

    \n \n 两家Pass,东家开叫2NT,20-21点,你是南家,如何考虑叫牌?提示一下,东家是瑞士荷兰世界冠军舒柏林。\n \n

    \n
    \n

    \n \n 回到比赛介绍。7月2日的16强战各有惊喜,其中最大的冷门是中国台北/新加坡华人队击败意大利国手组成的芬奇队。昨天我们的文章刚刚介绍过,芬奇队通过艰难的预赛打进32强,淘汰赛击败2号种子罗森塔尔队,正准备大展身手之际,遇到了中国台北/新加坡联军阿曼达队,第一节阿曼达取得优势开局,后面也没给对方机会,一共赢了39IMP,即使不算芬奇队客户所上的两节,阿曼达队与意大利国手对抗的后两节也获得了总分2IMP的优势。看起来现在亚太地区的桥牌水平正在大步提升,非常接近了世界级水平。\n \n

    \n

    \n \n 其他场次的比赛是齐老板战胜荷兰橙队,保加利亚战胜印度/瑞典联队,两个波兰队,美国的舒里队,法国绿队,土耳其JEO队一起晋级。\n \n

    \n

    \n \n 女子团体半决赛结束,来自意大利的Tersch队和美国/波兰联军Parker队进入决赛。\n \n

    \n

    \n \n 根据欧洲桥联的报道,未来5年,即2026-2030年的欧洲冬季跨国桥牌锦标赛将落户捷克布拉格,这是欧洲桥联首次将同一比赛连续在同一举办地举办。\n \n

    \n
    \n

    \n \n 下面回到刚才的牌局:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 没轮到你,上家开叫2NT\n \n
    \n
    \n

    \n \n 南家是开叫2NT的牌,但东家在前面先开叫了,你会不会认为东家19点进行了升级,也就是你和东家有40点。不过由你首攻,你肯定能够击败2NT,你是否要行动呢?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家舒柏林询问西家,2NT开叫是什么牌?\n \n
    \n
    \n

    \n \n 这是齐老板队与荷兰橙队的比赛,东家并不是舒柏林,南家才是舒柏林,他询问西家,开叫2NT的情况,西家斯普林克许泽对他说,\n \n “你开叫2NT是什么牌,他就是什么牌!”\n \n \n

    \n
    \n

    \n \n 于是舒柏林加倍,叫牌过程如下发展:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 舒柏林加倍,东家跑3♥,舒柏林3NT\n \n
    \n
    \n

    \n \n 东家是荷兰小将盖伊门德斯德莱昂,这对小将曾经在2022年的罗森布卢姆杯上表现出色,打进了决赛。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 巴司机微笑问德莱昂,”你学的不错啊“\n \n
    \n
    \n

    \n \n 舒柏林加倍他的2NT,德莱昂跑到3♥,舒柏林自己叫3NT,西家首攻♥6,明手的牌摊下来,舒柏林心说:\n \n “别跟我来这套,这是我玩剩下的!”\n \n \n

    \n

    \n \n 舒柏林忍让♥,第二墩西家告缺,果然东家是凭♥长套诈叫2NT的,现在舒柏林已有8墩,第9墩如何而来?\n \n

    \n

    \n \n 舒柏林吃进第三墩♥,西家垫2张♦,明手垫♠,舒柏林兑现4圈♦和1墩♣,东家只有2张♦,垫了2张♣。现在怎么打?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 是飞♠还是不飞\n \n
    \n
    \n

    \n \n 已知东家有6张♥,跟出2张♦和3张♣,还有2张牌。如果东家有♠K,则拔♣看看他是否还有♣,如果没有了,就是2张♠,他不能垫♠,用♥投入东家即可,但如果东家跟出♣,他就只有1张♠,这张♠是K还是小,就需要猜断了,舒柏林决定打东家单张♠,于是他出小♠到A,准备送给西家:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 舒柏林没打对\n \n
    \n
    \n

    \n \n 可惜东家有♠K,舒柏林的打法失败了。\n \n

    \n

    \n \n \n “难道你开叫2NT还有♠K吗?这一点也不正宗啊!”\n \n 舒柏林瞪着眼睛对他的小兄弟说。\n \n

    \n

    \n \n \n 用2NT开叫做诈叫,是舒柏林的标志性叫牌之一\n \n ,他们这一叫牌,是写进约定卡的。在2024年雷辛格尔杯的决赛中,舒柏林就在我们桌上表演了一次,可惜被睿智的张永革识破,请看:\n \n

    \n

    \n \n \n \n 博取最佳——雷辛格尔杯之路——齐老板与尼老板(三)\n \n \n \n 之识破舒柏林的诡计\n \n \n

    \n

    \n \n 荷兰小将是舒柏林巴司机的晚辈,各种技巧自然也学得滚瓜纯属,德莱昂在单方无局第三家,觉得开叫3♥没什么用,于是祭起了舒柏林的独门法宝,没想到\n \n \n \n 舒柏林遇见舒柏林\n \n \n \n ,马上被舒柏林识破,可惜的是舒柏林没能完成3NT,他还是失败了。\n \n

    \n

    \n \n 从打法上看,舒柏林忽视了德莱昂♣的垫牌顺序,他表示的是3张信号,所以舒柏林如果相信他的小兄弟,应该拔♣,东家没有♣,他只能垫成单张♠K,舒柏林再考虑拔♠A。但他不能这么打的原因,是因为多忍让了一轮♥,送♠就会有1个♠、2个♥、2个♣输墩;如果他第二墩♥就停住,最后就可以安全地拔♠A,最多输1墩♠、1墩♥、2墩♣。\n \n

    \n

    \n \n 舒柏林还是没把握德莱昂的2NT到底有多少张♥。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/GYUyZ7Na50SVMA9upv-n5A", - "creator": "标兵桥牌", - "pubDate": "Fri, 04 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512674_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "5e7f7ba8baf49614c379c8f6b16dd620", - "highlights": [] - }, - { - "title": "芬奇压哨淘汰罗森塔尔", - "description": "2025年欧洲桥牌公开锦标赛公团32进16的比赛异常激烈,来自意大利的芬奇队在最后一副牌逆转淘汰赛会2号种子罗森塔尔队。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 2025年欧洲桥牌公开锦标赛公团32进16的比赛异常激烈,来自意大利的芬奇队在最后一副牌逆转淘汰赛会2号种子罗森塔尔队。\n \n

    \n

    \n \n 芬奇队的主力队员有4名意大利国手,韦尔萨切/塞门塔、多纳蒂/佩卡里奥。这是一支实力强劲的团队,不过在预赛中他们成绩并不好,最终是得益于欧洲桥联新的赛制才得以复活。\n \n

    \n

    \n \n 根据本届欧公赛的赛制规定,如果公开团体赛报名少于110个队,则按原计划,即预赛3天,前32进入淘汰赛;如果公开团体赛报名超过110个队,则使用一种新的办法,预赛前两天结束后,前60名的队直接进入淘汰赛,61名以后的队则继续进行第三天的预赛,第三天同时进行前60名的淘汰赛和61名以后的预赛,第三天的预赛前2名进入淘汰赛,与第一场淘汰赛的30个胜者构成32队进行完整的淘汰赛。\n \n

    \n

    \n \n 拥有4名意大利国手的芬奇队预赛表现实在不怎么样,他们最低名次是第102名,几经挣扎,最高曾到过第33名,但马上被打倒60名开外,2天结束后第62名,只能继续第三天的预赛。第三天的预赛还有63个队,打到前两名谈何容易,芬奇队在最后一轮的倒数第三副牌才成功上岸,这副牌就是我昨天发出的第26副,他们也得益于叫牌的精准,请看韦尔萨切和塞门塔的叫牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东西方只有10点,但4♠却是铁牌\n \n
    \n
    \n

    \n \n 西家是韦尔萨切,同伴Pass后,他5个点既不阻击也不Pass,而是在有局方开叫1♠,北家加倍,东家塞门塔2♠是弱加叫,南家应叫性加倍,韦尔萨切4♠,南北方加倍正常,但却无法击败联手只有10个点的4♠定约。\n \n

    \n

    \n \n 另外一桌多纳蒂和佩卡里奥叫到并完成5♣加倍定约,两牌相加,芬奇队赢17IMP,他们马上跳到了第一名的位置,最终艰难出线进入32强。\n \n

    \n

    \n \n 佩服韦尔萨切的勇气和胆识,这副牌的处理在淘汰赛60桌中,大部分都是开叫3♠或者4♠,只有两桌西家开叫1♠,其中一桌叫牌过程和结果,与意大利人这里完全一样。\n \n

    \n

    \n \n 芬奇队进入淘汰赛后,如梦初醒,立刻变成一头雄狮,遇到他们的2号种子罗森塔尔可谓不幸,两队大战4节,打完55副不分上下,罗森塔尔领先1分,下面是最后一副:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东西方2♥正常\n \n
    \n
    \n

    \n \n 西家佩卡里奥开叫1♥再叫2♥,最终做成定约,怎么看也不像有输赢的,2号种子似乎过关成功。\n \n

    \n

    \n \n 但另一室则出现了变数:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家叫3♣\n \n
    \n
    \n

    \n \n 东西方是临时搭档的丹麦人舒尔茨和美国牌手韦兰肯,他们使用法兰纳雷约定叫,即开叫2♦表示5张以上♥+4张♠,开叫实力,所以韦兰肯6-4高花开叫2♥,舒尔茨的3♣不逼叫,但他忽视了同伴6-4的可能,3♣定约根本无法完成,最终以宕三收场,芬奇队依靠此牌死里逃生再过一关。\n \n

    \n

    \n \n 看来舒尔茨要好好学习连氏自然,把法兰纳雷约定叫运用得更流畅。\n \n

    \n

    \n \n 芬奇队下一轮的对手是由一位中国台北女牌手、三位新加坡牌手组成的阿曼达队,他们能够延续神奇之旅,还是亚太牌手更进一步,本文发出之际即将见分晓。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/HEupnXfrM99UVCW4V0pGWg", - "creator": "标兵桥牌", - "pubDate": "Thu, 03 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512665_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "d025249010f2c3c97cb73f1c5df5a217", - "highlights": [] - }, - { - "title": "进攻性叫牌与防守性叫牌——波兹南的牌局", - "description": "桥牌其实也一样,只不过桥牌的“进攻”和“防守”,有多重的意义,除了简单的在桥牌打法中表现为做庄与防守外,还有在叫牌中也分为自己抢过来打的“进攻性叫牌”和放给对方打或者叫得较低的“防守性叫牌”。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n NBA有句格言,叫做“赢球靠进攻、夺冠靠防守”,其实足球、橄榄球等等基本上都一样,防守虽然观赏性不强,但对于成功是非常有帮助的。\n \n

    \n

    \n \n 桥牌其实也一样,只不过桥牌的“进攻”和“防守”,有多重的意义,除了简单的在桥牌打法中表现为做庄与防守外,还有在叫牌中也分为自己抢过来打的“\n \n 进攻性叫牌\n \n ”和放给对方打或者叫得较低的\n \n “防守性叫牌”\n \n 。一般来说,实力强的一方,通常会选择进攻性叫牌,因为只有完成满贯和成局定约,才能获得更高的分数,但也有例外的时候,就是当对方持弱牌介入叫牌、意图干扰时,此时强牌一方就同时了有抢过来自己打的“进攻性叫牌”,和加倍对方或者叫的较低的“防守性叫牌”两个选择。\n \n

    \n

    \n \n 一般来说,牌手们都会“进攻性叫牌”,也就是高叫,但往往忽视“防守性叫牌”的得分能力,特别是在比分落后时,往往“进攻性叫牌”会越输越多,而“防守性叫牌”则是很好的追分办法。\n \n

    \n

    \n \n 6月30日结束的欧洲公开桥牌锦标赛公开团体赛首轮淘汰赛64进32的比赛中,罗森塔尔队就上演了依靠“防守性叫牌”翻盘的一场好戏。\n \n

    \n

    \n \n 4节的比赛打完3节,预赛第2的罗森塔尔队面对第44名的哥本哈根队,落后18IMP,14副牌的比赛虽说这个比分不算多,可是要想扳回也不容易。\n \n

    \n

    \n \n 来看这副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 6♣还可以\n \n
    \n
    \n

    \n \n 南北方是哥本哈根队的保尔森和尼尔森,东西方是罗森塔尔队的舒尔茨和韦兰肯,这副牌是第26副,整场比赛的倒数第3副,此时罗森塔尔队已慢慢将比分赶上,还有6分的差距。\n \n

    \n

    \n \n 西家开叫3♠,北家加倍,东家4♠,南家4NT显示两套牌,北家实力超强,5♠扣叫挺进满贯,他们达到6♣定约。\n \n

    \n

    \n \n 联手牌看起来还不错,只要♦A在西家,就有很大的机会完成定约,即使♦A在东家,也还有双张♦J、♥3-3等机会,综合看起来这个满贯还不错。\n \n

    \n

    \n \n 北家A吃进首攻,然后拔♣A,噩耗传来:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 将牌是5-0,完不成定约了\n \n
    \n
    \n

    \n \n 将牌居然是5-0分布,看上去不错的满贯就此垮掉。\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东西可以做成4♠\n \n
    \n
    \n

    \n \n 东西方可以做成4♠,南家第一次的判断非常正确,原本他只有5-4两套,而且在低花上只有2个点,计划防守是个合理的选择,因为这副牌在60桌上很多桌都是加倍东西方的4♠而做成,从这一点来说,南家的“进攻性叫牌”选对了。\n \n

    \n

    \n \n 不过,北家并不知道南家的牌如此不堪,他也选择了“进攻性叫牌”,如果南北方在对方阻击叫后因为存在分布的不理想而稍微保守一些,就会得到很好的收益。\n \n

    \n

    \n \n 在另一桌,轮到了东西方采取了“进攻性叫牌”:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南北方选择加倍对方5♠\n \n
    \n
    \n

    \n \n 西家在第三家的开叫非常进取,他一定是秉承“12张套一定要在4阶以上叫牌”的原则,北家当然加倍,东家进一步挺进5♠,南家布格兰德这牌无疑是“防守性”,所以他Pass静观其变,当巴克再次加倍时,布格兰德选择罚放,他们吃到了200分的正分。\n \n

    \n

    \n \n 这副牌就是典型的实力更强一方需要采取“防守性叫牌”的一例。这副牌罗森塔尔队赢9IMP,一举反先,最后2副牌都在加倍中度过,罗森塔尔队最后赢了18IMP,如果哥本哈根队的南北方停在5♣上并且做成,他们这副牌会赢得9IMP,总比分就会战成平手,那时,谁输谁赢就很难讲了。\n \n

    \n

    \n \n 可谓“会进攻是徒弟、会防守才是师傅”。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/MlG5afey3PhW8jkCKRLwNA", - "creator": "标兵桥牌", - "pubDate": "Wed, 02 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512660_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "8cf9f3254a25c91aade7bc229bc8c13b", - "highlights": [] - }, - { - "title": "技惊四座的Deep Finesse打法", - "description": "欧洲桥牌团体锦标赛公开团体赛在波兰波兹南激战正酣,目前还在预赛阶段,在预赛第7轮的比赛中,我们看到了一副技惊四座的深飞打法,这是罗森塔尔队与齐默尔曼队之间发生的,主打人是挪威明星布格兰德,防守方则是卡酷司机与卡利塔。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 欧洲桥牌团体锦标赛公开团体赛在波兰波兹南激战正酣,目前还在预赛阶段,在预赛第7轮的比赛中,我们看到了一副技惊四座的深飞(Deep Finesse)打法,这是罗森塔尔队与齐默尔曼队之间发生的,主打人是挪威明星布格兰德,防守方则是卡酷司机与卡利塔。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家主打5♦,首攻将牌如何做庄?\n \n
    \n
    \n

    \n \n 叫牌过程显示了不同寻常的进取。北家巴克开叫2♣强牌,南家布格兰德一个点都没有,2♦等待,此时3♠是4张♠+5张以上♦的进局逼叫,布格兰德虽然白皮,但他有3张♦,直叫5♦,因为他不能叫4♦,这会显示更强的牌。\n \n

    \n

    \n \n 西家是卡酷司机,首攻将牌,如果你是布格兰德,如何计划这副牌的主打?\n \n

    \n

    \n \n 将牌首攻十分刁钻,即使将牌对你的分布友好,你也面临如何解决♠输张的问题,♥的输张跑不掉,必须把♠输张限制在1个,而且还不能输将牌。\n \n

    \n

    \n \n 假如将牌是2-2,你无法从手中向着明手的♠出,那么你怎么限制♠的输墩呢,如果第一墩明手将牌吃住,拔♠A再送♠,对方一定是第二张将牌,那么恐怕你只能希望♠是KQ双张或者KQx了。\n \n

    \n

    \n \n 所以一定要从手中出♠,明手的♠结构非常奇妙,如果从手中出,你总有很多机会来解决问题。\n \n

    \n

    \n \n 布格兰德就是这样考虑的,他必须回到手中出♠,以解决♠的输张问题,所以即使卡酷司机首攻将牌,他也决定打卡酷司机有将牌Q,因为他必须第一张牌就进手。当♦10吃进后,布格兰德出♠,卡酷司机顶上K,你现在准备怎么打?\n \n

    \n

    \n \n 你不能再到手中出♠了,所以这张♠一定要打对,如果你不吃,第二张将牌从西家发出,你就只剩下♠KQx的机会了。\n \n

    \n
    \n
    \n \n
    \n
    \n \n ♠的打法决定定约的成败\n \n
    \n
    \n

    \n \n 不管桥友们怎么想,只见布格兰德A吃住♠K,然后从明手送♠J,西家Q吃住,第二张将牌到明手,布格兰德再出小♠,将下东家的10,完成定约!!\n \n

    \n
    \n
    \n \n
    \n
    \n \n 送♠J给西家,然后将吃3张10\n \n
    \n
    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 布格兰德一张不差打成定约\n \n
    \n
    \n

    \n \n 这副牌如果不首攻将牌,庄家完成定约不难,他只需找到♦Q即可,因为可以将吃两次♠,有些牌桌是北家主打5♦,东首攻♥K,然后看到庄家送♠,再从东家吊将牌,不仅没用,而且还出卖了同伴的将牌Q。\n \n

    \n

    \n \n 但南家主打,几乎无人成功,特别是首攻将牌的情况下,南家主打首攻将牌的还有意大利明星韦尔萨切。\n \n

    \n
    \n

    \n \n 这副牌另一室的巴司机和舒柏林搞错了约定,叫到4♠定约,也算是奇葩一件。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 巴司机舒柏林搞错了约定\n \n
    \n
    \n

    \n \n 布格兰德这副牌的主打,丝丝入扣,每一张牌都如双明手分析软件指引一般,张张不错,令人佩服,相信这副牌也一定能够登上公报,并且在未来的年度最佳做庄奖的评选中占有一席之地。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/v1PcmPbdlPEcc8B5sGL_fA", - "creator": "标兵桥牌", - "pubDate": "Tue, 01 Jul 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512654_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "97bf92eabb331dfd5a9793e814e4cbc7", - "highlights": [] - }, - { - "title": "欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军", - "description": "6月27日,正在波兰波兹南进行的第11届欧洲公开桥牌锦标赛第一阶段比赛结束,弗姆队获得混合团体冠军,11Jaszczak队获得老年团体冠军,埃德蒙斯队获得混合一副一比团体冠军,Narkiewicz/Czajka获得混合双人赛冠军。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 6月27日,正在波兰波兹南进行的第11届欧洲公开桥牌锦标赛第一阶段比赛结束,弗姆队(Ferm)获得混合团体冠军,11Jaszczak队获得老年团体冠军,埃德蒙斯队(Edmonds)获得混合一副一比团体冠军,Narkiewicz/Czajka获得混合双人赛冠军。\n \n

    \n
    \n
    \n \n
    \n
    \n \n Ferm队获得混合团体赛冠军\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n 老年团体赛前三名\n \n
    \n
    \n

    \n \n 欧洲公开桥牌锦标赛混合团体赛共有94队参加,10轮瑞士移位赛过后,前32强进入淘汰赛,淘汰赛每天一轮,每轮56副牌分4节进行,经过5天的争夺,2022年世界桥牌综合锦标赛混合团体赛巴厘杯冠军弗姆队决赛战胜阿什队(Ashe)夺得冠军。\n \n

    \n

    \n \n 弗姆队由美国客户老太太弗姆组建,核心成员是来自瑞士的巴司机和舒柏林,还有丹麦美女马德森,3年前他们在波兰夺得世界冠军,如今再返波兰又夺欧洲冠军,看起来波兰是老太太的福地。与3年前的阵容相比,弗姆队更换了一对牌手,由瑞典美女格隆奎斯特和意大利的曼诺,替换了德国名将阿尼姆与荷兰的魏斯,显然更年轻的情侣表现更好,半决赛他们击败了阿尼姆与魏斯的Yoshka队,整个比赛格隆奎斯特/曼诺的表现都很抢眼,冠军实至名归。\n \n

    \n
    \n
    \n \n
    \n
    \n \n Ferm队的情侣组合半决赛战胜他们的前任\n \n
    \n
    \n

    \n \n 从6月28日开始,欧公赛进入第二阶段,重头戏公开团体赛开赛,目前共有123个队报名,超过了2017年意大利蒙特卡蒂尼121个队,也超过了2011年在波兹南的第5届120个队,成为此项比赛参赛队数最多的一次。比赛先进行3天15轮的瑞士移位赛,前32队进入淘汰赛,淘汰赛每天一场,7月5日结束。\n \n

    \n

    \n \n 公开团体赛才是真正的重头戏,欧洲强队以及当打知名牌手均出场亮相,这是百慕大杯赛前一次非常好的热身和预演,对于中国队的备战也很重要。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/EaSBtOh1aMr3oPsaJMlDHw", - "creator": "标兵桥牌", - "pubDate": "Sat, 28 Jun 2025 12:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512647_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "8b7e76707b846119bb7a39057abcdd4f", - "highlights": [] - }, - { - "title": "欧洲混团赛场上一副牌的两次安全打法", - "description": "桥牌赛场上,打牌是永恒的主题,只有打牌功夫过硬,才有立足于桥牌竞技中不被淘汰的资本。正在波兰波兹南进行的第11届欧洲桥牌公开锦标赛混合团体赛赛场上,不乏精彩之作,但也有令人遗憾的牌局。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 桥牌赛场上,打牌是永恒的主题,只有打牌功夫过硬,才有立足于桥牌竞技中不被淘汰的资本。\n \n

    \n

    \n \n 正在波兰波兹南进行的第11届欧洲桥牌公开锦标赛混合团体赛赛场上,不乏精彩之作,但也有令人遗憾的牌局。\n \n

    \n

    \n \n 下面这副牌发生在首轮淘汰赛中,南家是来自拉脱维亚的女牌手罗曼诺夫斯卡,她面临下面这副6♣的主打:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 如何主打6♣\n \n
    \n
    \n

    \n \n 南家主打6♣,东西方没有叫牌,首攻是♠3,如何计划主打?\n \n

    \n

    \n \n 看上去这副牌似乎丢了大满贯,将牌如果不输,♥是3-2分布的话,就有13墩了,即使西家有4张将牌,也完全有机会做成大满贯。\n \n

    \n

    \n \n 不过现在不是考虑是否丢大满贯的时候,而是要把现在的小满贯做成。南家A吃住首攻,拔将牌A,打将牌到Q,西家只有1张将牌,然后出将牌到A,现在拔♥A,西家跟小,东家跟Q,现在如何继续?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 拔♥对方掉出Q\n \n
    \n
    \n

    \n \n 现在要计算一下赢墩的情况,记住,不是打大满贯,你需要的不是13墩而是12墩。\n \n

    \n

    \n \n 有6墩将牌,还有两个高花A,拿到4墩♥就可以,你并不需要5墩♥,也就是说,你现在不需要♥3-2,而是要防止4-1如何做成,假设如果东家是单张♥Q,你继续拔♥K,就会发现手中缺少桥路,无法建立♥了,所以你怎么办呢?\n \n

    \n

    \n \n 你是不是后悔拔♥A了?没错,要防止♥的4-1分布,最好的打法是吊完将牌后,联手送小♥,因为你手中只有一张将牌是进手了,所以在♥4-1的时候,必须保留♥本身的桥路,而防守方也无法用♦逼你将吃来用掉你的将牌桥路。\n \n

    \n

    \n \n 实战中,南家罗曼诺夫斯卡没有注意桥路的问题,她简单打♥3-2,继续拔♥K,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 拔♥K定约就做不成了\n \n
    \n
    \n

    \n \n ♥4-1的,6♣再也无法打成。\n \n

    \n

    \n \n 虽然南家忽视了♥上联手送小,保持桥路的打法,但在拔出♥Q后,仍然有机会完成定约,她应该送小♥,如果原本就是3-2的,♥已经建立,如果是4-1的,西家最顽强的防守是让掉这墩♥,让明手大,但由于♦K在东家,庄家还能打成定约。\n \n

    \n

    \n \n 庄家错过了第一个安全打法后,及时补救,依靠将吃飞♦K仍然能让定约回家:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 送小♥还有机会打成\n \n
    \n
    \n

    \n \n 我们此前经常说:安全打法要像呼吸一样伴随在身。而安全打法的熟练程度,也是基本功之一。在同一副牌中能够出现两次安全打法,错过第一次还有第二次机会弥补,也是难得而珍贵的牌局之一。\n \n

    \n
    \n

    \n \n 另外,再提一个话题,就是关于满贯定约的首攻。满贯定约(此处特指小满贯)不同于成局定约,对方叫到满贯,通常不差赢墩,所以满贯定约最好的首攻是积极首攻而非消极首攻,希望在对方脱手时建立自己的防守赢墩。这副牌就是一个很好的例子,首攻♠打掉了庄家一个桥,是给庄家制造最大困难的首攻,而如果不首攻♠,就会像另外一桌,让对方打成大满贯。\n \n

    \n

    \n \n 另一桌南北方奥肯和韦兰德叫到了大满贯,在常规的将牌首攻后,有足够的桥路建立♥,并且将吃飞♦拿到13墩。\n \n

    \n

    \n \n \n 如果你担心小满贯不好打,请叫大满贯!\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/hs5rc1xmnOHOS65BEAotew", - "creator": "标兵桥牌", - "pubDate": "Thu, 26 Jun 2025 23:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512642_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "ed1d317745b122353f0e669c44fe631f", - "highlights": [] - }, - { - "title": "第11届欧洲公开桥牌锦标赛混团预赛结束", - "description": "欧洲桥牌公开锦标赛每两年举办一次,从2003年到2019年共举办了9届,但由于疫情原因2021年中断,2023年再度恢复,今年是第11届比赛,本次比赛将于6月21日-7月5日在波兰波茨南举办,波茨南曾经于2011年举办过欧洲桥牌公开锦标赛。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 6月22日,在波兰波兹南进行的第11届欧洲公开桥牌锦标赛混合团体赛预赛结束,共有94个队参加了混合团体赛的预赛,预赛进行10轮瑞士移位赛,前32名进入淘汰赛。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 混团32强淘汰赛对阵\n \n
    \n
    \n

    \n \n 10轮结束后,以波兰职业高手率领的埃德蒙斯队获得第一名,波兰/法国牌手组成的SZPILIKA队获得第二名。有趣而遗憾的是,由美国年轻牌手组成的蜜月队在转播桌坐了6轮,第一天结束还是第一名,第二天最后四场全负,最终没能晋级,他们后面有时间继续蜜月之旅了。\n \n

    \n

    \n \n 淘汰赛每轮进行一天,一共5天结束。\n \n

    \n

    \n \n 下面是比赛中的一些图片。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 混团比赛赛场\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n 欧洲比赛使用平板叫牌,纸牌打牌,每个牌桌有摄像头,所有的记录都存在\n \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/9XZTqX8gjcy09YAq4dCbnQ", - "creator": "标兵桥牌", - "pubDate": "Mon, 23 Jun 2025 23:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512636_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "926d81696677395d95a23772a9ea152c", - "highlights": [] - }, - { - "title": "第11届欧洲桥牌公开锦标赛", - "description": "欧洲桥牌公开锦标赛每两年举办一次,从2003年到2019年共举办了9届,但由于疫情原因2021年中断,2023年再度恢复,今年是第11届比赛,本次比赛将于6月21日-7月5日在波兰波茨南举办,波茨南曾经于2011年举办过欧洲桥牌公开锦标赛。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 始于2003年的欧洲桥牌公开锦标赛(11th European Transnational Championships)是欧洲桥联主办的跨国公开性赛事,包涵了公开、女子、老年、混合四个组别的团体赛和双人赛,是对标世界桥牌综合锦标赛的一项大赛,我国的全国桥牌锦标赛和全国桥牌综合锦标赛也属于这类赛事。虽说名称为欧洲桥牌公开赛,但参赛对象可以是世界各地的桥牌爱好者和专业牌手。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 欧洲桥牌公开锦标赛在波兰波兹南举办\n \n
    \n
    \n

    \n \n 欧洲桥牌公开锦标赛每两年举办一次,从2003年到2019年共举办了9届,但由于疫情原因2021年中断,2023年再度恢复,今年是第11届比赛,本次比赛将于6月21日-7月5日在波兰波茨南举办,波茨南曾经于2011年举办过第5届欧洲桥牌公开锦标赛。\n \n

    \n

    \n \n 本次比赛从报名参加的情况来看,全面超过2023年的上一届比赛,考虑到波兰还处于距离战争较近的地区,这个数据已经相当不错。截止到6月18日开赛前3天,参加公开团体赛的有116个队,大幅超过上届的87队,略多于与我国4月结束的全国桥牌锦标赛公开团体赛100个队,但还不及2019年在伊斯坦布尔的122队;女子团体赛20个队,超过上届15队,比全锦赛女子团体赛28队少;老年团体赛21队,超过上届16队,远远不及全锦赛47队;混合团体赛96队,大幅超过上届的69队,基本与全锦赛混团赛的99队接近;公开双人赛172对,超过上届121对,比全锦赛公开双人赛的193对少21对;女子双人赛23对,不如上届的29对,比全锦赛女子双人赛的49对少了一半以上;老年双人赛52对,上届36对;混合双人赛139对,上届113对,接近全锦赛混双的137对。\n \n

    \n

    \n \n 欧洲公开赛以混合团体赛和公开团体赛为头尾,两项比赛分别是2天预赛和3天预赛,淘汰赛均为5天,先进行混团、后进行公团。期间穿插女团、老年团体和双人赛。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 比赛场馆外景\n \n
    \n
    \n

    \n \n 由于本次比赛适逢国内全运会桥牌预赛,因此没有国内团队前往波兰参赛。\n \n

    \n

    \n \n 所有比赛全程在BBO进行转播,比赛从北京时间每天下午4点开始,至午夜结束。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/4UEOFqcgA5tbMw2LeQEk7g", - "creator": "标兵桥牌", - "pubDate": "Sat, 21 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", - "id": "2247512631_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "42be146c34516610da8d260cffeec8fb", - "highlights": [] - }, - { - "title": "世界桥联公布2024年大师分排行榜", - "description": "2024年底,世界桥联公布了世界桥牌运动会结束后世界桥联大师分的排行榜。牌坛奇人齐老板仍然领跑公开组,这已经是他自从2021年登顶之后,连续第四年蝉联世界桥联大师分第一人的宝座了。女子排行榜、老年排行榜、混合排行榜的榜首也各有其主。", - "content": "
    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 2024年底,世界桥联公布了世界桥牌运动会结束后世界桥联大师分的排行榜。\n \n

    \n

    \n \n 牌坛奇人齐老板仍然领跑公开组,这已经是他自从2021年登顶之后,连续第四年蝉联世界桥联大师分第一人的宝座了。女子大师分排行榜、老年大师分排行榜、混合大师分排行榜的榜首,分别是瑞典、丹麦、法国牌手。\n \n

    \n

    \n \n 下面是公开组前40名牌手的排名:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 2024年世界桥联公开组大师分排行榜\n \n
    \n
    \n

    \n \n 我们能够看到,排在前六名的是齐刷刷的瑞士队牌手,其中齐老板高居第一,超过了第二名卡酷司机近500分,相当于一个世界季军的名次差距。最晚加入瑞士队的诺沃萨德茨基分数最低,但也比第7名的海尔格莫多了100多分。\n \n

    \n

    \n \n 瑞士大鳄从2021年开始在世界牌坛的兴风作浪,先后拿到了2022年、2023年百慕大杯冠军,2024年世界桥牌运动会季军,年年登上世界锦标赛的领奖台,大师分增值无人能比。\n \n

    \n

    \n \n 瑞士队之后的排名相对分散,原因是这些牌手无法在世界比赛中集中火力,形成统一团队竞争。\n \n

    \n

    \n \n 其中小海借助早年在摩纳哥队的成绩,加上近年代表挪威,还有去年世界桥牌运动会跨国团体赛的冠军,得以领跑除瑞士团队的世界牌手。\n \n

    \n

    \n \n 小海之下,是波兰队的新科世界冠军布雷茨排在第8名,布雷茨在阿根廷拿到了世界桥牌运动会冠军后,加上他2019年百慕大杯冠军、2022年世界桥牌双人赛冠军,他已经成为波兰唯一的大三冠成员,波兰牌手即使强如加夫雷西、卡利塔、卡酷司机,也没有拿到3种世界冠军的牌手。\n \n

    \n

    \n \n 再往下排名,是第9名和第12名意大利的韦尔萨切与塞门塔。自从劳爷退休后,“小沃”的发小塞门塔成为他的新搭档,两人很快进入状态,成为意大利队的新台柱,先后拿下2023年百慕大杯季军和2024年世界桥牌运动会亚军,也在世界桥联世界桥牌巡回赛的积分榜上连续两年排名第一。\n \n

    \n

    \n \n 插在两位意大利牌手中间的是荷兰明星穆勒和魏斯,他们虽然从2024年开始退出了荷兰国家队,但凭借2019年、2022年百慕大杯的亚军、2022年欧锦赛冠军等成绩,仍然领跑荷兰牌手。不过老穆勒与魏斯的状态从2023年开始急剧下滑,已有逐步退出世界级牌手的趋势,最近他们参加了中国的A类俱乐部联赛。\n \n

    \n

    \n \n 美国的莫斯排在12名,超过了14名和15名的尼老板与搭档凯茨,波兰老将加夫雷西退出瑞士队后,仍然依靠此前的积累,排在第13名。\n \n

    \n

    \n \n 新西兰的威布利(Michael Whibley)占据了第一页的位置,他排在第17名,是亚太地区排名最高的牌手,得益于新西兰最近不错的成绩,以及去年世界桥牌运动会跨国团体赛的亚军。\n \n

    \n

    \n \n 在第一页位置的,多数是2024年世界桥牌运动会成绩不错的牌手。\n \n

    \n

    \n \n 中国牌手排名最高的是现役国家队队员连勇,他以971.75分排在第81名,刚好超过劳爷1.05分。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 世界桥联大师分排行榜齐老板遥遥领先\n \n \n

    \n

    \n \n 相关链接:\n \n 世界桥联公报最新大师分、齐老板坐稳世界第一\n \n \n

    \n

    \n \n 相关链接:\n \n 世界桥联最新大师分排行榜、摩纳哥众将排名靠前\n \n \n

    \n

    \n \n 相关链接:\n \n 世界桥联公布最新大师分、Helgemo登顶世界第一人\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读(二)男子特级大师排行榜解读\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读(三)世界桥联女子及中国牌手排行榜\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读(四)世界桥联大师分政策和等级制度的变迁对中国牌手的影响\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 一览众山小——齐老板登顶世界第一之路\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 一览众山小——齐老板登顶世界第一之路(二)\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 一览众山小——齐老板登顶世界第一之路 (续完)\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/i8ozGVJzORLNLKLSgY9RYg", - "creator": "标兵桥牌", - "pubDate": "Mon, 16 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDSibjfuNWY4LAB2pN77qbPPaynicibuLW2nEp8bqVrvuouOCgYlbWfciaLXGkM5VzZpZdpb8Z3HAAS28A/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDSibjfuNWY4LAB2pN77qbPPaynicibuLW2nEp8bqVrvuouOCgYlbWfciaLXGkM5VzZpZdpb8Z3HAAS28A/0?wx_fmt=jpeg", - "id": "2247512614_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "d493b9eff95dc7208df749197028ae29", - "highlights": [] - }, - { - "title": "2025年北欧桥牌锦标赛结束", - "description": "6月5-8日,2025年北欧桥牌锦标赛(The Nordic Championship)在冰岛小镇Laugravatn举行。瑞典、芬兰、挪威、法罗群岛、丹麦、冰岛这6家北欧桥联的成员参加了比赛。丹麦获得公开团体冠军,挪威获得女子团体冠军。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 6月5-8日,2025年北欧桥牌锦标赛(The Nordic Championship)在冰岛小镇Laugravatn举行。瑞典、芬兰、挪威、法罗群岛、丹麦、冰岛这6家北欧桥联的成员参加了比赛。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 谁能说出北欧六国国旗对应的国家\n \n
    \n
    \n

    \n \n 比赛分为公开团体和女子团体两个项目,由于今年世界桥牌团体锦标赛在丹麦举行,北欧六国中瑞典、挪威、丹麦均获得了参加世锦赛的资格,这次比赛也是他们世锦赛前非常好的练兵机会。\n \n

    \n

    \n \n 经过4天比赛,丹麦获得公开团体冠军,挪威、瑞典分获二、三名。挪威获得女子团体冠军,丹麦、瑞典分获二、三名。获得两项团体赛前三名的恰好均是参加世锦赛的代表,这也恰如其分地说明了他们在北欧桥牌中的地位。\n \n

    \n

    \n \n 本次比赛中,丹麦男女队派出的选手基本上是参加世锦赛的队员,挪威女队派出了参加威尼斯杯的队员,挪威男队有一对牌手是参加百慕大杯的队员,对即将参加世锦赛的中国国家队而言,研究和观察他们的比赛,也是赛前备战的内容之一。\n \n

    \n

    \n \n 从6月开始,欧洲以及北美包括网络上将陆续进行一系列的重要比赛,欧美列强将参加这些比赛进行世锦赛前热身,这也是中国国家队研究对手的良好机会。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 2025年欧洲小联赛布加勒斯特完赛\n \n \n

    \n

    \n \n 相关链接:\n \n 叫牌用平板、打牌用纸牌——2022年欧洲小联盟赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 罗纳时代结束——世界桥联主席换届\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/4FObKuBiU2eBA8lw2Zy-3w", - "creator": "标兵桥牌", - "pubDate": "Tue, 10 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDRYno20Pe5bW627sL0rMdJqVCibbphJ8abNtTPtwf2CxWwiaouKfUbnD60ASZT2oDDUNicJDPRzvySPg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDRYno20Pe5bW627sL0rMdJqVCibbphJ8abNtTPtwf2CxWwiaouKfUbnD60ASZT2oDDUNicJDPRzvySPg/0?wx_fmt=jpeg", - "id": "2247512609_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "6e60cc8d1cf3de1b74a9ea47f0bffcc4", - "highlights": [] - }, - { - "title": "美国国家队名单出炉", - "description": "5月26日当地时间,美国国家队选拔赛老年团体赛2025年6月1日,美国桥牌协会(USBF)公布了参加2025年世界桥牌团体锦标赛的8支美国队参赛名单。由于美国选拔赛允许一名选手报名多项比赛,因此在选拔赛全部结束后,各个美国国家队进行了调整。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 2025年6月1日,美国桥牌协会(USBF)公布了参加2025年世界桥牌团体锦标赛的8支美国队参赛名单。\n \n

    \n

    \n \n 美国国家队选拔赛从4月24日开始,先后经历了公开团体、女子团体、混合团体、老年团体四个项目的选拔赛,产生了每个项目2支,共8支美国队。由于美国选拔赛允许一名选手报名多项比赛,因此在所选拔出来的原始团队中有需要更换队员和增加队员的。在选拔赛全部结束后,进行了调整。\n \n

    \n

    \n \n 根据美国国家队选拔规则,每名队员可以报名参加多个项目,但必须提前告知所参加项目的优先顺序,比如某位队员同时报名公开团体和混合团体项目,他需要选择哪一个项目是第一顺位,如果选择混合团体是第一顺位,则在公开团体入选后,仍然可以参加混合团体的选拔,如果混合团体选中,则必须代表混合团体放弃公开团体,如果混合团体没有选中,则可以代表公开团体。如果选择公开团体是第一顺位,在公开团体选中后,就不需要参加混合团体的选拔了。\n \n

    \n

    \n \n 这种现象,在公开团体选拔结束后,发生在了美国2队罗森塔尔队中,他们队中的大部分牌手都同时报名了公开团体和混合团体,优先顺序是公开团体,在入选公开团体美国2队后,该队队员都不再参加混合团体的选拔了。\n \n

    \n
    \n

    \n \n 下面是美国国家队的全部名单:\n \n

    \n

    \n \n Bermuda Bowl (Open teams):\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Adam Kaplan - Finn Kolesnik\n \n
    \n \n Adam Grossack - Eddie Wold\n \n
    \n \n Kevin Bathurst* - John Hurd\n \n
    \n \n NPC:Bob Morris\n \n

    \n

    \n \n \n 由于美国1队是4人队入选,其中Bathurst/Hurd是他们增加的队员。\n \n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Andrew Rosenthal - Aaron Silverstein\n \n
    \n \n Eldad Ginossar - Chris Wilenken\n \n
    \n \n Zach Grossack - Michael Rosenberg\n \n
    \n \n NPC:Rob Barrington\n \n

    \n

    \n \n Venice Cup (Women's Teams):\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Lynn Baker - Olivia Schireson\n \n
    \n \n Amber Lin - Debbie Rosenberg\n \n
    \n \n Emma Kolesnik* - JoAnna Stansby*\n \n
    \n \n NPC:Joe Stokes\n \n

    \n

    \n \n \n 威尼斯杯美国1队入选的队员还有瑞典Rimstedt姐妹,但她们的第一优先权是混合团体,同时又入选了混合团体美国2队,所以威尼斯杯美国1队增加了Kolesnik/Stansby一对。\n \n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Susan Zhang - Sylvia Shi\n \n
    \n \n Jill Meyers - Kerri Sanborn\n \n
    \n \n Janice Molson - Migry Campanile*\n \n
    \n \n NPC:Josh Donn\n \n

    \n

    \n \n \n 同样原因,苏珊·张的团队中Jenny Wolpert同时入选了混合团体美国1队,因此苏珊·张队增加了Campanile作为新队员。\n \n \n

    \n

    \n \n Wuhan Cup (Mixed Teams)\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Stewart Rubenstein - Anam Tebha\n \n
    \n \n Giorgia Botta - John Kranyak\n \n
    \n \n Vince Demuy - Jenny Wolpert\n \n
    \n \n NPC: Harrison Luba\n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Joan Millens - Shan Huang\n \n
    \n \n Cecilia Dwyer Rimstedt - Kevin Dwyer Rimstedt\n \n
    \n \n Sandra Rimstedt - Joe Grue*\n \n
    \n \n NPC: Alex Hudson\n \n

    \n

    \n \n \n 混合团体美国2队是5人队参赛,增加了Joe Grue作为新队员。\n \n \n

    \n

    \n \n D'Orsi Senior Trophy (Senior Teams)\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Jeff Wolfson - Steve Garner\n \n
    \n \n David Berkowitz - Larry Cohen\n \n
    \n \n Michael Kamil - Jeff Meckstroth\n \n
    \n \n NPC: Jan Martel\n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Hemant Lall - Reese Milner\n \n
    \n \n Bobby Levin - Eric Rodwell\n \n
    \n \n Zia Mahmood - Alan Sontag*\n \n
    \n \n NPC: Phil Clayton\n \n

    \n

    \n \n \n 老年团体美国2队更换了一位队员,Alan Sontag替换了Sam Lev。\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n

    \n \n 相关链接:\n \n 美国老年队选拔赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 美国混团选拔赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 美国混团选拔赛第一轮淘汰赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 公开组美国2队与美国女队产生\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——走过路过不要错过3NT\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——及时转舵、躲开障眼法\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——魏因斯坦的狡诈\n \n \n

    \n

    \n \n 相关链接:\n \n 小虎队直扑日德兰——卡普兰队获得美国1队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 转载:通往努沙杜瓦——如风少年冲向巴厘岛——记Kranyak队获得美国1队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——老麦与小芬传统与现代的差别\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——弗老板失去平衡\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——时机和控制\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——当老麦遇上老罗\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——小罗森博格的诈叫\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——致命的猜断\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——正常开叫还是阻击开叫\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 老罗重回世锦赛——美国老年队、女队选拔赛结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 美国混团选拔赛结束,苏珊·张队赢得资格\n \n \n \n

    \n

    \n \n 相关链接:\n \n 弗雷舍获得2024年美国队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 2024年美国国家队选拔赛开赛\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2023年美国国家队选拔赛争议中结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2022年美国国家队选拔赛结束\n \n \n \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 尼克尔队率先拿到百慕大杯美国1队资格\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 平板电脑还是纸牌?职业牌手有分歧\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 通往武汉之路:美国国家队选拔赛\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/GhzYkoR_DU1jwpJEaWo7yQ", - "creator": "标兵桥牌", - "pubDate": "Sun, 08 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDR7X9icVUiczjyqmaA8vgG0PGfZLhCfDludjw1D8I8qm28RhEg2ibgWIey41EY5icTic2IQboZhr6qqf3A/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDR7X9icVUiczjyqmaA8vgG0PGfZLhCfDludjw1D8I8qm28RhEg2ibgWIey41EY5icTic2IQboZhr6qqf3A/0?wx_fmt=jpeg", - "id": "2247512604_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "904cfda1cd5a396451f15015355b3b1e", - "highlights": [] - }, - { - "title": "最后一张世锦赛门票发出,全华班加拿大女队艰难获得", - "description": "北京时间6月2日上午,加拿大与墨西哥女队的附加赛结束,全华班加拿大女队以202:167IMP战胜对手拿到前往丹麦参加世界桥牌团体锦标赛的最后一张门票。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 北京时间6月2日上午,加拿大与墨西哥女队的附加赛结束,全华班加拿大女队以202:167IMP战胜对手拿到前往丹麦参加世界桥牌团体锦标赛的最后一张门票。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 加拿大女队获得威尼斯杯资格\n \n
    \n
    \n

    \n \n 加拿大与墨西哥同属世界桥联第2区,与美国一个区,该区有3个参加世锦赛的名额,其中美国独占两个资格,余下该区的加拿大、墨西哥争夺另一个名额。在大部分的情况下,墨西哥是不参与竞争世锦赛资格的,因此我们在世界桥牌团体锦标赛上看到的基本上都是加拿大的身影,本次世锦赛资格赛也是一样,公团、混团、老团的资格均由加拿大获得,入选加拿大国家队,就相当于直接进入了世锦赛。\n \n

    \n

    \n \n 不过今年有点特殊情况,墨西哥宣布要参加女子团体赛的争夺,因此在加拿大女队选拔赛结束后,还要与墨西哥打附加赛。这比赛的时间定在了5月31日,此时所有地区的选拔赛均已结束,只剩下女子团体威尼斯杯这最后一个资格了。\n \n

    \n

    \n \n 与墨西哥的比赛进行的十分艰苦,8节比赛打完前7节,比分始终胶着,最后的决胜节前,加拿大女队还落后3分,决胜节的发挥堪称完美,大胜对手拿到了通往丹麦的门票。\n \n

    \n

    \n \n 加拿大女队全部由活跃在北美地区的华人组成,她们热爱桥牌,能够参加世锦赛威尼斯杯是她们的梦想,预祝她们丹麦的圆梦之旅顺利。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 老罗重回世锦赛——美国老年队、女队选拔赛结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 美国混团选拔赛结束,苏珊·张队赢得资格\n \n \n \n

    \n

    \n \n 相关链接:\n \n 弗雷舍获得2024年美国队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 2024年美国国家队选拔赛开赛\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2023年美国国家队选拔赛争议中结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2022年美国国家队选拔赛结束\n \n \n \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 尼克尔队率先拿到百慕大杯美国1队资格\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 平板电脑还是纸牌?职业牌手有分歧\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 通往武汉之路:美国国家队选拔赛\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/oMvOUnizaYy4eFU6jMLozg", - "creator": "标兵桥牌", - "pubDate": "Fri, 06 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDRda8jbPFNWBhWgicGibibbjjNDKCMicY72yicOcSHiaicK2b3J2GCQFoYE8gLvyYicBPDwwXwXicRXMPTX0lA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDRda8jbPFNWBhWgicGibibbjjNDKCMicY72yicOcSHiaicK2b3J2GCQFoYE8gLvyYicBPDwwXwXicRXMPTX0lA/0?wx_fmt=jpeg", - "id": "2247512600_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "c3ebf678a16026350b5dc82df17d4d69", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:一副小牌的攻防与叫牌", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月23日每日一牌:一副小牌的攻防与叫牌\n \n

    \n

    \n \n 桥友们大多数喜欢大牌,满贯、高阶竞叫、加倍等等,因为大牌来的分数多,让人们看的热血沸腾。相比来说,小牌就很乏味,小牌攻防环节多,也比较复杂,产生的输赢较小,所以通常不被重视。\n \n

    \n

    \n \n 不过小牌同样重要,小牌产生的输赢,也是非常可观的。\n \n

    \n

    \n \n 下面这副牌是第二循环第11轮,中国对澳大利亚,此前澳大利亚领先中国,这副小牌在这场双VP的比赛中显得异常重要。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家主打2♣\n \n
    \n
    \n

    \n \n 我是东家,开叫2♣成为最后定约,南家首攻♦A,怎么考虑?\n \n

    \n

    \n \n 联手有4-4的♠配合,但却难以找到,这是强梅花体系中的2♣开叫所带来不利之处,但好处是对方的8张♥配合也找不到了。从牌面上看,可能的输张有2墩♠、2墩♥、2墩♦、1墩♣,如果♠J、♥A、♣Q的位置有利,也是极有希望做成定约的。\n \n

    \n

    \n \n 南北方使用反式张数和姿态信号,在有将定约中,他们主要使用张数信号,南家的♦A后,同伴跟3,他改为拔♥A,解决了我的♥问题,北家跟8,然后南家再打♥,我的K吃住。\n \n

    \n

    \n \n 现在出♣J飞牌,南家有Q,吃住后,他略作思考,又出♣给明手,现在局面如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 现在明手出牌\n \n
    \n
    \n

    \n \n 明手最后一个桥被用掉了,已经输了3墩,还有一个♦要输,看起来就要马上决战♠了,最大的概率就是直接出10飞J,你准备这样打吗?\n \n

    \n
    \n

    \n \n 实战中,我将吃第三张♥,然后清将牌,南家有4张,我把他全清光,明手垫♠,手中送出♦J,南家吃住,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家被投入,只能再拿一墩♠A了\n \n
    \n
    \n

    \n \n 南家只有♠和♦可出了,无论出哪一门,我都只输一墩♠A,完成定约。我为何要这样打,因为南家的防守清楚地告诉我,所有大牌都在他手里,我不能飞♠J,而他的牌型,我也判断他没有很长的套,因为如果有长套,他很可能在2♣后争叫,他的牌很像现在这个牌型。\n \n

    \n

    \n \n 如果南家在我的♦J不出K如何?我可以明手的Q超打,然后再出小♦,送给南家,还原为实战中的情况。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 不用♦K吃也只是延缓被投入\n \n
    \n
    \n
    \n

    \n \n 值得一提的是叫牌,现在很多打精确法的牌手都不愿意开叫2♣,但有所不知2♣也并非都是弱点,也有它的长处,这副牌在另一室东家开叫10-13点的1NT,南家加倍,然后南北方抢到♥定约做成140分。假如东家开叫自然法的1♣或者精确法的1♦,南家都是争叫1NT,北家转移,东西方很难再行动抢出♠定约,实战中,有8桌都是南北方打♥定约吃到140分,而东西方打2♣的,只有我这一桌。\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:满贯要有想象力\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:剥光投入显身手\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:连氏自然轻松满贯\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:心中有挡、无将不慌\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/mOns8vzMGRhHVuKF9DajUQ", - "creator": "标兵桥牌", - "pubDate": "Wed, 04 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512595_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "30306c42a579ceff24b8e7ac06bc2a90", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:满贯要有想象力", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月22日每日一牌:满贯要有想象力\n \n

    \n

    \n \n 桥牌比赛中的满贯叫牌是胜负的关键,满贯叫牌是一个很复杂的工程,不仅需要搭档间非常好的默契、系统中有相应的工具、最重要的还要有想象力。\n \n

    \n

    \n \n 下面这副牌,发生在第一循环第4轮对阵新西兰的比赛中,中国男队的张永革,就做了一个非常有想象力的叫品,达到了优秀的大满贯。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 当了解到同伴没有将牌Q后,如何发展?\n \n
    \n
    \n

    \n \n 南北方是强梅花体系,南家开叫1♣,北家2♣自然叫且进局逼叫,南家2♥,北家直接3♠显示4张♥支持和♠单缺,张永革马上4NT问关键张,当知道关键张不缺时,询问将牌Q。\n \n

    \n

    \n \n 但同伴告知没有将牌Q。\n \n

    \n

    \n \n 这时怎么办?张永革已经有3墩♠、2墩♥、1墩♦、3墩♣9个顶张大牌赢墩,如果♣3-2分布或者有J甚至有10,则还有2墩♣长牌赢墩,同时以♣做将牌还可以将吃一次♦,这样就有了12墩,如果同伴有♦K,或者单张♠J,或者有♥J时♥是单张Q,或者♥2-2等,这些综合概率,已经远超50%,经过综合考虑,张永革决定叫出颇具想象力的叫品:7♣。\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 7♣是铁牌\n \n
    \n
    \n

    \n \n 联手牌配置非常完美,首攻是将牌,张永革明手放小吃住东家的9,拔掉♦A,打将牌到明手的A,将吃♦,拔♠A,大将吃♠,吊将牌吃到13墩。\n \n

    \n
    \n

    \n \n 这副牌在公开团体所有牌桌中,有硬拼7♥的,但由于将牌的不利分布而宕掉,也有做得好一些的叫7NT,7NT确实要好于7♥,在没有首攻♠的情况下,虽然打不对♥,但却可以对东西方施行双挤。\n \n

    \n

    \n \n 可是,7♣才是联手的最佳定约。\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:剥光投入显身手\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:连氏自然轻松满贯\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:心中有挡、无将不慌\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/krlt_NpTNqw1TntMjo3n-Q", - "creator": "标兵桥牌", - "pubDate": "Tue, 03 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512589_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "dac49435f96482edfe68df0fb36a008c", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:剥光投入显身手", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月21日每日一牌:剥光投入显身手\n \n

    \n

    \n \n 打牌的基本技术是读牌,认真阅读对方的牌情后,方能找到正确的路线。\n \n

    \n

    \n \n 下面这副牌发生在第二循环对阵印度尼西亚,孙纲的主打堪称精准。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 孙纲主打5♣\n \n
    \n
    \n

    \n \n 西家是孙纲,开叫强梅花,北家加倍显示双高花,蔡阳再加倍表示8点以上,进局逼叫,南家阻击3♠,孙纲先Pass,在同伴加倍后,跳叫5♣成为最后定约。\n \n

    \n

    \n \n 首攻是♠A,继续拔K,庄家将吃后,如何考虑做庄?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 防守从两张♠大牌开始\n \n
    \n
    \n

    \n \n 做成定约的关键是如何避免♦有两个输张,飞♥是没有用的,解决不了♦的问题。♦的普通打法是飞J,但这副牌成立吗?\n \n

    \n

    \n \n 孙纲先出将牌到明手,都有跟出,再拔♥AK明手将吃♥,南北方都跟出,然后孙纲出将牌到手中,北家跟出了两张将牌,南家垫♠。局面如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 北家有2张将牌\n \n
    \n
    \n

    \n \n 现在仔细想一想,北家是什么牌?\n \n

    \n

    \n \n 南北方的♠很像是5-5配合,而北家的牌也很像是5-5高花,他已经跟出两张将牌,那么他的♦就是单张,即使不是单张,也不会超过2张,所以飞♦J的概率大大降低了。\n \n

    \n

    \n \n 孙纲判断北家是5-5-1-2牌型,于是他打小♦,北家跟小,他明手上Q,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 打对♦,南家被投入\n \n
    \n
    \n

    \n \n 南家陷入困境,如果A吃,则被投入,如果A不吃,则明手再出♦,就只输一墩♦了。\n \n

    \n

    \n \n 实战中南家A吃住Q,出小♦,孙纲放小,明手10吃到,完成5♣。\n \n

    \n

    \n \n 北家必须第二墩换攻♦,南家马上出A给北家将吃,才能击败5♣。如果南家不上A,而是出小,庄家则可以剥光♥,然后从明手出♠Q,手中垫♦,投入北家,北家只有高花可出,被迫给庄家将吃垫牌,♦输张消失。\n \n

    \n

    \n \n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:连氏自然轻松满贯\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:心中有挡、无将不慌\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/wN9dVtuhJM97x5qk8PsV-A", - "creator": "标兵桥牌", - "pubDate": "Mon, 02 Jun 2025 00:02:32 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512585_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "1477f7b86cceef32ddd423d3016b516f", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:连氏自然轻松满贯", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月20日每日一牌:连氏自然轻松满贯\n \n

    \n

    \n \n 中国男队的队长连若旸,使用的叫牌武器是独具风格的“连氏自然“体系,虽然在某些方面不够前卫,但使用熟练、搭档默契,同样具有很强的战斗力。\n \n

    \n

    \n \n 下面这副牌的满贯叫牌,简洁而清晰,没有使用一个约定叫:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 没有使用一个约定叫的满贯\n \n
    \n
    \n

    \n \n 连若旸与连勇使用连氏自然体系,连勇开叫1♦,连若旸虽然♥单张,但牌力不足二盖一,又没有4张高花,所以先应叫1NT,连勇逆叫2♥,显示额外实力,♦和♥至少5-4以上,连若旸加叫3♦,连勇3♠,显示♠大牌的同时,也显示了♣单张,连若旸扣叫4♣,连勇跳叫5♦。这时连若旸面临选择,他认为同伴跳叫显示6张♦,他有两个黑花A,且还有单张,于是加叫6♦。\n \n

    \n

    \n \n 双方叫牌没有使用一个约定叫,全部是自然而流畅地叫品,这也正是连氏自然的特点。\n \n

    \n

    \n \n 6♦是个非常好的定约,首攻♠后,连勇从明手出♥,然后将吃两次♥轻松做成。\n \n

    \n

    \n \n 这副牌全场只有一半牌桌叫到满贯,泰国队停在3NT上,中国男队赢10IMP,缩小了本场比赛的差距。\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:心中有挡、无将不慌\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/L75dvQEdNwHh-Zfx5SPVUA", - "creator": "标兵桥牌", - "pubDate": "Sun, 01 Jun 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512579_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7f580d300fabb2b9fe49f6576a73d9f3", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:心中有挡、无将不慌", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月19日每日一牌:心中有挡、无将不慌\n \n

    \n

    \n \n 桥友们都知道著名的哈曼规则第一条:如果3NT是一个可以选择的定约,就叫3NT。\n \n

    \n

    \n \n 套用我们的俗话,叫做:走过路过,不要错过3NT。\n \n

    \n

    \n \n 当我们在叫牌中可以选择时,3NT是优选,这个很容易理解。但是,如果看上去,3NT并不是看上去一个可以选择的定约时,还能选3NT吗?\n \n

    \n

    \n \n 中国男队的蔡阳,在下面这副牌的处理,就给桥友们做了一个榜样:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家如何选择叫品?\n \n
    \n
    \n

    \n \n 西家开叫3♥,两个Pass转到南家,选择什么叫品?\n \n

    \n

    \n \n 可供选择的大概有:Pass,加倍,4♦,3NT。\n \n

    \n

    \n \n 没有一个叫品是舒服的:\n \n

    \n

    \n \n · Pass太委屈,自己有15点,对方阻击叫,如果同伴有一些点力,就被对方的阻击叫拦住了,绝不情愿。\n \n

    \n

    \n \n · 加倍的问题是♠太短,同伴如果叫3♠,还是没解决任何问题,如果跳叫4♠,也很不舒服。\n \n

    \n

    \n \n · 4♦的好处是叫出了自己最长最强的花色,但这牌要打什么呢?5♦太远,4♦都有可能打不成。\n \n

    \n

    \n \n · 3NT不可选的原因是对方长套花色没有挡张,但除了这一缺点,就没有任何缺陷了。点力足够,赢墩也有,至于挡张嘛…… 管它呢,别忘了你还有个同伴,同伴说不定能帮你挡住,就算同伴挡不住,没准西家间张结构还不攻呢。\n \n

    \n
    \n

    \n \n 蔡阳选择3NT,他成功了吗?\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 3NT是最佳定约\n \n
    \n
    \n

    \n \n 这是中国男队第一循环对阵中国香港的一副牌,实战中西家首攻♠Q,蔡阳先取6墩♠,东家放弃了♦,蔡阳再拿6墩♦,加上♥A,全卷13墩。\n \n

    \n

    \n \n 看,西家♥连接张都没首攻,假如明手的♥是Kx或者什么都没有,3NT都做成啦!\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/z0GqwfNMdTFUEdkOglYv1A", - "creator": "标兵桥牌", - "pubDate": "Sat, 31 May 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512576_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "bf069e2911ea545aad791222bdeddb68", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:精彩的四红心", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月18日每日一牌:精彩的4♥\n \n

    \n

    \n \n 我们常说,桥牌比的就是判断力和执行力,特别是攻防环节,先判断牌型和牌点位置,再执行完成目标。\n \n

    \n

    \n \n 本届亚太赛上,中国男队的连勇,在第一循环迎战澳大利亚时,打出了下面这副精彩的做庄。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家主打4♥\n \n
    \n
    \n

    \n \n 东家连勇开叫1♥,西家连若旸的3♦是限制性加叫或更好,北家争叫4♣,西家4♥结束叫牌。\n \n

    \n

    \n \n 首攻是♣,北家兑现两墩♣后,出♦脱手,现在如何考虑?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 如何把♠和♦的输张控制在一个\n \n
    \n
    \n

    \n \n ♦的飞牌如果成功,什么时候都可以进行,连勇♦A拿住,两轮将牌停在明手,北家都跟出,如果♦Q在南家,就需要做好♠垫掉♦,而联手的♠,有可能输1-2墩,在限制只输1墩♠的情况下,能否获得3墩就是焦点。\n \n

    \n

    \n \n 北家在4阶上争叫,他很可能有♠K,但也不是绝对的,如果北家是3张♠且有K,庄家几乎无法避免输掉两墩♠,如果是两张♠且有K,则可以先拔♠A,北家不解封,就再拔掉♦K,打♠投入北家。\n \n

    \n

    \n \n 但北家如果没有♠K呢?可以飞中♠K且送3-3,用第4张♠垫♦,也可以打南家4张以上♠和♦Q,挤住南家。\n \n

    \n

    \n \n 所以,现在首先需要进行的,就是♠K的判断。\n \n

    \n

    \n \n 连勇找到一个好办法,他从明手出小♠,此时北家有♠K很难不上,至少是给北家增加了一定的压力,如果北家出小牌,可以假设南家有♠K,然后根据北家的牌型对南家实施不同的操作:\n \n

    \n

    \n \n 兑现♦K,北家如果跟出♦,则♠不超过2张,可以兑现将牌挤住南家;如果北家跟不出♦,则♠是3-3,下一圈飞♠K就可以做好第四张♠。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 从明手出♠做试探打法\n \n
    \n
    \n

    \n \n 实战中,当连勇打小♠到10,南家打出K,意图迷惑连勇,但连勇仍然采取挤牌路线做成了定约。\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家被挤住\n \n
    \n
    \n

    \n \n 这副牌在锦标赛公团中,只有连勇一桌做成了4♥。与中国台北队对阵的新西兰的庄家,因为北家争叫♣,判断北家有♠K,他决定打北家双张K,但没有成功,亚洲桥王黄光辉建议,如果打♠K在北家,可以先从明手出小♠,这正是连勇实战的打法。\n \n

    \n

    \n \n 澳大利亚的庄家则飞♠K,虽然成功,但他却追求3-3,定约宕掉。\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/YsbU0ZqyoOzWP_V3IZXtzA", - "creator": "标兵桥牌", - "pubDate": "Fri, 30 May 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512572_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "e8464543f510223436e2028719dd5ce0", - "highlights": [] - }, - { - "title": "亚太赛每日一牌回顾:有趣的四红心", - "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月17日每日一牌:有趣的4♥\n \n

    \n

    \n \n 在主打时,需要制定计划,找到看似不可能发生但能够完成定约的路线,而找到一条路线时,需要反复确认,是否可行。\n \n

    \n

    \n \n 下面是亚太锦标赛第一循环中国男队对韩国队的一副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家主打4♥加倍定约\n \n
    \n
    \n

    \n \n 东家开叫1♦,至少4张以上,南家争叫4♥,转到东家加倍,成为最后定约。\n \n

    \n

    \n \n 南家主打4♥加倍定约,西家首攻♦7,明手的牌看起来没什么用,先摆小,东家A吃, 马上出♦,现在庄家怎么办?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 首攻♦到A,东家再出♦\n \n
    \n
    \n

    \n \n 将牌足够结实,不怕对方提升将牌,♦和将牌各有一个输墩,♠上面的输墩如何逃脱?如果自己手中出♠,至少要输两墩。\n \n

    \n

    \n \n 庄家发现,对方只有3张将牌,而且除了A之外,都是小将牌,假如将牌2-1分布,庄家就是铁牌了。他可以大将吃♦,打小将牌,如果西家是Ax两张,无论他出哪一张,明手都可以进手兑现♦赢墩,并且从明手出♠。\n \n

    \n

    \n \n 再进行下一步行动之前,先考虑一下对方是什么牌,西家是否确定是2张将牌。\n \n

    \n

    \n \n 西家没有叫4♠,不像有4张以上的♠,假如西家是单张♦,同时也只有2张将牌,那么他就是3-2-1-7牌型,他是否会选择叫5♣?如果西家的高花更短,他的♣相应更长,也更不容易Pass。\n \n

    \n

    \n \n 如果大将吃♦,打小将牌到明手的路线成功,需要西家是2张将牌、2张♦、不超过3张♠。\n \n

    \n

    \n \n 实战中,中国男队的庄家决定采取将牌2-1分布的路线,他大将吃♦,打小将牌,西家先跟小,明手将牌9大,发现将牌3-0,只好从明手出♠,东家不知为何抢上♠A,替庄家解决了♠问题,定约做成。\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家犯错,完成定约\n \n
    \n
    \n

    \n \n 这副牌在另一室的叫牌也是南家直接争叫4♥,但连若旸没有选择Pass准备罚放,而是直接加倍希望同伴叫牌,同伴叫出5♣,还赚了一个加倍。这副牌中国队两边成局,获得16IMP。\n \n

    \n

    \n \n 顺便谈一下东家的防守,虽然明显的♠A不应该马上出,但在第一墩♦A吃进后,它并不能确定同伴是单张♦,贸然继续♦,一旦庄家单张♦,可能损失惨重,更好的出牌还是试试♣,从同伴Pass 4♥并没有叫4♠来看,庄家的♠有一定的长度,他的♣较短,如果庄家是AQ双张♣,他至少还有4张♠,♦几乎肯定是单张了,所以出♦更不安全。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/fs-IXTIprP-cFsg1E2bafQ", - "creator": "标兵桥牌", - "pubDate": "Thu, 29 May 2025 00:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", - "id": "2247512565_1", - "language": "", - "folder": "桥牌", - "feed": "标兵1桥牌", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "b2ba7615ea76a0fee1a3212e0c63f7bd", - "highlights": [] - }, { "title": "研究:置身大自然会对你体验时间的方式产生深远影响", "description": "
    \n\n \n\n \n \n\n

    研究发现,置身大自然会让你感觉时间过得更慢,有助于将你的注意力从眼前转移到未来的需求上。你将能够延迟即时满足感,转而追求长期回报,而不是永远生活在“只求过得去”的状态中。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Do you ever get that feeling that there aren't enough hours in the day? That time is somehow racing away from you, and it is impossible to fit everything in. But then, you step outside into the countryside and suddenly everything seems slower, more relaxed, like time has somehow changed.

    \n

    你是否有过这样的感觉:一天的时间不够用?时间不知不觉地从你身边溜走,不可能把所有事情都安排好。但是,当你走到郊外,突然间一切都变得缓慢、轻松起来,就好像时间发生了某种变化。

    \n

     

    \n

    It's not just you – recent research showed nature can regulate our sense of time.

    \n

    不仅仅是你,最近的研究表明,大自然可以调节我们的时间感。

    \n

     

    \n

    For many of us, the combined demands of work, home and family mean that we are always feeling like we don't have enough time. Time poverty has also been exacerbated by digital technologies. Permanent connectivity extends working hours and can make it difficult to switch off from the demands of friends and family.

    \n

    对我们许多人来说,工作、家庭和家人的综合需求意味着我们总是感觉时间不够用。数字技术也加剧了时间贫乏。永久连接延长了工作时间,也使我们难以摆脱朋友和家人的要求。

    \n

     

    \n

    Recent research suggests that the antidote to our lack of time may lie in the natural world. Psychologist Richardo Correia, at the University of Turku in Finland, found that being in nature may change how we experience time and, perhaps, even give us the sense of time abundance.

    \n

    最新研究表明,解决我们时间匮乏问题的良方可能在于自然世界。芬兰图尔库大学的心理学家理查多·科雷亚发现,身处在大自然中可能会改变我们对时间的体验方式,甚至可能让我们感觉到时间的充裕。

    \n

     

    \n

    Correia examined research which compared people's experiences of time when they performed different types of tasks in urban and natural environments. These studies consistently showed that people report a sense of expanded time when they were in nature compared to when they were in an urban environment.

    \n

    科雷亚查阅了比较人们在城市和自然环境中执行不同类型任务时对时间体验的研究。这些研究一致表明,与在城市环境中相比,人们在大自然中会有时间更充裕的感觉。

    \n

     

    \n

    For example, people are more likely to perceive a walk in the countryside as longer than a walk of the same length in the city. Similarly, people report perceiving time as passing more slowly while performing tasks in natural green environments than in urban environments. Nature seems to slow and expand our sense of time.

    \n

    例如,与在城市中散步相比,人们更倾向于认为在郊外散步的时间更长。同样,与城市环境相比,人们在绿色自然环境中执行任务时会觉得时间过得更慢。大自然似乎减缓并扩展了我们的时间感。

    \n

     

    \n

    It's not just our sense of time in the moment which appears to be altered by the natural world, it's also our sense of the past and future. Previous research shows that spending time in nature helps to shift our focus from the immediate moment towards our future needs. So rather than focusing on the stress of the demands on our time, nature helps us to see the bigger picture.

    \n

    自然世界似乎不仅改变了我们当下的时间感,还改变了我们对过去和未来的时间感。先前的研究表明,在大自然中度过的时间有助于将我们的注意力从眼前转移到未来的需求上。因此,大自然会帮助我们看到更广阔的前景,而不是专注于时间要求带给我们的压力。

    \n

     

    \n

    This can help us to prioritise our actions so that we meet our long-term goals rather than living in a perpetual state of \"just about keeping our head above water\".

    \n

    这可以帮助我们确定行动的轻重缓急,从而实现我们的长期目标,而不是永远生活在“只求过得去”的状态中。

    \n

     

    \n

    This is in part because spending time in nature appears to make us less impulsive, enabling us to delay instant gratification in favour of long-term rewards.

    \n

    这在一定程度上是因为在大自然中度过的时间似乎会让我们不那么冲动,使我们能够延迟即时满足感,转而追求长期回报。

    \n

     

    \n
    \n \n
    \n Photo/Pexels \n
    \n
    \n

     

    \n

    Why does nature affect our sense of time?

    \n

    为什么大自然会影响我们的时间观念?

    \n

     

    \n

    Spending time in nature is known to have many benefits for health and wellbeing. Having access to natural spaces such as beaches, parks and woodlands is associated with reduced anxiety and depression, improved sleep, reduced levels of obesity and cardiovascular disease, and improved wellbeing.

    \n

    众所周知,在大自然中度过时光对健康和幸福有很多好处。拥有海滩、公园和林地等自然空间与减少焦虑和抑郁、改善睡眠、降低肥胖和心血管疾病水平以及提高幸福感有关。

    \n

     

    \n

    Some of these benefits may explain why being in nature alters our experience of time.

    \n

    其中一些好处或许可以解释为什么身处大自然中会改变我们对时间的体验。

    \n

     

    \n

    The way we experience time is shaped by our internal biological state and the events going on in the world around us. As a result, emotions such as stress, anxiety and fear can distort our sense of the passage of time.

    \n

    我们体验时间的方式是由我们的内在生理状态和周围世界发生的事件决定的。因此,压力、焦虑和恐惧等情绪会扭曲我们对时间流逝的感知。

    \n

     

    \n

    The relaxing effect of natural environments may counter stress and anxiety, resulting in a more stable experience of time. Indeed, the absence of access to nature during COVID-19 may help to explain why people's sense of time became so distorted during the pandemic lockdowns.

    \n

    自然环境的放松效果可以抵消压力和焦虑,使我们对时间的体验更加稳定。事实上,在新冠疫情期间无法接触大自然可能有助于解释为什么在大流行病封锁期间人们的时间感会变得如此扭曲。

    \n

     

    \n

    In the short term, being away from the demands of modern day life may provide the respite needed to re-prioritise life, and reduce time pressure by focusing on what actually needs to be done. In the longer term, time in nature may help to enhance our memory and attention capacity, making us better able to deal with the demands on our time.

    \n

    从短期来看,远离现代生活的需求可以让我们得到喘息的机会,从而重新确定生活的优先次序,并通过专注于真正需要做的事情来减轻时间压力。从长远来看,在大自然中度过的时间可能有助于增强我们的记忆力和注意力,使我们能够更好地处理对时间的需求。

    \n

     

    \n

    Accessing nature

    \n

    亲近大自然

    \n

     

    \n

    Getting out into nature may sound like a simple fix, but for many people, particularly those living in urban areas, nature can be hard to access. Green infrastructure such as trees, woodlands, parks and allotments in and around towns and cities are essential to making sure the benefits of time in nature are accessible to everyone.

    \n

    到大自然中去听起来似乎很简单,但对很多人来说,尤其是生活在城市地区的人,可能很难接触到大自然。要确保每个人都能享受到大自然带来的益处,城镇及周边地区的树木、林地、公园和种植园等绿色基础设施是必不可少的。

    \n

     

    \n

    If spending time in nature isn't possible for you, there are other ways that you can regain control of your time. Start by closely examining how you use time throughout your week. Auditing your time can help you see where time is being wasted and to identify action to help you to free up more time in your life.

    \n

    如果您无法在大自然中度过美好时光,您还可以通过其他方式重新掌控自己的时间。首先,仔细检查自己一周中如何利用时间。审核时间可以帮助您发现时间浪费在哪里,并确定行动,帮助您在生活中腾出更多时间。

    \n

     

    \n

    Alternatively, try to set yourself some boundaries in how you use time. This could be limiting when you access emails and social media, or it could be booking in time in your calendar to take a break. Taking control of your time and how you use it can help to you overcome the sense that time is running away from you.

    \n

    或者,在如何使用时间方面为自己设定一些界限。这可以是限制您访问电子邮件和社交媒体的时间,也可以是在您的日历中预定休息时间。控制好自己的时间和使用方式,有助于克服 “时间正在离你远去”的感觉。

    \n

     

    \n

    来源:The Conversation、Science Alert、煎蛋网

    \n

    编辑:丹妮

    \n

    审校:董静、齐磊

    \n\n
    ", @@ -4795,25 +3893,267 @@ "highlights": [] }, { - "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", - "description": "内容简介本书是一本针对所有层次的Python 读者而作的Python 入门书。", - "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "title": "欧公赛决赛的两副牌", + "description": "这副牌非常关键,这是第二节的最后一副,此前土耳其人一路飙升,打出一波凌厉的攻势,将比分从落后近30IMP变为领先15IMP,在上半场结束前的最后一副,齐老板将比分追回13IMP,总比分才落后2分,至关重要。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 下面两副牌,出现在决赛中,先看叫牌问题:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 北家叫什么\n \n
    \n
    \n

    \n \n 你是北家,叫牌简单的,开叫1NT,同伴2♣,你2♦没有高花,同伴3♦自然,现在你准备怎么叫?\n \n

    \n

    \n \n 同伴显示♦的同时,还有4张高花,因为他开始用的是斯台曼,无论是4张哪一门高花,如果你叫3NT,都有可能有危险,但你又不能轻易越过3NT,所以你准备怎么办呢?\n \n

    \n

    \n \n 实战中,土耳其牌手选择叫3NT,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 土耳其北家3NT\n \n
    \n
    \n

    \n \n ♥是2-2,不幸的是东家天然做出♥首攻,3NT打不成。\n \n

    \n

    \n \n 你又能怎么办呢?\n \n

    \n

    \n \n 来看齐老板的搭档诺沃萨德茨基是怎么处理的:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 齐老板的搭档叫3♠\n \n
    \n
    \n

    \n \n 诺沃萨德茨基面临的局面与土耳其人一样,但他没选择叫3NT,而是叫个3♠,3♠的好处是,在表示♦有配合的同时,如果同伴的高花是♥,3♠有抑制首攻的作用,而如果同伴的高花是♠,他巧妙地表示了♥的弱点,可谓一举三得。\n \n

    \n

    \n \n 齐老板知道同伴是3张♠,而且也知道同伴的♥不好,所以选择4♠。\n \n

    \n

    \n \n 由于将牌分布友好,4♠是个不错的定约,实战中也做成了。\n \n

    \n

    \n \n 这副牌非常关键,这是第二节的最后一副,此前土耳其人一路飙升,打出一波凌厉的攻势,将比分从落后近30IMP变为领先15IMP,在上半场结束前的最后一副,齐老板将比分追回13IMP,总比分才落后2分,至关重要。\n \n

    \n
    \n

    \n \n 再看首攻问题:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 你是东家,首攻哪一张\n \n
    \n
    \n

    \n \n 这里的叫牌也是自然性的,2NT是邀请,同伴加倍3NT,你是东家,准备首攻哪一张?\n \n

    \n

    \n \n 现在要搞清楚对方是什么类型的牌,然后再研究同伴是为何加倍。\n \n

    \n

    \n \n 同伴有加倍但不能争叫的实力,第一感觉是♦长套,无法叫牌,所以是不是要首攻♦?\n \n

    \n

    \n \n 不过,一般来说,开叫1♦的人2NT是邀请,如果是18-19点的平均型,应该直接3NT,而如果是♦套,则可以叫3♦,所以2NT大概是(4-3)-5-1或者4-4-4-1、4-4-5-0等♣短的非均型,点力在15-16点之间。\n \n

    \n

    \n \n 而同伴是♣长套,有没有可能不争叫呢?从你的♣结构来看,也不是不可能,而同伴是♦长套的可能性不高,因为叫1NT的人有♦张数,开叫人也有♦张数,你还有3张,所以综合考虑,同伴是♣的可能性大。\n \n

    \n

    \n \n 实战中, 卡利塔首攻♦,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 卡利塔首攻♦,轻松超一\n \n
    \n
    \n

    \n \n ♦的位置不利,定约人轻松超一。虽然首攻♣也无法击败定约,但只能说是卡酷司机加倍太激进了,而他所希望的,则是应该攻♣。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 齐老板首夺欧洲公开桥牌锦标赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 齐老板与土耳其进入决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 瑞波土法打进欧公赛半决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 当舒柏林遇见舒柏林\n \n \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", "category": "", - "link": "https://mp.weixin.qq.com/s/OBYA9CqtM2SJz3V0OsMNMw", - "creator": "python开发工程师", - "pubDate": "Fri, 27 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bENYGODukDQ8iaKoSXOKkIEz9iaAdM2HiaTL77jqDuHqbple8NGD0NlMFQ/0?wx_fmt=jpeg", + "link": "https://mp.weixin.qq.com/s/y-1dlbaX_Ochsj5wyC8RzA", + "creator": "标兵桥牌", + "pubDate": "Tue, 08 Jul 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bENYGODukDQ8iaKoSXOKkIEz9iaAdM2HiaTL77jqDuHqbple8NGD0NlMFQ/0?wx_fmt=jpeg", - "id": "2247511245_2", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "id": "2247512705_1", "language": "", - "folder": "IT技术", - "feed": "python开发工程师", + "folder": "桥牌", + "feed": "标兵1桥牌", "read": false, "favorite": false, "created": false, "tags": [], - "hash": "761a8deb7a6670d138fbe73449a68ef1", + "hash": "6c66baaf54362bf7e0ae12c2ceeae462", + "highlights": [] + }, + { + "title": "齐老板与土耳其进入决赛", + "description": "欧洲公开桥牌锦标赛公团结束1/4淘汰赛,齐老板的瑞士队、波兰的Naukabrydzapl队、土耳其的JEO Hidro队、法国绿队进入半决赛。对于一个有123个队参加的跨国比赛来说,最终的四强恰好均由同一国家团队组成,是很少见的。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 欧洲公开桥牌锦标赛公团半决赛结束,齐老板率领的瑞士军团战胜波兰梅花教父贾瑟姆的家庭桥牌队,奥斯曼土耳其部队击败法国人,两队相会决赛。\n \n

    \n

    \n \n 齐老板与波兰队的半决赛在第一节就奠定了胜局,齐老板与巴舒上阵打出了71:14IMP的比分,队中主力KK组合还没出场就领先超过50IMP,后来的比赛就进入到了松弛时间,最后3节波兰团队还赢了5分。\n \n

    \n

    \n \n 与齐老板轻松获胜不同,土法大战非常激烈,双方比分一直非常接近,直到最后一节的第25副牌,也就是全场比赛的第倒数第4副,土耳其人面临首攻局面:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 6♦定约首攻哪张\n \n
    \n
    \n

    \n \n 假如你是东家,右手方开叫1♦,你争叫2♠,左手方3NT,右手方拉出4♦,然后他们叫到6♦,你准备首攻什么?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家首攻♣,击败满贯\n \n
    \n
    \n

    \n \n 实战中土耳其东家基兹洛克首攻♣9,一击命中,击败对方的满贯。实际上,只要不首攻♠,满贯都打不成。\n \n

    \n

    \n \n 这副牌也成为半决赛决定胜负的关键,如果法国人做成满贯,最后获胜的就是法国人。\n \n

    \n

    \n \n 在另外一场半决赛中,齐老板队和贾瑟姆队都叫到满贯,但首攻都是♥,定约同样没有做成。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 卡利塔首攻♥\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n 波兰人首攻♥\n \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 瑞波土法打进欧公赛半决赛\n \n \n

    \n

    \n \n 相关链接:\n \n 当舒柏林遇见舒柏林\n \n \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/1eNZvX1Cy9F56u7fZpeU8A", + "creator": "标兵桥牌", + "pubDate": "Sun, 06 Jul 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "id": "2247512687_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "f8a177f20f224372b56418786352912a", + "highlights": [] + }, + { + "title": "当舒柏林遇见舒柏林", + "description": "荷兰小将是舒柏林巴司机的晚辈,各种技巧自然也学得滚瓜纯属,德莱昂在单方无局第三家,觉得开叫3♥没什么用,于是祭起了舒柏林的独门法宝,没想到舒柏林遇见舒柏林,马上被舒柏林识破,可惜的是舒柏林没能完成3NT,他还是失败了。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 欧洲公开桥牌锦标赛公团比赛7月2日产生8强,在介绍比赛进程之前,先看下面这副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 没轮到你,上家先开叫2NT\n \n
    \n
    \n

    \n \n 两家Pass,东家开叫2NT,20-21点,你是南家,如何考虑叫牌?提示一下,东家是瑞士荷兰世界冠军舒柏林。\n \n

    \n
    \n

    \n \n 回到比赛介绍。7月2日的16强战各有惊喜,其中最大的冷门是中国台北/新加坡华人队击败意大利国手组成的芬奇队。昨天我们的文章刚刚介绍过,芬奇队通过艰难的预赛打进32强,淘汰赛击败2号种子罗森塔尔队,正准备大展身手之际,遇到了中国台北/新加坡联军阿曼达队,第一节阿曼达取得优势开局,后面也没给对方机会,一共赢了39IMP,即使不算芬奇队客户所上的两节,阿曼达队与意大利国手对抗的后两节也获得了总分2IMP的优势。看起来现在亚太地区的桥牌水平正在大步提升,非常接近了世界级水平。\n \n

    \n

    \n \n 其他场次的比赛是齐老板战胜荷兰橙队,保加利亚战胜印度/瑞典联队,两个波兰队,美国的舒里队,法国绿队,土耳其JEO队一起晋级。\n \n

    \n

    \n \n 女子团体半决赛结束,来自意大利的Tersch队和美国/波兰联军Parker队进入决赛。\n \n

    \n

    \n \n 根据欧洲桥联的报道,未来5年,即2026-2030年的欧洲冬季跨国桥牌锦标赛将落户捷克布拉格,这是欧洲桥联首次将同一比赛连续在同一举办地举办。\n \n

    \n
    \n

    \n \n 下面回到刚才的牌局:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 没轮到你,上家开叫2NT\n \n
    \n
    \n

    \n \n 南家是开叫2NT的牌,但东家在前面先开叫了,你会不会认为东家19点进行了升级,也就是你和东家有40点。不过由你首攻,你肯定能够击败2NT,你是否要行动呢?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家舒柏林询问西家,2NT开叫是什么牌?\n \n
    \n
    \n

    \n \n 这是齐老板队与荷兰橙队的比赛,东家并不是舒柏林,南家才是舒柏林,他询问西家,开叫2NT的情况,西家斯普林克许泽对他说,\n \n “你开叫2NT是什么牌,他就是什么牌!”\n \n \n

    \n
    \n

    \n \n 于是舒柏林加倍,叫牌过程如下发展:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 舒柏林加倍,东家跑3♥,舒柏林3NT\n \n
    \n
    \n

    \n \n 东家是荷兰小将盖伊门德斯德莱昂,这对小将曾经在2022年的罗森布卢姆杯上表现出色,打进了决赛。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 巴司机微笑问德莱昂,”你学的不错啊“\n \n
    \n
    \n

    \n \n 舒柏林加倍他的2NT,德莱昂跑到3♥,舒柏林自己叫3NT,西家首攻♥6,明手的牌摊下来,舒柏林心说:\n \n “别跟我来这套,这是我玩剩下的!”\n \n \n

    \n

    \n \n 舒柏林忍让♥,第二墩西家告缺,果然东家是凭♥长套诈叫2NT的,现在舒柏林已有8墩,第9墩如何而来?\n \n

    \n

    \n \n 舒柏林吃进第三墩♥,西家垫2张♦,明手垫♠,舒柏林兑现4圈♦和1墩♣,东家只有2张♦,垫了2张♣。现在怎么打?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 是飞♠还是不飞\n \n
    \n
    \n

    \n \n 已知东家有6张♥,跟出2张♦和3张♣,还有2张牌。如果东家有♠K,则拔♣看看他是否还有♣,如果没有了,就是2张♠,他不能垫♠,用♥投入东家即可,但如果东家跟出♣,他就只有1张♠,这张♠是K还是小,就需要猜断了,舒柏林决定打东家单张♠,于是他出小♠到A,准备送给西家:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 舒柏林没打对\n \n
    \n
    \n

    \n \n 可惜东家有♠K,舒柏林的打法失败了。\n \n

    \n

    \n \n \n “难道你开叫2NT还有♠K吗?这一点也不正宗啊!”\n \n 舒柏林瞪着眼睛对他的小兄弟说。\n \n

    \n

    \n \n \n 用2NT开叫做诈叫,是舒柏林的标志性叫牌之一\n \n ,他们这一叫牌,是写进约定卡的。在2024年雷辛格尔杯的决赛中,舒柏林就在我们桌上表演了一次,可惜被睿智的张永革识破,请看:\n \n

    \n

    \n \n \n \n 博取最佳——雷辛格尔杯之路——齐老板与尼老板(三)\n \n \n \n 之识破舒柏林的诡计\n \n \n

    \n

    \n \n 荷兰小将是舒柏林巴司机的晚辈,各种技巧自然也学得滚瓜纯属,德莱昂在单方无局第三家,觉得开叫3♥没什么用,于是祭起了舒柏林的独门法宝,没想到\n \n \n \n 舒柏林遇见舒柏林\n \n \n \n ,马上被舒柏林识破,可惜的是舒柏林没能完成3NT,他还是失败了。\n \n

    \n

    \n \n 从打法上看,舒柏林忽视了德莱昂♣的垫牌顺序,他表示的是3张信号,所以舒柏林如果相信他的小兄弟,应该拔♣,东家没有♣,他只能垫成单张♠K,舒柏林再考虑拔♠A。但他不能这么打的原因,是因为多忍让了一轮♥,送♠就会有1个♠、2个♥、2个♣输墩;如果他第二墩♥就停住,最后就可以安全地拔♠A,最多输1墩♠、1墩♥、2墩♣。\n \n

    \n

    \n \n 舒柏林还是没把握德莱昂的2NT到底有多少张♥。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 芬奇压哨淘汰罗森塔尔\n \n \n

    \n

    \n \n 相关链接:\n \n 进攻性叫牌与防守性叫牌——波兹南的牌局\n \n \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/GYUyZ7Na50SVMA9upv-n5A", + "creator": "标兵桥牌", + "pubDate": "Fri, 04 Jul 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "id": "2247512674_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "5e7f7ba8baf49614c379c8f6b16dd620", + "highlights": [] + }, + { + "title": "进攻性叫牌与防守性叫牌——波兹南的牌局", + "description": "桥牌其实也一样,只不过桥牌的“进攻”和“防守”,有多重的意义,除了简单的在桥牌打法中表现为做庄与防守外,还有在叫牌中也分为自己抢过来打的“进攻性叫牌”和放给对方打或者叫得较低的“防守性叫牌”。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n NBA有句格言,叫做“赢球靠进攻、夺冠靠防守”,其实足球、橄榄球等等基本上都一样,防守虽然观赏性不强,但对于成功是非常有帮助的。\n \n

    \n

    \n \n 桥牌其实也一样,只不过桥牌的“进攻”和“防守”,有多重的意义,除了简单的在桥牌打法中表现为做庄与防守外,还有在叫牌中也分为自己抢过来打的“\n \n 进攻性叫牌\n \n ”和放给对方打或者叫得较低的\n \n “防守性叫牌”\n \n 。一般来说,实力强的一方,通常会选择进攻性叫牌,因为只有完成满贯和成局定约,才能获得更高的分数,但也有例外的时候,就是当对方持弱牌介入叫牌、意图干扰时,此时强牌一方就同时了有抢过来自己打的“进攻性叫牌”,和加倍对方或者叫的较低的“防守性叫牌”两个选择。\n \n

    \n

    \n \n 一般来说,牌手们都会“进攻性叫牌”,也就是高叫,但往往忽视“防守性叫牌”的得分能力,特别是在比分落后时,往往“进攻性叫牌”会越输越多,而“防守性叫牌”则是很好的追分办法。\n \n

    \n

    \n \n 6月30日结束的欧洲公开桥牌锦标赛公开团体赛首轮淘汰赛64进32的比赛中,罗森塔尔队就上演了依靠“防守性叫牌”翻盘的一场好戏。\n \n

    \n

    \n \n 4节的比赛打完3节,预赛第2的罗森塔尔队面对第44名的哥本哈根队,落后18IMP,14副牌的比赛虽说这个比分不算多,可是要想扳回也不容易。\n \n

    \n

    \n \n 来看这副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 6♣还可以\n \n
    \n
    \n

    \n \n 南北方是哥本哈根队的保尔森和尼尔森,东西方是罗森塔尔队的舒尔茨和韦兰肯,这副牌是第26副,整场比赛的倒数第3副,此时罗森塔尔队已慢慢将比分赶上,还有6分的差距。\n \n

    \n

    \n \n 西家开叫3♠,北家加倍,东家4♠,南家4NT显示两套牌,北家实力超强,5♠扣叫挺进满贯,他们达到6♣定约。\n \n

    \n

    \n \n 联手牌看起来还不错,只要♦A在西家,就有很大的机会完成定约,即使♦A在东家,也还有双张♦J、♥3-3等机会,综合看起来这个满贯还不错。\n \n

    \n

    \n \n 北家A吃进首攻,然后拔♣A,噩耗传来:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 将牌是5-0,完不成定约了\n \n
    \n
    \n

    \n \n 将牌居然是5-0分布,看上去不错的满贯就此垮掉。\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东西可以做成4♠\n \n
    \n
    \n

    \n \n 东西方可以做成4♠,南家第一次的判断非常正确,原本他只有5-4两套,而且在低花上只有2个点,计划防守是个合理的选择,因为这副牌在60桌上很多桌都是加倍东西方的4♠而做成,从这一点来说,南家的“进攻性叫牌”选对了。\n \n

    \n

    \n \n 不过,北家并不知道南家的牌如此不堪,他也选择了“进攻性叫牌”,如果南北方在对方阻击叫后因为存在分布的不理想而稍微保守一些,就会得到很好的收益。\n \n

    \n

    \n \n 在另一桌,轮到了东西方采取了“进攻性叫牌”:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南北方选择加倍对方5♠\n \n
    \n
    \n

    \n \n 西家在第三家的开叫非常进取,他一定是秉承“12张套一定要在4阶以上叫牌”的原则,北家当然加倍,东家进一步挺进5♠,南家布格兰德这牌无疑是“防守性”,所以他Pass静观其变,当巴克再次加倍时,布格兰德选择罚放,他们吃到了200分的正分。\n \n

    \n

    \n \n 这副牌就是典型的实力更强一方需要采取“防守性叫牌”的一例。这副牌罗森塔尔队赢9IMP,一举反先,最后2副牌都在加倍中度过,罗森塔尔队最后赢了18IMP,如果哥本哈根队的南北方停在5♣上并且做成,他们这副牌会赢得9IMP,总比分就会战成平手,那时,谁输谁赢就很难讲了。\n \n

    \n

    \n \n 可谓“会进攻是徒弟、会防守才是师傅”。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 技惊四座的Deep Finesse打法\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/MlG5afey3PhW8jkCKRLwNA", + "creator": "标兵桥牌", + "pubDate": "Wed, 02 Jul 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "id": "2247512660_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8cf9f3254a25c91aade7bc229bc8c13b", + "highlights": [] + }, + { + "title": "欧洲公开桥牌锦标赛第一阶段结束、弗姆队获得欧洲混团冠军", + "description": "6月27日,正在波兰波兹南进行的第11届欧洲公开桥牌锦标赛第一阶段比赛结束,弗姆队获得混合团体冠军,11Jaszczak队获得老年团体冠军,埃德蒙斯队获得混合一副一比团体冠军,Narkiewicz/Czajka获得混合双人赛冠军。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 6月27日,正在波兰波兹南进行的第11届欧洲公开桥牌锦标赛第一阶段比赛结束,弗姆队(Ferm)获得混合团体冠军,11Jaszczak队获得老年团体冠军,埃德蒙斯队(Edmonds)获得混合一副一比团体冠军,Narkiewicz/Czajka获得混合双人赛冠军。\n \n

    \n
    \n
    \n \n
    \n
    \n \n Ferm队获得混合团体赛冠军\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n 老年团体赛前三名\n \n
    \n
    \n

    \n \n 欧洲公开桥牌锦标赛混合团体赛共有94队参加,10轮瑞士移位赛过后,前32强进入淘汰赛,淘汰赛每天一轮,每轮56副牌分4节进行,经过5天的争夺,2022年世界桥牌综合锦标赛混合团体赛巴厘杯冠军弗姆队决赛战胜阿什队(Ashe)夺得冠军。\n \n

    \n

    \n \n 弗姆队由美国客户老太太弗姆组建,核心成员是来自瑞士的巴司机和舒柏林,还有丹麦美女马德森,3年前他们在波兰夺得世界冠军,如今再返波兰又夺欧洲冠军,看起来波兰是老太太的福地。与3年前的阵容相比,弗姆队更换了一对牌手,由瑞典美女格隆奎斯特和意大利的曼诺,替换了德国名将阿尼姆与荷兰的魏斯,显然更年轻的情侣表现更好,半决赛他们击败了阿尼姆与魏斯的Yoshka队,整个比赛格隆奎斯特/曼诺的表现都很抢眼,冠军实至名归。\n \n

    \n
    \n
    \n \n
    \n
    \n \n Ferm队的情侣组合半决赛战胜他们的前任\n \n
    \n
    \n

    \n \n 从6月28日开始,欧公赛进入第二阶段,重头戏公开团体赛开赛,目前共有123个队报名,超过了2017年意大利蒙特卡蒂尼121个队,也超过了2011年在波兹南的第5届120个队,成为此项比赛参赛队数最多的一次。比赛先进行3天15轮的瑞士移位赛,前32队进入淘汰赛,淘汰赛每天一场,7月5日结束。\n \n

    \n

    \n \n 公开团体赛才是真正的重头戏,欧洲强队以及当打知名牌手均出场亮相,这是百慕大杯赛前一次非常好的热身和预演,对于中国队的备战也很重要。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲混团赛场上一副牌的两次安全打法\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲公开桥牌锦标赛混团预赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/EaSBtOh1aMr3oPsaJMlDHw", + "creator": "标兵桥牌", + "pubDate": "Sat, 28 Jun 2025 12:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "id": "2247512647_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "8b7e76707b846119bb7a39057abcdd4f", + "highlights": [] + }, + { + "title": "第11届欧洲公开桥牌锦标赛混团预赛结束", + "description": "欧洲桥牌公开锦标赛每两年举办一次,从2003年到2019年共举办了9届,但由于疫情原因2021年中断,2023年再度恢复,今年是第11届比赛,本次比赛将于6月21日-7月5日在波兰波茨南举办,波茨南曾经于2011年举办过欧洲桥牌公开锦标赛。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 6月22日,在波兰波兹南进行的第11届欧洲公开桥牌锦标赛混合团体赛预赛结束,共有94个队参加了混合团体赛的预赛,预赛进行10轮瑞士移位赛,前32名进入淘汰赛。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 混团32强淘汰赛对阵\n \n
    \n
    \n

    \n \n 10轮结束后,以波兰职业高手率领的埃德蒙斯队获得第一名,波兰/法国牌手组成的SZPILIKA队获得第二名。有趣而遗憾的是,由美国年轻牌手组成的蜜月队在转播桌坐了6轮,第一天结束还是第一名,第二天最后四场全负,最终没能晋级,他们后面有时间继续蜜月之旅了。\n \n

    \n

    \n \n 淘汰赛每轮进行一天,一共5天结束。\n \n

    \n

    \n \n 下面是比赛中的一些图片。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 混团比赛赛场\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n 欧洲比赛使用平板叫牌,纸牌打牌,每个牌桌有摄像头,所有的记录都存在\n \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 第11届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 2023年欧洲公开桥牌锦标赛每日一牌——韦尔萨切的失误,还是对手的高明?\n \n \n

    \n

    \n \n 相关链接:\n \n 第10届欧洲桥牌公开锦标赛\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开赛结束、土耳其人获得公开双人赛冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季运动会结束,奥卡队获得冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲冬季桥牌运动会开赛在即\n \n \n

    \n

    \n \n 相关链接:\n \n 劳伦特当选欧洲桥联主席、期待开启新时代\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲桥牌新纪元——欧洲桥牌团体锦标赛回顾\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 2022年欧洲桥牌团体锦标赛即将开赛\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 荷兰加冕欧洲之王\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/9XZTqX8gjcy09YAq4dCbnQ", + "creator": "标兵桥牌", + "pubDate": "Mon, 23 Jun 2025 23:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDQoJpic0ibsIxaF7GAQVwVTT6eGyFJ2u6u8uRPPuRgRemxz9bYpyyQ9DDobFOOPU8ndsqr7ibKoF7EOQ/0?wx_fmt=jpeg", + "id": "2247512636_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "926d81696677395d95a23772a9ea152c", + "highlights": [] + }, + { + "title": "世界桥联公布2024年大师分排行榜", + "description": "2024年底,世界桥联公布了世界桥牌运动会结束后世界桥联大师分的排行榜。牌坛奇人齐老板仍然领跑公开组,这已经是他自从2021年登顶之后,连续第四年蝉联世界桥联大师分第一人的宝座了。女子排行榜、老年排行榜、混合排行榜的榜首也各有其主。", + "content": "
    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 2024年底,世界桥联公布了世界桥牌运动会结束后世界桥联大师分的排行榜。\n \n

    \n

    \n \n 牌坛奇人齐老板仍然领跑公开组,这已经是他自从2021年登顶之后,连续第四年蝉联世界桥联大师分第一人的宝座了。女子大师分排行榜、老年大师分排行榜、混合大师分排行榜的榜首,分别是瑞典、丹麦、法国牌手。\n \n

    \n

    \n \n 下面是公开组前40名牌手的排名:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 2024年世界桥联公开组大师分排行榜\n \n
    \n
    \n

    \n \n 我们能够看到,排在前六名的是齐刷刷的瑞士队牌手,其中齐老板高居第一,超过了第二名卡酷司机近500分,相当于一个世界季军的名次差距。最晚加入瑞士队的诺沃萨德茨基分数最低,但也比第7名的海尔格莫多了100多分。\n \n

    \n

    \n \n 瑞士大鳄从2021年开始在世界牌坛的兴风作浪,先后拿到了2022年、2023年百慕大杯冠军,2024年世界桥牌运动会季军,年年登上世界锦标赛的领奖台,大师分增值无人能比。\n \n

    \n

    \n \n 瑞士队之后的排名相对分散,原因是这些牌手无法在世界比赛中集中火力,形成统一团队竞争。\n \n

    \n

    \n \n 其中小海借助早年在摩纳哥队的成绩,加上近年代表挪威,还有去年世界桥牌运动会跨国团体赛的冠军,得以领跑除瑞士团队的世界牌手。\n \n

    \n

    \n \n 小海之下,是波兰队的新科世界冠军布雷茨排在第8名,布雷茨在阿根廷拿到了世界桥牌运动会冠军后,加上他2019年百慕大杯冠军、2022年世界桥牌双人赛冠军,他已经成为波兰唯一的大三冠成员,波兰牌手即使强如加夫雷西、卡利塔、卡酷司机,也没有拿到3种世界冠军的牌手。\n \n

    \n

    \n \n 再往下排名,是第9名和第12名意大利的韦尔萨切与塞门塔。自从劳爷退休后,“小沃”的发小塞门塔成为他的新搭档,两人很快进入状态,成为意大利队的新台柱,先后拿下2023年百慕大杯季军和2024年世界桥牌运动会亚军,也在世界桥联世界桥牌巡回赛的积分榜上连续两年排名第一。\n \n

    \n

    \n \n 插在两位意大利牌手中间的是荷兰明星穆勒和魏斯,他们虽然从2024年开始退出了荷兰国家队,但凭借2019年、2022年百慕大杯的亚军、2022年欧锦赛冠军等成绩,仍然领跑荷兰牌手。不过老穆勒与魏斯的状态从2023年开始急剧下滑,已有逐步退出世界级牌手的趋势,最近他们参加了中国的A类俱乐部联赛。\n \n

    \n

    \n \n 美国的莫斯排在12名,超过了14名和15名的尼老板与搭档凯茨,波兰老将加夫雷西退出瑞士队后,仍然依靠此前的积累,排在第13名。\n \n

    \n

    \n \n 新西兰的威布利(Michael Whibley)占据了第一页的位置,他排在第17名,是亚太地区排名最高的牌手,得益于新西兰最近不错的成绩,以及去年世界桥牌运动会跨国团体赛的亚军。\n \n

    \n

    \n \n 在第一页位置的,多数是2024年世界桥牌运动会成绩不错的牌手。\n \n

    \n

    \n \n 中国牌手排名最高的是现役国家队队员连勇,他以971.75分排在第81名,刚好超过劳爷1.05分。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 世界桥联大师分排行榜齐老板遥遥领先\n \n \n

    \n

    \n \n 相关链接:\n \n 世界桥联公报最新大师分、齐老板坐稳世界第一\n \n \n

    \n

    \n \n 相关链接:\n \n 世界桥联最新大师分排行榜、摩纳哥众将排名靠前\n \n \n

    \n

    \n \n 相关链接:\n \n 世界桥联公布最新大师分、Helgemo登顶世界第一人\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读(二)男子特级大师排行榜解读\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读(三)世界桥联女子及中国牌手排行榜\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 世界桥联大师分介绍及排行榜解读(四)世界桥联大师分政策和等级制度的变迁对中国牌手的影响\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 一览众山小——齐老板登顶世界第一之路\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 一览众山小——齐老板登顶世界第一之路(二)\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 一览众山小——齐老板登顶世界第一之路 (续完)\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/i8ozGVJzORLNLKLSgY9RYg", + "creator": "标兵桥牌", + "pubDate": "Mon, 16 Jun 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDSibjfuNWY4LAB2pN77qbPPaynicibuLW2nEp8bqVrvuouOCgYlbWfciaLXGkM5VzZpZdpb8Z3HAAS28A/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDSibjfuNWY4LAB2pN77qbPPaynicibuLW2nEp8bqVrvuouOCgYlbWfciaLXGkM5VzZpZdpb8Z3HAAS28A/0?wx_fmt=jpeg", + "id": "2247512614_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "d493b9eff95dc7208df749197028ae29", + "highlights": [] + }, + { + "title": "美国国家队名单出炉", + "description": "5月26日当地时间,美国国家队选拔赛老年团体赛2025年6月1日,美国桥牌协会(USBF)公布了参加2025年世界桥牌团体锦标赛的8支美国队参赛名单。由于美国选拔赛允许一名选手报名多项比赛,因此在选拔赛全部结束后,各个美国国家队进行了调整。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n
    \n \n \n 老朋友\n \n \n
    \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 2025年6月1日,美国桥牌协会(USBF)公布了参加2025年世界桥牌团体锦标赛的8支美国队参赛名单。\n \n

    \n

    \n \n 美国国家队选拔赛从4月24日开始,先后经历了公开团体、女子团体、混合团体、老年团体四个项目的选拔赛,产生了每个项目2支,共8支美国队。由于美国选拔赛允许一名选手报名多项比赛,因此在所选拔出来的原始团队中有需要更换队员和增加队员的。在选拔赛全部结束后,进行了调整。\n \n

    \n

    \n \n 根据美国国家队选拔规则,每名队员可以报名参加多个项目,但必须提前告知所参加项目的优先顺序,比如某位队员同时报名公开团体和混合团体项目,他需要选择哪一个项目是第一顺位,如果选择混合团体是第一顺位,则在公开团体入选后,仍然可以参加混合团体的选拔,如果混合团体选中,则必须代表混合团体放弃公开团体,如果混合团体没有选中,则可以代表公开团体。如果选择公开团体是第一顺位,在公开团体选中后,就不需要参加混合团体的选拔了。\n \n

    \n

    \n \n 这种现象,在公开团体选拔结束后,发生在了美国2队罗森塔尔队中,他们队中的大部分牌手都同时报名了公开团体和混合团体,优先顺序是公开团体,在入选公开团体美国2队后,该队队员都不再参加混合团体的选拔了。\n \n

    \n
    \n

    \n \n 下面是美国国家队的全部名单:\n \n

    \n

    \n \n Bermuda Bowl (Open teams):\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Adam Kaplan - Finn Kolesnik\n \n
    \n \n Adam Grossack - Eddie Wold\n \n
    \n \n Kevin Bathurst* - John Hurd\n \n
    \n \n NPC:Bob Morris\n \n

    \n

    \n \n \n 由于美国1队是4人队入选,其中Bathurst/Hurd是他们增加的队员。\n \n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Andrew Rosenthal - Aaron Silverstein\n \n
    \n \n Eldad Ginossar - Chris Wilenken\n \n
    \n \n Zach Grossack - Michael Rosenberg\n \n
    \n \n NPC:Rob Barrington\n \n

    \n

    \n \n Venice Cup (Women's Teams):\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Lynn Baker - Olivia Schireson\n \n
    \n \n Amber Lin - Debbie Rosenberg\n \n
    \n \n Emma Kolesnik* - JoAnna Stansby*\n \n
    \n \n NPC:Joe Stokes\n \n

    \n

    \n \n \n 威尼斯杯美国1队入选的队员还有瑞典Rimstedt姐妹,但她们的第一优先权是混合团体,同时又入选了混合团体美国2队,所以威尼斯杯美国1队增加了Kolesnik/Stansby一对。\n \n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Susan Zhang - Sylvia Shi\n \n
    \n \n Jill Meyers - Kerri Sanborn\n \n
    \n \n Janice Molson - Migry Campanile*\n \n
    \n \n NPC:Josh Donn\n \n

    \n

    \n \n \n 同样原因,苏珊·张的团队中Jenny Wolpert同时入选了混合团体美国1队,因此苏珊·张队增加了Campanile作为新队员。\n \n \n

    \n

    \n \n Wuhan Cup (Mixed Teams)\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Stewart Rubenstein - Anam Tebha\n \n
    \n \n Giorgia Botta - John Kranyak\n \n
    \n \n Vince Demuy - Jenny Wolpert\n \n
    \n \n NPC: Harrison Luba\n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Joan Millens - Shan Huang\n \n
    \n \n Cecilia Dwyer Rimstedt - Kevin Dwyer Rimstedt\n \n
    \n \n Sandra Rimstedt - Joe Grue*\n \n
    \n \n NPC: Alex Hudson\n \n

    \n

    \n \n \n 混合团体美国2队是5人队参赛,增加了Joe Grue作为新队员。\n \n \n

    \n

    \n \n D'Orsi Senior Trophy (Senior Teams)\n \n

    \n

    \n \n \n USA1\n \n \n
    \n \n Jeff Wolfson - Steve Garner\n \n
    \n \n David Berkowitz - Larry Cohen\n \n
    \n \n Michael Kamil - Jeff Meckstroth\n \n
    \n \n NPC: Jan Martel\n \n

    \n

    \n \n \n USA2\n \n \n
    \n \n Hemant Lall - Reese Milner\n \n
    \n \n Bobby Levin - Eric Rodwell\n \n
    \n \n Zia Mahmood - Alan Sontag*\n \n
    \n \n NPC: Phil Clayton\n \n

    \n

    \n \n \n 老年团体美国2队更换了一位队员,Alan Sontag替换了Sam Lev。\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n

    \n \n 相关链接:\n \n 美国老年队选拔赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 美国混团选拔赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 美国混团选拔赛第一轮淘汰赛结束\n \n \n

    \n

    \n \n 相关链接:\n \n 公开组美国2队与美国女队产生\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——走过路过不要错过3NT\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——及时转舵、躲开障眼法\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——魏因斯坦的狡诈\n \n \n

    \n

    \n \n 相关链接:\n \n 小虎队直扑日德兰——卡普兰队获得美国1队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 转载:通往努沙杜瓦——如风少年冲向巴厘岛——记Kranyak队获得美国1队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——老麦与小芬传统与现代的差别\n \n \n

    \n

    \n \n 相关链接:\n \n 美国国家队选拔赛战况及每日一牌——弗老板失去平衡\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——时机和控制\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——当老麦遇上老罗\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——小罗森博格的诈叫\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——致命的猜断\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛战况及每日一牌——正常开叫还是阻击开叫\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2025年美国国家队选拔赛\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 老罗重回世锦赛——美国老年队、女队选拔赛结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 美国混团选拔赛结束,苏珊·张队赢得资格\n \n \n \n

    \n

    \n \n 相关链接:\n \n 弗雷舍获得2024年美国队资格\n \n \n

    \n

    \n \n 相关链接:\n \n 2024年美国国家队选拔赛开赛\n \n \n

    \n

    \n \n \n 相关链接:\n \n 2023年美国国家队选拔赛争议中结束\n \n \n \n

    \n

    \n \n \n 相关链接:\n \n 2022年美国国家队选拔赛结束\n \n \n \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n 往期推荐\n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 尼克尔队率先拿到百慕大杯美国1队资格\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 平板电脑还是纸牌?职业牌手有分歧\n \n \n

    \n
    \n
    \n
    \n
    \n

    \n \n \n 通往武汉之路:美国国家队选拔赛\n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/GhzYkoR_DU1jwpJEaWo7yQ", + "creator": "标兵桥牌", + "pubDate": "Sun, 08 Jun 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDR7X9icVUiczjyqmaA8vgG0PGfZLhCfDludjw1D8I8qm28RhEg2ibgWIey41EY5icTic2IQboZhr6qqf3A/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDR7X9icVUiczjyqmaA8vgG0PGfZLhCfDludjw1D8I8qm28RhEg2ibgWIey41EY5icTic2IQboZhr6qqf3A/0?wx_fmt=jpeg", + "id": "2247512604_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "904cfda1cd5a396451f15015355b3b1e", + "highlights": [] + }, + { + "title": "亚太赛每日一牌回顾:一副小牌的攻防与叫牌", + "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月23日每日一牌:一副小牌的攻防与叫牌\n \n

    \n

    \n \n 桥友们大多数喜欢大牌,满贯、高阶竞叫、加倍等等,因为大牌来的分数多,让人们看的热血沸腾。相比来说,小牌就很乏味,小牌攻防环节多,也比较复杂,产生的输赢较小,所以通常不被重视。\n \n

    \n

    \n \n 不过小牌同样重要,小牌产生的输赢,也是非常可观的。\n \n

    \n

    \n \n 下面这副牌是第二循环第11轮,中国对澳大利亚,此前澳大利亚领先中国,这副小牌在这场双VP的比赛中显得异常重要。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家主打2♣\n \n
    \n
    \n

    \n \n 我是东家,开叫2♣成为最后定约,南家首攻♦A,怎么考虑?\n \n

    \n

    \n \n 联手有4-4的♠配合,但却难以找到,这是强梅花体系中的2♣开叫所带来不利之处,但好处是对方的8张♥配合也找不到了。从牌面上看,可能的输张有2墩♠、2墩♥、2墩♦、1墩♣,如果♠J、♥A、♣Q的位置有利,也是极有希望做成定约的。\n \n

    \n

    \n \n 南北方使用反式张数和姿态信号,在有将定约中,他们主要使用张数信号,南家的♦A后,同伴跟3,他改为拔♥A,解决了我的♥问题,北家跟8,然后南家再打♥,我的K吃住。\n \n

    \n

    \n \n 现在出♣J飞牌,南家有Q,吃住后,他略作思考,又出♣给明手,现在局面如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 现在明手出牌\n \n
    \n
    \n

    \n \n 明手最后一个桥被用掉了,已经输了3墩,还有一个♦要输,看起来就要马上决战♠了,最大的概率就是直接出10飞J,你准备这样打吗?\n \n

    \n
    \n

    \n \n 实战中,我将吃第三张♥,然后清将牌,南家有4张,我把他全清光,明手垫♠,手中送出♦J,南家吃住,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家被投入,只能再拿一墩♠A了\n \n
    \n
    \n

    \n \n 南家只有♠和♦可出了,无论出哪一门,我都只输一墩♠A,完成定约。我为何要这样打,因为南家的防守清楚地告诉我,所有大牌都在他手里,我不能飞♠J,而他的牌型,我也判断他没有很长的套,因为如果有长套,他很可能在2♣后争叫,他的牌很像现在这个牌型。\n \n

    \n

    \n \n 如果南家在我的♦J不出K如何?我可以明手的Q超打,然后再出小♦,送给南家,还原为实战中的情况。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 不用♦K吃也只是延缓被投入\n \n
    \n
    \n
    \n

    \n \n 值得一提的是叫牌,现在很多打精确法的牌手都不愿意开叫2♣,但有所不知2♣也并非都是弱点,也有它的长处,这副牌在另一室东家开叫10-13点的1NT,南家加倍,然后南北方抢到♥定约做成140分。假如东家开叫自然法的1♣或者精确法的1♦,南家都是争叫1NT,北家转移,东西方很难再行动抢出♠定约,实战中,有8桌都是南北方打♥定约吃到140分,而东西方打2♣的,只有我这一桌。\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:满贯要有想象力\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:剥光投入显身手\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:连氏自然轻松满贯\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:心中有挡、无将不慌\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/mOns8vzMGRhHVuKF9DajUQ", + "creator": "标兵桥牌", + "pubDate": "Wed, 04 Jun 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "id": "2247512595_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "30306c42a579ceff24b8e7ac06bc2a90", + "highlights": [] + }, + { + "title": "亚太赛每日一牌回顾:剥光投入显身手", + "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月21日每日一牌:剥光投入显身手\n \n

    \n

    \n \n 打牌的基本技术是读牌,认真阅读对方的牌情后,方能找到正确的路线。\n \n

    \n

    \n \n 下面这副牌发生在第二循环对阵印度尼西亚,孙纲的主打堪称精准。\n \n

    \n
    \n
    \n \n
    \n
    \n \n 孙纲主打5♣\n \n
    \n
    \n

    \n \n 西家是孙纲,开叫强梅花,北家加倍显示双高花,蔡阳再加倍表示8点以上,进局逼叫,南家阻击3♠,孙纲先Pass,在同伴加倍后,跳叫5♣成为最后定约。\n \n

    \n

    \n \n 首攻是♠A,继续拔K,庄家将吃后,如何考虑做庄?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 防守从两张♠大牌开始\n \n
    \n
    \n

    \n \n 做成定约的关键是如何避免♦有两个输张,飞♥是没有用的,解决不了♦的问题。♦的普通打法是飞J,但这副牌成立吗?\n \n

    \n

    \n \n 孙纲先出将牌到明手,都有跟出,再拔♥AK明手将吃♥,南北方都跟出,然后孙纲出将牌到手中,北家跟出了两张将牌,南家垫♠。局面如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 北家有2张将牌\n \n
    \n
    \n

    \n \n 现在仔细想一想,北家是什么牌?\n \n

    \n

    \n \n 南北方的♠很像是5-5配合,而北家的牌也很像是5-5高花,他已经跟出两张将牌,那么他的♦就是单张,即使不是单张,也不会超过2张,所以飞♦J的概率大大降低了。\n \n

    \n

    \n \n 孙纲判断北家是5-5-1-2牌型,于是他打小♦,北家跟小,他明手上Q,全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 打对♦,南家被投入\n \n
    \n
    \n

    \n \n 南家陷入困境,如果A吃,则被投入,如果A不吃,则明手再出♦,就只输一墩♦了。\n \n

    \n

    \n \n 实战中南家A吃住Q,出小♦,孙纲放小,明手10吃到,完成5♣。\n \n

    \n

    \n \n 北家必须第二墩换攻♦,南家马上出A给北家将吃,才能击败5♣。如果南家不上A,而是出小,庄家则可以剥光♥,然后从明手出♠Q,手中垫♦,投入北家,北家只有高花可出,被迫给庄家将吃垫牌,♦输张消失。\n \n

    \n

    \n \n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:连氏自然轻松满贯\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:心中有挡、无将不慌\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/wN9dVtuhJM97x5qk8PsV-A", + "creator": "标兵桥牌", + "pubDate": "Mon, 02 Jun 2025 00:02:32 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "id": "2247512585_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "1477f7b86cceef32ddd423d3016b516f", + "highlights": [] + }, + { + "title": "亚太赛每日一牌回顾:心中有挡、无将不慌", + "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月19日每日一牌:心中有挡、无将不慌\n \n

    \n

    \n \n 桥友们都知道著名的哈曼规则第一条:如果3NT是一个可以选择的定约,就叫3NT。\n \n

    \n

    \n \n 套用我们的俗话,叫做:走过路过,不要错过3NT。\n \n

    \n

    \n \n 当我们在叫牌中可以选择时,3NT是优选,这个很容易理解。但是,如果看上去,3NT并不是看上去一个可以选择的定约时,还能选3NT吗?\n \n

    \n

    \n \n 中国男队的蔡阳,在下面这副牌的处理,就给桥友们做了一个榜样:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家如何选择叫品?\n \n
    \n
    \n

    \n \n 西家开叫3♥,两个Pass转到南家,选择什么叫品?\n \n

    \n

    \n \n 可供选择的大概有:Pass,加倍,4♦,3NT。\n \n

    \n

    \n \n 没有一个叫品是舒服的:\n \n

    \n

    \n \n · Pass太委屈,自己有15点,对方阻击叫,如果同伴有一些点力,就被对方的阻击叫拦住了,绝不情愿。\n \n

    \n

    \n \n · 加倍的问题是♠太短,同伴如果叫3♠,还是没解决任何问题,如果跳叫4♠,也很不舒服。\n \n

    \n

    \n \n · 4♦的好处是叫出了自己最长最强的花色,但这牌要打什么呢?5♦太远,4♦都有可能打不成。\n \n

    \n

    \n \n · 3NT不可选的原因是对方长套花色没有挡张,但除了这一缺点,就没有任何缺陷了。点力足够,赢墩也有,至于挡张嘛…… 管它呢,别忘了你还有个同伴,同伴说不定能帮你挡住,就算同伴挡不住,没准西家间张结构还不攻呢。\n \n

    \n
    \n

    \n \n 蔡阳选择3NT,他成功了吗?\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 3NT是最佳定约\n \n
    \n
    \n

    \n \n 这是中国男队第一循环对阵中国香港的一副牌,实战中西家首攻♠Q,蔡阳先取6墩♠,东家放弃了♦,蔡阳再拿6墩♦,加上♥A,全卷13墩。\n \n

    \n

    \n \n 看,西家♥连接张都没首攻,假如明手的♥是Kx或者什么都没有,3NT都做成啦!\n \n

    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n
    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:精彩的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛每日一牌回顾:有趣的四红心\n \n \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/z0GqwfNMdTFUEdkOglYv1A", + "creator": "标兵桥牌", + "pubDate": "Sat, 31 May 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "id": "2247512576_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "bf069e2911ea545aad791222bdeddb68", + "highlights": [] + }, + { + "title": "亚太赛每日一牌回顾:有趣的四红心", + "description": "亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n 新朋友\n \n \n \n \n \n
    \n

    \n \n \n 点击\n \n \n \n 标兵桥牌\n \n \n \n

    \n

    \n \n \n 关注微信\n \n \n

    \n
    \n \n \n 老朋友\n \n \n
    \n

    \n \n \n 点击\n \n \n \n 右上角\n \n \n \n

    \n

    \n \n \n 分享本文\n \n \n

    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 亚太锦标赛结束了,中国男队夺得冠军,在比赛期间所写的“每日一牌”,比赛期间并没有发出,从今天开始,给桥友们提供迟到的每日一牌。\n \n \n

    \n
    \n

    \n \n 5月17日每日一牌:有趣的4♥\n \n

    \n

    \n \n 在主打时,需要制定计划,找到看似不可能发生但能够完成定约的路线,而找到一条路线时,需要反复确认,是否可行。\n \n

    \n

    \n \n 下面是亚太锦标赛第一循环中国男队对韩国队的一副牌:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 南家主打4♥加倍定约\n \n
    \n
    \n

    \n \n 东家开叫1♦,至少4张以上,南家争叫4♥,转到东家加倍,成为最后定约。\n \n

    \n

    \n \n 南家主打4♥加倍定约,西家首攻♦7,明手的牌看起来没什么用,先摆小,东家A吃, 马上出♦,现在庄家怎么办?\n \n

    \n
    \n
    \n \n
    \n
    \n \n 首攻♦到A,东家再出♦\n \n
    \n
    \n

    \n \n 将牌足够结实,不怕对方提升将牌,♦和将牌各有一个输墩,♠上面的输墩如何逃脱?如果自己手中出♠,至少要输两墩。\n \n

    \n

    \n \n 庄家发现,对方只有3张将牌,而且除了A之外,都是小将牌,假如将牌2-1分布,庄家就是铁牌了。他可以大将吃♦,打小将牌,如果西家是Ax两张,无论他出哪一张,明手都可以进手兑现♦赢墩,并且从明手出♠。\n \n

    \n

    \n \n 再进行下一步行动之前,先考虑一下对方是什么牌,西家是否确定是2张将牌。\n \n

    \n

    \n \n 西家没有叫4♠,不像有4张以上的♠,假如西家是单张♦,同时也只有2张将牌,那么他就是3-2-1-7牌型,他是否会选择叫5♣?如果西家的高花更短,他的♣相应更长,也更不容易Pass。\n \n

    \n

    \n \n 如果大将吃♦,打小将牌到明手的路线成功,需要西家是2张将牌、2张♦、不超过3张♠。\n \n

    \n

    \n \n 实战中,中国男队的庄家决定采取将牌2-1分布的路线,他大将吃♦,打小将牌,西家先跟小,明手将牌9大,发现将牌3-0,只好从明手出♠,东家不知为何抢上♠A,替庄家解决了♠问题,定约做成。\n \n

    \n

    \n \n 全手牌如下:\n \n

    \n
    \n
    \n \n
    \n
    \n \n 东家犯错,完成定约\n \n
    \n
    \n

    \n \n 这副牌在另一室的叫牌也是南家直接争叫4♥,但连若旸没有选择Pass准备罚放,而是直接加倍希望同伴叫牌,同伴叫出5♣,还赚了一个加倍。这副牌中国队两边成局,获得16IMP。\n \n

    \n

    \n \n 顺便谈一下东家的防守,虽然明显的♠A不应该马上出,但在第一墩♦A吃进后,它并不能确定同伴是单张♦,贸然继续♦,一旦庄家单张♦,可能损失惨重,更好的出牌还是试试♣,从同伴Pass 4♥并没有叫4♠来看,庄家的♠有一定的长度,他的♣较短,如果庄家是AQ双张♣,他至少还有4张♠,♦几乎肯定是单张了,所以出♦更不安全。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n \n \n \n \n \n 点击\n \n \n \n \n 阅读原文\n \n \n \n \n \n
    \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n \n \n 别忘了点个在看哦!转发那就太好了!\n \n \n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 风雨十四载、再夺亚太冠\n \n \n

    \n

    \n \n 相关链接:\n \n 荏苒十四载、再战亚太赛\n \n \n

    \n

    \n \n 相关链接:\n \n 十四年归来仍是追风少年\n \n \n

    \n

    \n \n 相关链接:\n \n 曼谷重启亚太大赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛落幕,欧公赛决赛法国内战\n \n \n

    \n

    \n \n 相关链接:\n \n 中国桥牌队亚太锦标赛大四喜,欧公赛女子团体冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团齐老板被淘汰、亚太赛迎来最后高潮\n \n \n

    \n

    \n \n 相关链接:\n \n 欧公赛公团结束首轮淘汰赛、亚太赛接近尾声\n \n \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团预赛结束、亚太赛完成上半程比赛\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛结束女团、混团第一循环比赛\n \n \n \n
    \n
    \n

    \n

    \n \n 相关链接:\n \n 欧洲公开桥牌锦标赛公团女团开赛,亚太赛中国占据三项第一\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太赛第一天中国女队占优,欧洲公开桥牌锦标赛混团冠军产生\n \n \n

    \n

    \n \n 相关链接:\n \n 亚太桥牌锦标赛开幕,欧洲公开桥牌锦标赛产生老年团体冠军\n \n \n

    \n

    \n \n 相关链接:\n \n 第53届亚太桥牌锦标赛即将开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第四届亚洲杯结束、中国香港捧起“宁波杯”\n \n \n

    \n

    \n \n 相关链接:\n \n 2022年亚洲杯开赛\n \n \n

    \n

    \n \n 相关链接:\n \n 第三届亚洲杯桥牌赛开幕\n \n \n

    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/fs-IXTIprP-cFsg1E2bafQ", + "creator": "标兵桥牌", + "pubDate": "Thu, 29 May 2025 00:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/iauJ3TcMNYDTH0sTiajz6mMGDUjHnftbibdib7FEvMaiahjxG8C2mKODhpuRaUtBEnLTyDUl3T8iciaqCAYSUSymeB1ZA/0?wx_fmt=jpeg", + "id": "2247512565_1", + "language": "", + "folder": "桥牌", + "feed": "标兵1桥牌", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "b2ba7615ea76a0fee1a3212e0c63f7bd", "highlights": [] } ], @@ -4829,490 +4169,6 @@ "image": "http://mmbiz.qpic.cn/mmbiz_png/iauJ3TcMNYDQ33jO8a2zUczSSicibichw0bpGfYAkiaIRTKsGIKPOPFdBVOCiaug6swiaLbg17pPyNPp1xL2Hw2EE84AA/0?wx_fmt=png", "description": "", "items": [ - { - "title": "一周练完!100个Python实战项目,太实用了,绝对不能错过(附完整版源码+教程)", - "description": "Python 是一种极具可读性和通用性的编程语言。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python 是一种极具可读性和通用性的编程语言\n \n \n \n \n \n \n 。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。\n \n

    \n

    \n \n Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随着越来越多地在工业中,被诸如联合太空联盟\n \n \n \n \n \n \n (NASA 的主要飞机支持承包商)和工业光魔\n \n \n \n \n \n \n (VFX 和卢卡斯影业的动画工作室\n \n \n \n \n \n \n )等组织使用,Python 为那些寻求额外编程语言的人提供了巨大的潜力 。\n \n

    \n

    \n \n 当一个重要的被称为 comp.lang.python 的 Python 新闻组\n \n \n \n \n \n \n 在 1994 年形成时,Python 的用户基础不断增长,这为 Python 成为开源开发中最受欢迎的编程语言之一铺平了道路。\n \n

    \n

    \n \n Python当下真的很火。Python实战项目,也一直尤为关注,接下来,和大家介绍下100个Python练手的实战项目。\n \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n \n \n 每个项目都有详细的视频讲解,跟随老师带你一步步完成敲代码的过程,在过程中结合多学知识提升能力,帮助怒更好地完成练习。\n \n \n \n \n
    \n
    \n

    \n

    \n \n 100个Python项目列表:\n \n

    \n
      \n
    1. \n

      \n \n 1.python自动获取海量IP工具\n \n

      \n
    2. \n
    3. \n

      \n \n 2.python自动获取酷狗音乐工具\n \n

      \n
    4. \n
    5. \n

      \n \n 3.Python自动化开发-制作名片卡\n \n

      \n
    6. \n
    7. \n

      \n \n 4.Python自动化开发-制作名片卡\n \n

      \n
    8. \n
    9. \n

      \n \n 5.Python自动化开发-批量发邮件通知\n \n

      \n
    10. \n
    11. \n

      \n \n 6.Python自动化开发-考勤处理\n \n

      \n
    12. \n
    13. \n

      \n \n 7.Python双色球系统\n \n

      \n
    14. \n
    15. \n

      \n \n 8.Python批量获取王者荣耀皮肤\n \n

      \n
    16. \n
    17. \n

      \n \n 9.Python获取阴阳师壁纸\n \n

      \n
    18. \n
    19. \n

      \n \n 10.Python获取小说数据并分析\n \n

      \n
    20. \n
    21. \n

      \n \n 11.Python获取NBA数据\n \n

      \n
    22. \n
    23. \n

      \n \n 12.python获取拉钩工具\n \n

      \n
    24. \n
    25. \n

      \n \n 13.Python获取房天下数据\n \n

      \n
    26. \n
    27. \n

      \n \n 14.Python获取彩票信息\n \n

      \n
    28. \n
    29. \n

      \n \n 15.Python合成女神图片\n \n

      \n
    30. \n
    31. \n

      \n \n 16.Python法拍网数据\n \n

      \n
    32. \n
    33. \n

      \n \n 17.Python操作Excel自动化开发\n \n

      \n
    34. \n
    35. \n

      \n \n 18.python百行制作查询工具\n \n

      \n
    36. \n
    37. \n

      \n \n 19.python百行制作登录系统\n \n

      \n
    38. \n
    39. \n

      \n \n 20.Python百行代码实现点赞系统\n \n

      \n
    40. \n
    41. \n

      \n \n 21.Python百行代码实现抽奖系统\n \n

      \n
    42. \n
    43. \n

      \n \n 22.Python自动获取小说工具\n \n

      \n
    44. \n
    45. \n

      \n \n 23.python获取喜马拉雅音频\n \n

      \n
    46. \n
    47. \n

      \n \n 24.python快速获取斗图表情\n \n

      \n
    48. \n
    49. \n

      \n \n 25.python获取主播小视频\n \n

      \n
    50. \n
    51. \n

      \n \n 26.python自动工资条\n \n

      \n
    52. \n
    53. \n

      \n \n 27.python协程详解公开课\n \n

      \n
    54. \n
    55. \n

      \n \n 28.python制作12306查票工具\n \n

      \n
    56. \n
    57. \n

      \n \n 29.python爬虫30行拿LOL皮肤\n \n

      \n
    58. \n
    59. \n

      \n \n 30.python抓取相亲网数据\n \n

      \n
    60. \n
    61. \n

      \n \n 31.python抓取百合网数据\n \n

      \n
    62. \n
    63. \n

      \n \n 32.python游戏开发公开课\n \n

      \n
    64. \n
    \n

    \n \n ......\n \n

    \n

    \n \n \n 91.【Python 图片转字符画】\n \n \n \n
    \n
    \n \n \n 92.【200行Python代码实现2048】\n \n \n \n
    \n
    \n \n \n 93.【Python3 实现火车票查询工具】\n \n \n \n
    \n
    \n \n \n 94.【高德API+Python解决租房问题】\n \n \n \n
    \n
    \n \n \n 95.【Python3色情图片识别】\n \n \n \n
    \n
    \n \n \n 96.【Python 破解验证码】\n \n \n \n
    \n
    \n \n \n 97.【Python实现简单的Web服务器】\n \n \n \n
    \n
    \n \n \n 98.【pygame开发打飞机游戏】\n \n \n \n
    \n
    \n \n \n 99.【Django 搭建简易博客】\n \n \n \n
    \n
    \n \n \n 100.【Python基于共现提取《釜山行》人物关系】\n \n \n

    \n

    \n \n \n \n 完整项目已经打包整理好了,希望对正在学习的你带来帮助~多动手练习,才能不断地巩固知识,更快的进步!\n \n \n \n

    \n

    \n \n \n \n \n 获取方式:\n \n \n \n \n

    \n

    \n \n \n \n \n 1.点赞+在看\n \n \n \n \n

    \n

    \n \n \n \n \n 2.私信回复:学习  领取。\n \n \n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/FbDBJnT9ltXgkcS6vViYaA", - "creator": "python开发工程师", - "pubDate": "Mon, 14 Jul 2025 07:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwm6QzeJkQsibiaKQWY9iaEoFlmS0lJ0jg9ou1icgCTBtGmsr8KagTiaWf98S2u6H1pR6JeNMSunLmsUMg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwm6QzeJkQsibiaKQWY9iaEoFlmS0lJ0jg9ou1icgCTBtGmsr8KagTiaWf98S2u6H1pR6JeNMSunLmsUMg/0?wx_fmt=jpeg", - "id": "2247511348_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "2352d4354695dde18515b9b7b64ead5e", - "highlights": [] - }, - { - "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", - "description": "自学python必看的书籍《Python编程:从入门到实践》内容简介本书是一本针对所有层次的Python 读者", - "content": "
    \n

    \n \n \n 自学python必看的书籍《Python编程:从入门到实践》\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/CFfrCyYKJX5rJG0qS4_CqQ", - "creator": "python开发工程师", - "pubDate": "Sat, 12 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwm6QzeJkQsibiaKQWY9iaEoFlhj1dyuLP0Bqe2vJOHbia2M04j6GCRMERWfZVcZialbuOxhrZKTN0j3mg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwm6QzeJkQsibiaKQWY9iaEoFlhj1dyuLP0Bqe2vJOHbia2M04j6GCRMERWfZVcZialbuOxhrZKTN0j3mg/0?wx_fmt=jpeg", - "id": "2247511336_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "6ece793eae1a41b9db83f1da32129968", - "highlights": [] - }, - { - "title": "太强了!Python+Excel真的是神仙组合!", - "description": "这本书是由流行开源Python库xlwings 创始人:费利克斯 •朱姆斯坦(Felix Zumstein)所", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 这本书是由流行开源Python库xlwings 创始人:费利克斯 •朱姆斯坦(Felix Zumstein)所撰写,书中详细阐述了如何将Python与Excel结合使用,让任务自动化,从而实现效率飞跃!\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 为了让初学者克服对Python的恐惧,作者特意将教程内容设计成从简单到复杂的顺序进行介绍\n \n

    \n

    \n \n 这本教程共分为12章:\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 第一至三章主要是Python入门知识:如何搭建 Python环境、掌握基础知识,以及如何导入和使用Python模块\n \n

    \n

    \n \n 第四至八章通过丰富的实例教学,详细讲解了如何利用Python对Excel进行各种操作\n \n

    \n

    \n \n 第九至十二章则专注于如何在Excel中执行 Python代码,如何实现自动化,以及案例解析\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号内回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/1GdvQhdggH083l4xd2DsaQ", - "creator": "python开发工程师", - "pubDate": "Fri, 11 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnz7UVVAicqkGIn3hx7YibZjucNnNicZyITia0QzVDKickCAGud4ehhrFhVQog/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnz7UVVAicqkGIn3hx7YibZjucNnNicZyITia0QzVDKickCAGud4ehhrFhVQog/0?wx_fmt=jpeg", - "id": "2247511330_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "d933a65ab5f209bc10d5d61a42d78b61", - "highlights": [] - }, - { - "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", - "description": "自学python必看的书籍《Python编程:从入门到实践》内容简介本书是一本针对所有层次的Python 读者", - "content": "
    \n

    \n \n \n 自学python必看的书籍《Python编程:从入门到实践》\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/4lrbYqMOMaeZY0ePHWyBVg", - "creator": "python开发工程师", - "pubDate": "Thu, 10 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnzgwZqTn10rhwticCVNicEzMpLia4Bvko08qBXYSYPcRNLtEm6ZiaJRHWpmw/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnzgwZqTn10rhwticCVNicEzMpLia4Bvko08qBXYSYPcRNLtEm6ZiaJRHWpmw/0?wx_fmt=jpeg", - "id": "2247511324_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "fb4a24facd693493c2b06a9376b12688", - "highlights": [] - }, - { - "title": "2025神仙级Python入门教程(非常详细),从零基础入门到精通,从看这篇开始", - "description": "一、初聊Python1.为什么要学习Python?", - "content": "None", - "category": "", - "link": "https://mp.weixin.qq.com/s/aPfUq3xH50ek4TFkAOq2fA", - "creator": "python开发工程师", - "pubDate": "Thu, 10 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnzYppRh6oj0fAdf8PNtTib0Y6DV8edz3pEbyDBpb2Rk6SFAwibqrOaWHrQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnzYppRh6oj0fAdf8PNtTib0Y6DV8edz3pEbyDBpb2Rk6SFAwibqrOaWHrQ/0?wx_fmt=jpeg", - "id": "2247511324_1", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "743550d894428decfbde5b814601cf70", - "highlights": [] - }, - { - "title": "每天五分钟—Python知识点总结13张思维导图(附全套教程)", - "description": "如果初学者接触的第一门语言是Python,学习曲线则会平滑得多,掌握一些基本语法和Python内置的数据结构,", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n \n 如果初学者接触的第一门语言是Python,学习曲线则会平滑得多\n \n \n \n ,掌握一些基本语法和Python内置的数据结构,已经可以上手写一些小工具或者小型应用。这对初学者来说,非常重要。因为学习的过程是一个突破舒适区的过程,会面临很多痛苦,如果学习过程得不到激励,很容易半途而废,类似我们开玩笑说的「从入门到放弃」。\n \n \n \n Python还有很多优点:\n \n \n \n 上手快,第三方库丰富,资料丰富,很容易做出“可见可得”的应用。\n \n \n \n Python所需要学习的知识基础知识\n \n \n \n Python最基本的语言特性和语法:•变量•数据类型与数据结构•输入和输出•运算符、表达式、语句•控制流(顺序控制,选择控制和循环控制)•面向过程编程•面向对象编程•异常处理•组织代码•标准库、第三方库\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n 为大家准备了一些python的学习教程和PDF格式的python电子书籍,希望可以帮助到大家。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号内回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/p1kNytp-ZuUyIa4g6FQemg", - "creator": "python开发工程师", - "pubDate": "Wed, 09 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzibdZyOl6Eib8HHXcT1nesbEDU5QxVTKl7ibKiaia6p9HI6PiausBDyjib4ibx7TlS7XX8xicFn6hJdXnpuRQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzibdZyOl6Eib8HHXcT1nesbEDU5QxVTKl7ibKiaia6p9HI6PiausBDyjib4ibx7TlS7XX8xicFn6hJdXnpuRQ/0?wx_fmt=jpeg", - "id": "2247511318_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "5b731a170332c34c2ac69fa674d01432", - "highlights": [] - }, - { - "title": "一周练完!100个Python实战项目,太实用了,绝对不能错过(附完整版源码+教程)", - "description": "Python 是一种极具可读性和通用性的编程语言。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python 是一种极具可读性和通用性的编程语言\n \n \n \n \n \n \n 。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。\n \n

    \n

    \n \n Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随着越来越多地在工业中,被诸如联合太空联盟\n \n \n \n \n \n \n (NASA 的主要飞机支持承包商)和工业光魔\n \n \n \n \n \n \n (VFX 和卢卡斯影业的动画工作室\n \n \n \n \n \n \n )等组织使用,Python 为那些寻求额外编程语言的人提供了巨大的潜力 。\n \n

    \n

    \n \n 当一个重要的被称为 comp.lang.python 的 Python 新闻组\n \n \n \n \n \n \n 在 1994 年形成时,Python 的用户基础不断增长,这为 Python 成为开源开发中最受欢迎的编程语言之一铺平了道路。\n \n

    \n

    \n \n Python当下真的很火。Python实战项目,也一直尤为关注,接下来,和大家介绍下100个Python练手的实战项目。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n \n 每个项目都有详细的视频讲解,跟随老师带你一步步完成敲代码的过程,在过程中结合多学知识提升能力,帮助怒更好地完成练习。\n \n \n \n \n
    \n
    \n

    \n

    \n \n 100个Python项目列表:\n \n

    \n
      \n
    1. \n

      \n \n 1.python自动获取海量IP工具\n \n

      \n
    2. \n
    3. \n

      \n \n 2.python自动获取酷狗音乐工具\n \n

      \n
    4. \n
    5. \n

      \n \n 3.Python自动化开发-制作名片卡\n \n

      \n
    6. \n
    7. \n

      \n \n 4.Python自动化开发-制作名片卡\n \n

      \n
    8. \n
    9. \n

      \n \n 5.Python自动化开发-批量发邮件通知\n \n

      \n
    10. \n
    11. \n

      \n \n 6.Python自动化开发-考勤处理\n \n

      \n
    12. \n
    13. \n

      \n \n 7.Python双色球系统\n \n

      \n
    14. \n
    15. \n

      \n \n 8.Python批量获取王者荣耀皮肤\n \n

      \n
    16. \n
    17. \n

      \n \n 9.Python获取阴阳师壁纸\n \n

      \n
    18. \n
    19. \n

      \n \n 10.Python获取小说数据并分析\n \n

      \n
    20. \n
    21. \n

      \n \n 11.Python获取NBA数据\n \n

      \n
    22. \n
    23. \n

      \n \n 12.python获取拉钩工具\n \n

      \n
    24. \n
    25. \n

      \n \n 13.Python获取房天下数据\n \n

      \n
    26. \n
    27. \n

      \n \n 14.Python获取彩票信息\n \n

      \n
    28. \n
    29. \n

      \n \n 15.Python合成女神图片\n \n

      \n
    30. \n
    31. \n

      \n \n 16.Python法拍网数据\n \n

      \n
    32. \n
    33. \n

      \n \n 17.Python操作Excel自动化开发\n \n

      \n
    34. \n
    35. \n

      \n \n 18.python百行制作查询工具\n \n

      \n
    36. \n
    37. \n

      \n \n 19.python百行制作登录系统\n \n

      \n
    38. \n
    39. \n

      \n \n 20.Python百行代码实现点赞系统\n \n

      \n
    40. \n
    41. \n

      \n \n 21.Python百行代码实现抽奖系统\n \n

      \n
    42. \n
    43. \n

      \n \n 22.Python自动获取小说工具\n \n

      \n
    44. \n
    45. \n

      \n \n 23.python获取喜马拉雅音频\n \n

      \n
    46. \n
    47. \n

      \n \n 24.python快速获取斗图表情\n \n

      \n
    48. \n
    49. \n

      \n \n 25.python获取主播小视频\n \n

      \n
    50. \n
    51. \n

      \n \n 26.python自动工资条\n \n

      \n
    52. \n
    53. \n

      \n \n 27.python协程详解公开课\n \n

      \n
    54. \n
    55. \n

      \n \n 28.python制作12306查票工具\n \n

      \n
    56. \n
    57. \n

      \n \n 29.python爬虫30行拿LOL皮肤\n \n

      \n
    58. \n
    59. \n

      \n \n 30.python抓取相亲网数据\n \n

      \n
    60. \n
    61. \n

      \n \n 31.python抓取百合网数据\n \n

      \n
    62. \n
    63. \n

      \n \n 32.python游戏开发公开课\n \n

      \n
    64. \n
    \n

    \n \n ......\n \n

    \n

    \n \n \n 91.【Python 图片转字符画】\n \n \n \n
    \n
    \n \n \n 92.【200行Python代码实现2048】\n \n \n \n
    \n
    \n \n \n 93.【Python3 实现火车票查询工具】\n \n \n \n
    \n
    \n \n \n 94.【高德API+Python解决租房问题】\n \n \n \n
    \n
    \n \n \n 95.【Python3色情图片识别】\n \n \n \n
    \n
    \n \n \n 96.【Python 破解验证码】\n \n \n \n
    \n
    \n \n \n 97.【Python实现简单的Web服务器】\n \n \n \n
    \n
    \n \n \n 98.【pygame开发打飞机游戏】\n \n \n \n
    \n
    \n \n \n 99.【Django 搭建简易博客】\n \n \n \n
    \n
    \n \n \n 100.【Python基于共现提取《釜山行》人物关系】\n \n \n

    \n

    \n \n \n \n 完整项目已经打包整理好了,希望对正在学习的你带来帮助~多动手练习,才能不断地巩固知识,更快的进步!\n \n \n \n

    \n

    \n \n \n \n \n 获取方式:\n \n \n \n \n

    \n

    \n \n \n \n \n 1.点赞+在看\n \n \n \n \n

    \n

    \n \n \n \n \n 2.私信回复:学习  领取。\n \n \n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/XrEsOr0cazZXOOMbBlWUqg", - "creator": "python开发工程师", - "pubDate": "Mon, 07 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZxW21P2Wlme8ePMGec1BlUXI51Wbbiaf3qiadUcNt2w96yO3gInlACicOaN1ibuj14dxFPocqYkhs8grg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZxW21P2Wlme8ePMGec1BlUXI51Wbbiaf3qiadUcNt2w96yO3gInlACicOaN1ibuj14dxFPocqYkhs8grg/0?wx_fmt=jpeg", - "id": "2247511306_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "d18f8425d7748ea43c815c70b404cbd4", - "highlights": [] - }, - { - "title": "自学python必看的书籍《Python编程:从入门到实践》", - "description": "内容简介本书是一本针对所有层次的Python 读者而作的Python 入门书。", - "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/c_5LNvw3SAjwBdMs9TRztQ", - "creator": "python开发工程师", - "pubDate": "Sat, 05 Jul 2025 06:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZxW21P2Wlme8ePMGec1BlUXOFYxYplAyK6CLl2x2bH4d2ZWosUWkQlGPFHSr7MpMNoggFfhVnvzag/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZxW21P2Wlme8ePMGec1BlUXOFYxYplAyK6CLl2x2bH4d2ZWosUWkQlGPFHSr7MpMNoggFfhVnvzag/0?wx_fmt=jpeg", - "id": "2247511294_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "7dcfc8e3ce8ac73a506470cf4f75b40b", - "highlights": [] - }, - { - "title": "非常喜欢python!读懂这三本书,学python事半功倍。", - "description": "非常喜欢python我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,pyt", - "content": "
    \n

    \n \n \n 非常喜欢python\n \n \n

    \n \n 我非常喜欢python,在前面5年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习!\n \n

    \n

    \n \n 它几乎可以做任何事,从简单的脚本创建、web,到数据可视化以及AI人工智能,使热衷python的人群变得越来越多。\n \n

    \n

    \n \n 接下来推荐3本学python一定要看的书籍,有了他们,至少能节省50%的时间少走一半的弯路!\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n

    \n \n 零基础学python必看\n \n

    \n

    \n \n 《父与子编程:与小卡特一起学python》\n \n

    \n

    \n \n 这本书是零基础看的书籍,对于很多刚接触编程的小白来说,对于很多名词是很难理解的,本书把知识点拆的很细,更难得的是那些难理解的技术名词,这本书都是用场景对话、动画的形式展现,让初学者更容易学会;\n \n \n \n 看了它,你就会发现python是多么容易!\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n python技能加强必看\n \n

    \n

    \n \n \n 《\n \n \n \n \n python cookbook\n \n \n \n \n 》\n \n \n

    \n

    \n \n \n 本书介绍了应用在各个领域的技巧和方法,涵盖了很多高级主题:元编程、网络、\n \n \n \n \n web编程\n \n \n \n \n 、实用脚本、系统管理、C语言拓展等。\n \n \n

    \n

    \n \n 本书还覆盖了许多python日常开发中的问题以及解决方案,在实际开发中的编程技巧,告诉你python如何工作并且为什么工作!\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n python项目经验\n \n

    \n

    \n \n 《python高手之路》\n \n

    \n

    \n \n 众所周知,项目经验以及底层知识拓展对于一个程序员的进阶来说是非常重要的!\n \n

    \n

    \n \n 《python高手之路》它是从一个项目的第一步开始,从整个项目的架构设计、对模块和库的处理来构建一个完整的项目。\n \n

    \n

    \n \n 它还设计了很多比较底层的知识,性能优化,架构设计等拓展知识来增加读者的专业技能!\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 附赠三本python必学书电子档\n \n

    \n

    \n \n 对于初学python,或者才接触编程这个行业的人来说,这三本书将帮助你少走很多弯路,节省你许多的学习时间。\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 如果你需要这三本书籍的电子档,\n \n \n \n 可以\n \n \n

    \n

    \n \n \n 1.点赞+再看\n \n \n

    \n

    \n \n \n 2.公众号私信内回复:“学习”\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/klHD6BcO82lOyTusTlp5Tg", - "creator": "python开发工程师", - "pubDate": "Fri, 04 Jul 2025 04:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwqm1fyIIFpxnqmrUNyQznwvvWZ7aEib8uGSiambx2okPyrWWPPibmRz0queMXr6U7qvAgLME9r34ibpw/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwqm1fyIIFpxnqmrUNyQznwvvWZ7aEib8uGSiambx2okPyrWWPPibmRz0queMXr6U7qvAgLME9r34ibpw/0?wx_fmt=jpeg", - "id": "2247511287_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "dcf70fe51f897760827e674a15584849", - "highlights": [] - }, - { - "title": "练完这102个项目,你的Python就牛了", - "description": "Python 初学者在迈过安装编程环境和基本语法的门槛,准备大展身手的时候,可能突然就会进入迷茫期:不知道做些", - "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python 初学者在迈过安装编程环境和基本语法的门槛,准备大展身手的时候,可能突然就会进入迷茫期:\n \n

    \n

    \n \n 不知道做些什么、再学些什么。\n \n

    \n

    \n \n 然后对编程的兴趣就会慢慢消退,找不到坚持下去的理由,从而慢慢淡忘之前学会的编程知识。\n \n

    \n

    \n \n 所以找到自己感兴趣、能够跟着动手和学习的 Python 项目是特别重要的❗❗❗\n \n

    \n

    \n \n 这样才能把学会的Python 知识用起来,不断地提高。最终从新手晋升为高手\n \n

    \n

    \n \n 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦\n \n

    \n

    \n \n 不用多说大家都知道学编程语言一定要做项目才行。\n \n

    \n

    \n \n 1、[Python 图片转字符画]\n \n

    \n

    \n \n 2、【200行Python代码实现2048]\n \n

    \n

    \n \n 3、[Python3实现火车票查询工具]\n \n

    \n

    \n \n 4、【高德API+Python解决租房问题]\n \n

    \n

    \n \n 5、【Python3色情图片识别]\n \n

    \n

    \n \n 6、【Python破解验证码]\n \n

    \n

    \n \n 7、【Python实现简单的Web服务器]\n \n

    \n

    \n \n 8、【pygame开发打飞机游戏]\n \n

    \n

    \n \n 9、[Django搭建简易博客]\n \n

    \n

    \n \n 10、[Python基于共现提取《釜山行》人物关系]\n \n

    \n

    \n \n 11、【基于scrapy爬虫的天气数据采集(python)]\n \n

    \n

    \n \n 12、【Flask开发轻博客]\n \n

    \n

    \n \n 13、【Python3图片隐写术]\n \n

    \n

    \n \n 14、【Python 实现简易Shell)\n \n

    \n

    \n \n 15、【使用Python解数学方程]\n \n

    \n

    \n \n 16、【PyQt实现简易浏览器]\n \n

    \n

    \n \n 17、【神经网络实现手写字符识别系统]\n \n

    \n

    \n \n 18、【Python实现简单画板]\n \n

    \n

    \n \n 19、【Python实现3D建模工具]\n \n

    \n

    \n \n 20、【NBA常规赛结果预测--利用Python进行\n \n \n \n 比赛数据分析]\n \n \n

    \n

    \n \n 21、\n \n \n \n 【神经网络实现人脸识别任务]\n \n \n

    \n

    \n \n 22、【\n \n \n \n [Python文本解析器]\n \n \n

    \n

    \n \n 23、\n \n \n \n [Python3&OpenCV视频转字符动画]\n \n \n

    \n

    \n \n 24、[Python3实现淘女郎照片爬虫]\n \n

    \n

    \n \n 25、\n \n \n \n [Python3实现简单的FTP认证服务器]\n \n \n

    \n

    \n \n 26、\n \n \n \n [基于Flask与MySQL实现番剧推荐系统]\n \n \n

    \n

    \n \n 27、[Python实现端口扫描器]\n \n

    \n

    \n \n 28、\n \n \n \n 【使用Python3编写系列实]\n \n \n

    \n

    \n \n 29、【Python实现康威生命游戏实用脚本]\n \n

    \n

    \n \n 30、\n \n \n \n 【川普撞脸希拉里(基于OpenCV\n \n \n \n \n 征交换]\n \n \n

    \n

    \n \n 31、【Python 3实现Markdown解析器]\n \n

    \n

    \n \n 32、【Python气象数据分析--《Python数据分\n \n \n \n 析实战》]\n \n \n

    \n

    \n \n 33、\n \n \n \n 【Python实现键值数据库]\n \n \n

    \n

    \n \n 34、\n \n \n \n [k-近邻算法实现手写数字识别系统]\n \n \n

    \n

    \n \n 35、\n \n \n \n 【ebay在线拍卖数据分析]\n \n \n

    \n

    \n \n 36、\n \n \n \n [Python实现英文新闻摘要自动提取]\n \n \n

    \n

    \n \n 37、\n \n \n \n 【Python实现简易局域网视频聊大工具]\n \n \n

    \n

    \n \n 38、【基于Flask及爬虫实现微信娱乐机器人]\n \n

    \n

    \n \n 39、[Python实现Python解释器]\n \n

    \n

    \n \n 40、【Python3基于Scapy实现DDos]\n \n

    \n

    \n \n 41、[Python实现密码强度检测器]\n \n

    \n

    \n \n 42、【使用Python实现深度神经网络]\n \n

    \n

    \n \n 43、【Python实现从excel读取数据并绘制成精\n \n \n \n 美图像]\n \n \n

    \n

    \n \n 44、【人机对战初体验Python基于Pygame实现\n \n \n \n 四子棋游戏]\n \n \n

    \n

    \n \n 45、【Python3实现可控制肉鸡的反向Shell1\n \n

    \n

    \n \n \n 获取方式:\n \n \n

    \n

    \n \n \n \n 1.点赞+在看\n \n \n \n

    \n

    \n \n \n 2.点击下方小卡片发送‘学习’即可获取~\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/uOAr9KwYg-6HvbJGRBLxvw", - "creator": "python开发工程师", - "pubDate": "Fri, 04 Jul 2025 04:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwqm1fyIIFpxnqmrUNyQznwjRjhPW9ic9u3d6IlWcphPpBA01tZtwhmSZBXLxAa7YiajapwmwNq1gkw/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwqm1fyIIFpxnqmrUNyQznwjRjhPW9ic9u3d6IlWcphPpBA01tZtwhmSZBXLxAa7YiajapwmwNq1gkw/0?wx_fmt=jpeg", - "id": "2247511287_1", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "28a2618c1b234cc3ef8658429dea6b8e", - "highlights": [] - }, - { - "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", - "description": "自学python必看的书籍《Python编程:从入门到实践》内容简介本书是一本针对所有层次的Python 读者", - "content": "
    \n

    \n \n \n 自学python必看的书籍《Python编程:从入门到实践》\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/tcflJ9s2_9sz64YaYGR7Zg", - "creator": "python开发工程师", - "pubDate": "Wed, 02 Jul 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicTUXCSzcuIR9Pbtic23niaoI1AzFXBprib5Iia7yvq2EvuBIIUjs3sGM5MQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicTUXCSzcuIR9Pbtic23niaoI1AzFXBprib5Iia7yvq2EvuBIIUjs3sGM5MQ/0?wx_fmt=jpeg", - "id": "2247511275_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "934dc0c78abe4f4d7b3496f12820db70", - "highlights": [] - }, - { - "title": "使用Python6年后,发现学Python看完这几本书少走一半弯路,别错过", - "description": "在前面6年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习!", - "content": "
    \n

    \n \n 在前面6年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习!它几乎可以做任何事,从简单的脚本创建、web,到数据可视化以及AI人工智能,使热衷python的人群变得越来越多。接下来推荐4本学python一定要看的书籍,有了他们,至少能节省50%的时间少走一半的弯路!\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n 零基础学python必看两本 一\n \n \n \n 《21天学通Python》\n \"图片\"\n \n \n \n \n
    \n
    \n

    \n

    \n \n \n 《21天学通Python》\n \n \n \n 共分三篇。第一篇介绍Python语言的特点、安装、语法基础、程序流程控制、面向过程的编程方法、面向对象的编程方法、程序异常的处理;第二篇介绍了Python语言中的包与模块、迭代器、生成器、装饰器、上下文管理器等进阶语法,同时介绍了使用Python标准库中的文件系统处理、图形化界面编程、正则表达式、网络编程、多进(线)程编程、数据库编程。此外,还介绍了运用第三方库的Web网站编程、图片处理;第三篇通过两个案例介绍Python的综合编程技术。二《python 程序员指南》\n \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n 1、本书主要讲解Python语言的基础知识、编程 及应用 2、本书的概念和思路清晰,并对相应的概念提供了大量的编程实例,具有很高的参考和应用价值 3、本书的内容深入浅出、通俗易懂、从最简单的例子着眼逐步进阶、不仅适合初学者,对使用Python编写各种大型、复杂应用的程序员来说也是一本实用的参考书 python技能获取拓展\n \n \n \n 《python数据可视化编程实战》\n \"图片\"\n \n \n

    \n

    \n \n 本书是一本使用 Python 实现数据可视化编程的实战指南,介绍了如何使用 Python 流行的库,通过 70 余种方法创建美观的数据可视化效果。全书共 9 章,分别介绍了准备工作环境、了解数据、绘制并定制化图表、学习更多图表和定制化、创建 3D 可视化图表、用图像和地图绘制图表、使用正确的图表理解数据、更多的 matplotlib 知识以及使用\n \n \n \n Plot.ly\n \n \n \n 进行云端可视化。本书适合那些对 Python 编程有一定基础的开发人员阅读,可以帮助读者从头开始了解数据、数据格式、数据可视化,并学会使用 Python 可视化数据。\n \n \n \n 《Python编程快速上手——让繁琐工作自动化》\n \"图片\"\n \n \n

    \n

    \n \n \n 电子版已经给大家准备好了,早日成为Python大佬!\n \n \n \n 由于篇幅原因,所有章节就不一一截图展示,有需要的小伙伴可以\n \n \n \n

    \n

    \n \n \n 获取方式:\n \n \n

    \n
      \n
    1. \n

      \n \n 点赞+再看\n \n

      \n
    2. \n
    3. \n

      \n \n 公众号内私信回复“学习”\n \n

      \n
    4. \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/xiNrfMycIKR5iK9CRQLnRg", - "creator": "python开发工程师", - "pubDate": "Tue, 01 Jul 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicSPxKqGGBPVOWu8SjWLRMExd0LYnWI4PqU879eNSmrLFzVTF7Q6R5pg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicSPxKqGGBPVOWu8SjWLRMExd0LYnWI4PqU879eNSmrLFzVTF7Q6R5pg/0?wx_fmt=jpeg", - "id": "2247511269_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "25b3ac08e2f72fa4d222dc9703f673c2", - "highlights": [] - }, - { - "title": "一周练完!100个Python实战项目,太实用了,绝对不能错过(附完整版源码+教程)", - "description": "Python 是一种极具可读性和通用性的编程语言。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python 是一种极具可读性和通用性的编程语言\n \n \n \n \n \n \n 。Python 这个名字的灵感来自于英国喜剧团体 Monty Python,它的开发团队有一个重要的基础目标,就是使语言使用起来很有趣。Python 易于设置,并且是用相对直接的风格来编写,对错误会提供即时反馈,对初学者而言是个很好的选择。\n \n

    \n

    \n \n Python 是一种多范式语言,也就是说,它支持多种编程风格,包括脚本和面向对象,这使得它适用于通用目的。随着越来越多地在工业中,被诸如联合太空联盟\n \n \n \n \n \n \n (NASA 的主要飞机支持承包商)和工业光魔\n \n \n \n \n \n \n (VFX 和卢卡斯影业的动画工作室\n \n \n \n \n \n \n )等组织使用,Python 为那些寻求额外编程语言的人提供了巨大的潜力 。\n \n

    \n

    \n \n 当一个重要的被称为 comp.lang.python 的 Python 新闻组\n \n \n \n \n \n \n 在 1994 年形成时,Python 的用户基础不断增长,这为 Python 成为开源开发中最受欢迎的编程语言之一铺平了道路。\n \n

    \n

    \n \n Python当下真的很火。Python实战项目,也一直尤为关注,接下来,和大家介绍下100个Python练手的实战项目。\n \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n \n \n 每个项目都有详细的视频讲解,跟随老师带你一步步完成敲代码的过程,在过程中结合多学知识提升能力,帮助怒更好地完成练习。\n \n \n \n \n
    \n
    \n

    \n

    \n \n 100个Python项目列表:\n \n

    \n
      \n
    1. \n

      \n \n 1.python自动获取海量IP工具\n \n

      \n
    2. \n
    3. \n

      \n \n 2.python自动获取酷狗音乐工具\n \n

      \n
    4. \n
    5. \n

      \n \n 3.Python自动化开发-制作名片卡\n \n

      \n
    6. \n
    7. \n

      \n \n 4.Python自动化开发-制作名片卡\n \n

      \n
    8. \n
    9. \n

      \n \n 5.Python自动化开发-批量发邮件通知\n \n

      \n
    10. \n
    11. \n

      \n \n 6.Python自动化开发-考勤处理\n \n

      \n
    12. \n
    13. \n

      \n \n 7.Python双色球系统\n \n

      \n
    14. \n
    15. \n

      \n \n 8.Python批量获取王者荣耀皮肤\n \n

      \n
    16. \n
    17. \n

      \n \n 9.Python获取阴阳师壁纸\n \n

      \n
    18. \n
    19. \n

      \n \n 10.Python获取小说数据并分析\n \n

      \n
    20. \n
    21. \n

      \n \n 11.Python获取NBA数据\n \n

      \n
    22. \n
    23. \n

      \n \n 12.python获取拉钩工具\n \n

      \n
    24. \n
    25. \n

      \n \n 13.Python获取房天下数据\n \n

      \n
    26. \n
    27. \n

      \n \n 14.Python获取彩票信息\n \n

      \n
    28. \n
    29. \n

      \n \n 15.Python合成女神图片\n \n

      \n
    30. \n
    31. \n

      \n \n 16.Python法拍网数据\n \n

      \n
    32. \n
    33. \n

      \n \n 17.Python操作Excel自动化开发\n \n

      \n
    34. \n
    35. \n

      \n \n 18.python百行制作查询工具\n \n

      \n
    36. \n
    37. \n

      \n \n 19.python百行制作登录系统\n \n

      \n
    38. \n
    39. \n

      \n \n 20.Python百行代码实现点赞系统\n \n

      \n
    40. \n
    41. \n

      \n \n 21.Python百行代码实现抽奖系统\n \n

      \n
    42. \n
    43. \n

      \n \n 22.Python自动获取小说工具\n \n

      \n
    44. \n
    45. \n

      \n \n 23.python获取喜马拉雅音频\n \n

      \n
    46. \n
    47. \n

      \n \n 24.python快速获取斗图表情\n \n

      \n
    48. \n
    49. \n

      \n \n 25.python获取主播小视频\n \n

      \n
    50. \n
    51. \n

      \n \n 26.python自动工资条\n \n

      \n
    52. \n
    53. \n

      \n \n 27.python协程详解公开课\n \n

      \n
    54. \n
    55. \n

      \n \n 28.python制作12306查票工具\n \n

      \n
    56. \n
    57. \n

      \n \n 29.python爬虫30行拿LOL皮肤\n \n

      \n
    58. \n
    59. \n

      \n \n 30.python抓取相亲网数据\n \n

      \n
    60. \n
    61. \n

      \n \n 31.python抓取百合网数据\n \n

      \n
    62. \n
    63. \n

      \n \n 32.python游戏开发公开课\n \n

      \n
    64. \n
    \n

    \n \n ......\n \n

    \n

    \n \n \n 91.【Python 图片转字符画】\n \n \n \n
    \n
    \n \n \n 92.【200行Python代码实现2048】\n \n \n \n
    \n
    \n \n \n 93.【Python3 实现火车票查询工具】\n \n \n \n
    \n
    \n \n \n 94.【高德API+Python解决租房问题】\n \n \n \n
    \n
    \n \n \n 95.【Python3色情图片识别】\n \n \n \n
    \n
    \n \n \n 96.【Python 破解验证码】\n \n \n \n
    \n
    \n \n \n 97.【Python实现简单的Web服务器】\n \n \n \n
    \n
    \n \n \n 98.【pygame开发打飞机游戏】\n \n \n \n
    \n
    \n \n \n 99.【Django 搭建简易博客】\n \n \n \n
    \n
    \n \n \n 100.【Python基于共现提取《釜山行》人物关系】\n \n \n

    \n

    \n \n \n \n 完整项目已经打包整理好了,希望对正在学习的你带来帮助~多动手练习,才能不断地巩固知识,更快的进步!\n \n \n \n

    \n

    \n \n \n \n \n 获取方式:\n \n \n \n \n

    \n

    \n \n \n \n \n 1.点赞+在看\n \n \n \n \n

    \n

    \n \n \n \n \n 2.私信回复:学习  领取。\n \n \n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/MhahxqkjJs3c-ltitQIUMw", - "creator": "python开发工程师", - "pubDate": "Tue, 01 Jul 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicbInhfjo3GahVbwFdVO8AiaDEGG09Bpiawo4f109Gn26W6vkE2Cb14SpA/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicbInhfjo3GahVbwFdVO8AiaDEGG09Bpiawo4f109Gn26W6vkE2Cb14SpA/0?wx_fmt=jpeg", - "id": "2247511269_1", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "9a3ecdf1a8d48a28b17be98c6a04879f", - "highlights": [] - }, - { - "title": "Python是什么?为什么一定要学Python?", - "description": "一,Python是什么?Python是一种计算机编程语言。", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n 一,Python是什么?\n \n

    \n

    \n \n Python是一种计算机编程语言。\n \n

    \n

    \n \n 对于“编程”,你可能或多或少听说过Java/C语言/C++ /PHP等语言,Python作为近几年特别火的一门编程语言,相较前面几种语言,更注重可读性和效率。\n \n

    \n

    \n \n 因此,Python对于注重开发效率的程序员来说是大受欢迎的,他们给Python的定位是“优雅”、“明确”、“简单”。\n \n

    \n

    \n \n 除此之外,Python还具有以下优势,获得人们的青睐:\n \n

    \n

    \n \n Python 易于学习——Python程序简单易懂,初学者只要识字、会简单的算术、看懂英文单词就能入门学习。因此很多小学生从小就开始通过学习python来培养编程思维。\n \n

    \n

    \n \n 少量的代码就能构建出很多功能—— 在Python中,几乎每个想法都可以通过20-30行代码快速验证。\n \n

    \n

    \n \n Python 拥有最成熟的程序包资源库之一——Python有满足不同需求的库,无论实现什么功能,都有现成的类库可以使用。\n \n

    \n

    \n \n Python 是人工智能/现代数据科学中最常使用的语言——Python应用领域广泛(如图),尤其是人工智能/大数据时代不可或缺的技能。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 二、为什么一定要学Python?\n \n

    \n

    \n \n 1、时代之驱\n \n

    \n

    \n \n 这两年,最火的词莫过于“人工智能”。\n \n

    \n

    \n \n 随着人工智能和机器学习的发展,各行各业职位正在逐渐被智能机器取替,为了应对被取替的风险,越来越多人开始学习编程,学习火热的程度可谓“全民Python编程的时代”。\n \n

    \n

    \n \n 可以看看几个重要的新闻:\n \n

    \n
      \n
    • \n

      \n \n \n Python纳入浙江省高考!浙江省信息技术教材编程语言将会更换为 Python。\n \n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n
      \n
    • \n

      \n \n \n Python纳入山东省的小学教材课程,小学生都开始接触 Python 语言了。\n \n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n
      \n
    • \n

      \n \n \n Python 已加入全国计算机等级考试!教育部考试中心决定自2018年起,在计算机二级考试加入了“Python语言程序设计”科目。\n \n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 现在国外国内很多家长已经给孩子报名学习Python编程课程了。在美国,就连婴幼儿也有专门的编程童书。\n \n

    \n

    \n \n 所以,如果不想被淘汰,现在就应该抓紧机会学起来!\n \n

    \n

    \n \n 2、Python最适合0基础学习者\n \n

    \n

    \n \n 对于编程小白来说,Python是最适合0基础学习的编程语言。\n \n

    \n

    \n \n Python的语法简单,代码可读性高,容易入门。从Python学起,你很快就能运用Python编程的底层逻辑去学习另外的语言。也就是说,学习Python是学习编程的最好起点。\n \n

    \n

    \n \n 3、Python极大提升现有岗位的竞争力\n \n

    \n

    \n \n 有许多在职程序员本身学了c语言、java等其他编程后,仍坚定多学一门Python开发,他们都被Python代码的优美和开发效率所折服。\n \n

    \n

    \n \n 比如有一些工程师,以前在做很多SEO优化的时候,苦于不会编程,一些程序上面的问题,得不到解决,只能做做简单的页面优化。\n \n

    \n

    \n \n 现在学会Python之后,可以编写一些查询收录,排名,自动生成网络地图的程序,解决棘手的SEO问题,这样,在原有专业基础上,他们就多了一项高效的技能。\n \n

    \n

    \n \n 此外,如果你关注新闻和就业情况,可以明显感觉到,随着 Python 语言的持续火热,对于 Python 技术人才的需求也在不断增加。\n \n

    \n

    \n \n 通过统计,各大招聘网中,Python岗位的日均需求量甚至达到了 15000+,北上广深等一线城市的需求更是数量庞大,可见这个技能的竞争压力之大。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n \n 以下通过职友集Python 工资实际查询截图:\n \n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 在北京,Python平均工资20980,并且92.7%的Python从业人员薪资在10K以上。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 在互联网比较发达的二线城市,比如成都平均工资12260,6K以上占比85% ,10K以上占比也到达了70.4%。\n \n \n

    \n

    \n \n \n 可以说,Python是近两年投入性价比最高的学习技能之一了!\n \n \n

    \n

    \n \n \n 现在,相信你已经对Python有了初步的认知和了解。\n \n \n

    \n

    \n \n 最后\n \n

    \n

    \n \n 如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料\n \n

    \n

    \n \n 对于0基础小白入门:\n \n

    \n

    \n \n 如果你是零基础小白,想快速入门Python是可以考虑培训的。\n \n

    \n

    \n \n 一方面是学习时间相对较短,学习内容更全面更集中。\n \n

    \n

    \n \n Python所有方向的学习路线\n \n

    \n

    \n \n Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。\n \n

    \n

    \n \n Python所有方向的学习路线\n \n

    \n

    \n \n \n Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n Python必备开发工具\n \n

    \n

    \n \n \n 工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n Python精品PDF电子书\n \n

    \n

    \n \n \n 阅读一些书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python学习视频\n \n

    \n

    \n \n \n 观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 实战案例\n \n

    \n

    \n \n \n 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。\n \n \n

    \n
    \n \"图片\"\n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 获取方式:\n \n

    \n

    \n \n 1.点赞+再看\n \n

    \n

    \n \n 2.公众号内回复:“学习”\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/il87sB37BUOUiln-4bMyzQ", - "creator": "python开发工程师", - "pubDate": "Mon, 30 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bCXCNXVa4kriaKonPngaWuYNXLfSuEOtL6Fu3Ga0XM2RExUB46rDL0eg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bCXCNXVa4kriaKonPngaWuYNXLfSuEOtL6Fu3Ga0XM2RExUB46rDL0eg/0?wx_fmt=jpeg", - "id": "2247511263_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "41aaa40f77c628b164b24e899c10bf40", - "highlights": [] - }, - { - "title": "每天五分钟—Python知识点总结13张思维导图(附全套教程)", - "description": "如果初学者接触的第一门语言是Python,学习曲线则会平滑得多,掌握一些基本语法和Python内置的数据结构,", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n \n 如果初学者接触的第一门语言是Python,学习曲线则会平滑得多\n \n \n \n ,掌握一些基本语法和Python内置的数据结构,已经可以上手写一些小工具或者小型应用。这对初学者来说,非常重要。因为学习的过程是一个突破舒适区的过程,会面临很多痛苦,如果学习过程得不到激励,很容易半途而废,类似我们开玩笑说的「从入门到放弃」。\n \n \n \n Python还有很多优点:\n \n \n \n 上手快,第三方库丰富,资料丰富,很容易做出“可见可得”的应用。\n \n \n \n Python所需要学习的知识基础知识\n \n \n \n Python最基本的语言特性和语法:•变量•数据类型与数据结构•输入和输出•运算符、表达式、语句•控制流(顺序控制,选择控制和循环控制)•面向过程编程•面向对象编程•异常处理•组织代码•标准库、第三方库\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n 为大家准备了一些python的学习教程和PDF格式的python电子书籍,希望可以帮助到大家。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号内回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/dL5ozU3wGbvtiyoUNI9C2g", - "creator": "python开发工程师", - "pubDate": "Sun, 29 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bOJkSX76xZDY1ibH9oKrfibTxboy6FZicP5Io4FaByO8nc45ODaX9PY41Q/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bOJkSX76xZDY1ibH9oKrfibTxboy6FZicP5Io4FaByO8nc45ODaX9PY41Q/0?wx_fmt=jpeg", - "id": "2247511257_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "6945f979532d2b5989ef04164d801403", - "highlights": [] - }, - { - "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", - "description": "内容简介本书是一本针对所有层次的Python 读者而作的Python 入门书。", - "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/OBYA9CqtM2SJz3V0OsMNMw", - "creator": "python开发工程师", - "pubDate": "Fri, 27 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bENYGODukDQ8iaKoSXOKkIEz9iaAdM2HiaTL77jqDuHqbple8NGD0NlMFQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bENYGODukDQ8iaKoSXOKkIEz9iaAdM2HiaTL77jqDuHqbple8NGD0NlMFQ/0?wx_fmt=jpeg", - "id": "2247511245_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "761a8deb7a6670d138fbe73449a68ef1", - "highlights": [] - }, - { - "title": "56个java毕设项目!附源码+视频!", - "description": "Java毕设项目可从多个领域和方向进行选择,以下是一些推荐的项目方向,涵盖不同技术栈和应用场景,适合不同难度需", - "content": "None", - "category": "", - "link": "https://mp.weixin.qq.com/s/qI4OJXVOTKqqlrNRYkeFaQ", - "creator": "python开发工程师", - "pubDate": "Wed, 25 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9pjsye99eFgIia4mpKSs2EagFeEAyyNmYqkJLFGKGiciaM7iatIhDZKqv3w/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9pjsye99eFgIia4mpKSs2EagFeEAyyNmYqkJLFGKGiciaM7iatIhDZKqv3w/0?wx_fmt=jpeg", - "id": "2247511233_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "b3fa55dd5b4feeaa370d84c7511f8eb9", - "highlights": [] - }, - { - "title": "计算机专业18个Java毕设项目(附源码+视频+数据库),拿走即用!期末毕设不用", - "description": "领取方式:点赞+私信留言“111”或主动给我打个招呼,我都会回复的~~~一定要关注我,不然我发不了消息哦~", - "content": "
    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n 领取方式:点赞+私信留言“111”或主动给我打个招呼,我都会回复的~~~\n \n \n

    \n

    \n \n \n 一定要关注我,不然我发不了消息哦~\n \n \n

    \n

    \n \n \n 整理不易,有帮助的话大家一定要 点赞 + 收藏 哦 ❤️!支持作者的同时,便于自己下次更方便地找到叭!\n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/jJOoSZywzYalMsmElLJDFw", - "creator": "python开发工程师", - "pubDate": "Wed, 25 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9fvibGb3ZJY6qI6g2LWABXT88R1dhIwRS6icaENdrkXtrtoIuBzJ0Od2w/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9fvibGb3ZJY6qI6g2LWABXT88R1dhIwRS6icaENdrkXtrtoIuBzJ0Od2w/0?wx_fmt=jpeg", - "id": "2247511233_1", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "5f74af3509bb7119b65229e9a44505ee", - "highlights": [] - }, - { - "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", - "description": "自学python必看的书籍《Python编程:从入门到实践》内容简介本书是一本针对所有层次的Python 读者", - "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n 自学python必看的书籍《Python编程:从入门到实践》\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/bQOggBBJ0dLp-eoSjOrnTg", - "creator": "python开发工程师", - "pubDate": "Tue, 24 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9J5SsenheZQaXX6YI26tYXNebNzDqdLr7y1R630Q9ic67PSicibDZZsWicg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9J5SsenheZQaXX6YI26tYXNebNzDqdLr7y1R630Q9ic67PSicibDZZsWicg/0?wx_fmt=jpeg", - "id": "2247511212_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "9397870631052e80a6854e64e07d7b1d", - "highlights": [] - }, - { - "title": "python入门教程完整版(PDF版)", - "description": "当年3w买的全套python教程用不着了,现在送给有缘人,不要钱,一个月教你从入门到精通本套视频共600集70", - "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n \n 当年3w买的全套python教程用不着了,现在送给有缘人,不要钱,一个月教你从入门到精通\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 本套视频共600集\n \n \n

    \n

    \n \n \n 70个练手项目列表\n \n \n

    \n

    \n \n \n 300套Python书籍PDF版等等~\n \n \n

    \n

    \n \n \n (我现在正在发放中,如下图)\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 获取方式\n \n \n \n
    \n
    \n

    \n

    \n \n 1、点赞+在看\n \n

    \n

    \n \n 2、后台回复:\n \n \n \n 学习\n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/kZFae2Y-ENwLqQRWOyFvVA", - "creator": "python开发工程师", - "pubDate": "Mon, 23 Jun 2025 09:47:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MIibpTZGza7gH3SRSCUFh8dZ8LKI27RBJY6wWn2yK5yqsjBY3axkYqSQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MIibpTZGza7gH3SRSCUFh8dZ8LKI27RBJY6wWn2yK5yqsjBY3axkYqSQ/0?wx_fmt=jpeg", - "id": "2247511206_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "11ddd29ebda4153b594d8c3b201af156", - "highlights": [] - }, - { - "title": "史上最详细python学习路线-从入门到精通,只需5个月时间", - "description": "Python是一种功能很强大的语言,对于零基础学习Python还是有难度的,但只要学习方法对,入门还是很快哒。", - "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n Python是一种功能很强大的语言,对于零基础学习Python还是有难度的,但只要学习方法对,入门还是很快哒。\n \n \n

    \n
    \n

    \n \n \n 针对Python的初学者,从无到有的Python语言如何入门,主要包括了:Python的简介,如何下载Python,如何安装Python,如何使用终端、Shell,IDE等各种开发环境进行Python开发,Python中的语法和基本知识、概念和逻辑,以及继续深入学习Python的方法。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 下面我将详细介绍python学习路线,给那些想学习python的小伙伴们一点帮助!\n \n \n

    \n

    \n \n \n 你可以按照下面的步骤学习:\n \n \n

    \n

    \n \n \n 第一阶段:Python基础编程\n \n \n

    \n

    \n \n \n 1:知识体系:\n \n \n

    \n
    \n

    \n \n \n 掌握基本概念,基本数据类型,高级容器类型,控制语句,函数,文件等等\n \n \n

    \n
    \n

    \n \n \n 1.1:学习目标:\n \n \n

    \n
      \n
    • \n

      \n \n 1:可掌握python的基础语法,能够使用python进行编程;\n \n

      \n
    • \n
    • \n

      \n \n 2:具有面向对象编程解决问题的思想;\n \n

      \n
    • \n
    • \n

      \n \n 3:掌握Linux使用技巧和方法;\n \n

      \n
    • \n
    • \n

      \n \n 4:熟悉Linux环境下的开发流程\n \n

      \n
    • \n
    \n

    \n \n \n 1.2:具备能力:\n \n \n

    \n
      \n
    • \n

      \n \n 1:能够熟练使用python解决一般问题,利用python的特性,写出简洁易懂的代码;\n \n

      \n
    • \n
    • \n

      \n \n 2:能够进行基于Linux的环境开发。具备企业中开发中必备的Linux技能。\n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 第二阶段:Python核心提升\n \n \n

    \n

    \n \n \n 1:知识体系:\n \n \n

    \n
    \n

    \n \n 关系型数据库(MySQL),健值型数据库(Redis),文档型数据库(MongoDB),网络编程,并发等等\n \n

    \n
    \n

    \n \n \n 1.1:学习目标:\n \n \n

    \n
      \n
    • \n

      \n \n 1:掌握三种类型数据库的使用\n \n

      \n
    • \n
    • \n

      \n \n 2:掌握python网络编程和并发的具体实践技能\n \n

      \n
    • \n
    \n

    \n \n \n 1.2:具备能力:\n \n \n

    \n
      \n
    • \n

      \n \n 1:能够熟练使用三种类型的数据库,以及各自的特点的使用场景有清晰的认识\n \n

      \n
    • \n
    • \n

      \n \n 2:对网络编程和并发有深入的了解,初步具备企业的用人需求。\n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 第三阶段:Web基础开发\n \n \n

    \n

    \n \n \n 1:知识体系:\n \n \n

    \n
    \n

    \n \n HTML与css,JavaScript,jQuery,Ajax\n \n

    \n
    \n

    \n \n \n 第四阶段:Web-Django框架与项目\n \n \n

    \n

    \n \n \n 1:知识体系:\n \n \n

    \n
    \n

    \n \n Django框架,路由系统,项目:网上商城等等\n \n

    \n
    \n

    \n \n \n 第五阶段:爬虫开发\n \n \n

    \n

    \n \n \n 1:知识体系:\n \n \n

    \n
    \n

    \n \n 爬虫入门,爬虫库和工具的使用,IP代理池的实现,常见反爬手段,爬虫高级框架等等\n \n

    \n
    \n

    \n \n \n 第六阶段:数据分析\n \n \n

    \n

    \n \n \n 1:知识体系:\n \n \n

    \n
    \n

    \n \n 数据分析初级,经典模块及其使用,高级算法等等\n \n

    \n
    \n

    \n \n 如果你有心学习Python,为了避免漫无目且零散地学习,小编整理好的学习资料可以分享给大家,即使你\n \n \n \n 非技术出身\n \n \n \n 也能快速入门Python获得\n \n \n \n 求职能力、工作效率、解决问题\n \n \n \n 等硬核能力的提升。\n \n

    \n

    \n \n Python从基础到进阶的教程\n \n

    \n

    \n \n \n 1.Python基础语法以及流程控制语句\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 2.Python基础编程\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 3.Python电子书大全(仅展示部分资料)\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 文章到此结束了,希望对大家有帮助。还有小编把这些学习资料都已整理完毕,\n \n \n \n 需要的小伙伴可以\n \n \n

    \n

    \n \n \n \n 点赞+再看,\n \n \n \n

    \n
    \n \n \n \n 公众号内回复“学习”即可获取编程资料\n \n \n \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n \n 就业方向一 web前后端开发(python开发工程师)\n \n \n

    \n

    \n \n 熟悉HTML/JavaScript/CSS,掌握React.js等前端框架开发,熟悉页面架构和布局,熟悉MySQL、Redis等,具备数据库应用、设计能力,熟练掌握Django/Flask等Web后端开发框架,熟练掌握网络通讯协议和多线程、多进程并发技术,了解架构设计、实现原理和安全防护加固,掌握高并发web网站、缓存加速技术,有1-2个完整项目经验。已经具备Python web中高级级开发工程师能力,市面薪资可达12K-18K。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 就业方向二 运维自动化开发\n \n \n

    \n

    \n \n 对持续集成和持续交付(CI/CD)有深入理解,并有实施经验,熟练 DevOps 工具,如:Jenkins, Ansible 等的经验;熟悉容器技术,有Kubernetes使用经验;对运维平台和中间件的设计、开发工作;掌握自动化脚本的设计、开发、测试,可实现运维平台自动化和可视化,具备Python运维开发工程师能力,市面薪资可达12K-25K。\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 业方向三 数据抓取(Python爬虫工程师)\n \n \n

    \n

    \n \n 可熟练使用Python语言,熟悉常用爬虫框架如Scrapy等;熟练使用selenium,lxml, bs4 对xml,html的文本进行抓取解析清理;对管理网站的cookie实效性处理有经验;熟悉反爬虫、验证码识别技术,有能力解决复杂的反爬限制;具备丰富的多线程、网络数据处理经验,掌握开源爬虫框架scrapy;掌握分布式爬虫技术。可设计数据采集策略,提升数据采集效率及质量。\n \n

    \n

    \n \n \n 就业方向四 数据分析&挖掘(数据分析&数据挖掘工程师)\n \n \n

    \n

    \n \n 熟悉主流的数据挖掘建模算法,如数据分析、分类预测、用户画像等;掌握数据分析模型的固化及部署工作,可进行进行数据分析、数据建模、挖掘、清洗,可实现包括数据交互、特征提取、数据挖掘、分析报告等;熟练使用pandas,numpy,matplotlib等工具分析数据,做数据的可视化,并能解释数据分布。已经具备Python数据分析&挖掘工程师能力,市面薪资可达10K-18K。\n \n

    \n

    \n \n \n 拓展就业方向五 机器学习&金融量化&人工智能\n \n \n

    \n

    \n \n 该领域为前沿技术领域,目前世界top100公司都在招募大量人工智能、量化交易、机器学习相关人才,对相关人才要求有较高的学习能力和数学能力,年薪50w+起步,对于刚接触python的人士来说,适合作为未来发展方向研究。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/VOE8IdoClmVi5Na8LEysnA", - "creator": "python开发工程师", - "pubDate": "Sat, 21 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4M8UWibW49xk7f75yJiaJRQ6zEB4sJDjLRcTFvJ8wBNFt44nsdgL6ibwYgg/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4M8UWibW49xk7f75yJiaJRQ6zEB4sJDjLRcTFvJ8wBNFt44nsdgL6ibwYgg/0?wx_fmt=jpeg", - "id": "2247511199_2", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "563c4620e9d0adfc2c8821adbec2fe03", - "highlights": [] - }, - { - "title": "学习python的必读书籍《利用Python进行数据分析》附PDF版", - "description": "这是非常经典的一本Python数据分析书,每一章之间有递进关系,适合Python入门()如《Python编程,", - "content": "
    \n

    \n \n 这是非常经典的一本Python数据分析书,每一章之间有递进关系,适合Python入门()如《Python编程,从入门到实践》)之后阅读,本书专门针对数据分析领域的。我细致地读了一遍,敲了一遍代码,一开始没有头绪,进展缓慢,后来逐渐明朗了。学习编程要多实践,这对没有基础的人来说有困难,因为无从下手。我的体会是,在你基础不牢的时候,就多看,多记,多总结,搭建自己的思路框架。\n \n

    \n

    \n \n 书籍简介\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n 利用Python进行数据分析\n \n

    \n

    \n \n \n 本书由pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。\n \n \n

    \n

    \n \n \n 第2版中的主要更新包括:\n \n \n

    \n

    \n \n \n • 所有的代码,包括把Python的教程更新到了Python 3.6版本(第1版中使用的是Python 2.7)\n \n \n

    \n

    \n \n \n • 更新了Python第三方发布版Anaconda和其他所需Python包的安装指引\n \n \n

    \n

    \n \n \n • 更新pandas库到2017年的新版\n \n \n

    \n

    \n \n \n • 新增一章,关于更多高级pandas工具和一些使用提示\n \n \n

    \n

    \n \n \n • 新增statsmodels和scikit-learn的简明使用介绍\n \n \n

    \n

    \n \n \n \"图片\"\n \n \n

    \n

    \n \n 目录\n \n

    \n

    \n \n 第1章 准备工作\n \n
    \n \n 第2章 Python语言基础、IPython及Jupyter notebook\n \n
    \n \n 第3章 内建数据结构、函数及文件\n \n
    \n \n 第4章 NumPy基础:数组与向量化计算\n \n
    \n \n 第5章 pandas入门\n \n
    \n \n 第6章 数据载入、存储及文件格式\n \n
    \n \n 第7章 数据清洗与准备\n \n
    \n \n 第8章 数据规整:连接、联合与重塑\n \n
    \n \n 第9章 绘图与可视化\n \n
    \n \n 第10章 数据聚合与分组操作\n \n
    \n \n 第11章 时间序列\n \n
    \n \n 第12章 高阶pandas\n \n
    \n \n 第13章 Python建模库介绍\n \n
    \n \n 第14章 数据分析示例\n \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n \n \"图片\"\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n \n 领取方式:\n \n
    \n
    \n
    \n

    \n
      \n
    1. \n

      \n \n \n \n 点赞+在看\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 私信留下回复:“学习”\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", - "category": "", - "link": "https://mp.weixin.qq.com/s/QzNsOfAyqx2sgOiavcalzQ", - "creator": "python开发工程师", - "pubDate": "Fri, 20 Jun 2025 09:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MtWvsSEdycjHjFSUVspgdgrZ63Tic9M30R85C32DVibmXTlKomqNnDrKw/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MtWvsSEdycjHjFSUVspgdgrZ63Tic9M30R85C32DVibmXTlKomqNnDrKw/0?wx_fmt=jpeg", - "id": "2247511178_1", - "language": "", - "folder": "IT技术", - "feed": "python开发工程师", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "1189f681b3a409d6c3f0d7e40085e750", - "highlights": [] - }, { "title": "第十九届世界青年桥牌团体锦标赛即将开赛", "description": "第十九届世界青年桥牌团体锦标赛(19th World Youth Team Championships)将于7月12-17日在意大利萨尔索马焦雷举办。共有来自世界各地的94支青年队参加U26,U21,U26女子,U16,U31五个组别的比赛", @@ -5840,6 +4696,248 @@ "tags": [], "hash": "b2ba7615ea76a0fee1a3212e0c63f7bd", "highlights": [] + }, + { + "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", + "description": "自学python必看的书籍《Python编程:从入门到实践》内容简介本书是一本针对所有层次的Python 读者", + "content": "
    \n

    \n \n \n 自学python必看的书籍《Python编程:从入门到实践》\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/CFfrCyYKJX5rJG0qS4_CqQ", + "creator": "python开发工程师", + "pubDate": "Sat, 12 Jul 2025 06:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwm6QzeJkQsibiaKQWY9iaEoFlhj1dyuLP0Bqe2vJOHbia2M04j6GCRMERWfZVcZialbuOxhrZKTN0j3mg/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwm6QzeJkQsibiaKQWY9iaEoFlhj1dyuLP0Bqe2vJOHbia2M04j6GCRMERWfZVcZialbuOxhrZKTN0j3mg/0?wx_fmt=jpeg", + "id": "2247511336_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "6ece793eae1a41b9db83f1da32129968", + "highlights": [] + }, + { + "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", + "description": "自学python必看的书籍《Python编程:从入门到实践》内容简介本书是一本针对所有层次的Python 读者", + "content": "
    \n

    \n \n \n 自学python必看的书籍《Python编程:从入门到实践》\n \n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/4lrbYqMOMaeZY0ePHWyBVg", + "creator": "python开发工程师", + "pubDate": "Thu, 10 Jul 2025 06:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnzgwZqTn10rhwticCVNicEzMpLia4Bvko08qBXYSYPcRNLtEm6ZiaJRHWpmw/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwSZYGiaKv8xXtfjx0PZ3rnzgwZqTn10rhwticCVNicEzMpLia4Bvko08qBXYSYPcRNLtEm6ZiaJRHWpmw/0?wx_fmt=jpeg", + "id": "2247511324_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "fb4a24facd693493c2b06a9376b12688", + "highlights": [] + }, + { + "title": "每天五分钟—Python知识点总结13张思维导图(附全套教程)", + "description": "如果初学者接触的第一门语言是Python,学习曲线则会平滑得多,掌握一些基本语法和Python内置的数据结构,", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n \n 如果初学者接触的第一门语言是Python,学习曲线则会平滑得多\n \n \n \n ,掌握一些基本语法和Python内置的数据结构,已经可以上手写一些小工具或者小型应用。这对初学者来说,非常重要。因为学习的过程是一个突破舒适区的过程,会面临很多痛苦,如果学习过程得不到激励,很容易半途而废,类似我们开玩笑说的「从入门到放弃」。\n \n \n \n Python还有很多优点:\n \n \n \n 上手快,第三方库丰富,资料丰富,很容易做出“可见可得”的应用。\n \n \n \n Python所需要学习的知识基础知识\n \n \n \n Python最基本的语言特性和语法:•变量•数据类型与数据结构•输入和输出•运算符、表达式、语句•控制流(顺序控制,选择控制和循环控制)•面向过程编程•面向对象编程•异常处理•组织代码•标准库、第三方库\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n 为大家准备了一些python的学习教程和PDF格式的python电子书籍,希望可以帮助到大家。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号内回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/p1kNytp-ZuUyIa4g6FQemg", + "creator": "python开发工程师", + "pubDate": "Wed, 09 Jul 2025 06:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzibdZyOl6Eib8HHXcT1nesbEDU5QxVTKl7ibKiaia6p9HI6PiausBDyjib4ibx7TlS7XX8xicFn6hJdXnpuRQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzibdZyOl6Eib8HHXcT1nesbEDU5QxVTKl7ibKiaia6p9HI6PiausBDyjib4ibx7TlS7XX8xicFn6hJdXnpuRQ/0?wx_fmt=jpeg", + "id": "2247511318_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "5b731a170332c34c2ac69fa674d01432", + "highlights": [] + }, + { + "title": "自学python必看的书籍《Python编程:从入门到实践》", + "description": "内容简介本书是一本针对所有层次的Python 读者而作的Python 入门书。", + "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/c_5LNvw3SAjwBdMs9TRztQ", + "creator": "python开发工程师", + "pubDate": "Sat, 05 Jul 2025 06:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZxW21P2Wlme8ePMGec1BlUXOFYxYplAyK6CLl2x2bH4d2ZWosUWkQlGPFHSr7MpMNoggFfhVnvzag/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZxW21P2Wlme8ePMGec1BlUXOFYxYplAyK6CLl2x2bH4d2ZWosUWkQlGPFHSr7MpMNoggFfhVnvzag/0?wx_fmt=jpeg", + "id": "2247511294_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "7dcfc8e3ce8ac73a506470cf4f75b40b", + "highlights": [] + }, + { + "title": "练完这102个项目,你的Python就牛了", + "description": "Python 初学者在迈过安装编程环境和基本语法的门槛,准备大展身手的时候,可能突然就会进入迷茫期:不知道做些", + "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python 初学者在迈过安装编程环境和基本语法的门槛,准备大展身手的时候,可能突然就会进入迷茫期:\n \n

    \n

    \n \n 不知道做些什么、再学些什么。\n \n

    \n

    \n \n 然后对编程的兴趣就会慢慢消退,找不到坚持下去的理由,从而慢慢淡忘之前学会的编程知识。\n \n

    \n

    \n \n 所以找到自己感兴趣、能够跟着动手和学习的 Python 项目是特别重要的❗❗❗\n \n

    \n

    \n \n 这样才能把学会的Python 知识用起来,不断地提高。最终从新手晋升为高手\n \n

    \n

    \n \n 不管学习哪门语言都希望能做出实际的东西来,这个实际的东西当然就是项目啦\n \n

    \n

    \n \n 不用多说大家都知道学编程语言一定要做项目才行。\n \n

    \n

    \n \n 1、[Python 图片转字符画]\n \n

    \n

    \n \n 2、【200行Python代码实现2048]\n \n

    \n

    \n \n 3、[Python3实现火车票查询工具]\n \n

    \n

    \n \n 4、【高德API+Python解决租房问题]\n \n

    \n

    \n \n 5、【Python3色情图片识别]\n \n

    \n

    \n \n 6、【Python破解验证码]\n \n

    \n

    \n \n 7、【Python实现简单的Web服务器]\n \n

    \n

    \n \n 8、【pygame开发打飞机游戏]\n \n

    \n

    \n \n 9、[Django搭建简易博客]\n \n

    \n

    \n \n 10、[Python基于共现提取《釜山行》人物关系]\n \n

    \n

    \n \n 11、【基于scrapy爬虫的天气数据采集(python)]\n \n

    \n

    \n \n 12、【Flask开发轻博客]\n \n

    \n

    \n \n 13、【Python3图片隐写术]\n \n

    \n

    \n \n 14、【Python 实现简易Shell)\n \n

    \n

    \n \n 15、【使用Python解数学方程]\n \n

    \n

    \n \n 16、【PyQt实现简易浏览器]\n \n

    \n

    \n \n 17、【神经网络实现手写字符识别系统]\n \n

    \n

    \n \n 18、【Python实现简单画板]\n \n

    \n

    \n \n 19、【Python实现3D建模工具]\n \n

    \n

    \n \n 20、【NBA常规赛结果预测--利用Python进行\n \n \n \n 比赛数据分析]\n \n \n

    \n

    \n \n 21、\n \n \n \n 【神经网络实现人脸识别任务]\n \n \n

    \n

    \n \n 22、【\n \n \n \n [Python文本解析器]\n \n \n

    \n

    \n \n 23、\n \n \n \n [Python3&OpenCV视频转字符动画]\n \n \n

    \n

    \n \n 24、[Python3实现淘女郎照片爬虫]\n \n

    \n

    \n \n 25、\n \n \n \n [Python3实现简单的FTP认证服务器]\n \n \n

    \n

    \n \n 26、\n \n \n \n [基于Flask与MySQL实现番剧推荐系统]\n \n \n

    \n

    \n \n 27、[Python实现端口扫描器]\n \n

    \n

    \n \n 28、\n \n \n \n 【使用Python3编写系列实]\n \n \n

    \n

    \n \n 29、【Python实现康威生命游戏实用脚本]\n \n

    \n

    \n \n 30、\n \n \n \n 【川普撞脸希拉里(基于OpenCV\n \n \n \n \n 征交换]\n \n \n

    \n

    \n \n 31、【Python 3实现Markdown解析器]\n \n

    \n

    \n \n 32、【Python气象数据分析--《Python数据分\n \n \n \n 析实战》]\n \n \n

    \n

    \n \n 33、\n \n \n \n 【Python实现键值数据库]\n \n \n

    \n

    \n \n 34、\n \n \n \n [k-近邻算法实现手写数字识别系统]\n \n \n

    \n

    \n \n 35、\n \n \n \n 【ebay在线拍卖数据分析]\n \n \n

    \n

    \n \n 36、\n \n \n \n [Python实现英文新闻摘要自动提取]\n \n \n

    \n

    \n \n 37、\n \n \n \n 【Python实现简易局域网视频聊大工具]\n \n \n

    \n

    \n \n 38、【基于Flask及爬虫实现微信娱乐机器人]\n \n

    \n

    \n \n 39、[Python实现Python解释器]\n \n

    \n

    \n \n 40、【Python3基于Scapy实现DDos]\n \n

    \n

    \n \n 41、[Python实现密码强度检测器]\n \n

    \n

    \n \n 42、【使用Python实现深度神经网络]\n \n

    \n

    \n \n 43、【Python实现从excel读取数据并绘制成精\n \n \n \n 美图像]\n \n \n

    \n

    \n \n 44、【人机对战初体验Python基于Pygame实现\n \n \n \n 四子棋游戏]\n \n \n

    \n

    \n \n 45、【Python3实现可控制肉鸡的反向Shell1\n \n

    \n

    \n \n \n 获取方式:\n \n \n

    \n

    \n \n \n \n 1.点赞+在看\n \n \n \n

    \n

    \n \n \n 2.点击下方小卡片发送‘学习’即可获取~\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/uOAr9KwYg-6HvbJGRBLxvw", + "creator": "python开发工程师", + "pubDate": "Fri, 04 Jul 2025 04:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwqm1fyIIFpxnqmrUNyQznwjRjhPW9ic9u3d6IlWcphPpBA01tZtwhmSZBXLxAa7YiajapwmwNq1gkw/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZwqm1fyIIFpxnqmrUNyQznwjRjhPW9ic9u3d6IlWcphPpBA01tZtwhmSZBXLxAa7YiajapwmwNq1gkw/0?wx_fmt=jpeg", + "id": "2247511287_1", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "28a2618c1b234cc3ef8658429dea6b8e", + "highlights": [] + }, + { + "title": "使用Python6年后,发现学Python看完这几本书少走一半弯路,别错过", + "description": "在前面6年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习!", + "content": "
    \n

    \n \n 在前面6年里,它一直是我热衷使用并不断研究的语言,迄今为止,python都非常友好并且易于学习!它几乎可以做任何事,从简单的脚本创建、web,到数据可视化以及AI人工智能,使热衷python的人群变得越来越多。接下来推荐4本学python一定要看的书籍,有了他们,至少能节省50%的时间少走一半的弯路!\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n 零基础学python必看两本 一\n \n \n \n 《21天学通Python》\n \"图片\"\n \n \n \n \n
    \n
    \n

    \n

    \n \n \n 《21天学通Python》\n \n \n \n 共分三篇。第一篇介绍Python语言的特点、安装、语法基础、程序流程控制、面向过程的编程方法、面向对象的编程方法、程序异常的处理;第二篇介绍了Python语言中的包与模块、迭代器、生成器、装饰器、上下文管理器等进阶语法,同时介绍了使用Python标准库中的文件系统处理、图形化界面编程、正则表达式、网络编程、多进(线)程编程、数据库编程。此外,还介绍了运用第三方库的Web网站编程、图片处理;第三篇通过两个案例介绍Python的综合编程技术。二《python 程序员指南》\n \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n 1、本书主要讲解Python语言的基础知识、编程 及应用 2、本书的概念和思路清晰,并对相应的概念提供了大量的编程实例,具有很高的参考和应用价值 3、本书的内容深入浅出、通俗易懂、从最简单的例子着眼逐步进阶、不仅适合初学者,对使用Python编写各种大型、复杂应用的程序员来说也是一本实用的参考书 python技能获取拓展\n \n \n \n 《python数据可视化编程实战》\n \"图片\"\n \n \n

    \n

    \n \n 本书是一本使用 Python 实现数据可视化编程的实战指南,介绍了如何使用 Python 流行的库,通过 70 余种方法创建美观的数据可视化效果。全书共 9 章,分别介绍了准备工作环境、了解数据、绘制并定制化图表、学习更多图表和定制化、创建 3D 可视化图表、用图像和地图绘制图表、使用正确的图表理解数据、更多的 matplotlib 知识以及使用\n \n \n \n Plot.ly\n \n \n \n 进行云端可视化。本书适合那些对 Python 编程有一定基础的开发人员阅读,可以帮助读者从头开始了解数据、数据格式、数据可视化,并学会使用 Python 可视化数据。\n \n \n \n 《Python编程快速上手——让繁琐工作自动化》\n \"图片\"\n \n \n

    \n

    \n \n \n 电子版已经给大家准备好了,早日成为Python大佬!\n \n \n \n 由于篇幅原因,所有章节就不一一截图展示,有需要的小伙伴可以\n \n \n \n

    \n

    \n \n \n 获取方式:\n \n \n

    \n
      \n
    1. \n

      \n \n 点赞+再看\n \n

      \n
    2. \n
    3. \n

      \n \n 公众号内私信回复“学习”\n \n

      \n
    4. \n
    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/xiNrfMycIKR5iK9CRQLnRg", + "creator": "python开发工程师", + "pubDate": "Tue, 01 Jul 2025 09:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicSPxKqGGBPVOWu8SjWLRMExd0LYnWI4PqU879eNSmrLFzVTF7Q6R5pg/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzTvd1vr2rzDSOOIRMB4TLicSPxKqGGBPVOWu8SjWLRMExd0LYnWI4PqU879eNSmrLFzVTF7Q6R5pg/0?wx_fmt=jpeg", + "id": "2247511269_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "25b3ac08e2f72fa4d222dc9703f673c2", + "highlights": [] + }, + { + "title": "Python是什么?为什么一定要学Python?", + "description": "一,Python是什么?Python是一种计算机编程语言。", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n 一,Python是什么?\n \n

    \n

    \n \n Python是一种计算机编程语言。\n \n

    \n

    \n \n 对于“编程”,你可能或多或少听说过Java/C语言/C++ /PHP等语言,Python作为近几年特别火的一门编程语言,相较前面几种语言,更注重可读性和效率。\n \n

    \n

    \n \n 因此,Python对于注重开发效率的程序员来说是大受欢迎的,他们给Python的定位是“优雅”、“明确”、“简单”。\n \n

    \n

    \n \n 除此之外,Python还具有以下优势,获得人们的青睐:\n \n

    \n

    \n \n Python 易于学习——Python程序简单易懂,初学者只要识字、会简单的算术、看懂英文单词就能入门学习。因此很多小学生从小就开始通过学习python来培养编程思维。\n \n

    \n

    \n \n 少量的代码就能构建出很多功能—— 在Python中,几乎每个想法都可以通过20-30行代码快速验证。\n \n

    \n

    \n \n Python 拥有最成熟的程序包资源库之一——Python有满足不同需求的库,无论实现什么功能,都有现成的类库可以使用。\n \n

    \n

    \n \n Python 是人工智能/现代数据科学中最常使用的语言——Python应用领域广泛(如图),尤其是人工智能/大数据时代不可或缺的技能。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 二、为什么一定要学Python?\n \n

    \n

    \n \n 1、时代之驱\n \n

    \n

    \n \n 这两年,最火的词莫过于“人工智能”。\n \n

    \n

    \n \n 随着人工智能和机器学习的发展,各行各业职位正在逐渐被智能机器取替,为了应对被取替的风险,越来越多人开始学习编程,学习火热的程度可谓“全民Python编程的时代”。\n \n

    \n

    \n \n 可以看看几个重要的新闻:\n \n

    \n
      \n
    • \n

      \n \n \n Python纳入浙江省高考!浙江省信息技术教材编程语言将会更换为 Python。\n \n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n
      \n
    • \n

      \n \n \n Python纳入山东省的小学教材课程,小学生都开始接触 Python 语言了。\n \n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n
      \n
    • \n

      \n \n \n Python 已加入全国计算机等级考试!教育部考试中心决定自2018年起,在计算机二级考试加入了“Python语言程序设计”科目。\n \n \n

      \n
    • \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 现在国外国内很多家长已经给孩子报名学习Python编程课程了。在美国,就连婴幼儿也有专门的编程童书。\n \n

    \n

    \n \n 所以,如果不想被淘汰,现在就应该抓紧机会学起来!\n \n

    \n

    \n \n 2、Python最适合0基础学习者\n \n

    \n

    \n \n 对于编程小白来说,Python是最适合0基础学习的编程语言。\n \n

    \n

    \n \n Python的语法简单,代码可读性高,容易入门。从Python学起,你很快就能运用Python编程的底层逻辑去学习另外的语言。也就是说,学习Python是学习编程的最好起点。\n \n

    \n

    \n \n 3、Python极大提升现有岗位的竞争力\n \n

    \n

    \n \n 有许多在职程序员本身学了c语言、java等其他编程后,仍坚定多学一门Python开发,他们都被Python代码的优美和开发效率所折服。\n \n

    \n

    \n \n 比如有一些工程师,以前在做很多SEO优化的时候,苦于不会编程,一些程序上面的问题,得不到解决,只能做做简单的页面优化。\n \n

    \n

    \n \n 现在学会Python之后,可以编写一些查询收录,排名,自动生成网络地图的程序,解决棘手的SEO问题,这样,在原有专业基础上,他们就多了一项高效的技能。\n \n

    \n

    \n \n 此外,如果你关注新闻和就业情况,可以明显感觉到,随着 Python 语言的持续火热,对于 Python 技术人才的需求也在不断增加。\n \n

    \n

    \n \n 通过统计,各大招聘网中,Python岗位的日均需求量甚至达到了 15000+,北上广深等一线城市的需求更是数量庞大,可见这个技能的竞争压力之大。\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n \n 以下通过职友集Python 工资实际查询截图:\n \n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 在北京,Python平均工资20980,并且92.7%的Python从业人员薪资在10K以上。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 在互联网比较发达的二线城市,比如成都平均工资12260,6K以上占比85% ,10K以上占比也到达了70.4%。\n \n \n

    \n

    \n \n \n 可以说,Python是近两年投入性价比最高的学习技能之一了!\n \n \n

    \n

    \n \n \n 现在,相信你已经对Python有了初步的认知和了解。\n \n \n

    \n

    \n \n 最后\n \n

    \n

    \n \n 如果对Python感兴趣的话,可以试试我的学习方法以及相关的学习资料\n \n

    \n

    \n \n 对于0基础小白入门:\n \n

    \n

    \n \n 如果你是零基础小白,想快速入门Python是可以考虑培训的。\n \n

    \n

    \n \n 一方面是学习时间相对较短,学习内容更全面更集中。\n \n

    \n

    \n \n Python所有方向的学习路线\n \n

    \n

    \n \n Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。\n \n

    \n

    \n \n Python所有方向的学习路线\n \n

    \n

    \n \n \n Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n Python必备开发工具\n \n

    \n

    \n \n \n 工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n Python精品PDF电子书\n \n

    \n

    \n \n \n 阅读一些书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n Python学习视频\n \n

    \n

    \n \n \n 观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 实战案例\n \n

    \n

    \n \n \n 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。\n \n \n

    \n
    \n \"图片\"\n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n 获取方式:\n \n

    \n

    \n \n 1.点赞+再看\n \n

    \n

    \n \n 2.公众号内回复:“学习”\n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/il87sB37BUOUiln-4bMyzQ", + "creator": "python开发工程师", + "pubDate": "Mon, 30 Jun 2025 09:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bCXCNXVa4kriaKonPngaWuYNXLfSuEOtL6Fu3Ga0XM2RExUB46rDL0eg/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bCXCNXVa4kriaKonPngaWuYNXLfSuEOtL6Fu3Ga0XM2RExUB46rDL0eg/0?wx_fmt=jpeg", + "id": "2247511263_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "41aaa40f77c628b164b24e899c10bf40", + "highlights": [] + }, + { + "title": "自学python必看的书籍《Python编程:从入门到实践》PDF版拿走不谢", + "description": "内容简介本书是一本针对所有层次的Python 读者而作的Python 入门书。", + "content": "
    \n

    \n \n
    \n
    \n

    \n

    \n \n \"图片\"\n \n

    \n

    \n \n \n 内容简介\n \n \n

    \n

    \n \n 本书是一本针对所有层次的Python 读者而作的Python 入门书。全书分两部分:\n \n

    \n

    \n \n 第一部分介绍用Python 编程所必须了解的基本概念,包括matplotlib、NumPy 和Pygal 等强大的Python 库和工具介绍,以及列表、字典、if 语句、类、文件与异常、代码测试等内容;\n \n

    \n

    \n \n 第二部分将理论付诸实践,讲解如何开发三个项目,包括简单的Python 2D 游戏开发如何利用数据生成交互式的信息图,以及创建和定制简单的Web 应用,并帮读者解决常见编程问题和困惑。\n \n

    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 目录\n \n \n

    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \"图片\"\n \n
    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 书籍的分享格式为PDF电子版,小伙伴们手机也可以阅读学习哦!\n \n \n

    \n

    \n \n \n 书籍终归只是辅助,想要真的深入学习python,当然还要有系统的学习方法和学习教程才可以让你在学习的路上一帆风顺哦!\n \n \n

    \n

    \n \n \n 本套视频一共400集,本套视频共分3季:\n \n \n

    \n

    \n \n 第一季 【基础篇】Python基础 (115集)\n \n

    \n

    \n \n 第二季 【提高篇】Python深入和扩展(100集)\n \n

    \n

    \n \n 第三季 【扩展篇】网络编程、多线程、扩展库(85集)\n \n

    \n

    \n \n 第四季 【高手篇】算法、Python源码、函数式编程、手工实现神经网络(100集)\n \n

    \n
    \n \n \"图片\"\n \n
    \n

    \n \n \n 以上这些教程我已经为大家打包准备好了,希望对正在学习的你有所帮助!\n \n \n

    \n
      \n
    1. \n

      \n \n \n \n 获取方式:公众号私信回复“学习”即可\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 需要的小伙伴可以多多点赞转发 让更多的人看到\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/OBYA9CqtM2SJz3V0OsMNMw", + "creator": "python开发工程师", + "pubDate": "Fri, 27 Jun 2025 09:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bENYGODukDQ8iaKoSXOKkIEz9iaAdM2HiaTL77jqDuHqbple8NGD0NlMFQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZy6NhzQnQnn6fj5giafbrz2bENYGODukDQ8iaKoSXOKkIEz9iaAdM2HiaTL77jqDuHqbple8NGD0NlMFQ/0?wx_fmt=jpeg", + "id": "2247511245_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "761a8deb7a6670d138fbe73449a68ef1", + "highlights": [] + }, + { + "title": "计算机专业18个Java毕设项目(附源码+视频+数据库),拿走即用!期末毕设不用", + "description": "领取方式:点赞+私信留言“111”或主动给我打个招呼,我都会回复的~~~一定要关注我,不然我发不了消息哦~", + "content": "
    \n

    \n \n \n
    \n
    \n
    \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n

    \n

    \n \n \n \n \n \n

    \n

    \n \n \n 领取方式:点赞+私信留言“111”或主动给我打个招呼,我都会回复的~~~\n \n \n

    \n

    \n \n \n 一定要关注我,不然我发不了消息哦~\n \n \n

    \n

    \n \n \n 整理不易,有帮助的话大家一定要 点赞 + 收藏 哦 ❤️!支持作者的同时,便于自己下次更方便地找到叭!\n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/jJOoSZywzYalMsmElLJDFw", + "creator": "python开发工程师", + "pubDate": "Wed, 25 Jun 2025 09:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9fvibGb3ZJY6qI6g2LWABXT88R1dhIwRS6icaENdrkXtrtoIuBzJ0Od2w/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZykJYNAN6ERqWwaXLkUyZR9fvibGb3ZJY6qI6g2LWABXT88R1dhIwRS6icaENdrkXtrtoIuBzJ0Od2w/0?wx_fmt=jpeg", + "id": "2247511233_1", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "5f74af3509bb7119b65229e9a44505ee", + "highlights": [] + }, + { + "title": "python入门教程完整版(PDF版)", + "description": "当年3w买的全套python教程用不着了,现在送给有缘人,不要钱,一个月教你从入门到精通本套视频共600集70", + "content": "
    \n

    \n \n
    \n
    \n

    \n
    \n

    \n \n \n 当年3w买的全套python教程用不着了,现在送给有缘人,不要钱,一个月教你从入门到精通\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 本套视频共600集\n \n \n

    \n

    \n \n \n 70个练手项目列表\n \n \n

    \n

    \n \n \n 300套Python书籍PDF版等等~\n \n \n

    \n

    \n \n \n (我现在正在发放中,如下图)\n \n \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n

    \n \n
    \n
    \n

    \n
    \n \"图片\"\n
    \n
    \n

    \n \n
    \n
    \n

    \n

    \n \n \n 获取方式\n \n \n \n
    \n
    \n

    \n

    \n \n 1、点赞+在看\n \n

    \n

    \n \n 2、后台回复:\n \n \n \n 学习\n \n \n

    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/kZFae2Y-ENwLqQRWOyFvVA", + "creator": "python开发工程师", + "pubDate": "Mon, 23 Jun 2025 09:47:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MIibpTZGza7gH3SRSCUFh8dZ8LKI27RBJY6wWn2yK5yqsjBY3axkYqSQ/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MIibpTZGza7gH3SRSCUFh8dZ8LKI27RBJY6wWn2yK5yqsjBY3axkYqSQ/0?wx_fmt=jpeg", + "id": "2247511206_2", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "11ddd29ebda4153b594d8c3b201af156", + "highlights": [] + }, + { + "title": "学习python的必读书籍《利用Python进行数据分析》附PDF版", + "description": "这是非常经典的一本Python数据分析书,每一章之间有递进关系,适合Python入门()如《Python编程,", + "content": "
    \n

    \n \n 这是非常经典的一本Python数据分析书,每一章之间有递进关系,适合Python入门()如《Python编程,从入门到实践》)之后阅读,本书专门针对数据分析领域的。我细致地读了一遍,敲了一遍代码,一开始没有头绪,进展缓慢,后来逐渐明朗了。学习编程要多实践,这对没有基础的人来说有困难,因为无从下手。我的体会是,在你基础不牢的时候,就多看,多记,多总结,搭建自己的思路框架。\n \n

    \n

    \n \n 书籍简介\n \n

    \n
    \n \"图片\"\n
    \n

    \n \n 利用Python进行数据分析\n \n

    \n

    \n \n \n 本书由pandas项目创始人Wes McKinney亲笔撰写,详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas、NumPy、IPython和Jupyter,并增加大量实际案例,可以帮助你高效解决一系列数据分析问题。\n \n \n

    \n

    \n \n \n 第2版中的主要更新包括:\n \n \n

    \n

    \n \n \n • 所有的代码,包括把Python的教程更新到了Python 3.6版本(第1版中使用的是Python 2.7)\n \n \n

    \n

    \n \n \n • 更新了Python第三方发布版Anaconda和其他所需Python包的安装指引\n \n \n

    \n

    \n \n \n • 更新pandas库到2017年的新版\n \n \n

    \n

    \n \n \n • 新增一章,关于更多高级pandas工具和一些使用提示\n \n \n

    \n

    \n \n \n • 新增statsmodels和scikit-learn的简明使用介绍\n \n \n

    \n

    \n \n \n \"图片\"\n \n \n

    \n

    \n \n 目录\n \n

    \n

    \n \n 第1章 准备工作\n \n
    \n \n 第2章 Python语言基础、IPython及Jupyter notebook\n \n
    \n \n 第3章 内建数据结构、函数及文件\n \n
    \n \n 第4章 NumPy基础:数组与向量化计算\n \n
    \n \n 第5章 pandas入门\n \n
    \n \n 第6章 数据载入、存储及文件格式\n \n
    \n \n 第7章 数据清洗与准备\n \n
    \n \n 第8章 数据规整:连接、联合与重塑\n \n
    \n \n 第9章 绘图与可视化\n \n
    \n \n 第10章 数据聚合与分组操作\n \n
    \n \n 第11章 时间序列\n \n
    \n \n 第12章 高阶pandas\n \n
    \n \n 第13章 Python建模库介绍\n \n
    \n \n 第14章 数据分析示例\n \n

    \n
    \n \"图片\"\n
    \n
    \n \"图片\"\n
    \n

    \n \n \n \"图片\"\n \n \n

    \n
    \n \"图片\"\n
    \n

    \n \n \n \n 领取方式:\n \n
    \n
    \n
    \n

    \n
      \n
    1. \n

      \n \n \n \n 点赞+在看\n \n \n \n

      \n
    2. \n
    3. \n

      \n \n \n \n 私信留下回复:“学习”\n \n \n \n

      \n
    4. \n
    \n
    \n \n
    \n
    \n
    \n

    \n \n \n

    \n
    \n", + "category": "", + "link": "https://mp.weixin.qq.com/s/QzNsOfAyqx2sgOiavcalzQ", + "creator": "python开发工程师", + "pubDate": "Fri, 20 Jun 2025 09:00:00 ", + "enclosure": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MtWvsSEdycjHjFSUVspgdgrZ63Tic9M30R85C32DVibmXTlKomqNnDrKw/0?wx_fmt=jpeg", + "enclosureType": "image/jpeg", + "image": "https://mmbiz.qpic.cn/mmbiz_jpg/Nc53lZXDjZzmibvbzGeIPHq0Sn1ibibWA4MtWvsSEdycjHjFSUVspgdgrZ63Tic9M30R85C32DVibmXTlKomqNnDrKw/0?wx_fmt=jpeg", + "id": "2247511178_1", + "language": "", + "folder": "IT技术", + "feed": "python开发工程师", + "read": false, + "favorite": false, + "created": false, + "tags": [], + "hash": "1189f681b3a409d6c3f0d7e40085e750", + "highlights": [] } ], "folder": "桥牌", @@ -5854,28 +4952,6 @@ "image": "http://mmbiz.qpic.cn/mmbiz_png/Nc53lZXDjZwDTSISGR4xlicLicHSZQ2Az6yzuTwWm4iboHMSnJhn5s6HodjpicYZW8YxeqiaPoMJ1rJdCW8a0Ywllug/0?wx_fmt=png", "description": "", "items": [ - { - "title": "简单的Web云存储解决方案bewCloud", - "description": "bewCloud 是一个简化版的自托管云存储解决方案,可作为 Nextcloud 和 ownCloud 的更简单替代方案。", - "content": "None", - "category": "", - "link": "https://mp.weixin.qq.com/s/fuqL7r4ch20IJeyZ60IvDg", - "creator": "各种折腾", - "pubDate": "Sat, 14 Jun 2025 19:00:00 ", - "enclosure": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/Cibq2rFYLAaGTIGUkoPBlj8nznbeib15F9ElMNJuQeTicAjILG80dpvKQFpqfjAPvEpsK8OasR6I4wo2SRpoCy8iaQ/0?wx_fmt=jpeg", - "enclosureType": "image/jpeg", - "image": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/Cibq2rFYLAaGTIGUkoPBlj8nznbeib15F9ElMNJuQeTicAjILG80dpvKQFpqfjAPvEpsK8OasR6I4wo2SRpoCy8iaQ/0?wx_fmt=jpeg", - "id": "2247509021_1", - "language": "", - "folder": "IT技术", - "feed": "各种折腾", - "read": false, - "favorite": false, - "created": false, - "tags": [], - "hash": "2418ebb6657179d60b73596fead978e4", - "highlights": [] - }, { "title": "一周练完!100个Python实战项目,太实用了,绝对不能错过(附完整版源码+教程)", "description": "Python 是一种极具可读性和通用性的编程语言。", diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 2a3f964c..1982de27 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -21,14 +21,12 @@ "id": "bf742a4685733cc9", "type": "leaf", "state": { - "type": "markdown", + "type": "smm-view", "state": { - "file": "08-Inbox/2025-07-04.md", - "mode": "source", - "source": false + "file": "08-Inbox/SMM-2025-07-16-14-02-35.smm" }, - "icon": "lucide-file", - "title": "2025-07-04" + "icon": "ob-smm-brain", + "title": "SMM-2025-07-16-14-02-35" } }, { @@ -202,13 +200,13 @@ "state": { "type": "outline", "state": { - "file": "08-Inbox/2025-07-04.md", + "file": "08-Inbox/SMM-2025-07-16-14-02-35.smm", "followCursor": true, "showSearch": false, "searchQuery": "" }, "icon": "lucide-list", - "title": "2025-07-04 的大纲" + "title": "SMM-2025-07-16-14-02-35 的大纲" } }, { @@ -301,14 +299,18 @@ "memos-ai-sync:Sync Memos": false, "translate:Open translation view": false, "obsidian-calibre-plugin:Calibre": false, - "periodic-notes:Open today": true + "periodic-notes:Open today": false, + "ob-smm:create a smm mindmap": false } }, "active": "bf742a4685733cc9", "lastOpenFiles": [ - "08-Inbox/博文测试.md", - "08-Inbox/草稿.md", "03-学习笔记/微信机器人.md", + "08-Inbox/SMM-2025-07-16-14-02-35.smm", + "08-Inbox/mindmapex.md", + "08-Inbox/草稿.md", + "08-Inbox/2025-07-04.md", + "08-Inbox/博文测试.md", "03-学习笔记/Calibre电子书平台.md", "03-学习笔记/Memos.md", "01-工作日记/2025-07-16.md", @@ -333,10 +335,7 @@ "09-Templates/copilot-custom-prompts/Fix grammar and spelling.md", "09-Templates/copilot-custom-prompts/Explain like I am 5.md", "09-Templates/copilot-custom-prompts/Emojify.md", - "Excalidraw/Drawing 2025-07-16 12.29.05.excalidraw.md", "Excalidraw", - "01-工作日记/2025-07-15.md", - "10-WebClipper/使用Obsidian打造个人图书馆!.md", "50-Memos/2025/07/resources/kyhNGvh5iFc9eYXy2YuYWx_FDF8C04E-22D3-4D4C-9ED0-F52A326B9801.jpg", "50-Memos/2025/07/resources/6cb2VU3rkihszQLFDerqA2_2_20250712120414.png", "04-博客发布/0743-Bridge/assets/640.jpeg", @@ -351,7 +350,6 @@ "04-博客发布/0743-Bridge/assets/642.jpeg.crdownload", "04-博客发布/0743-Bridge/assets/640.jpeg.crdownload", "04-博客发布/043-Bridge/assets", - "60-DevonThink", "未命名.canvas" ] } \ No newline at end of file diff --git a/08-Inbox/SMM-2025-07-16-14-02-35.smm b/08-Inbox/SMM-2025-07-16-14-02-35.smm new file mode 100644 index 00000000..1ec6740e --- /dev/null +++ b/08-Inbox/SMM-2025-07-16-14-02-35.smm @@ -0,0 +1 @@ +{"layout":"logicalStructure","root":{"data":{"text":"根节点","expand":true,"uid":"3cb9f800-5a74-4609-a8ff-c37a0beb0bd8","richText":true,"isActive":false},"children":[{"data":{"text":"二级节点","generalization":{"text":"概要","uid":"cd2361f6-2cc4-4dc6-b336-57b46f8b33ed","richText":true,"expand":true,"isActive":false},"uid":"a7ae8e47-39fb-4370-ae20-d22f703e7065","richText":true,"expand":true,"isActive":false},"children":[{"data":{"text":"分支主题","uid":"ff04f5b8-f02b-4faf-b598-a5fb8f666b91","richText":true,"expand":true,"isActive":false},"children":[]},{"data":{"text":"分支主题","uid":"796eef36-18e2-41e2-96c6-25fcc2162d2d","richText":true,"expand":true,"isActive":false},"children":[]}]}],"smmVersion":"0.14.0-fix.1"},"theme":{"template":"classic4","config":{}},"view":{"transform":{"scaleX":1,"scaleY":1,"shear":0,"rotate":0,"translateX":0,"translateY":0,"originX":0,"originY":0,"a":1,"b":0,"c":0,"d":1,"e":0,"f":0},"state":{"scale":1,"x":0,"y":0,"sx":0,"sy":0}},"svgData":""} \ No newline at end of file diff --git a/08-Inbox/mindmapex.md b/08-Inbox/mindmapex.md new file mode 100644 index 00000000..25a3eafb --- /dev/null +++ b/08-Inbox/mindmapex.md @@ -0,0 +1,11 @@ +--- + +mindmap-plugin: basic + +--- + +# 我的思维到导图 + +## 第一个节点 + +## 第二个节点 \ No newline at end of file