From dbe94165b9c4480a34a21571c759ef46915fc90f Mon Sep 17 00:00:00 2001 From: "pengfei.zhou" Date: Fri, 9 Jul 2021 17:16:30 +0800 Subject: [PATCH] feat: add snapshot feature for devkit, this is for android --- .../java/pub/doric/demo/MyApplication.java | 1 + .../pub/doric/devkit/ui/DoricDevActivity.java | 19 +- .../doric/devkit/ui/DoricSnapshotView.java | 212 ++++++++++++++++++ .../drawable-xhdpi/icon_doricdev_close.png | Bin 0 -> 2868 bytes .../res/drawable-xhdpi/icon_doricdev_next.png | Bin 0 -> 2812 bytes .../res/drawable-xhdpi/icon_doricdev_prev.png | Bin 0 -> 3347 bytes .../drawable-xhdpi/icon_doricdev_snapshot.png | Bin 0 -> 8080 bytes .../layout/layout_doric_dev_view_snapshot.xml | 47 ++++ .../src/main/java/pub/doric/DoricContext.java | 3 + .../java/pub/doric/DoricNativeDriver.java | 2 - .../main/java/pub/doric/DoricRegistry.java | 10 + doric-js/bundle/doric-lib.es5.js | 53 +++++ doric-js/bundle/doric-lib.js | 32 +++ doric-js/bundle/doric-vm.js | 32 +++ doric-js/lib/src/ui/panel.d.ts | 5 + doric-js/lib/src/ui/panel.js | 32 +++ doric-js/src/ui/panel.ts | 21 ++ doric-web/dist/index.js | 32 +++ doric-web/dist/index.js.map | 6 +- 19 files changed, 500 insertions(+), 7 deletions(-) create mode 100644 doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricSnapshotView.java create mode 100644 doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_close.png create mode 100644 doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_next.png create mode 100644 doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_prev.png create mode 100644 doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_snapshot.png create mode 100644 doric-android/devkit/src/main/res/layout/layout_doric_dev_view_snapshot.xml diff --git a/doric-android/app/src/main/java/pub/doric/demo/MyApplication.java b/doric-android/app/src/main/java/pub/doric/demo/MyApplication.java index ae53dab9..3625a568 100644 --- a/doric-android/app/src/main/java/pub/doric/demo/MyApplication.java +++ b/doric-android/app/src/main/java/pub/doric/demo/MyApplication.java @@ -45,5 +45,6 @@ public class MyApplication extends Application { } }, intentFilter); DoricRegistry.enablePerformance(true); + DoricRegistry.enableRenderSnapshot(true); } } diff --git a/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricDevActivity.java b/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricDevActivity.java index 112ec9b0..f66b2449 100644 --- a/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricDevActivity.java +++ b/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricDevActivity.java @@ -1,6 +1,7 @@ package pub.doric.devkit.ui; import android.Manifest; +import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; @@ -16,9 +17,9 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; +import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -29,12 +30,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.util.ArrayList; import java.util.Locale; -import pub.doric.Doric; import pub.doric.DoricContext; import pub.doric.DoricContextManager; import pub.doric.devkit.DoricDebugDriver; @@ -257,13 +256,16 @@ public class DoricDevActivity extends AppCompatActivity implements DoricDev.Stat private final ArrayList contexts = new ArrayList<>(); private Bitmap icon_off; private Bitmap icon_on; + private Bitmap icon_snapshot; private String debug_off = "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"; private String debug_on = "iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAANhElEQVR4Xu2dX4xcVR3Hv787ocxdJAVRE0siWHYWJdRoy7/idmcLL2LACIgkoonhoTE8oDaoiQG6mBhMkCAmxlAfSFQIQcUH/1SCsju7gLQUDKjR7p3S+CftS0lWW/buqjs/M7NsKbTdvXPPuXvPPee7L33oPef8fp/v+ew9e3dmR8AvEiCBUxIQsiEBEjg1AQrC3UECyxCgINweJEBBuAdIIB8B3kHyceOoQAhQkECCZpv5CFCQfNw4KhACFCSQoNlmPgIUJB83jgqEQNCCDLbqO7o5t5tz9wSSd19tkg8QrCDd8AUy1t0xCh2jJG91h3wWeQQpyPHhL20LSvKmIOTzJovgBDlZ+JRkeTlC5hOUIMvJEfImWOqdfE78ES0YQbKEH7Ikg+P1MYmk99Bipa+QjqNBCNKPHCFKMjQ+MKaRZpIjND7eC5JHjpA2wVBrYEzRnxwh8fFaEBM5QtgEJnKEwMfrx7w25PB5E9iQw2c+S715eQexKYePm8CmHMf4iO5oj8x9Y6Uf8Kv2/94JUoQcPklShBw+S+KVIEXK4YMkRcrhqyTeCLIaclRZktWQw0dJvBFkNTdAdyNU6ZdlZJP/Jx9vBOki4EY4cSOQSX45vHzMyw3x5oYgCzM5vBSEd5LFTUE5zOXwVpDQNwjlsCOH14KEKgnlsCeH94I4J4kiunBiYGOnpuehg3MhWCeCdR3FuaJYB9F1kAjo6CEAhyA4qMChKMJBXcAhjfRgLZp7ad8wjpxsG1AOu3IEIUhZkuD1uQckrl8mgssU8hFE2ADFhTYiVMXfRPCyQl8C9Pc4ff75aH5ge95X5eapqUqPufP0tzTGq8e8y4FY7e+uJqG4PjYUOYK5gyxtOEpirl5IcgQnSBnHLfMt6c4MockRpCCUJJ9wIcoRrCCUpD9JQpUjaEEoSTZJQpYjeEEoyfKShC4HBXljf/Dp1omiUI5FJsH8HmS575WDk/H9otie7dARzFXfTZrpF4Pp9hSNBi/IYCt+TICbQ98IJ+1f8KtkJL02ZDZBC9KYiKcgGA55A6zYu2Df6/9KNx68DrMrXuvhBcEK0mjFrwJ4v4eZFtHSQi3qXPTXLfPTRUzu8pzhCaKQxmScAjjd5WBcrE0j3dreMjfhYm1F1RScII1WrEXBDGFeVflEe3T2FyH0GtxTLMphbVvfkjTTR63N5vBEwdxBGq24w8faNneifCFpzj5kc0YX5wpCEMpR2Nb7StJMv13Y7A5M7L0glKPwXfalpJk+WPgqJS3gtSBDrfhZBa4siW0wy0qkW6a3zD3jY8PeCsKXj6zudtVa7eL28NE/r+6qxa/mpSBDE/F2FdxfPD6ucByBv0c12bxvePagT1S8E6QxWf88VB72KaTq9KJPpqfNXf/PK9H9RawXX14JMvR0/WqtyVN8nFvi3lR5OBmdvbXECqwu7Y0gm/bitH+/Hk8BuNwqIU7WNwFVfLo9mv6k74EODvBGkEYr7j5qvN1BxiGW9IekmW70oXEvBBkcjz8lEbz4juXDplrsQb6ZNGfvrHo/lRdk/d6z10ZH514WwXlVD8Oz+rVzWmdo/5Xz7Sr3VXlBhibjH6ric1UOwePaf5400xuq3J91QfiK2Spvh8rXrkkzjWx2QUFs0uRcZROgIGUnwPWdJkBBnI6HxZVNgIKUnQDXd5oABXE6HhZXNgEKUnYCXN9pAhTE6XhYXNkEKEjZCXB9pwlQEKfjYXFlE6AgZSfA9Z0mQEGcjofFlU2AgpSdANd3mgAFcToeFlc2AQpSdgJc32kCFMTpeFhc2QQoSNkJcH2nCVAQp+NhcWUToCBlJ8D1nSZAQZyOh8WVTcB9QaD2P3u9Mdn78BsXvzQZSWsuFrZUk8PskIzYff94r2eB1Y/Ys/6edNubZXByzUWiNVf/arj171hW+S1+YKmr31ygHWxub02ft9qz5cncF2QivkkEj1vu29Z0FMSApAq+3B5Jv2MwReFD3RekVd8hkLHCSeRbgILk49YbpcDj7WZ6s8EUhQ91XpChyfhxVdxUOIl8C1CQfNyWRv0jaabvM5ui2NHOC9Joxc8B2FwshtyzU5Dc6BZvIrb/0JtZOSeOdl6QoVb9FYVssN24pfncDtjxH9IpiIVd2GjFBwCcb2GqIqagIGZU3eZXhU9iakzEhyE4xyyHwka7HTDvIMbBO3/EarTieQBrjDstZgIKYsbVbX6VuIO0Yqu/GTXL84TRbgfMO4hx3FW4g1CQvDFTkLzkjo2jIGYIeQfxmR+PWGbpOv+YkncQ44B5BzFDyDuIz/x4BzFLl3cQz/lREM8D5hHLOGAescwQ8ojlMz/eQczS5RHLc34UxPOAecQyDtj6EYufk26cCSfIT8D6kZeC5A+DI90jQEHcy4QVOUSAgjgUBktxjwAFcS8TVuQQAQriUBgsxT0CFMS9TFiRQwQoiENhsBT3CFAQ9zJhRQ4RoCAOhcFS3CNAQdzLhBU5RICCOBQGS3GPAAVxLxNW5BABCuJQGCzFPQIUxL1MWJFDBCiIQ2GwFPcIUBD3MmFFDhGgIA6FwVLcI0BB3MuEFTlEgII4FAZLcY+A+4LYZub4e9ytB2KVH/9ogzFO6+9JN67obRNQEAOiFMQA3uJQCmKGkHcQn/lRELN0+YfjPOdHQTwPmEcs44B5xDJDyCOWz/x4BzFLl0csz/lREM8D5hHLOGAescwQ8ojlMz/eQczS5RHLc34VEWQewBrjKIqZgHcQE66K+WQ0rZtMUfRY949YE/FhCM4pGkTO+SlITnBvDDucNNN3m01R7Gj3BWnFBwCcXyyG3LNTkNzoegMPJM10vdkUxY52XpChVv0VhWwoFkPu2SlIbnSAQv/Ybs59yGCKwoc6L0ijFT8HYHPhJPItQEHyceuNEuC56Wb6UYMpCh9aBUGeAHB94STyLUBB8nFbGvVE0kxvNJui2NFVEOQ+AHcUiyH37BQkN7ruQ3Lcl4ymXzWZouix7gsyNbANHX2oaBA556cgOcH1jlgq26ZHZ39gMEXhQ50X5IKpgU1RR/cWTiLfAhQkH7feKBXZ1B6ZfclgisKHOi9Il4DD7yqkIAZbNGmmzu8/6wU6vJkNouTQihCw/g2LglQkeZaZiQAFyYSJF4VKgIKEmjz7zkSAgmTCxItCJUBBQk2efWciQEEyYeJFoRKgIKEmz74zEaAgmTDxolAJUJBQk2ffmQhQkEyYeFGoBChIqMmz70wEKEgmTLwoVAIUJNTk2XcmAhQkEyZeFCoBChJq8uw7EwEKkgkTLwqVAAUJNXn2nYkABcmEiReFSoCChJo8+85EwH1BMrVh8aJGK34EwGcsTsmpbBEQeTgZmb3V1nRlzGP9Pemr3cQFz77jPdHCwl+geOdqr831liXwalRLP7xvGEeqzKnygnThD47XPyuR/KjKQfhWu9Tk49PDs7uq3pcXgnRDaLTiHwO4peqB+FC/iNw7PTL7dS968aGJbg/rW6c3aoieB3jUKjPT7l9sP/OMdPTFS/DfMuuwtbY3d5DeUWti4DYR/Z4tOJynfwIR9Op9zbmn+x/p5givBHnjqPUzADe4idvvqhQ61m7O3eNTl94JsmFq7dlznf88BWCTT0E534vo95ORuducr7PPAr0TZPEusuaDQG0SwLv65MHL8xFw/oNw8rXV+xQsP78Gx+ujEsm4n92505UInp0eSYfdqchuJd4K0sU01IpvVuAxu8g42zECiv3JaDroMxGvBekdtybi2yF40OcQS+rtaNJMzyxp7VVb1ntBuiQHW/HXBPjWqlH1f6HXkmYaxM93QQjSu5NMxjdC8VP/927hHe5Jmunlha/iyALBCNL7mWSyfrWq/NYR9lUs49GkmQb1cp6gBOlJMl4f1pr8Doo1VdyhZdUsigemR9PtZa1f1rrBCdIFfeEzA5doRx9RxVBZ4Ku0rorc2/bkxYf9cg9SkC6kD7TO2NBB50EFtvYLLaTrfXz5SD/5BSvIEqRGq34nRO7ikett20bwTKS6w6cXHvYjxtK1wQvSeww8EW+OoHeryMfyQPRtTPeR+JlnpHf78pJ1k3woyHH0Gq34DgB3A/D+F2An2zQK7I0gO6abs7822VQ+jaUgb0tzcHJgI6B3ieKTPgW9Ui8ieECidEfV30O+Up/9/j8FOQWxxtTAtejoNgDX9Qu1Wtfrzs5CtHP/VbMvVqvu1amWgqzA2V9RKEYWxShIFkrdl6p4c0fRnZ0o2rl/C+8YWaKnIFkoHXfN0MTANQq9BsA1EFTjpd6C3aq6S6PolxSjv8ApSH+83nK147LsVuguWZDfJFeluw3aDHooBbEU/zFZRLcCcrGlafuZ5n8AXlDok5HIrumRdE8/g3ntyQlQkAJ2RmOqvh4duQLApQpcKoJLrf+mXvGaiu6JJHpBgT2yUNs9vfXI4QLaCXpKCrIa8SuiCybjK0RxhQjeq6pnRZGsVZW1gJ4FwVp0sPgven8oYEaBGQAzIjqjkBlAZ0RlpgNpayfavX/r0T+tRumhr0FBQt8B7H9ZAhSEG4QEliFAQbg9SICCcA+QQD4CvIPk48ZRgRCgIIEEzTbzEaAg+bhxVCAEKEggQbPNfAQoSD5uHBUIAQoSSNBsMx+B/wNQA1oj5tl0JAAAAABJRU5ErkJggg=="; + private String snapshot = "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"; private ContextCellAdapter() { this.contexts.addAll(DoricContextManager.aliveContexts()); this.icon_off = getIcon(debug_off); this.icon_on = getIcon(debug_on); + this.icon_snapshot = getIcon(snapshot); } private Bitmap getIcon(String str) { @@ -298,7 +300,7 @@ public class DoricDevActivity extends AppCompatActivity implements DoricDev.Stat } holder.layoutBtn.setOnClickListener(new View.OnClickListener() { @Override - public void onClick(View v) { + public void onClick(final View v) { ArrayList list = new ArrayList<>(); list.add("View source"); if (DoricDev.getInstance().isInDevMode()) { @@ -308,6 +310,7 @@ public class DoricDevActivity extends AppCompatActivity implements DoricDev.Stat list.add("Start debugging"); } } + list.add("Snapshot rollback"); final String[] items = list.toArray(new String[0]); AlertDialog.Builder builder = new AlertDialog.Builder(holder.itemView.getContext(), R.style.Theme_Doric_Modal); builder.setTitle(String.format("%s %s", context.getContextId(), context.getSource())); @@ -339,6 +342,14 @@ public class DoricDevActivity extends AppCompatActivity implements DoricDev.Stat DoricDev.getInstance().stopDebugging(true); } else if ("Start debugging".equals(items[which])) { DoricDev.getInstance().requestDebugging(context); + } else if ("Snapshot rollback".endsWith(items[which])) { + Activity activity = (Activity) context.getContext(); + ViewGroup view = (ViewGroup) activity.getWindow().getDecorView(); + DoricSnapshotView doricSnapshotView = new DoricSnapshotView(activity, context); + FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + layoutParams.topMargin = 200; + view.addView(doricSnapshotView, layoutParams); + ((Activity) v.getContext()).finish(); } dialog.dismiss(); } diff --git a/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricSnapshotView.java b/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricSnapshotView.java new file mode 100644 index 00000000..5b23cad5 --- /dev/null +++ b/doric-android/devkit/src/main/java/pub/doric/devkit/ui/DoricSnapshotView.java @@ -0,0 +1,212 @@ +/* + * Copyright [2019] [Doric.Pub] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package pub.doric.devkit.ui; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.github.pengfeizhou.jscore.ArchiveException; +import com.github.pengfeizhou.jscore.JSArray; +import com.github.pengfeizhou.jscore.JSDecoder; +import com.github.pengfeizhou.jscore.JSObject; + +import java.util.concurrent.Callable; + +import pub.doric.DoricContext; +import pub.doric.async.AsyncResult; +import pub.doric.devkit.R; +import pub.doric.shader.RootNode; +import pub.doric.shader.ViewNode; +import pub.doric.utils.ThreadMode; + +/** + * @Description: pub.doric.devkit.ui + * @Author: pengfei.zhou + * @CreateDate: 2021/7/9 + */ +@SuppressLint("ViewConstructor") +public class DoricSnapshotView extends FrameLayout { + private int lastX; + + private int lastY; + private final DoricContext doricContext; + private int snapNo = -1; + private int snapSize = 0; + private TextView snapIndex; + private ImageView spanPre; + private ImageView spanNext; + + public DoricSnapshotView(@NonNull Context context, DoricContext doricContext) { + super(context); + this.doricContext = doricContext; + initView(context); + this.setAlpha(0.5f); + } + + private void initView(Context context) { + LayoutInflater.from(context).inflate(R.layout.layout_doric_dev_view_snapshot, this); + snapIndex = findViewById(R.id.snap_idx); + spanPre = findViewById(R.id.snap_pre); + spanNext = findViewById(R.id.snap_next); + findViewById(R.id.snap_close).setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + rollupSnapshot(snapSize); + ((ViewGroup) (DoricSnapshotView.this.getParent())).removeView(DoricSnapshotView.this); + } + }); + this.doricContext.callEntity("__renderSnapshotDepth__").setCallback(new AsyncResult.Callback() { + @Override + public void onResult(final JSDecoder result) { + snapIndex.post(new Runnable() { + @Override + public void run() { + try { + snapSize = result.decode().asNumber().toInt(); + } catch (ArchiveException e) { + e.printStackTrace(); + } + snapNo = snapSize; + rollupSnapshot(snapNo); + spanPre.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (snapNo <= 0) { + return; + } + snapNo--; + rollupSnapshot(snapNo); + } + }); + spanNext.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + if (snapNo >= snapSize) { + return; + } + snapNo++; + rollupSnapshot(snapNo); + } + }); + + } + }); + } + + @Override + public void onError(Throwable t) { + + } + + @Override + public void onFinish() { + + } + }); + + } + + @SuppressLint("ClickableViewAccessibility") + @Override + public boolean onTouchEvent(MotionEvent event) { + int x = (int) event.getX(); + int y = (int) event.getY(); + + switch (event.getAction()) { + case MotionEvent.ACTION_DOWN: + lastX = x; + lastY = y; + break; + case MotionEvent.ACTION_MOVE: + int offsetX = x - lastX; + int offsetY = y - lastY; + layout(getLeft() + offsetX, getTop() + offsetY, getRight() + offsetX, getBottom() + offsetY); + break; + default: + break; + } + return true; + } + + private void rollupSnapshot(int index) { + spanPre.setVisibility(index <= 0 ? View.INVISIBLE : View.VISIBLE); + spanNext.setVisibility(index >= snapSize ? View.INVISIBLE : View.VISIBLE); + snapIndex.setText(String.valueOf(index)); + doricContext.callEntity("__restoreRenderSnapshot__", index).setCallback(new AsyncResult.Callback() { + @Override + public void onResult(JSDecoder result) { + try { + final JSArray jsArray = result.decode().asArray(); + + doricContext.getDriver().asyncCall(new Callable() { + @Override + public Object call() { + if (doricContext.getContext() instanceof Activity) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 + && ((Activity) doricContext.getContext()).isDestroyed()) { + return null; + } + } + doricContext.getRootNode().getView().removeAllViews(); + doricContext.getRootNode().clearSubModel(); + for (int i = 0; i < jsArray.size(); i++) { + JSObject jsObject = jsArray.get(i).asObject(); + String viewId = jsObject.getProperty("id").asString().value(); + + RootNode rootNode = doricContext.getRootNode(); + if (TextUtils.isEmpty(rootNode.getId()) && "Root".equals(jsObject.getProperty("type").asString().value())) { + rootNode.setId(viewId); + rootNode.blend(jsObject.getProperty("props").asObject()); + } else { + ViewNode viewNode = doricContext.targetViewNode(viewId); + if (viewNode != null) { + viewNode.blend(jsObject.getProperty("props").asObject()); + } + } + } + return null; + } + }, ThreadMode.UI); + + } catch (ArchiveException e) { + e.printStackTrace(); + } + } + + @Override + public void onError(Throwable t) { + + } + + @Override + public void onFinish() { + + } + }); + } +} diff --git a/doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_close.png b/doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_close.png new file mode 100644 index 0000000000000000000000000000000000000000..7e38f450ac1986fb51a7c046b9cd593c1611adcc GIT binary patch literal 2868 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 aploIfW4s;x6vcja0LF&qm^uU8!+!%@|K~yg literal 0 HcmV?d00001 diff --git a/doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_snapshot.png b/doric-android/devkit/src/main/res/drawable-xhdpi/icon_doricdev_snapshot.png new file mode 100644 index 0000000000000000000000000000000000000000..5899d19fce4ec188d5095d31b9d06619809343b5 GIT binary patch literal 8080 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 literal 0 HcmV?d00001 diff --git a/doric-android/devkit/src/main/res/layout/layout_doric_dev_view_snapshot.xml b/doric-android/devkit/src/main/res/layout/layout_doric_dev_view_snapshot.xml new file mode 100644 index 00000000..6f044769 --- /dev/null +++ b/doric-android/devkit/src/main/res/layout/layout_doric_dev_view_snapshot.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doric-android/doric/src/main/java/pub/doric/DoricContext.java b/doric-android/doric/src/main/java/pub/doric/DoricContext.java index 54fd82ea..b3678d90 100644 --- a/doric-android/doric/src/main/java/pub/doric/DoricContext.java +++ b/doric-android/doric/src/main/java/pub/doric/DoricContext.java @@ -131,6 +131,9 @@ public class DoricContext { } public void init(String initData) { + if (DoricRegistry.isEnableRenderSnapshot()) { + callEntity("__enableSnapshot__"); + } this.extra = initData; if (!TextUtils.isEmpty(initData)) { callEntity(DoricConstant.DORIC_ENTITY_INIT, initData); diff --git a/doric-android/doric/src/main/java/pub/doric/DoricNativeDriver.java b/doric-android/doric/src/main/java/pub/doric/DoricNativeDriver.java index 14602f49..76e8eab2 100644 --- a/doric-android/doric/src/main/java/pub/doric/DoricNativeDriver.java +++ b/doric-android/doric/src/main/java/pub/doric/DoricNativeDriver.java @@ -21,8 +21,6 @@ import android.util.Log; import com.github.pengfeizhou.jscore.JSDecoder; -import java.util.ArrayList; -import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; diff --git a/doric-android/doric/src/main/java/pub/doric/DoricRegistry.java b/doric-android/doric/src/main/java/pub/doric/DoricRegistry.java index 91b948ae..6d3962de 100644 --- a/doric-android/doric/src/main/java/pub/doric/DoricRegistry.java +++ b/doric-android/doric/src/main/java/pub/doric/DoricRegistry.java @@ -85,6 +85,8 @@ public class DoricRegistry { private static boolean enablePerformance = false; + private static boolean enableRenderSnapshot = false; + public static void enablePerformance(boolean enable) { enablePerformance = enable; } @@ -93,6 +95,14 @@ public class DoricRegistry { return enablePerformance; } + public static void enableRenderSnapshot(boolean enable) { + enableRenderSnapshot = enable; + } + + public static boolean isEnableRenderSnapshot() { + return enableRenderSnapshot; + } + private static void initRegistry(DoricRegistry doricRegistry) { for (DoricLibrary library : doricLibraries) { library.load(doricRegistry); diff --git a/doric-js/bundle/doric-lib.es5.js b/doric-js/bundle/doric-lib.es5.js index af11fee9..a44d567b 100644 --- a/doric-js/bundle/doric-lib.es5.js +++ b/doric-js/bundle/doric-lib.es5.js @@ -1046,6 +1046,27 @@ var __values$3 = (undefined && undefined.__values) || function(o) { }; } throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); }; +var __read$2 = (undefined && undefined.__read) || function (o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) { return o; } + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) { ar.push(r.value); } + } + catch (error) { e = { error: error }; } + finally { + try { + if (r && !r.done && (m = i["return"])) { m.call(i); } + } + finally { if (e) { throw e.error; } } + } + return ar; +}; +var __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from) { + for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) + { to[j] = from[i]; } + return to; +}; function NativeCall(target, propertyKey, descriptor) { var originVal = descriptor.value; descriptor.value = function () { @@ -1061,6 +1082,8 @@ var Panel = /** @class */ (function () { this.headviews = new Map; this.onRenderFinishedCallback = []; this.__rendering__ = false; + this.snapshotEnabled = false; + this.renderSnapshots = []; } Panel.prototype.onCreate = function () { }; Panel.prototype.onDestroy = function () { }; @@ -1183,7 +1206,19 @@ var Panel = /** @class */ (function () { } }, undefined); }; + Panel.prototype.__renderSnapshotDepth__ = function () { + return this.renderSnapshots.length; + }; + Panel.prototype.__restoreRenderSnapshot__ = function (idx) { + return __spreadArray$2([], __read$2(this.renderSnapshots)).slice(0, idx); + }; + Panel.prototype.__enableSnapshot__ = function () { + this.snapshotEnabled = true; + }; Panel.prototype.nativeRender = function (model) { + if (this.snapshotEnabled) { + this.renderSnapshots.push(JSON.parse(JSON.stringify(model))); + } return this.context.callNative("shader", "render", model); }; Panel.prototype.hookBeforeNativeCall = function () { @@ -1378,6 +1413,24 @@ var Panel = /** @class */ (function () { __metadata$b("design:paramtypes", [Array, String]), __metadata$b("design:returntype", void 0) ], Panel.prototype, "__response__", null); + __decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) + ], Panel.prototype, "__renderSnapshotDepth__", null); + __decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", [Number]), + __metadata$b("design:returntype", void 0) + ], Panel.prototype, "__restoreRenderSnapshot__", null); + __decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) + ], Panel.prototype, "__enableSnapshot__", null); return Panel; }()); diff --git a/doric-js/bundle/doric-lib.js b/doric-js/bundle/doric-lib.js index 7820457f..99bff96d 100644 --- a/doric-js/bundle/doric-lib.js +++ b/doric-js/bundle/doric-lib.js @@ -825,6 +825,8 @@ class Panel { this.headviews = new Map; this.onRenderFinishedCallback = []; this.__rendering__ = false; + this.snapshotEnabled = false; + this.renderSnapshots = []; } onCreate() { } onDestroy() { } @@ -933,7 +935,19 @@ class Panel { } }, undefined); } + __renderSnapshotDepth__() { + return this.renderSnapshots.length; + } + __restoreRenderSnapshot__(idx) { + return [...this.renderSnapshots].slice(0, idx); + } + __enableSnapshot__() { + this.snapshotEnabled = true; + } nativeRender(model) { + if (this.snapshotEnabled) { + this.renderSnapshots.push(JSON.parse(JSON.stringify(model))); + } return this.context.callNative("shader", "render", model); } hookBeforeNativeCall() { @@ -1065,6 +1079,24 @@ __decorate$b([ __metadata$b("design:paramtypes", [Array, String]), __metadata$b("design:returntype", void 0) ], Panel.prototype, "__response__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__renderSnapshotDepth__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", [Number]), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__restoreRenderSnapshot__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__enableSnapshot__", null); /* * Copyright [2019] [Doric.Pub] diff --git a/doric-js/bundle/doric-vm.js b/doric-js/bundle/doric-vm.js index f076b2d3..60fb7580 100644 --- a/doric-js/bundle/doric-vm.js +++ b/doric-js/bundle/doric-vm.js @@ -2346,6 +2346,8 @@ class Panel { this.headviews = new Map; this.onRenderFinishedCallback = []; this.__rendering__ = false; + this.snapshotEnabled = false; + this.renderSnapshots = []; } onCreate() { } onDestroy() { } @@ -2454,7 +2456,19 @@ class Panel { } }, undefined); } + __renderSnapshotDepth__() { + return this.renderSnapshots.length; + } + __restoreRenderSnapshot__(idx) { + return [...this.renderSnapshots].slice(0, idx); + } + __enableSnapshot__() { + this.snapshotEnabled = true; + } nativeRender(model) { + if (this.snapshotEnabled) { + this.renderSnapshots.push(JSON.parse(JSON.stringify(model))); + } return this.context.callNative("shader", "render", model); } hookBeforeNativeCall() { @@ -2586,6 +2600,24 @@ __decorate$b([ __metadata$b("design:paramtypes", [Array, String]), __metadata$b("design:returntype", void 0) ], Panel.prototype, "__response__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__renderSnapshotDepth__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", [Number]), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__restoreRenderSnapshot__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__enableSnapshot__", null); /* * Copyright [2019] [Doric.Pub] diff --git a/doric-js/lib/src/ui/panel.d.ts b/doric-js/lib/src/ui/panel.d.ts index c66ce3f7..f746a70f 100644 --- a/doric-js/lib/src/ui/panel.d.ts +++ b/doric-js/lib/src/ui/panel.d.ts @@ -31,6 +31,11 @@ export declare abstract class Panel { private __onEnvChanged__; private __response__; private retrospectView; + private snapshotEnabled; + private renderSnapshots; + private __renderSnapshotDepth__; + private __restoreRenderSnapshot__; + private __enableSnapshot__; private nativeRender; private hookBeforeNativeCall; private hookAfterNativeCall; diff --git a/doric-js/lib/src/ui/panel.js b/doric-js/lib/src/ui/panel.js index a8e67930..f04c9647 100644 --- a/doric-js/lib/src/ui/panel.js +++ b/doric-js/lib/src/ui/panel.js @@ -40,6 +40,8 @@ export class Panel { this.headviews = new Map; this.onRenderFinishedCallback = []; this.__rendering__ = false; + this.snapshotEnabled = false; + this.renderSnapshots = []; } onCreate() { } onDestroy() { } @@ -148,7 +150,19 @@ export class Panel { } }, undefined); } + __renderSnapshotDepth__() { + return this.renderSnapshots.length; + } + __restoreRenderSnapshot__(idx) { + return [...this.renderSnapshots].slice(0, idx); + } + __enableSnapshot__() { + this.snapshotEnabled = true; + } nativeRender(model) { + if (this.snapshotEnabled) { + this.renderSnapshots.push(JSON.parse(JSON.stringify(model))); + } return this.context.callNative("shader", "render", model); } hookBeforeNativeCall() { @@ -280,3 +294,21 @@ __decorate([ __metadata("design:paramtypes", [Array, String]), __metadata("design:returntype", void 0) ], Panel.prototype, "__response__", null); +__decorate([ + NativeCall, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], Panel.prototype, "__renderSnapshotDepth__", null); +__decorate([ + NativeCall, + __metadata("design:type", Function), + __metadata("design:paramtypes", [Number]), + __metadata("design:returntype", void 0) +], Panel.prototype, "__restoreRenderSnapshot__", null); +__decorate([ + NativeCall, + __metadata("design:type", Function), + __metadata("design:paramtypes", []), + __metadata("design:returntype", void 0) +], Panel.prototype, "__enableSnapshot__", null); diff --git a/doric-js/src/ui/panel.ts b/doric-js/src/ui/panel.ts index 29755f49..b3c0692f 100644 --- a/doric-js/src/ui/panel.ts +++ b/doric-js/src/ui/panel.ts @@ -168,8 +168,29 @@ export abstract class Panel { } }, undefined) } + private snapshotEnabled = false + + private renderSnapshots: Model[] = [] + + @NativeCall + private __renderSnapshotDepth__() { + return this.renderSnapshots.length + } + + @NativeCall + private __restoreRenderSnapshot__(idx: number) { + return [...this.renderSnapshots].slice(0, idx) + } + + @NativeCall + private __enableSnapshot__() { + this.snapshotEnabled = true + } private nativeRender(model: Model) { + if (this.snapshotEnabled) { + this.renderSnapshots.push(JSON.parse(JSON.stringify(model))) + } return this.context.callNative("shader", "render", model) } diff --git a/doric-web/dist/index.js b/doric-web/dist/index.js index 0cc242ef..dadd9b1c 100644 --- a/doric-web/dist/index.js +++ b/doric-web/dist/index.js @@ -2400,6 +2400,8 @@ class Panel { this.headviews = new Map; this.onRenderFinishedCallback = []; this.__rendering__ = false; + this.snapshotEnabled = false; + this.renderSnapshots = []; } onCreate() { } onDestroy() { } @@ -2508,7 +2510,19 @@ class Panel { } }, undefined); } + __renderSnapshotDepth__() { + return this.renderSnapshots.length; + } + __restoreRenderSnapshot__(idx) { + return [...this.renderSnapshots].slice(0, idx); + } + __enableSnapshot__() { + this.snapshotEnabled = true; + } nativeRender(model) { + if (this.snapshotEnabled) { + this.renderSnapshots.push(JSON.parse(JSON.stringify(model))); + } return this.context.callNative("shader", "render", model); } hookBeforeNativeCall() { @@ -2640,6 +2654,24 @@ __decorate$b([ __metadata$b("design:paramtypes", [Array, String]), __metadata$b("design:returntype", void 0) ], Panel.prototype, "__response__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__renderSnapshotDepth__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", [Number]), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__restoreRenderSnapshot__", null); +__decorate$b([ + NativeCall, + __metadata$b("design:type", Function), + __metadata$b("design:paramtypes", []), + __metadata$b("design:returntype", void 0) +], Panel.prototype, "__enableSnapshot__", null); /* * Copyright [2019] [Doric.Pub] diff --git a/doric-web/dist/index.js.map b/doric-web/dist/index.js.map index a5cbab45..5a1cbe67 100644 --- a/doric-web/dist/index.js.map +++ b/doric-web/dist/index.js.map @@ -1 +1,5 @@ -{"version":3,"file":"index.js","sources":["../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../build/src/DoricBundleLoader.js","../build/src/DoricPlugin.js","../build/src/shader/DoricViewNode.js","../build/src/plugins/ShaderPlugin.js","../build/src/shader/DoricStackNode.js","../build/src/shader/DoricVLayoutNode.js","../build/src/shader/DoricHLayoutNode.js","../build/src/shader/DoricTextNode.js","../build/src/shader/DoricImageNode.js","../build/src/shader/DoricScrollerNode.js","../build/src/plugins/ModalPlugin.js","../build/src/plugins/StoragePlugin.js","../build/src/navigate/NavigatorPlugin.js","../build/src/plugins/PopoverPlugin.js","../build/src/shader/DoricListItemNode.js","../build/src/shader/DoricListNode.js","../build/src/shader/DoricDraggableNode.js","../build/src/shader/DoricRefreshableNode.js","../build/src/plugins/AnimatePlugin.js","../build/src/shader/DoricSwitchNode.js","../build/src/shader/DoricSliderNode.js","../build/src/shader/DoricSlideItemNode.js","../build/src/plugins/NotificationPlugin.js","../build/src/DoricRegistry.js","../build/src/DoricDriver.js","../build/src/DoricContext.js","../build/src/DoricElement.js","../build/src/navigate/NavigationElement.js","../build/index.js"],"sourcesContent":["/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nconst loaders = [\n {\n filter: () => true,\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const result = yield axios.get(source);\n return result.data;\n })\n }\n];\nexport function registerDoricJSLoader(loader) {\n loaders.push(loader);\n}\nexport function loadDoricJSBundle(source) {\n return __awaiter(this, void 0, void 0, function* () {\n const matched = loaders.filter(e => e.filter(source));\n if (matched.length > 0) {\n return matched[matched.length - 1].request(source);\n }\n throw new Error(`Cannot find matched loader for '${source}'`);\n });\n}\n//# sourceMappingURL=DoricBundleLoader.js.map","export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n//# sourceMappingURL=DoricPlugin.js.map","import { acquireViewNode } from \"../DoricRegistry\";\nexport var LayoutSpec;\n(function (LayoutSpec) {\n LayoutSpec[LayoutSpec[\"EXACTLY\"] = 0] = \"EXACTLY\";\n LayoutSpec[LayoutSpec[\"WRAP_CONTENT\"] = 1] = \"WRAP_CONTENT\";\n LayoutSpec[LayoutSpec[\"AT_MOST\"] = 2] = \"AT_MOST\";\n})(LayoutSpec || (LayoutSpec = {}));\nconst SPECIFIED = 1;\nconst START = 1 << 1;\nconst END = 1 << 2;\nconst SHIFT_X = 0;\nconst SHIFT_Y = 4;\nexport const LEFT = (START | SPECIFIED) << SHIFT_X;\nexport const RIGHT = (END | SPECIFIED) << SHIFT_X;\nexport const TOP = (START | SPECIFIED) << SHIFT_Y;\nexport const BOTTOM = (END | SPECIFIED) << SHIFT_Y;\nexport const CENTER_X = SPECIFIED << SHIFT_X;\nexport const CENTER_Y = SPECIFIED << SHIFT_Y;\nexport const CENTER = CENTER_X | CENTER_Y;\nexport function toPixelString(v) {\n return `${v}px`;\n}\nexport function pixelString2Number(v) {\n return parseFloat(v.substring(0, v.indexOf(\"px\")));\n}\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff));\n }\n strs = strs.reverse();\n /// RGBAd\n return `rgba(${strs[1]},${strs[2]},${strs[3]},${strs[0] / 255})`;\n}\nexport class DoricViewNode {\n constructor(context) {\n this.viewId = \"\";\n this.viewType = \"View\";\n this.layoutConfig = {\n widthSpec: LayoutSpec.EXACTLY,\n heightSpec: LayoutSpec.EXACTLY,\n alignment: 0,\n weight: 0,\n margin: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n };\n this.padding = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n };\n this.frameWidth = 0;\n this.frameHeight = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n this._originDisplay = \"\";\n this.transform = {};\n this.context = context;\n }\n init(superNode) {\n if (superNode) {\n this.superNode = superNode;\n if (this instanceof DoricSuperNode) {\n this.reusable = superNode.reusable;\n }\n }\n this.view = this.build();\n this._originDisplay = this.view.style.display;\n }\n get paddingLeft() {\n return this.padding.left || 0;\n }\n get paddingRight() {\n return this.padding.right || 0;\n }\n get paddingTop() {\n return this.padding.top || 0;\n }\n get paddingBottom() {\n return this.padding.bottom || 0;\n }\n get borderWidth() {\n var _a;\n return ((_a = this.border) === null || _a === void 0 ? void 0 : _a.width) || 0;\n }\n blend(props) {\n this.view.id = `${this.viewId}`;\n for (let key in props) {\n this.blendProps(this.view, key, props[key]);\n }\n this.onBlending();\n this.layout();\n }\n onBlending() {\n this.updateTransform();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.applyCSSStyle({\n borderStyle: \"solid\",\n borderWidth: toPixelString(this.border.width),\n borderColor: toRGBAString(this.border.color),\n });\n }\n }\n configWidth() {\n let width;\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ width });\n }\n configHeight() {\n let height;\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ height });\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.applyCSSStyle({\n marginLeft: toPixelString(this.layoutConfig.margin.left || 0),\n marginRight: toPixelString(this.layoutConfig.margin.right || 0),\n marginTop: toPixelString(this.layoutConfig.margin.top || 0),\n marginBottom: toPixelString(this.layoutConfig.margin.bottom || 0),\n });\n }\n }\n configPadding() {\n if (this.padding) {\n this.applyCSSStyle({\n paddingLeft: toPixelString(this.paddingLeft),\n paddingRight: toPixelString(this.paddingRight),\n paddingTop: toPixelString(this.paddingTop),\n paddingBottom: toPixelString(this.paddingBottom),\n });\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"border\":\n this.border = prop;\n break;\n case \"padding\":\n this.padding = prop;\n break;\n case 'width':\n this.frameWidth = prop;\n break;\n case 'height':\n this.frameHeight = prop;\n break;\n case 'backgroundColor':\n this.backgroundColor = prop;\n break;\n case 'layoutConfig':\n const layoutConfig = prop;\n for (let key in layoutConfig) {\n Reflect.set(this.layoutConfig, key, Reflect.get(layoutConfig, key, layoutConfig));\n }\n break;\n case 'x':\n this.offsetX = prop;\n break;\n case 'y':\n this.offsetY = prop;\n break;\n case 'onClick':\n this.view.onclick = (event) => {\n this.callJSResponse(prop);\n event.stopPropagation();\n };\n break;\n case 'corners':\n if (typeof prop === 'object') {\n this.applyCSSStyle({\n borderTopLeftRadius: toPixelString(prop.leftTop),\n borderTopRightRadius: toPixelString(prop.rightTop),\n borderBottomRightRadius: toPixelString(prop.rightBottom),\n borderBottomLeftRadius: toPixelString(prop.leftBottom),\n });\n }\n else {\n this.applyCSSStyle({ borderRadius: toPixelString(prop) });\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n let boxShadow;\n if (opacity > 0) {\n const offsetX = prop.offsetX || 0;\n const offsetY = prop.offsetY || 0;\n const shadowColor = prop.color || 0xff000000;\n const shadowRadius = prop.radius;\n const alpha = opacity * 255;\n boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n boxShadow = \"\";\n }\n this.applyCSSStyle({\n boxShadow,\n });\n break;\n case 'alpha':\n this.applyCSSStyle({\n opacity: `${prop}`,\n });\n break;\n case 'rotation':\n this.transform.rotation = prop;\n break;\n case 'rotationX':\n this.transform.rotationX = prop;\n break;\n case 'rotationY':\n this.transform.rotationY = prop;\n break;\n case 'scaleX':\n this.transform.scaleX = prop;\n break;\n case 'scaleY':\n this.transform.scaleY = prop;\n break;\n case 'translationX':\n this.transform.translateX = prop;\n break;\n case 'translationY':\n this.transform.translateY = prop;\n break;\n case 'pivotX':\n if (this.transformOrigin) {\n this.transformOrigin.x = prop;\n }\n else {\n this.transformOrigin = {\n x: prop,\n y: 0.5,\n };\n }\n break;\n case 'pivotY':\n if (this.transformOrigin) {\n this.transformOrigin.y = prop;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: prop,\n };\n }\n break;\n case 'hidden':\n this.applyCSSStyle({\n display: prop === true ? \"none\" : this._originDisplay\n });\n break;\n default:\n console.error(`Cannot blend prop for ${propName}`);\n break;\n }\n }\n set backgroundColor(v) {\n this.applyCSSStyle({ backgroundColor: toRGBAString(v) });\n }\n static create(context, type) {\n const viewNodeClass = acquireViewNode(type);\n if (viewNodeClass === undefined) {\n console.error(`Cannot find ViewNode for ${type}`);\n return undefined;\n }\n const ret = new viewNodeClass(context);\n ret.viewType = type;\n return ret;\n }\n getIdList() {\n const ids = [];\n let viewNode = this;\n do {\n ids.push(viewNode.viewId);\n viewNode = viewNode.superNode;\n } while (viewNode);\n return ids.reverse();\n }\n callJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.invokeEntityMethod, this.context, argumentsList);\n }\n pureCallJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.pureInvokeEntityMethod, this.context, argumentsList);\n }\n updateTransform() {\n this.applyCSSStyle({\n transform: Object.entries(this.transform).filter((e) => !!e[1]).map((e) => {\n const v = e[1] || 0;\n switch (e[0]) {\n case \"translateX\":\n return `translateX(${v}px)`;\n case \"scaleX\":\n return `scaleX(${v})`;\n case \"scaleY\":\n return `scaleY(${v})`;\n case \"rotation\":\n return `rotate(${v / 2}turn)`;\n case \"rotationX\":\n return `rotateX(${v / 2}turn)`;\n case \"rotationY\":\n return `rotateY(${v / 2}turn)`;\n default:\n console.error(`Do not support transform ${e[0]}`);\n return \"\";\n }\n }).join(\" \")\n });\n }\n updateTransformOrigin() {\n if (this.transformOrigin) {\n this.applyCSSStyle({\n transformOrigin: `${Math.round(this.transformOrigin.x * 100)}% ${Math.round(this.transformOrigin.y * 100)}%`\n });\n }\n }\n applyCSSStyle(cssStyle) {\n if (this.context.inAnimation()) {\n this.context.addAnimation(this, cssStyle);\n }\n else {\n for (let v in cssStyle) {\n Reflect.set(this.view.style, v, cssStyle[v]);\n }\n }\n }\n /** ++++++++++call from doric ++++++++++*/\n getWidth() {\n return this.view.offsetWidth;\n }\n getHeight() {\n return this.view.offsetHeight;\n }\n setWidth(v) {\n this.view.style.width = toPixelString(v);\n }\n setHeight(v) {\n this.view.style.height = toPixelString(v);\n }\n getX() {\n return this.view.offsetLeft;\n }\n getY() {\n return this.view.offsetTop;\n }\n setX(v) {\n this.view.style.left = toPixelString(v);\n }\n setY(v) {\n this.view.style.top = toPixelString(v);\n }\n getBackgroundColor() {\n return this.view.style.backgroundColor;\n }\n setBackgroundColor(v) {\n this.backgroundColor = v;\n }\n getAlpha() {\n return parseFloat(this.view.style.opacity);\n }\n setAlpha(v) {\n this.view.style.opacity = `${v}`;\n }\n getCorners() {\n return parseFloat(this.view.style.borderRadius);\n }\n setCorners(v) {\n this.view.style.borderRadius = toPixelString(v);\n }\n getLocationOnScreen() {\n const rect = this.view.getClientRects()[0];\n return {\n x: rect.left,\n y: rect.top,\n };\n }\n getRotation() {\n return this.transform.rotation;\n }\n setRotation(v) {\n this.transform.rotation = v;\n this.updateTransform();\n }\n getRotationX() {\n return this.transform.rotationX;\n }\n setRotationX(v) {\n this.transform.rotationX = v;\n this.updateTransform();\n }\n getRotationY() {\n return this.transform.rotationY;\n }\n setRotationY(v) {\n this.transform.rotationY = v;\n this.updateTransform();\n }\n getTranslationX() {\n return this.transform.translateX;\n }\n setTranslationX(v) {\n this.transform.translateX = v;\n this.updateTransform();\n }\n getTranslationY() {\n return this.transform.translateY;\n }\n setTranslationY(v) {\n this.transform.translateY = v;\n this.updateTransform();\n }\n getScaleX() {\n return this.transform.scaleX;\n }\n setScaleX(v) {\n this.transform.scaleX = v;\n this.updateTransform();\n }\n getScaleY() {\n return this.transform.scaleY;\n }\n setScaleY(v) {\n this.transform.scaleY = v;\n this.updateTransform();\n }\n getPivotX() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.x) || 0.5;\n }\n setPivotX(v) {\n if (this.transformOrigin) {\n this.transformOrigin.x = v;\n }\n else {\n this.transformOrigin = {\n x: v,\n y: 0.5,\n };\n }\n this.updateTransform();\n }\n getPivotY() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.y) || 0.5;\n }\n setPivotY(v) {\n if (this.transformOrigin) {\n this.transformOrigin.y = v;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: v,\n };\n }\n this.updateTransform();\n }\n}\nexport class DoricSuperNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.reusable = false;\n this.subModels = new Map;\n }\n blendProps(v, propName, prop) {\n if (propName === 'subviews') {\n if (prop instanceof Array) {\n prop.forEach((e) => {\n this.mixinSubModel(e);\n this.blendSubNode(e);\n });\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n mixinSubModel(subNode) {\n const oldValue = this.getSubModel(subNode.id);\n if (oldValue) {\n this.mixin(subNode, oldValue);\n }\n else {\n this.subModels.set(subNode.id, subNode);\n }\n }\n getSubModel(id) {\n return this.subModels.get(id);\n }\n mixin(src, target) {\n for (let key in src.props) {\n if (key === \"subviews\") {\n continue;\n }\n Reflect.set(target.props, key, Reflect.get(src.props, key));\n }\n }\n clearSubModels() {\n this.subModels.clear();\n }\n removeSubModel(id) {\n this.subModels.delete(id);\n }\n}\nexport class DoricGroupViewNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childNodes = [];\n this.childViewIds = [];\n }\n init(superNode) {\n super.init(superNode);\n this.view.style.overflow = \"hidden\";\n }\n blendProps(v, propName, prop) {\n if (propName === 'children') {\n if (prop instanceof Array) {\n this.childViewIds = prop;\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blend(props) {\n super.blend(props);\n }\n onBlending() {\n super.onBlending();\n this.configChildNode();\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n configChildNode() {\n this.childViewIds.forEach((childViewId, index) => {\n const model = this.getSubModel(childViewId);\n if (model === undefined) {\n return;\n }\n if (index < this.childNodes.length) {\n const oldNode = this.childNodes[index];\n if (oldNode.viewId === childViewId) {\n //The same,skip\n }\n else {\n if (this.reusable) {\n if (oldNode.viewType === model.type) {\n //Same type,can be reused\n oldNode.viewId = childViewId;\n oldNode.blend(model.props);\n }\n else {\n //Replace this view\n this.view.removeChild(oldNode.view);\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.replaceChild(newNode.view, oldNode.view);\n }\n }\n else {\n //Find in remain nodes\n let position = -1;\n for (let start = index + 1; start < this.childNodes.length; start++) {\n if (childViewId === this.childNodes[start].viewId) {\n //Found\n position = start;\n break;\n }\n }\n if (position >= 0) {\n //Found swap idx,position\n const reused = this.childNodes[position];\n const abandoned = this.childNodes[index];\n this.childNodes[index] = reused;\n this.childNodes[position] = abandoned;\n this.view.removeChild(reused.view);\n this.view.insertBefore(reused.view, abandoned.view);\n this.view.removeChild(abandoned.view);\n if (position === this.view.childElementCount - 1) {\n this.view.appendChild(abandoned.view);\n }\n else {\n this.view.insertBefore(abandoned.view, this.view.children[position]);\n }\n }\n else {\n //Not found,insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.insertBefore(newNode.view, this.view.children[index]);\n }\n }\n }\n }\n else {\n //Insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes.push(newNode);\n this.view.appendChild(newNode.view);\n }\n });\n let size = this.childNodes.length;\n for (let idx = this.childViewIds.length; idx < size; idx++) {\n this.view.removeChild(this.childNodes[idx].view);\n }\n this.childNodes = this.childNodes.slice(0, this.childViewIds.length);\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n}\n//# sourceMappingURL=DoricViewNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricSuperNode } from \"../shader/DoricViewNode\";\nexport class ShaderPlugin extends DoricPlugin {\n render(ret) {\n var _a;\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(ret.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(ret.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n this.context.rootNode.onBlended();\n }\n }\n command(options) {\n let viewNode = undefined;\n for (let viewId of options.viewIds) {\n if (!viewNode) {\n viewNode = this.context.targetViewNode(viewId);\n }\n else {\n if (viewNode instanceof DoricSuperNode) {\n viewNode = viewNode.getSubNodeById(viewId);\n }\n }\n }\n if (!viewNode) {\n return Promise.reject(\"Cannot find opposite view\");\n }\n else {\n const target = viewNode;\n return new Promise((resolve, reject) => {\n try {\n const method = Reflect.get(target, options.name);\n if (!method) {\n reject(`\"Cannot find plugin method in class:${target},method:${options.name}\"`);\n }\n resolve(Reflect.apply(method, target, [options.args]));\n }\n catch (err) {\n reject(err);\n }\n });\n }\n }\n}\n//# sourceMappingURL=ShaderPlugin.js.map","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } from \"./DoricViewNode\";\nexport class DoricStackNode extends DoricGroupViewNode {\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n return ret;\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n this.configOffset();\n });\n }\n configSize() {\n if (this.layoutConfig.widthSpec === LayoutSpec.WRAP_CONTENT) {\n const width = this.childNodes.reduce((prev, current) => {\n const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetWidth\n + pixelString2Number(computedStyle.marginLeft)\n + pixelString2Number(computedStyle.marginRight));\n }, 0);\n this.view.style.width = toPixelString(width);\n }\n if (this.layoutConfig.heightSpec === LayoutSpec.WRAP_CONTENT) {\n const height = this.childNodes.reduce((prev, current) => {\n const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetHeight\n + pixelString2Number(computedStyle.marginTop)\n + pixelString2Number(computedStyle.marginBottom));\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n const position = \"absolute\";\n let left = toPixelString(e.offsetX + this.paddingLeft);\n let top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n left = toPixelString(this.view.offsetWidth - e.view.offsetWidth);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2);\n }\n if ((gravity & TOP) === TOP) {\n top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n top = toPixelString(this.view.offsetHeight - e.view.offsetHeight);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2);\n }\n e.applyCSSStyle({\n position,\n left,\n top,\n });\n });\n }\n}\n//# sourceMappingURL=DoricStackNode.js.map","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricVLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"column\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.alignItems = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.justifyContent = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginTop = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.top) || 0);\n e.view.style.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.bottom) || 0));\n e.view.style.marginLeft = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.left) || 0);\n e.view.style.marginRight = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.right) || 0);\n if ((e.layoutConfig.alignment & LEFT) === LEFT) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & RIGHT) === RIGHT) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_X) === CENTER_X) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n//# sourceMappingURL=DoricVLayoutNode.js.map","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricHLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"row\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.justifyContent = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.alignItems = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginLeft = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.left) || 0);\n e.view.style.marginRight = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.right) || 0));\n e.view.style.marginTop = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.top) || 0);\n e.view.style.marginBottom = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.bottom) || 0);\n if ((e.layoutConfig.alignment & TOP) === TOP) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & BOTTOM) === BOTTOM) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_Y) === CENTER_Y) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n//# sourceMappingURL=DoricHLayoutNode.js.map","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, toRGBAString } from \"./DoricViewNode\";\nexport class DoricTextNode extends DoricViewNode {\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n this.textElement = document.createElement('span');\n div.appendChild(this.textElement);\n div.style.justifyContent = \"center\";\n div.style.alignItems = \"center\";\n return div;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'text':\n this.textElement.innerText = prop;\n break;\n case 'textSize':\n v.style.fontSize = toPixelString(prop);\n break;\n case 'textColor':\n v.style.color = toRGBAString(prop);\n break;\n case 'textAlignment':\n const gravity = prop;\n if ((gravity & LEFT) === LEFT) {\n v.style.justifyContent = \"flex-start\";\n }\n else if ((gravity & RIGHT) === RIGHT) {\n v.style.justifyContent = \"flex-end\";\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n v.style.justifyContent = \"center\";\n }\n if ((gravity & TOP) === TOP) {\n v.style.alignItems = \"flex-start\";\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n v.style.alignItems = \"flex-end\";\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n v.style.alignItems = \"center\";\n }\n break;\n case \"fontStyle\":\n switch (prop) {\n case \"bold\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"normal\";\n break;\n case \"italic\":\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"italic\";\n break;\n case \"bold_italic\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"italic\";\n break;\n default:\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"normal\";\n break;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricTextNode.js.map","import { DoricViewNode } from \"./DoricViewNode\";\nvar ScaleType;\n(function (ScaleType) {\n ScaleType[ScaleType[\"ScaleToFill\"] = 0] = \"ScaleToFill\";\n ScaleType[ScaleType[\"ScaleAspectFit\"] = 1] = \"ScaleAspectFit\";\n ScaleType[ScaleType[\"ScaleAspectFill\"] = 2] = \"ScaleAspectFill\";\n})(ScaleType || (ScaleType = {}));\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = \"fill\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'imageUrl':\n v.setAttribute('src', prop);\n break;\n case 'imageBase64':\n v.setAttribute('src', prop);\n break;\n case 'loadCallback':\n v.onload = () => {\n this.callJSResponse(prop, {\n width: v.width,\n height: v.height\n });\n };\n break;\n case 'scaleType':\n switch (prop) {\n case ScaleType.ScaleToFill:\n v.style.objectFit = \"fill\";\n break;\n case ScaleType.ScaleAspectFit:\n v.style.objectFit = \"contain\";\n break;\n case ScaleType.ScaleAspectFill:\n v.style.objectFit = \"cover\";\n break;\n }\n break;\n case 'isBlur':\n if (prop) {\n v.style.filter = 'blur(8px)';\n }\n else {\n v.style.filter = '';\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricImageNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricScrollerNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childViewId = \"\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.childViewId = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return viewId === this.childViewId ? this.childNode : undefined;\n }\n onBlending() {\n super.onBlending();\n const model = this.getSubModel(this.childViewId);\n if (model === undefined) {\n return;\n }\n if (this.childNode) {\n if (this.childNode.viewId === this.childViewId) {\n ///skip\n }\n else {\n if (this.reusable && this.childNode.viewType === model.type) {\n this.childNode.viewId = model.id;\n this.childNode.blend(model.props);\n }\n else {\n this.view.removeChild(this.childNode.view);\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n }\n else {\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n onBlended() {\n var _a;\n super.onBlended();\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.onBlended();\n }\n}\n//# sourceMappingURL=DoricScrollerNode.js.map","import { DoricPlugin } from '../DoricPlugin';\nimport { TOP, CENTER_Y, BOTTOM, toPixelString } from '../shader/DoricViewNode';\nexport class ModalPlugin extends DoricPlugin {\n toast(args) {\n const toastElement = document.createElement('div');\n toastElement.style.position = \"absolute\";\n toastElement.style.textAlign = \"center\";\n toastElement.style.width = \"100%\";\n const textElement = document.createElement('span');\n textElement.innerText = args.msg || \"\";\n textElement.style.backgroundColor = \"#777777\";\n textElement.style.color = \"white\";\n textElement.style.paddingLeft = '20px';\n textElement.style.paddingRight = '20px';\n textElement.style.paddingTop = '10px';\n textElement.style.paddingBottom = '10px';\n toastElement.appendChild(textElement);\n document.body.appendChild(toastElement);\n const gravity = args.gravity || BOTTOM;\n if ((gravity & TOP) == TOP) {\n toastElement.style.top = toPixelString(30);\n }\n else if ((gravity & BOTTOM) == BOTTOM) {\n toastElement.style.bottom = toPixelString(30);\n }\n else if ((gravity & CENTER_Y) == CENTER_Y) {\n toastElement.style.top = toPixelString(document.body.offsetHeight / 2 - toastElement.offsetHeight / 2);\n }\n setTimeout(() => {\n document.body.removeChild(toastElement);\n }, 2000);\n return Promise.resolve();\n }\n alert(args) {\n window.alert(args.msg || \"\");\n return Promise.resolve();\n }\n confirm(args) {\n if (window.confirm(args.msg || \"\")) {\n return Promise.resolve();\n }\n else {\n return Promise.reject();\n }\n }\n prompt(args) {\n const result = window.prompt(args.msg || \"\", args.defaultText);\n if (result) {\n return Promise.resolve(result);\n }\n else {\n return Promise.reject(result);\n }\n }\n}\n//# sourceMappingURL=ModalPlugin.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class StoragePlugin extends DoricPlugin {\n setItem(args) {\n localStorage.setItem(`${args.zone}_${args.key}`, args.value);\n return Promise.resolve();\n }\n getItem(args) {\n return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`));\n }\n remove(args) {\n localStorage.removeItem(`${args.zone}_${args.key}`);\n return Promise.resolve();\n }\n clear(args) {\n let removingKeys = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${args.zone}_`)) {\n removingKeys.push(key);\n }\n }\n removingKeys.forEach(e => {\n localStorage.removeItem(e);\n });\n return Promise.resolve();\n }\n}\n//# sourceMappingURL=StoragePlugin.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricElement } from \"../DoricElement\";\nexport class NavigatorPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.navigation = document.getElementsByTagName('doric-navigation')[0];\n }\n push(args) {\n var _a;\n if (this.navigation) {\n const div = new DoricElement;\n div.src = args.source;\n div.alias = ((_a = args.config) === null || _a === void 0 ? void 0 : _a.alias) || args.source;\n this.navigation.push(div);\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n pop() {\n if (this.navigation) {\n this.navigation.pop();\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n}\n//# sourceMappingURL=NavigatorPlugin.js.map","import { DoricPlugin } from '../DoricPlugin';\nimport { DoricViewNode } from '../shader/DoricViewNode';\nexport class PopoverPlugin extends DoricPlugin {\n constructor(context) {\n super(context);\n this.fullScreen = document.createElement('div');\n this.fullScreen.id = `PopOver__${context.contextId}`;\n this.fullScreen.style.position = 'fixed';\n this.fullScreen.style.top = '0px';\n this.fullScreen.style.width = \"100%\";\n this.fullScreen.style.height = \"100%\";\n }\n show(model) {\n const viewNode = DoricViewNode.create(this.context, model.type);\n if (viewNode === undefined) {\n return Promise.reject(`Cannot create ViewNode for ${model.type}`);\n }\n viewNode.viewId = model.id;\n viewNode.init();\n viewNode.blend(model.props);\n this.fullScreen.appendChild(viewNode.view);\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n map.set(model.id, viewNode);\n }\n else {\n map = new Map;\n map.set(model.id, viewNode);\n this.context.headNodes.set(PopoverPlugin.TYPE, map);\n }\n if (!document.body.contains(this.fullScreen)) {\n document.body.appendChild(this.fullScreen);\n }\n return Promise.resolve();\n }\n dismiss(args) {\n if (args) {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n const viewNode = map.get(args.id);\n if (viewNode) {\n this.fullScreen.removeChild(viewNode.view);\n }\n if (map.size === 0) {\n document.body.removeChild(this.fullScreen);\n }\n }\n }\n else {\n this.dismissAll();\n }\n return Promise.resolve();\n }\n dismissAll() {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n for (let node of map.values()) {\n map.delete(node.viewId);\n this.fullScreen.removeChild(node.view);\n }\n }\n if (document.body.contains(this.fullScreen)) {\n document.body.removeChild(this.fullScreen);\n }\n }\n onTearDown() {\n super.onTearDown();\n this.dismissAll();\n }\n}\nPopoverPlugin.TYPE = \"popover\";\n//# sourceMappingURL=PopoverPlugin.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n}\n//# sourceMappingURL=DoricListItemNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricListNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.batchCount = 15;\n this.loadMore = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"itemCount\":\n this.itemCount = prop;\n break;\n case \"renderItem\":\n this.reset();\n this.renderItemFuncId = prop;\n break;\n case \"onLoadMore\":\n this.onLoadMoreFuncId = prop;\n break;\n case \"loadMoreView\":\n this.loadMoreViewId = prop;\n break;\n case \"batchCount\":\n this.batchCount = prop;\n break;\n case \"loadMore\":\n this.loadMore = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n if (this.loadMoreViewNode && this.view.contains(this.loadMoreViewNode.view)) {\n this.view.removeChild(this.loadMoreViewNode.view);\n }\n if (this.loadMore) {\n if (!this.loadMoreViewNode) {\n const loadMoreViewModel = this.getSubModel(this.loadMoreViewId || \"\");\n if (loadMoreViewModel) {\n this.loadMoreViewNode = DoricViewNode.create(this.context, loadMoreViewModel.type);\n this.loadMoreViewNode.viewId = loadMoreViewModel.id;\n this.loadMoreViewNode.init(this);\n this.loadMoreViewNode.blend(loadMoreViewModel.props);\n }\n }\n if (this.loadMoreViewNode) {\n this.view.appendChild(this.loadMoreViewNode.view);\n }\n if (this.view.scrollTop + this.view.offsetHeight === this.view.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n var _a;\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onScrollToEnd() {\n if (this.loadMore && this.onLoadMoreFuncId) {\n this.callJSResponse(this.onLoadMoreFuncId);\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n ret.addEventListener(\"scroll\", () => {\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n}\n//# sourceMappingURL=DoricListNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricDraggableNode extends DoricStackNode {\n constructor() {\n super(...arguments);\n this.onDrag = \"\";\n this.dragging = false;\n this.lastX = 0;\n this.lastY = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.ontouchstart = (event) => {\n this.dragging = true;\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n };\n ret.ontouchend = (event) => {\n this.dragging = false;\n };\n ret.ontouchcancel = (event) => {\n this.dragging = false;\n };\n ret.ontouchmove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.targetTouches[0].clientX - this.lastX);\n this.offsetY += (event.targetTouches[0].clientY - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n }\n };\n ret.onmousedown = (event) => {\n this.dragging = true;\n this.lastX = event.x;\n this.lastY = event.y;\n };\n ret.onmousemove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.x - this.lastX);\n this.offsetY += (event.y - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.x;\n this.lastY = event.y;\n }\n };\n ret.onmouseup = (event) => {\n this.dragging = false;\n };\n ret.onmouseout = (event) => {\n this.dragging = false;\n };\n ret.style.position = \"relative\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'onDrag':\n this.onDrag = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricDraggableNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricRefreshableNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.headerViewId = \"\";\n this.contentViewId = \"\";\n this.refreshable = true;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n const header = document.createElement('div');\n const content = document.createElement('div');\n header.style.width = \"100%\";\n header.style.height = \"100%\";\n header.style.display = \"flex\";\n header.style.alignItems = \"flex-end\";\n header.style.justifyContent = \"center\";\n content.style.width = \"100%\";\n content.style.height = \"100%\";\n ret.appendChild(header);\n ret.appendChild(content);\n let touchStart = 0;\n ret.ontouchstart = (ev) => {\n if (!this.refreshable) {\n return;\n }\n touchStart = ev.touches[0].pageY;\n };\n ret.ontouchmove = (ev) => {\n var _a;\n if (!this.refreshable) {\n return;\n }\n const offset = (ev.touches[0].pageY - touchStart) * 0.68;\n ret.scrollTop = Math.max(0, header.offsetHeight - offset);\n (_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.callJSResponse(\"setPullingDistance\", offset);\n };\n const touchend = () => {\n var _a, _b;\n if (!this.refreshable) {\n return;\n }\n if (header.offsetHeight - ret.scrollTop >= (((_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0)) {\n this.setRefreshing(true);\n (_b = this.onRefreshCallback) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n else {\n // To idel\n ret.scrollTo({\n top: header.offsetHeight,\n behavior: \"smooth\"\n });\n }\n };\n ret.ontouchcancel = () => {\n touchend();\n };\n ret.ontouchend = () => {\n touchend();\n };\n window.requestAnimationFrame(() => {\n ret.scrollTop = header.offsetHeight;\n });\n this.headerContainer = header;\n this.contentContainer = content;\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.contentViewId = prop;\n }\n else if (propName === 'header') {\n this.headerViewId = prop;\n }\n else if (propName === 'onRefresh') {\n this.onRefreshCallback = () => {\n this.callJSResponse(prop);\n };\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n if (viewId === this.headerViewId) {\n return this.headerNode;\n }\n else if (viewId === this.contentViewId) {\n return this.contentNode;\n }\n return undefined;\n }\n onBlending() {\n var _a, _b, _c, _d, _e, _f;\n super.onBlending();\n {\n const headerModel = this.getSubModel(this.headerViewId);\n if (headerModel) {\n if (this.headerNode) {\n if (this.headerNode.viewId !== this.headerViewId) {\n if (this.reusable && this.headerNode.viewType === headerModel.type) {\n this.headerNode.viewId = headerModel.id;\n this.headerNode.blend(headerModel.props);\n }\n else {\n (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.removeChild(this.headerNode.view);\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_b = this.headerContainer) === null || _b === void 0 ? void 0 : _b.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n else {\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_c = this.headerContainer) === null || _c === void 0 ? void 0 : _c.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n {\n const contentModel = this.getSubModel(this.contentViewId);\n if (contentModel) {\n if (this.contentNode) {\n if (this.contentNode.viewId !== this.contentViewId) {\n if (this.reusable && this.contentNode.viewType === contentModel.type) {\n this.contentNode.viewId = contentModel.id;\n this.contentNode.blend(contentModel.props);\n }\n else {\n (_d = this.contentContainer) === null || _d === void 0 ? void 0 : _d.removeChild(this.contentNode.view);\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_e = this.contentContainer) === null || _e === void 0 ? void 0 : _e.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n else {\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_f = this.contentContainer) === null || _f === void 0 ? void 0 : _f.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n }\n onBlended() {\n super.onBlended();\n }\n setRefreshing(v) {\n var _a;\n if (!this.headerContainer || !this.headerNode) {\n return;\n }\n if (v) {\n this.view.scrollTo({\n top: this.headerContainer.offsetHeight - this.headerNode.getHeight(),\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"startAnimation\");\n }\n else {\n this.view.scrollTo({\n top: (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.offsetHeight,\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"stopAnimation\");\n }\n }\n setRefreshable(v) {\n this.refreshable = v;\n if (!v) {\n this.setRefreshing(false);\n }\n }\n}\n//# sourceMappingURL=DoricRefreshableNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class AnimatePlugin extends DoricPlugin {\n submit() {\n return Promise.resolve();\n }\n animateRender(args) {\n var _a;\n this.context.animationSet = [];\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(args.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(args.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = args.id;\n this.context.rootNode.blend(args.props);\n this.context.rootNode.onBlended();\n }\n return new Promise(resolve => {\n Promise.resolve().then(() => {\n var _a;\n Promise.all(((_a = this.context.animationSet) === null || _a === void 0 ? void 0 : _a.map(e => {\n return new Promise(resolve => {\n const keyFrame = {};\n const ensureNonString = (key, value) => {\n if (!!value && value !== \"\") {\n return value;\n }\n switch ((key)) {\n case \"backgroundColor\":\n return \"transparent\";\n case \"transform\":\n return \"none\";\n default:\n return \"none\";\n }\n };\n for (let k in e.keyFrame) {\n keyFrame[k] = ensureNonString(k, e.viewNode.view.style[k]);\n e.keyFrame[k] = ensureNonString(k, e.keyFrame[k]);\n }\n try {\n const animation = e.viewNode.view.animate([keyFrame, e.keyFrame], {\n duration: args.duration,\n fill: \"forwards\"\n });\n animation.onfinish = () => {\n Object.entries(e.keyFrame).forEach(entry => {\n Reflect.set(e.viewNode.view.style, entry[0], entry[1]);\n });\n resolve(true);\n };\n }\n catch (e) {\n console.error(e);\n alert(e.stack);\n }\n });\n })) || [])\n .then(() => {\n resolve(0);\n })\n .finally(() => {\n this.context.animationSet = undefined;\n });\n });\n });\n }\n}\n//# sourceMappingURL=AnimatePlugin.js.map","import { DoricViewNode, toRGBAString } from \"./DoricViewNode\";\nexport class DoricSwitchNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.offTintColor = \"#e6e6e6\";\n this.onTintColor = \"#52d769\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n ret.style.width = \"50px\";\n ret.style.height = \"30px\";\n const input = document.createElement('input');\n input.type = \"checkbox\";\n input.style.display = \"none\";\n const box = document.createElement('div');\n box.style.width = \"100%\";\n box.style.height = \"100%\";\n box.style.backgroundColor = \"#ccc\";\n box.style.borderRadius = \"15px\";\n const span = document.createElement('span');\n span.style.display = \"inline-block\";\n span.style.height = \"30px\";\n span.style.width = \"30px\";\n span.style.borderRadius = \"15px\";\n span.style.background = \"#fff\";\n span.style.boxShadow = \"0px 3px 3px #eee\";\n box.appendChild(span);\n ret.appendChild(input);\n ret.appendChild(box);\n ret.onclick = () => {\n try {\n if (input.checked === false) {\n span.animate([{ transform: \"translateX(0px)\" }, { transform: \"translateX(30px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.offTintColor }, { backgroundColor: this.onTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = true;\n }\n else {\n span.animate([{ transform: \"translateX(30px)\" }, { transform: \"translateX(0px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.onTintColor }, { backgroundColor: this.offTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = false;\n }\n if (this.onSwitchFuncId) {\n this.callJSResponse(this.onSwitchFuncId, input.checked);\n }\n }\n catch (e) {\n alert(e);\n }\n };\n this.input = input;\n this.span = span;\n this.box = box;\n return ret;\n }\n setChecked(v) {\n if (!this.input || !this.span || !this.box) {\n return;\n }\n if (v) {\n this.span.style.transform = \"translateX(30px)\";\n this.box.style.backgroundColor = this.onTintColor;\n this.input.checked = v;\n }\n else {\n this.span.style.transform = \"translateX(0px)\";\n this.box.style.backgroundColor = this.offTintColor;\n this.input.checked = v;\n }\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"state\":\n this.setChecked(prop);\n break;\n case \"onSwitch\":\n this.onSwitchFuncId = prop;\n break;\n case \"offTintColor\":\n this.offTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"onTintColor\":\n this.onTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"thumbTintColor\":\n if (this.span) {\n this.span.style.backgroundColor = toRGBAString(prop);\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n getState() {\n var _a;\n return ((_a = this.input) === null || _a === void 0 ? void 0 : _a.checked) || false;\n }\n}\n//# sourceMappingURL=DoricSwitchNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricSliderNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.renderPageFuncId = \"\";\n this.batchCount = 15;\n this.onPageSelectedFuncId = \"\";\n this.loop = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n if (propName === 'itemCount') {\n this.itemCount = prop;\n }\n else if (propName === 'renderPage') {\n if (prop !== this.renderPageFuncId) {\n this.childNodes = [];\n this.renderPageFuncId = prop;\n }\n }\n else if (propName === 'batchCount') {\n this.batchCount = prop;\n }\n else if (propName === 'onPageSlided') {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === 'loop') {\n this.loop = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n var _a;\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touchStartX = 0;\n let currentIndex = 0;\n ret.ontouchstart = (ev) => {\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n touchStartX = ev.touches[0].pageX;\n };\n ret.ontouchmove = (ev) => {\n const offsetX = (touchStartX - ev.touches[0].pageX) * 3;\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth + offsetX\n });\n };\n ret.ontouchcancel = ret.ontouchend = () => {\n let originInndex = currentIndex;\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth,\n behavior: \"smooth\"\n });\n if (originInndex !== currentIndex) {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, currentIndex);\n }\n }\n };\n return ret;\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\"\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricSliderNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricSlideItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n build() {\n const ret = super.build();\n ret.style.display = \"inline-block\";\n ret.style.width = \"100%\";\n ret.style.height = \"100%\";\n return ret;\n }\n}\n//# sourceMappingURL=DoricSlideItemNode.js.map","import { jsCallResolve } from \"doric/src/runtime/sandbox\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nvar NotificationCenter;\n(function (NotificationCenter) {\n let receivers = [];\n function publish(notification) {\n receivers.filter(e => e.name === notification.name).forEach(e => {\n e.callback(notification.data);\n });\n }\n NotificationCenter.publish = publish;\n function subscribe(receiver) {\n receivers.push(receiver);\n }\n NotificationCenter.subscribe = subscribe;\n function unsubscribe(receiver) {\n receivers = receivers.filter(e => e !== receiver);\n }\n NotificationCenter.unsubscribe = unsubscribe;\n})(NotificationCenter || (NotificationCenter = {}));\nexport class NotificationPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.receivers = {};\n }\n publish(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n NotificationCenter.publish({\n name: key,\n data: !!args.data ? JSON.parse(args.data) : undefined\n });\n return true;\n }\n subscribe(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n const receiver = {\n name: key,\n callback: (data) => {\n jsCallResolve(this.context.contextId, args.callback, data);\n }\n };\n this.receivers[args.callback] = receiver;\n NotificationCenter.subscribe(receiver);\n return args.callback;\n }\n unsubscribe(subscribeId) {\n const recevier = this.receivers[subscribeId];\n if (recevier) {\n NotificationCenter.unsubscribe(recevier);\n this.receivers[subscribeId] = undefined;\n return true;\n }\n else {\n return false;\n }\n }\n onTearDown() {\n Object.entries(this.receivers).map(e => e[1]).filter(e => !!e).forEach(e => {\n if (e) {\n NotificationCenter.unsubscribe(e);\n }\n });\n this.receivers = {};\n }\n}\n//# sourceMappingURL=NotificationPlugin.js.map","import { ShaderPlugin } from \"./plugins/ShaderPlugin\";\nimport { DoricStackNode } from \"./shader/DoricStackNode\";\nimport { DoricVLayoutNode } from './shader/DoricVLayoutNode';\nimport { DoricHLayoutNode } from './shader/DoricHLayoutNode';\nimport { DoricTextNode } from \"./shader/DoricTextNode\";\nimport { DoricImageNode } from \"./shader/DoricImageNode\";\nimport { DoricScrollerNode } from \"./shader/DoricScrollerNode\";\nimport { ModalPlugin } from './plugins/ModalPlugin';\nimport { StoragePlugin } from \"./plugins/StoragePlugin\";\nimport { NavigatorPlugin } from \"./navigate/NavigatorPlugin\";\nimport { PopoverPlugin } from './plugins/PopoverPlugin';\nimport { DoricListItemNode } from \"./shader/DoricListItemNode\";\nimport { DoricListNode } from \"./shader/DoricListNode\";\nimport { DoricDraggableNode } from \"./shader/DoricDraggableNode\";\nimport { DoricRefreshableNode } from \"./shader/DoricRefreshableNode\";\nimport { AnimatePlugin } from \"./plugins/AnimatePlugin\";\nimport { DoricSwitchNode } from \"./shader/DoricSwitchNode\";\nimport { DoricSliderNode } from \"./shader/DoricSliderNode\";\nimport { DoricSlideItemNode } from \"./shader/DoricSlideItemNode\";\nimport { NotificationPlugin } from \"./plugins/NotificationPlugin\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport function acquireJSBundle(name) {\n return bundles.get(name);\n}\nexport function registerJSBundle(name, bundle) {\n bundles.set(name, bundle);\n}\nexport function registerPlugin(name, plugin) {\n plugins.set(name, plugin);\n}\nexport function acquirePlugin(name) {\n return plugins.get(name);\n}\nexport function registerViewNode(name, node) {\n nodes.set(name, node);\n}\nexport function acquireViewNode(name) {\n return nodes.get(name);\n}\nregisterPlugin('shader', ShaderPlugin);\nregisterPlugin('modal', ModalPlugin);\nregisterPlugin('storage', StoragePlugin);\nregisterPlugin('navigator', NavigatorPlugin);\nregisterPlugin('popover', PopoverPlugin);\nregisterPlugin('animate', AnimatePlugin);\nregisterPlugin('notification', NotificationPlugin);\nregisterViewNode('Stack', DoricStackNode);\nregisterViewNode('VLayout', DoricVLayoutNode);\nregisterViewNode('HLayout', DoricHLayoutNode);\nregisterViewNode('Text', DoricTextNode);\nregisterViewNode('Image', DoricImageNode);\nregisterViewNode('Scroller', DoricScrollerNode);\nregisterViewNode('ListItem', DoricListItemNode);\nregisterViewNode('List', DoricListNode);\nregisterViewNode('Draggable', DoricDraggableNode);\nregisterViewNode('Refreshable', DoricRefreshableNode);\nregisterViewNode('Switch', DoricSwitchNode);\nregisterViewNode('Slider', DoricSliderNode);\nregisterViewNode('SlideItem', DoricSlideItemNode);\n//# sourceMappingURL=DoricRegistry.js.map","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext } from 'doric/src/runtime/sandbox';\nimport { acquireJSBundle, acquirePlugin } from './DoricRegistry';\nimport { getDoricContext } from './DoricContext';\nfunction getScriptId(contextId) {\n return `__doric_script_${contextId}`;\n}\nconst originSetTimeout = window.setTimeout;\nconst originClearTimeout = window.clearTimeout;\nconst originSetInterval = window.setInterval;\nconst originClearInterval = window.clearInterval;\nconst timers = new Map;\nexport function injectGlobalObject(name, value) {\n Reflect.set(window, name, value, window);\n}\nexport function loadJS(contextId, script) {\n const scriptElement = document.createElement('script');\n scriptElement.text = script;\n scriptElement.id = getScriptId(contextId);\n document.body.appendChild(scriptElement);\n}\nfunction packageModuleScript(name, content) {\n return `Reflect.apply(doric.jsRegisterModule,this,[${name},Reflect.apply(function(__module){(function(module,exports,require,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n})(__module,__module.exports,doric.__require__,doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval);\nreturn __module.exports;},this,[{exports:{}}])])`;\n}\nfunction packageCreateContext(contextId, content) {\n return `//@ sourceURL=contextId_${contextId}.js\nReflect.apply(function(doric,context,Entry,require,exports,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n},undefined,[undefined,doric.jsObtainContext(\"${contextId}\"),doric.jsObtainEntry(\"${contextId}\"),doric.__require__,{},doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval])`;\n}\nfunction initDoric() {\n injectGlobalObject(\"Environment\", {\n platform: \"web\"\n });\n injectGlobalObject(\"nativeEmpty\", () => undefined);\n injectGlobalObject('nativeLog', (type, message) => {\n switch (type) {\n case 'd':\n console.log(message);\n break;\n case 'w':\n console.warn(message);\n break;\n case 'e':\n console.error(message);\n break;\n }\n });\n injectGlobalObject('nativeRequire', (moduleName) => {\n const bundle = acquireJSBundle(moduleName);\n if (bundle === undefined || bundle.length === 0) {\n console.log(`Cannot require JS Bundle :${moduleName}`);\n return false;\n }\n else {\n loadJS(moduleName, packageModuleScript(moduleName, bundle));\n return true;\n }\n });\n injectGlobalObject('nativeBridge', (contextId, namespace, method, callbackId, args) => {\n const pluginClass = acquirePlugin(namespace);\n const doricContext = getDoricContext(contextId);\n if (pluginClass === undefined) {\n console.error(`Cannot find Plugin:${namespace}`);\n return false;\n }\n if (doricContext === undefined) {\n console.error(`Cannot find Doric Context:${contextId}`);\n return false;\n }\n let plugin = doricContext.pluginInstances.get(namespace);\n if (plugin === undefined) {\n plugin = new pluginClass(doricContext);\n doricContext.pluginInstances.set(namespace, plugin);\n }\n if (!Reflect.has(plugin, method)) {\n console.error(`Cannot find Method:${method} in plugin ${namespace}`);\n return false;\n }\n const pluginMethod = Reflect.get(plugin, method, plugin);\n if (typeof pluginMethod !== 'function') {\n console.error(`Plugin ${namespace}'s property ${method}'s type is ${typeof pluginMethod} not function,`);\n }\n const ret = Reflect.apply(pluginMethod, plugin, [args]);\n if (ret instanceof Promise) {\n ret.then(e => {\n jsCallResolve(contextId, callbackId, e);\n }, e => {\n jsCallReject(contextId, callbackId, e);\n });\n }\n else if (ret !== undefined) {\n Promise.resolve(ret).then((ret) => {\n jsCallResolve(contextId, callbackId, ret);\n });\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n });\n injectGlobalObject('nativeClearTimer', (timerId) => {\n const timerInfo = timers.get(timerId);\n if (timerInfo) {\n if (timerInfo.repeat) {\n originClearInterval(timerInfo.handleId);\n }\n else {\n originClearTimeout(timerInfo.handleId);\n }\n }\n });\n}\nexport function createContext(contextId, content) {\n loadJS(contextId, packageCreateContext(contextId, content));\n}\nexport function destroyContext(contextId) {\n jsReleaseContext(contextId);\n const scriptElement = document.getElementById(getScriptId(contextId));\n if (scriptElement) {\n document.body.removeChild(scriptElement);\n }\n}\ninitDoric();\n//# sourceMappingURL=DoricDriver.js.map","import { jsObtainContext, jsCallEntityMethod, pureCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext } from \"./DoricDriver\";\nimport { DoricStackNode } from './shader/DoricStackNode';\nconst doricContexts = new Map;\nlet __contextId__ = 0;\nfunction getContextId() {\n return `context_${__contextId__++}`;\n}\nexport function getDoricContext(contextId) {\n return doricContexts.get(contextId);\n}\nexport class DoricContext {\n constructor(content) {\n this.contextId = getContextId();\n this.pluginInstances = new Map;\n this.headNodes = new Map;\n createContext(this.contextId, content);\n doricContexts.set(this.contextId, this);\n this.rootNode = new DoricStackNode(this);\n }\n targetViewNode(viewId) {\n if (this.rootNode.viewId === viewId) {\n return this.rootNode;\n }\n for (let nodes of this.headNodes.values()) {\n if (nodes.has(viewId)) {\n return nodes.get(viewId);\n }\n }\n }\n get panel() {\n var _a;\n return (_a = jsObtainContext(this.contextId)) === null || _a === void 0 ? void 0 : _a.entity;\n }\n invokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n }\n pureInvokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(pureCallEntityMethod, this.panel, argumentsList);\n }\n init(data) {\n this.invokeEntityMethod(\"__init__\", data);\n }\n onCreate() {\n this.invokeEntityMethod(\"__onCreate__\");\n }\n onDestroy() {\n this.invokeEntityMethod(\"__onDestroy__\");\n }\n onShow() {\n this.invokeEntityMethod(\"__onShow__\");\n }\n onHidden() {\n this.invokeEntityMethod(\"__onHidden__\");\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n inAnimation() {\n return !!this.animationSet;\n }\n addAnimation(viewNode, keyFrame) {\n var _a;\n (_a = this.animationSet) === null || _a === void 0 ? void 0 : _a.push({\n viewNode,\n keyFrame,\n });\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n//# sourceMappingURL=DoricContext.js.map","import { loadDoricJSBundle } from './DoricBundleLoader';\nimport { DoricContext } from './DoricContext';\nexport class DoricElement extends HTMLElement {\n constructor() {\n super();\n }\n get src() {\n return this.getAttribute('src');\n }\n get alias() {\n return this.getAttribute('alias');\n }\n set src(v) {\n this.setAttribute('src', v);\n }\n set alias(v) {\n this.setAttribute('alias', v);\n }\n get initData() {\n return this.getAttribute('data');\n }\n set initData(v) {\n this.setAttribute('data', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n loadDoricJSBundle(this.src).then(result => {\n this.load(result);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a, _b;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.onDestroy();\n (_b = this.context) === null || _b === void 0 ? void 0 : _b.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n this.context.init(this.initData);\n this.context.onCreate();\n const divElement = document.createElement('div');\n divElement.style.position = 'relative';\n divElement.style.height = '100%';\n this.append(divElement);\n this.context.rootNode.view = divElement;\n this.context.build({\n width: divElement.offsetWidth,\n height: divElement.offsetHeight,\n });\n this.context.onShow();\n }\n}\n//# sourceMappingURL=DoricElement.js.map","import { DoricElement } from \"../DoricElement\";\nexport class NavigationElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.elementStack = [];\n }\n get currentNode() {\n for (let i = 0; i < this.childNodes.length; i++) {\n if (this.childNodes[i] instanceof DoricElement) {\n return this.childNodes[i];\n }\n }\n return undefined;\n }\n push(element) {\n const currentNode = this.currentNode;\n if (currentNode) {\n this.elementStack.push(currentNode);\n this.replaceChild(element, currentNode);\n }\n else {\n this.appendChild(element);\n }\n }\n pop() {\n const lastElement = this.elementStack.pop();\n const currentNode = this.currentNode;\n if (lastElement && currentNode) {\n this.replaceChild(lastElement, currentNode);\n currentNode.onDestroy();\n }\n else {\n window.history.back();\n }\n }\n}\n//# sourceMappingURL=NavigationElement.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from 'axios';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport { registerDoricJSLoader } from './src/DoricBundleLoader';\nimport { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/NavigationElement';\nexport * from './src/DoricElement';\nexport * from './src/navigate/NavigationElement';\nexport * from './src/DoricPlugin';\nexport * from './src/DoricRegistry';\nexport * from './src/DoricDriver';\nexport * from './src/shader/DoricViewNode';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nsmoothscroll.polyfill();\nregisterDoricJSLoader({\n filter: (source) => source.startsWith(\"assets://\"),\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const ret = yield axios.get(source.replace(\"assets://\", `${window.location.href}/../../doric-demo/bundle/`));\n return ret.data;\n })\n});\n//# sourceMappingURL=index.js.map"],"names":["__awaiter","this","axios","LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsObtainContext","jsCallEntityMethod","pureCallEntityMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} \ No newline at end of file +<<<<<<< HEAD +{"version":3,"file":"index.js","sources":["../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../build/src/DoricBundleLoader.js","../build/src/DoricPlugin.js","../build/src/shader/DoricViewNode.js","../build/src/plugins/ShaderPlugin.js","../build/src/shader/DoricStackNode.js","../build/src/shader/DoricVLayoutNode.js","../build/src/shader/DoricHLayoutNode.js","../build/src/shader/DoricTextNode.js","../build/src/shader/DoricImageNode.js","../build/src/shader/DoricScrollerNode.js","../build/src/plugins/ModalPlugin.js","../build/src/plugins/StoragePlugin.js","../build/src/navigate/NavigatorPlugin.js","../build/src/plugins/PopoverPlugin.js","../build/src/shader/DoricListItemNode.js","../build/src/shader/DoricListNode.js","../build/src/shader/DoricDraggableNode.js","../build/src/shader/DoricRefreshableNode.js","../build/src/plugins/AnimatePlugin.js","../build/src/shader/DoricSwitchNode.js","../build/src/shader/DoricSliderNode.js","../build/src/shader/DoricSlideItemNode.js","../build/src/plugins/NotificationPlugin.js","../build/src/DoricRegistry.js","../build/src/DoricDriver.js","../build/src/DoricContext.js","../build/src/DoricElement.js","../build/src/navigate/NavigationElement.js","../build/index.js"],"sourcesContent":["/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nconst loaders = [\n {\n filter: () => true,\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const result = yield axios.get(source);\n return result.data;\n })\n }\n];\nexport function registerDoricJSLoader(loader) {\n loaders.push(loader);\n}\nexport function loadDoricJSBundle(source) {\n return __awaiter(this, void 0, void 0, function* () {\n const matched = loaders.filter(e => e.filter(source));\n if (matched.length > 0) {\n return matched[matched.length - 1].request(source);\n }\n throw new Error(`Cannot find matched loader for '${source}'`);\n });\n}\n//# sourceMappingURL=DoricBundleLoader.js.map","export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n//# sourceMappingURL=DoricPlugin.js.map","import { acquireViewNode } from \"../DoricRegistry\";\nexport var LayoutSpec;\n(function (LayoutSpec) {\n LayoutSpec[LayoutSpec[\"EXACTLY\"] = 0] = \"EXACTLY\";\n LayoutSpec[LayoutSpec[\"WRAP_CONTENT\"] = 1] = \"WRAP_CONTENT\";\n LayoutSpec[LayoutSpec[\"AT_MOST\"] = 2] = \"AT_MOST\";\n})(LayoutSpec || (LayoutSpec = {}));\nconst SPECIFIED = 1;\nconst START = 1 << 1;\nconst END = 1 << 2;\nconst SHIFT_X = 0;\nconst SHIFT_Y = 4;\nexport const LEFT = (START | SPECIFIED) << SHIFT_X;\nexport const RIGHT = (END | SPECIFIED) << SHIFT_X;\nexport const TOP = (START | SPECIFIED) << SHIFT_Y;\nexport const BOTTOM = (END | SPECIFIED) << SHIFT_Y;\nexport const CENTER_X = SPECIFIED << SHIFT_X;\nexport const CENTER_Y = SPECIFIED << SHIFT_Y;\nexport const CENTER = CENTER_X | CENTER_Y;\nexport function toPixelString(v) {\n return `${v}px`;\n}\nexport function pixelString2Number(v) {\n return parseFloat(v.substring(0, v.indexOf(\"px\")));\n}\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff));\n }\n strs = strs.reverse();\n /// RGBAd\n return `rgba(${strs[1]},${strs[2]},${strs[3]},${strs[0] / 255})`;\n}\nexport class DoricViewNode {\n constructor(context) {\n this.viewId = \"\";\n this.viewType = \"View\";\n this.layoutConfig = {\n widthSpec: LayoutSpec.EXACTLY,\n heightSpec: LayoutSpec.EXACTLY,\n alignment: 0,\n weight: 0,\n margin: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n };\n this.padding = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n };\n this.frameWidth = 0;\n this.frameHeight = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n this._originDisplay = \"\";\n this.transform = {};\n this.context = context;\n }\n init(superNode) {\n if (superNode) {\n this.superNode = superNode;\n if (this instanceof DoricSuperNode) {\n this.reusable = superNode.reusable;\n }\n }\n this.view = this.build();\n this._originDisplay = this.view.style.display;\n }\n get paddingLeft() {\n return this.padding.left || 0;\n }\n get paddingRight() {\n return this.padding.right || 0;\n }\n get paddingTop() {\n return this.padding.top || 0;\n }\n get paddingBottom() {\n return this.padding.bottom || 0;\n }\n get borderWidth() {\n var _a;\n return ((_a = this.border) === null || _a === void 0 ? void 0 : _a.width) || 0;\n }\n blend(props) {\n this.view.id = `${this.viewId}`;\n for (let key in props) {\n this.blendProps(this.view, key, props[key]);\n }\n this.onBlending();\n this.layout();\n }\n onBlending() {\n this.updateTransform();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.applyCSSStyle({\n borderStyle: \"solid\",\n borderWidth: toPixelString(this.border.width),\n borderColor: toRGBAString(this.border.color),\n });\n }\n }\n configWidth() {\n let width;\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ width });\n }\n configHeight() {\n let height;\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ height });\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.applyCSSStyle({\n marginLeft: toPixelString(this.layoutConfig.margin.left || 0),\n marginRight: toPixelString(this.layoutConfig.margin.right || 0),\n marginTop: toPixelString(this.layoutConfig.margin.top || 0),\n marginBottom: toPixelString(this.layoutConfig.margin.bottom || 0),\n });\n }\n }\n configPadding() {\n if (this.padding) {\n this.applyCSSStyle({\n paddingLeft: toPixelString(this.paddingLeft),\n paddingRight: toPixelString(this.paddingRight),\n paddingTop: toPixelString(this.paddingTop),\n paddingBottom: toPixelString(this.paddingBottom),\n });\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"border\":\n this.border = prop;\n break;\n case \"padding\":\n this.padding = prop;\n break;\n case 'width':\n this.frameWidth = prop;\n break;\n case 'height':\n this.frameHeight = prop;\n break;\n case 'backgroundColor':\n this.backgroundColor = prop;\n break;\n case 'layoutConfig':\n const layoutConfig = prop;\n for (let key in layoutConfig) {\n Reflect.set(this.layoutConfig, key, Reflect.get(layoutConfig, key, layoutConfig));\n }\n break;\n case 'x':\n this.offsetX = prop;\n break;\n case 'y':\n this.offsetY = prop;\n break;\n case 'onClick':\n this.view.onclick = (event) => {\n this.callJSResponse(prop);\n event.stopPropagation();\n };\n break;\n case 'corners':\n if (typeof prop === 'object') {\n this.applyCSSStyle({\n borderTopLeftRadius: toPixelString(prop.leftTop),\n borderTopRightRadius: toPixelString(prop.rightTop),\n borderBottomRightRadius: toPixelString(prop.rightBottom),\n borderBottomLeftRadius: toPixelString(prop.leftBottom),\n });\n }\n else {\n this.applyCSSStyle({ borderRadius: toPixelString(prop) });\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n let boxShadow;\n if (opacity > 0) {\n const offsetX = prop.offsetX || 0;\n const offsetY = prop.offsetY || 0;\n const shadowColor = prop.color || 0xff000000;\n const shadowRadius = prop.radius;\n const alpha = opacity * 255;\n boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n boxShadow = \"\";\n }\n this.applyCSSStyle({\n boxShadow,\n });\n break;\n case 'alpha':\n this.applyCSSStyle({\n opacity: `${prop}`,\n });\n break;\n case 'rotation':\n this.transform.rotation = prop;\n break;\n case 'rotationX':\n this.transform.rotationX = prop;\n break;\n case 'rotationY':\n this.transform.rotationY = prop;\n break;\n case 'scaleX':\n this.transform.scaleX = prop;\n break;\n case 'scaleY':\n this.transform.scaleY = prop;\n break;\n case 'translationX':\n this.transform.translateX = prop;\n break;\n case 'translationY':\n this.transform.translateY = prop;\n break;\n case 'pivotX':\n if (this.transformOrigin) {\n this.transformOrigin.x = prop;\n }\n else {\n this.transformOrigin = {\n x: prop,\n y: 0.5,\n };\n }\n break;\n case 'pivotY':\n if (this.transformOrigin) {\n this.transformOrigin.y = prop;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: prop,\n };\n }\n break;\n case 'hidden':\n this.applyCSSStyle({\n display: prop === true ? \"none\" : this._originDisplay\n });\n break;\n default:\n console.error(`Cannot blend prop for ${propName}`);\n break;\n }\n }\n set backgroundColor(v) {\n this.applyCSSStyle({ backgroundColor: toRGBAString(v) });\n }\n static create(context, type) {\n const viewNodeClass = acquireViewNode(type);\n if (viewNodeClass === undefined) {\n console.error(`Cannot find ViewNode for ${type}`);\n return undefined;\n }\n const ret = new viewNodeClass(context);\n ret.viewType = type;\n return ret;\n }\n getIdList() {\n const ids = [];\n let viewNode = this;\n do {\n ids.push(viewNode.viewId);\n viewNode = viewNode.superNode;\n } while (viewNode);\n return ids.reverse();\n }\n callJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.invokeEntityMethod, this.context, argumentsList);\n }\n pureCallJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.pureInvokeEntityMethod, this.context, argumentsList);\n }\n updateTransform() {\n this.applyCSSStyle({\n transform: Object.entries(this.transform).filter((e) => !!e[1]).map((e) => {\n const v = e[1] || 0;\n switch (e[0]) {\n case \"translateX\":\n return `translateX(${v}px)`;\n case \"scaleX\":\n return `scaleX(${v})`;\n case \"scaleY\":\n return `scaleY(${v})`;\n case \"rotation\":\n return `rotate(${v / 2}turn)`;\n case \"rotationX\":\n return `rotateX(${v / 2}turn)`;\n case \"rotationY\":\n return `rotateY(${v / 2}turn)`;\n default:\n console.error(`Do not support transform ${e[0]}`);\n return \"\";\n }\n }).join(\" \")\n });\n }\n updateTransformOrigin() {\n if (this.transformOrigin) {\n this.applyCSSStyle({\n transformOrigin: `${Math.round(this.transformOrigin.x * 100)}% ${Math.round(this.transformOrigin.y * 100)}%`\n });\n }\n }\n applyCSSStyle(cssStyle) {\n if (this.context.inAnimation()) {\n this.context.addAnimation(this, cssStyle);\n }\n else {\n for (let v in cssStyle) {\n Reflect.set(this.view.style, v, cssStyle[v]);\n }\n }\n }\n /** ++++++++++call from doric ++++++++++*/\n getWidth() {\n return this.view.offsetWidth;\n }\n getHeight() {\n return this.view.offsetHeight;\n }\n setWidth(v) {\n this.view.style.width = toPixelString(v);\n }\n setHeight(v) {\n this.view.style.height = toPixelString(v);\n }\n getX() {\n return this.view.offsetLeft;\n }\n getY() {\n return this.view.offsetTop;\n }\n setX(v) {\n this.view.style.left = toPixelString(v);\n }\n setY(v) {\n this.view.style.top = toPixelString(v);\n }\n getBackgroundColor() {\n return this.view.style.backgroundColor;\n }\n setBackgroundColor(v) {\n this.backgroundColor = v;\n }\n getAlpha() {\n return parseFloat(this.view.style.opacity);\n }\n setAlpha(v) {\n this.view.style.opacity = `${v}`;\n }\n getCorners() {\n return parseFloat(this.view.style.borderRadius);\n }\n setCorners(v) {\n this.view.style.borderRadius = toPixelString(v);\n }\n getLocationOnScreen() {\n const rect = this.view.getClientRects()[0];\n return {\n x: rect.left,\n y: rect.top,\n };\n }\n getRotation() {\n return this.transform.rotation;\n }\n setRotation(v) {\n this.transform.rotation = v;\n this.updateTransform();\n }\n getRotationX() {\n return this.transform.rotationX;\n }\n setRotationX(v) {\n this.transform.rotationX = v;\n this.updateTransform();\n }\n getRotationY() {\n return this.transform.rotationY;\n }\n setRotationY(v) {\n this.transform.rotationY = v;\n this.updateTransform();\n }\n getTranslationX() {\n return this.transform.translateX;\n }\n setTranslationX(v) {\n this.transform.translateX = v;\n this.updateTransform();\n }\n getTranslationY() {\n return this.transform.translateY;\n }\n setTranslationY(v) {\n this.transform.translateY = v;\n this.updateTransform();\n }\n getScaleX() {\n return this.transform.scaleX;\n }\n setScaleX(v) {\n this.transform.scaleX = v;\n this.updateTransform();\n }\n getScaleY() {\n return this.transform.scaleY;\n }\n setScaleY(v) {\n this.transform.scaleY = v;\n this.updateTransform();\n }\n getPivotX() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.x) || 0.5;\n }\n setPivotX(v) {\n if (this.transformOrigin) {\n this.transformOrigin.x = v;\n }\n else {\n this.transformOrigin = {\n x: v,\n y: 0.5,\n };\n }\n this.updateTransform();\n }\n getPivotY() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.y) || 0.5;\n }\n setPivotY(v) {\n if (this.transformOrigin) {\n this.transformOrigin.y = v;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: v,\n };\n }\n this.updateTransform();\n }\n}\nexport class DoricSuperNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.reusable = false;\n this.subModels = new Map;\n }\n blendProps(v, propName, prop) {\n if (propName === 'subviews') {\n if (prop instanceof Array) {\n prop.forEach((e) => {\n this.mixinSubModel(e);\n this.blendSubNode(e);\n });\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n mixinSubModel(subNode) {\n const oldValue = this.getSubModel(subNode.id);\n if (oldValue) {\n this.mixin(subNode, oldValue);\n }\n else {\n this.subModels.set(subNode.id, subNode);\n }\n }\n getSubModel(id) {\n return this.subModels.get(id);\n }\n mixin(src, target) {\n for (let key in src.props) {\n if (key === \"subviews\") {\n continue;\n }\n Reflect.set(target.props, key, Reflect.get(src.props, key));\n }\n }\n clearSubModels() {\n this.subModels.clear();\n }\n removeSubModel(id) {\n this.subModels.delete(id);\n }\n}\nexport class DoricGroupViewNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childNodes = [];\n this.childViewIds = [];\n }\n init(superNode) {\n super.init(superNode);\n this.view.style.overflow = \"hidden\";\n }\n blendProps(v, propName, prop) {\n if (propName === 'children') {\n if (prop instanceof Array) {\n this.childViewIds = prop;\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blend(props) {\n super.blend(props);\n }\n onBlending() {\n super.onBlending();\n this.configChildNode();\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n configChildNode() {\n this.childViewIds.forEach((childViewId, index) => {\n const model = this.getSubModel(childViewId);\n if (model === undefined) {\n return;\n }\n if (index < this.childNodes.length) {\n const oldNode = this.childNodes[index];\n if (oldNode.viewId === childViewId) {\n //The same,skip\n }\n else {\n if (this.reusable) {\n if (oldNode.viewType === model.type) {\n //Same type,can be reused\n oldNode.viewId = childViewId;\n oldNode.blend(model.props);\n }\n else {\n //Replace this view\n this.view.removeChild(oldNode.view);\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.replaceChild(newNode.view, oldNode.view);\n }\n }\n else {\n //Find in remain nodes\n let position = -1;\n for (let start = index + 1; start < this.childNodes.length; start++) {\n if (childViewId === this.childNodes[start].viewId) {\n //Found\n position = start;\n break;\n }\n }\n if (position >= 0) {\n //Found swap idx,position\n const reused = this.childNodes[position];\n const abandoned = this.childNodes[index];\n this.childNodes[index] = reused;\n this.childNodes[position] = abandoned;\n this.view.removeChild(reused.view);\n this.view.insertBefore(reused.view, abandoned.view);\n this.view.removeChild(abandoned.view);\n if (position === this.view.childElementCount - 1) {\n this.view.appendChild(abandoned.view);\n }\n else {\n this.view.insertBefore(abandoned.view, this.view.children[position]);\n }\n }\n else {\n //Not found,insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.insertBefore(newNode.view, this.view.children[index]);\n }\n }\n }\n }\n else {\n //Insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes.push(newNode);\n this.view.appendChild(newNode.view);\n }\n });\n let size = this.childNodes.length;\n for (let idx = this.childViewIds.length; idx < size; idx++) {\n this.view.removeChild(this.childNodes[idx].view);\n }\n this.childNodes = this.childNodes.slice(0, this.childViewIds.length);\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n}\n//# sourceMappingURL=DoricViewNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricSuperNode } from \"../shader/DoricViewNode\";\nexport class ShaderPlugin extends DoricPlugin {\n render(ret) {\n var _a;\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(ret.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(ret.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n this.context.rootNode.onBlended();\n }\n }\n command(options) {\n let viewNode = undefined;\n for (let viewId of options.viewIds) {\n if (!viewNode) {\n viewNode = this.context.targetViewNode(viewId);\n }\n else {\n if (viewNode instanceof DoricSuperNode) {\n viewNode = viewNode.getSubNodeById(viewId);\n }\n }\n }\n if (!viewNode) {\n return Promise.reject(\"Cannot find opposite view\");\n }\n else {\n const target = viewNode;\n return new Promise((resolve, reject) => {\n try {\n const method = Reflect.get(target, options.name);\n if (!method) {\n reject(`\"Cannot find plugin method in class:${target},method:${options.name}\"`);\n }\n resolve(Reflect.apply(method, target, [options.args]));\n }\n catch (err) {\n reject(err);\n }\n });\n }\n }\n}\n//# sourceMappingURL=ShaderPlugin.js.map","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } from \"./DoricViewNode\";\nexport class DoricStackNode extends DoricGroupViewNode {\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n return ret;\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n this.configOffset();\n });\n }\n configSize() {\n if (this.layoutConfig.widthSpec === LayoutSpec.WRAP_CONTENT) {\n const width = this.childNodes.reduce((prev, current) => {\n const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetWidth\n + pixelString2Number(computedStyle.marginLeft)\n + pixelString2Number(computedStyle.marginRight));\n }, 0);\n this.view.style.width = toPixelString(width);\n }\n if (this.layoutConfig.heightSpec === LayoutSpec.WRAP_CONTENT) {\n const height = this.childNodes.reduce((prev, current) => {\n const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetHeight\n + pixelString2Number(computedStyle.marginTop)\n + pixelString2Number(computedStyle.marginBottom));\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n const position = \"absolute\";\n let left = toPixelString(e.offsetX + this.paddingLeft);\n let top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n left = toPixelString(this.view.offsetWidth - e.view.offsetWidth);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2);\n }\n if ((gravity & TOP) === TOP) {\n top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n top = toPixelString(this.view.offsetHeight - e.view.offsetHeight);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2);\n }\n e.applyCSSStyle({\n position,\n left,\n top,\n });\n });\n }\n}\n//# sourceMappingURL=DoricStackNode.js.map","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricVLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"column\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.alignItems = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.justifyContent = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginTop = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.top) || 0);\n e.view.style.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.bottom) || 0));\n e.view.style.marginLeft = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.left) || 0);\n e.view.style.marginRight = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.right) || 0);\n if ((e.layoutConfig.alignment & LEFT) === LEFT) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & RIGHT) === RIGHT) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_X) === CENTER_X) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n//# sourceMappingURL=DoricVLayoutNode.js.map","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricHLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"row\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.justifyContent = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.alignItems = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginLeft = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.left) || 0);\n e.view.style.marginRight = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.right) || 0));\n e.view.style.marginTop = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.top) || 0);\n e.view.style.marginBottom = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.bottom) || 0);\n if ((e.layoutConfig.alignment & TOP) === TOP) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & BOTTOM) === BOTTOM) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_Y) === CENTER_Y) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n//# sourceMappingURL=DoricHLayoutNode.js.map","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, toRGBAString } from \"./DoricViewNode\";\nexport class DoricTextNode extends DoricViewNode {\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n this.textElement = document.createElement('span');\n div.appendChild(this.textElement);\n div.style.justifyContent = \"center\";\n div.style.alignItems = \"center\";\n return div;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'text':\n this.textElement.innerText = prop;\n break;\n case 'textSize':\n v.style.fontSize = toPixelString(prop);\n break;\n case 'textColor':\n v.style.color = toRGBAString(prop);\n break;\n case 'textAlignment':\n const gravity = prop;\n if ((gravity & LEFT) === LEFT) {\n v.style.justifyContent = \"flex-start\";\n }\n else if ((gravity & RIGHT) === RIGHT) {\n v.style.justifyContent = \"flex-end\";\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n v.style.justifyContent = \"center\";\n }\n if ((gravity & TOP) === TOP) {\n v.style.alignItems = \"flex-start\";\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n v.style.alignItems = \"flex-end\";\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n v.style.alignItems = \"center\";\n }\n break;\n case \"fontStyle\":\n switch (prop) {\n case \"bold\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"normal\";\n break;\n case \"italic\":\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"italic\";\n break;\n case \"bold_italic\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"italic\";\n break;\n default:\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"normal\";\n break;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricTextNode.js.map","import { DoricViewNode } from \"./DoricViewNode\";\nvar ScaleType;\n(function (ScaleType) {\n ScaleType[ScaleType[\"ScaleToFill\"] = 0] = \"ScaleToFill\";\n ScaleType[ScaleType[\"ScaleAspectFit\"] = 1] = \"ScaleAspectFit\";\n ScaleType[ScaleType[\"ScaleAspectFill\"] = 2] = \"ScaleAspectFill\";\n})(ScaleType || (ScaleType = {}));\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = \"fill\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'imageUrl':\n v.setAttribute('src', prop);\n break;\n case 'imageBase64':\n v.setAttribute('src', prop);\n break;\n case 'loadCallback':\n v.onload = () => {\n this.callJSResponse(prop, {\n width: v.width,\n height: v.height\n });\n };\n break;\n case 'scaleType':\n switch (prop) {\n case ScaleType.ScaleToFill:\n v.style.objectFit = \"fill\";\n break;\n case ScaleType.ScaleAspectFit:\n v.style.objectFit = \"contain\";\n break;\n case ScaleType.ScaleAspectFill:\n v.style.objectFit = \"cover\";\n break;\n }\n break;\n case 'isBlur':\n if (prop) {\n v.style.filter = 'blur(8px)';\n }\n else {\n v.style.filter = '';\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricImageNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricScrollerNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childViewId = \"\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.childViewId = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return viewId === this.childViewId ? this.childNode : undefined;\n }\n onBlending() {\n super.onBlending();\n const model = this.getSubModel(this.childViewId);\n if (model === undefined) {\n return;\n }\n if (this.childNode) {\n if (this.childNode.viewId === this.childViewId) {\n ///skip\n }\n else {\n if (this.reusable && this.childNode.viewType === model.type) {\n this.childNode.viewId = model.id;\n this.childNode.blend(model.props);\n }\n else {\n this.view.removeChild(this.childNode.view);\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n }\n else {\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n onBlended() {\n var _a;\n super.onBlended();\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.onBlended();\n }\n}\n//# sourceMappingURL=DoricScrollerNode.js.map","import { DoricPlugin } from '../DoricPlugin';\nimport { TOP, CENTER_Y, BOTTOM, toPixelString } from '../shader/DoricViewNode';\nexport class ModalPlugin extends DoricPlugin {\n toast(args) {\n const toastElement = document.createElement('div');\n toastElement.style.position = \"absolute\";\n toastElement.style.textAlign = \"center\";\n toastElement.style.width = \"100%\";\n const textElement = document.createElement('span');\n textElement.innerText = args.msg || \"\";\n textElement.style.backgroundColor = \"#777777\";\n textElement.style.color = \"white\";\n textElement.style.paddingLeft = '20px';\n textElement.style.paddingRight = '20px';\n textElement.style.paddingTop = '10px';\n textElement.style.paddingBottom = '10px';\n toastElement.appendChild(textElement);\n document.body.appendChild(toastElement);\n const gravity = args.gravity || BOTTOM;\n if ((gravity & TOP) == TOP) {\n toastElement.style.top = toPixelString(30);\n }\n else if ((gravity & BOTTOM) == BOTTOM) {\n toastElement.style.bottom = toPixelString(30);\n }\n else if ((gravity & CENTER_Y) == CENTER_Y) {\n toastElement.style.top = toPixelString(document.body.offsetHeight / 2 - toastElement.offsetHeight / 2);\n }\n setTimeout(() => {\n document.body.removeChild(toastElement);\n }, 2000);\n return Promise.resolve();\n }\n alert(args) {\n window.alert(args.msg || \"\");\n return Promise.resolve();\n }\n confirm(args) {\n if (window.confirm(args.msg || \"\")) {\n return Promise.resolve();\n }\n else {\n return Promise.reject();\n }\n }\n prompt(args) {\n const result = window.prompt(args.msg || \"\", args.defaultText);\n if (result) {\n return Promise.resolve(result);\n }\n else {\n return Promise.reject(result);\n }\n }\n}\n//# sourceMappingURL=ModalPlugin.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class StoragePlugin extends DoricPlugin {\n setItem(args) {\n localStorage.setItem(`${args.zone}_${args.key}`, args.value);\n return Promise.resolve();\n }\n getItem(args) {\n return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`));\n }\n remove(args) {\n localStorage.removeItem(`${args.zone}_${args.key}`);\n return Promise.resolve();\n }\n clear(args) {\n let removingKeys = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${args.zone}_`)) {\n removingKeys.push(key);\n }\n }\n removingKeys.forEach(e => {\n localStorage.removeItem(e);\n });\n return Promise.resolve();\n }\n}\n//# sourceMappingURL=StoragePlugin.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricElement } from \"../DoricElement\";\nexport class NavigatorPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.navigation = document.getElementsByTagName('doric-navigation')[0];\n }\n push(args) {\n var _a;\n if (this.navigation) {\n const div = new DoricElement;\n div.src = args.source;\n div.alias = ((_a = args.config) === null || _a === void 0 ? void 0 : _a.alias) || args.source;\n this.navigation.push(div);\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n pop() {\n if (this.navigation) {\n this.navigation.pop();\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n}\n//# sourceMappingURL=NavigatorPlugin.js.map","import { DoricPlugin } from '../DoricPlugin';\nimport { DoricViewNode } from '../shader/DoricViewNode';\nexport class PopoverPlugin extends DoricPlugin {\n constructor(context) {\n super(context);\n this.fullScreen = document.createElement('div');\n this.fullScreen.id = `PopOver__${context.contextId}`;\n this.fullScreen.style.position = 'fixed';\n this.fullScreen.style.top = '0px';\n this.fullScreen.style.width = \"100%\";\n this.fullScreen.style.height = \"100%\";\n }\n show(model) {\n const viewNode = DoricViewNode.create(this.context, model.type);\n if (viewNode === undefined) {\n return Promise.reject(`Cannot create ViewNode for ${model.type}`);\n }\n viewNode.viewId = model.id;\n viewNode.init();\n viewNode.blend(model.props);\n this.fullScreen.appendChild(viewNode.view);\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n map.set(model.id, viewNode);\n }\n else {\n map = new Map;\n map.set(model.id, viewNode);\n this.context.headNodes.set(PopoverPlugin.TYPE, map);\n }\n if (!document.body.contains(this.fullScreen)) {\n document.body.appendChild(this.fullScreen);\n }\n return Promise.resolve();\n }\n dismiss(args) {\n if (args) {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n const viewNode = map.get(args.id);\n if (viewNode) {\n this.fullScreen.removeChild(viewNode.view);\n }\n if (map.size === 0) {\n document.body.removeChild(this.fullScreen);\n }\n }\n }\n else {\n this.dismissAll();\n }\n return Promise.resolve();\n }\n dismissAll() {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n for (let node of map.values()) {\n map.delete(node.viewId);\n this.fullScreen.removeChild(node.view);\n }\n }\n if (document.body.contains(this.fullScreen)) {\n document.body.removeChild(this.fullScreen);\n }\n }\n onTearDown() {\n super.onTearDown();\n this.dismissAll();\n }\n}\nPopoverPlugin.TYPE = \"popover\";\n//# sourceMappingURL=PopoverPlugin.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n}\n//# sourceMappingURL=DoricListItemNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricListNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.batchCount = 15;\n this.loadMore = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"itemCount\":\n this.itemCount = prop;\n break;\n case \"renderItem\":\n this.reset();\n this.renderItemFuncId = prop;\n break;\n case \"onLoadMore\":\n this.onLoadMoreFuncId = prop;\n break;\n case \"loadMoreView\":\n this.loadMoreViewId = prop;\n break;\n case \"batchCount\":\n this.batchCount = prop;\n break;\n case \"loadMore\":\n this.loadMore = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n if (this.loadMoreViewNode && this.view.contains(this.loadMoreViewNode.view)) {\n this.view.removeChild(this.loadMoreViewNode.view);\n }\n if (this.loadMore) {\n if (!this.loadMoreViewNode) {\n const loadMoreViewModel = this.getSubModel(this.loadMoreViewId || \"\");\n if (loadMoreViewModel) {\n this.loadMoreViewNode = DoricViewNode.create(this.context, loadMoreViewModel.type);\n this.loadMoreViewNode.viewId = loadMoreViewModel.id;\n this.loadMoreViewNode.init(this);\n this.loadMoreViewNode.blend(loadMoreViewModel.props);\n }\n }\n if (this.loadMoreViewNode) {\n this.view.appendChild(this.loadMoreViewNode.view);\n }\n if (this.view.scrollTop + this.view.offsetHeight === this.view.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n var _a;\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onScrollToEnd() {\n if (this.loadMore && this.onLoadMoreFuncId) {\n this.callJSResponse(this.onLoadMoreFuncId);\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n ret.addEventListener(\"scroll\", () => {\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n}\n//# sourceMappingURL=DoricListNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricDraggableNode extends DoricStackNode {\n constructor() {\n super(...arguments);\n this.onDrag = \"\";\n this.dragging = false;\n this.lastX = 0;\n this.lastY = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.ontouchstart = (event) => {\n this.dragging = true;\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n };\n ret.ontouchend = (event) => {\n this.dragging = false;\n };\n ret.ontouchcancel = (event) => {\n this.dragging = false;\n };\n ret.ontouchmove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.targetTouches[0].clientX - this.lastX);\n this.offsetY += (event.targetTouches[0].clientY - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n }\n };\n ret.onmousedown = (event) => {\n this.dragging = true;\n this.lastX = event.x;\n this.lastY = event.y;\n };\n ret.onmousemove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.x - this.lastX);\n this.offsetY += (event.y - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.x;\n this.lastY = event.y;\n }\n };\n ret.onmouseup = (event) => {\n this.dragging = false;\n };\n ret.onmouseout = (event) => {\n this.dragging = false;\n };\n ret.style.position = \"relative\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'onDrag':\n this.onDrag = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricDraggableNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricRefreshableNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.headerViewId = \"\";\n this.contentViewId = \"\";\n this.refreshable = true;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n const header = document.createElement('div');\n const content = document.createElement('div');\n header.style.width = \"100%\";\n header.style.height = \"100%\";\n header.style.display = \"flex\";\n header.style.alignItems = \"flex-end\";\n header.style.justifyContent = \"center\";\n content.style.width = \"100%\";\n content.style.height = \"100%\";\n ret.appendChild(header);\n ret.appendChild(content);\n let touchStart = 0;\n ret.ontouchstart = (ev) => {\n if (!this.refreshable) {\n return;\n }\n touchStart = ev.touches[0].pageY;\n };\n ret.ontouchmove = (ev) => {\n var _a;\n if (!this.refreshable) {\n return;\n }\n const offset = (ev.touches[0].pageY - touchStart) * 0.68;\n ret.scrollTop = Math.max(0, header.offsetHeight - offset);\n (_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.callJSResponse(\"setPullingDistance\", offset);\n };\n const touchend = () => {\n var _a, _b;\n if (!this.refreshable) {\n return;\n }\n if (header.offsetHeight - ret.scrollTop >= (((_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0)) {\n this.setRefreshing(true);\n (_b = this.onRefreshCallback) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n else {\n // To idel\n ret.scrollTo({\n top: header.offsetHeight,\n behavior: \"smooth\"\n });\n }\n };\n ret.ontouchcancel = () => {\n touchend();\n };\n ret.ontouchend = () => {\n touchend();\n };\n window.requestAnimationFrame(() => {\n ret.scrollTop = header.offsetHeight;\n });\n this.headerContainer = header;\n this.contentContainer = content;\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.contentViewId = prop;\n }\n else if (propName === 'header') {\n this.headerViewId = prop;\n }\n else if (propName === 'onRefresh') {\n this.onRefreshCallback = () => {\n this.callJSResponse(prop);\n };\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n if (viewId === this.headerViewId) {\n return this.headerNode;\n }\n else if (viewId === this.contentViewId) {\n return this.contentNode;\n }\n return undefined;\n }\n onBlending() {\n var _a, _b, _c, _d, _e, _f;\n super.onBlending();\n {\n const headerModel = this.getSubModel(this.headerViewId);\n if (headerModel) {\n if (this.headerNode) {\n if (this.headerNode.viewId !== this.headerViewId) {\n if (this.reusable && this.headerNode.viewType === headerModel.type) {\n this.headerNode.viewId = headerModel.id;\n this.headerNode.blend(headerModel.props);\n }\n else {\n (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.removeChild(this.headerNode.view);\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_b = this.headerContainer) === null || _b === void 0 ? void 0 : _b.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n else {\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_c = this.headerContainer) === null || _c === void 0 ? void 0 : _c.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n {\n const contentModel = this.getSubModel(this.contentViewId);\n if (contentModel) {\n if (this.contentNode) {\n if (this.contentNode.viewId !== this.contentViewId) {\n if (this.reusable && this.contentNode.viewType === contentModel.type) {\n this.contentNode.viewId = contentModel.id;\n this.contentNode.blend(contentModel.props);\n }\n else {\n (_d = this.contentContainer) === null || _d === void 0 ? void 0 : _d.removeChild(this.contentNode.view);\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_e = this.contentContainer) === null || _e === void 0 ? void 0 : _e.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n else {\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_f = this.contentContainer) === null || _f === void 0 ? void 0 : _f.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n }\n onBlended() {\n super.onBlended();\n }\n setRefreshing(v) {\n var _a;\n if (!this.headerContainer || !this.headerNode) {\n return;\n }\n if (v) {\n this.view.scrollTo({\n top: this.headerContainer.offsetHeight - this.headerNode.getHeight(),\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"startAnimation\");\n }\n else {\n this.view.scrollTo({\n top: (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.offsetHeight,\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"stopAnimation\");\n }\n }\n setRefreshable(v) {\n this.refreshable = v;\n if (!v) {\n this.setRefreshing(false);\n }\n }\n}\n//# sourceMappingURL=DoricRefreshableNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class AnimatePlugin extends DoricPlugin {\n submit() {\n return Promise.resolve();\n }\n animateRender(args) {\n var _a;\n this.context.animationSet = [];\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(args.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(args.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = args.id;\n this.context.rootNode.blend(args.props);\n this.context.rootNode.onBlended();\n }\n return new Promise(resolve => {\n Promise.resolve().then(() => {\n var _a;\n Promise.all(((_a = this.context.animationSet) === null || _a === void 0 ? void 0 : _a.map(e => {\n return new Promise(resolve => {\n const keyFrame = {};\n const ensureNonString = (key, value) => {\n if (!!value && value !== \"\") {\n return value;\n }\n switch ((key)) {\n case \"backgroundColor\":\n return \"transparent\";\n case \"transform\":\n return \"none\";\n default:\n return \"none\";\n }\n };\n for (let k in e.keyFrame) {\n keyFrame[k] = ensureNonString(k, e.viewNode.view.style[k]);\n e.keyFrame[k] = ensureNonString(k, e.keyFrame[k]);\n }\n try {\n const animation = e.viewNode.view.animate([keyFrame, e.keyFrame], {\n duration: args.duration,\n fill: \"forwards\"\n });\n animation.onfinish = () => {\n Object.entries(e.keyFrame).forEach(entry => {\n Reflect.set(e.viewNode.view.style, entry[0], entry[1]);\n });\n resolve(true);\n };\n }\n catch (e) {\n console.error(e);\n alert(e.stack);\n }\n });\n })) || [])\n .then(() => {\n resolve(0);\n })\n .finally(() => {\n this.context.animationSet = undefined;\n });\n });\n });\n }\n}\n//# sourceMappingURL=AnimatePlugin.js.map","import { DoricViewNode, toRGBAString } from \"./DoricViewNode\";\nexport class DoricSwitchNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.offTintColor = \"#e6e6e6\";\n this.onTintColor = \"#52d769\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n ret.style.width = \"50px\";\n ret.style.height = \"30px\";\n const input = document.createElement('input');\n input.type = \"checkbox\";\n input.style.display = \"none\";\n const box = document.createElement('div');\n box.style.width = \"100%\";\n box.style.height = \"100%\";\n box.style.backgroundColor = \"#ccc\";\n box.style.borderRadius = \"15px\";\n const span = document.createElement('span');\n span.style.display = \"inline-block\";\n span.style.height = \"30px\";\n span.style.width = \"30px\";\n span.style.borderRadius = \"15px\";\n span.style.background = \"#fff\";\n span.style.boxShadow = \"0px 3px 3px #eee\";\n box.appendChild(span);\n ret.appendChild(input);\n ret.appendChild(box);\n ret.onclick = () => {\n try {\n if (input.checked === false) {\n span.animate([{ transform: \"translateX(0px)\" }, { transform: \"translateX(30px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.offTintColor }, { backgroundColor: this.onTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = true;\n }\n else {\n span.animate([{ transform: \"translateX(30px)\" }, { transform: \"translateX(0px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.onTintColor }, { backgroundColor: this.offTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = false;\n }\n if (this.onSwitchFuncId) {\n this.callJSResponse(this.onSwitchFuncId, input.checked);\n }\n }\n catch (e) {\n alert(e);\n }\n };\n this.input = input;\n this.span = span;\n this.box = box;\n return ret;\n }\n setChecked(v) {\n if (!this.input || !this.span || !this.box) {\n return;\n }\n if (v) {\n this.span.style.transform = \"translateX(30px)\";\n this.box.style.backgroundColor = this.onTintColor;\n this.input.checked = v;\n }\n else {\n this.span.style.transform = \"translateX(0px)\";\n this.box.style.backgroundColor = this.offTintColor;\n this.input.checked = v;\n }\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"state\":\n this.setChecked(prop);\n break;\n case \"onSwitch\":\n this.onSwitchFuncId = prop;\n break;\n case \"offTintColor\":\n this.offTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"onTintColor\":\n this.onTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"thumbTintColor\":\n if (this.span) {\n this.span.style.backgroundColor = toRGBAString(prop);\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n getState() {\n var _a;\n return ((_a = this.input) === null || _a === void 0 ? void 0 : _a.checked) || false;\n }\n}\n//# sourceMappingURL=DoricSwitchNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricSliderNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.renderPageFuncId = \"\";\n this.batchCount = 15;\n this.onPageSelectedFuncId = \"\";\n this.loop = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n if (propName === 'itemCount') {\n this.itemCount = prop;\n }\n else if (propName === 'renderPage') {\n if (prop !== this.renderPageFuncId) {\n this.childNodes = [];\n this.renderPageFuncId = prop;\n }\n }\n else if (propName === 'batchCount') {\n this.batchCount = prop;\n }\n else if (propName === 'onPageSlided') {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === 'loop') {\n this.loop = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n var _a;\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touchStartX = 0;\n let currentIndex = 0;\n ret.ontouchstart = (ev) => {\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n touchStartX = ev.touches[0].pageX;\n };\n ret.ontouchmove = (ev) => {\n const offsetX = (touchStartX - ev.touches[0].pageX) * 3;\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth + offsetX\n });\n };\n ret.ontouchcancel = ret.ontouchend = () => {\n let originInndex = currentIndex;\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth,\n behavior: \"smooth\"\n });\n if (originInndex !== currentIndex) {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, currentIndex);\n }\n }\n };\n return ret;\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\"\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricSliderNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricSlideItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n build() {\n const ret = super.build();\n ret.style.display = \"inline-block\";\n ret.style.width = \"100%\";\n ret.style.height = \"100%\";\n return ret;\n }\n}\n//# sourceMappingURL=DoricSlideItemNode.js.map","import { jsCallResolve } from \"doric/src/runtime/sandbox\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nvar NotificationCenter;\n(function (NotificationCenter) {\n let receivers = [];\n function publish(notification) {\n receivers.filter(e => e.name === notification.name).forEach(e => {\n e.callback(notification.data);\n });\n }\n NotificationCenter.publish = publish;\n function subscribe(receiver) {\n receivers.push(receiver);\n }\n NotificationCenter.subscribe = subscribe;\n function unsubscribe(receiver) {\n receivers = receivers.filter(e => e !== receiver);\n }\n NotificationCenter.unsubscribe = unsubscribe;\n})(NotificationCenter || (NotificationCenter = {}));\nexport class NotificationPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.receivers = {};\n }\n publish(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n NotificationCenter.publish({\n name: key,\n data: !!args.data ? JSON.parse(args.data) : undefined\n });\n return true;\n }\n subscribe(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n const receiver = {\n name: key,\n callback: (data) => {\n jsCallResolve(this.context.contextId, args.callback, data);\n }\n };\n this.receivers[args.callback] = receiver;\n NotificationCenter.subscribe(receiver);\n return args.callback;\n }\n unsubscribe(subscribeId) {\n const recevier = this.receivers[subscribeId];\n if (recevier) {\n NotificationCenter.unsubscribe(recevier);\n this.receivers[subscribeId] = undefined;\n return true;\n }\n else {\n return false;\n }\n }\n onTearDown() {\n Object.entries(this.receivers).map(e => e[1]).filter(e => !!e).forEach(e => {\n if (e) {\n NotificationCenter.unsubscribe(e);\n }\n });\n this.receivers = {};\n }\n}\n//# sourceMappingURL=NotificationPlugin.js.map","import { ShaderPlugin } from \"./plugins/ShaderPlugin\";\nimport { DoricStackNode } from \"./shader/DoricStackNode\";\nimport { DoricVLayoutNode } from './shader/DoricVLayoutNode';\nimport { DoricHLayoutNode } from './shader/DoricHLayoutNode';\nimport { DoricTextNode } from \"./shader/DoricTextNode\";\nimport { DoricImageNode } from \"./shader/DoricImageNode\";\nimport { DoricScrollerNode } from \"./shader/DoricScrollerNode\";\nimport { ModalPlugin } from './plugins/ModalPlugin';\nimport { StoragePlugin } from \"./plugins/StoragePlugin\";\nimport { NavigatorPlugin } from \"./navigate/NavigatorPlugin\";\nimport { PopoverPlugin } from './plugins/PopoverPlugin';\nimport { DoricListItemNode } from \"./shader/DoricListItemNode\";\nimport { DoricListNode } from \"./shader/DoricListNode\";\nimport { DoricDraggableNode } from \"./shader/DoricDraggableNode\";\nimport { DoricRefreshableNode } from \"./shader/DoricRefreshableNode\";\nimport { AnimatePlugin } from \"./plugins/AnimatePlugin\";\nimport { DoricSwitchNode } from \"./shader/DoricSwitchNode\";\nimport { DoricSliderNode } from \"./shader/DoricSliderNode\";\nimport { DoricSlideItemNode } from \"./shader/DoricSlideItemNode\";\nimport { NotificationPlugin } from \"./plugins/NotificationPlugin\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport function acquireJSBundle(name) {\n return bundles.get(name);\n}\nexport function registerJSBundle(name, bundle) {\n bundles.set(name, bundle);\n}\nexport function registerPlugin(name, plugin) {\n plugins.set(name, plugin);\n}\nexport function acquirePlugin(name) {\n return plugins.get(name);\n}\nexport function registerViewNode(name, node) {\n nodes.set(name, node);\n}\nexport function acquireViewNode(name) {\n return nodes.get(name);\n}\nregisterPlugin('shader', ShaderPlugin);\nregisterPlugin('modal', ModalPlugin);\nregisterPlugin('storage', StoragePlugin);\nregisterPlugin('navigator', NavigatorPlugin);\nregisterPlugin('popover', PopoverPlugin);\nregisterPlugin('animate', AnimatePlugin);\nregisterPlugin('notification', NotificationPlugin);\nregisterViewNode('Stack', DoricStackNode);\nregisterViewNode('VLayout', DoricVLayoutNode);\nregisterViewNode('HLayout', DoricHLayoutNode);\nregisterViewNode('Text', DoricTextNode);\nregisterViewNode('Image', DoricImageNode);\nregisterViewNode('Scroller', DoricScrollerNode);\nregisterViewNode('ListItem', DoricListItemNode);\nregisterViewNode('List', DoricListNode);\nregisterViewNode('Draggable', DoricDraggableNode);\nregisterViewNode('Refreshable', DoricRefreshableNode);\nregisterViewNode('Switch', DoricSwitchNode);\nregisterViewNode('Slider', DoricSliderNode);\nregisterViewNode('SlideItem', DoricSlideItemNode);\n//# sourceMappingURL=DoricRegistry.js.map","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext } from 'doric/src/runtime/sandbox';\nimport { acquireJSBundle, acquirePlugin } from './DoricRegistry';\nimport { getDoricContext } from './DoricContext';\nfunction getScriptId(contextId) {\n return `__doric_script_${contextId}`;\n}\nconst originSetTimeout = window.setTimeout;\nconst originClearTimeout = window.clearTimeout;\nconst originSetInterval = window.setInterval;\nconst originClearInterval = window.clearInterval;\nconst timers = new Map;\nexport function injectGlobalObject(name, value) {\n Reflect.set(window, name, value, window);\n}\nexport function loadJS(contextId, script) {\n const scriptElement = document.createElement('script');\n scriptElement.text = script;\n scriptElement.id = getScriptId(contextId);\n document.body.appendChild(scriptElement);\n}\nfunction packageModuleScript(name, content) {\n return `Reflect.apply(doric.jsRegisterModule,this,[${name},Reflect.apply(function(__module){(function(module,exports,require,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n})(__module,__module.exports,doric.__require__,doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval);\nreturn __module.exports;},this,[{exports:{}}])])`;\n}\nfunction packageCreateContext(contextId, content) {\n return `//@ sourceURL=contextId_${contextId}.js\nReflect.apply(function(doric,context,Entry,require,exports,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n},undefined,[undefined,doric.jsObtainContext(\"${contextId}\"),doric.jsObtainEntry(\"${contextId}\"),doric.__require__,{},doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval])`;\n}\nfunction initDoric() {\n injectGlobalObject(\"Environment\", {\n platform: \"web\"\n });\n injectGlobalObject(\"nativeEmpty\", () => undefined);\n injectGlobalObject('nativeLog', (type, message) => {\n switch (type) {\n case 'd':\n console.log(message);\n break;\n case 'w':\n console.warn(message);\n break;\n case 'e':\n console.error(message);\n break;\n }\n });\n injectGlobalObject('nativeRequire', (moduleName) => {\n const bundle = acquireJSBundle(moduleName);\n if (bundle === undefined || bundle.length === 0) {\n console.log(`Cannot require JS Bundle :${moduleName}`);\n return false;\n }\n else {\n loadJS(moduleName, packageModuleScript(moduleName, bundle));\n return true;\n }\n });\n injectGlobalObject('nativeBridge', (contextId, namespace, method, callbackId, args) => {\n const pluginClass = acquirePlugin(namespace);\n const doricContext = getDoricContext(contextId);\n if (pluginClass === undefined) {\n console.error(`Cannot find Plugin:${namespace}`);\n return false;\n }\n if (doricContext === undefined) {\n console.error(`Cannot find Doric Context:${contextId}`);\n return false;\n }\n let plugin = doricContext.pluginInstances.get(namespace);\n if (plugin === undefined) {\n plugin = new pluginClass(doricContext);\n doricContext.pluginInstances.set(namespace, plugin);\n }\n if (!Reflect.has(plugin, method)) {\n console.error(`Cannot find Method:${method} in plugin ${namespace}`);\n return false;\n }\n const pluginMethod = Reflect.get(plugin, method, plugin);\n if (typeof pluginMethod !== 'function') {\n console.error(`Plugin ${namespace}'s property ${method}'s type is ${typeof pluginMethod} not function,`);\n }\n const ret = Reflect.apply(pluginMethod, plugin, [args]);\n if (ret instanceof Promise) {\n ret.then(e => {\n jsCallResolve(contextId, callbackId, e);\n }, e => {\n jsCallReject(contextId, callbackId, e);\n });\n }\n else if (ret !== undefined) {\n Promise.resolve(ret).then((ret) => {\n jsCallResolve(contextId, callbackId, ret);\n });\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n });\n injectGlobalObject('nativeClearTimer', (timerId) => {\n const timerInfo = timers.get(timerId);\n if (timerInfo) {\n if (timerInfo.repeat) {\n originClearInterval(timerInfo.handleId);\n }\n else {\n originClearTimeout(timerInfo.handleId);\n }\n }\n });\n}\nexport function createContext(contextId, content) {\n loadJS(contextId, packageCreateContext(contextId, content));\n}\nexport function destroyContext(contextId) {\n jsReleaseContext(contextId);\n const scriptElement = document.getElementById(getScriptId(contextId));\n if (scriptElement) {\n document.body.removeChild(scriptElement);\n }\n}\ninitDoric();\n//# sourceMappingURL=DoricDriver.js.map","import { jsObtainContext, jsCallEntityMethod, pureCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext } from \"./DoricDriver\";\nimport { DoricStackNode } from './shader/DoricStackNode';\nconst doricContexts = new Map;\nlet __contextId__ = 0;\nfunction getContextId() {\n return `context_${__contextId__++}`;\n}\nexport function getDoricContext(contextId) {\n return doricContexts.get(contextId);\n}\nexport class DoricContext {\n constructor(content) {\n this.contextId = getContextId();\n this.pluginInstances = new Map;\n this.headNodes = new Map;\n createContext(this.contextId, content);\n doricContexts.set(this.contextId, this);\n this.rootNode = new DoricStackNode(this);\n }\n targetViewNode(viewId) {\n if (this.rootNode.viewId === viewId) {\n return this.rootNode;\n }\n for (let nodes of this.headNodes.values()) {\n if (nodes.has(viewId)) {\n return nodes.get(viewId);\n }\n }\n }\n get panel() {\n var _a;\n return (_a = jsObtainContext(this.contextId)) === null || _a === void 0 ? void 0 : _a.entity;\n }\n invokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n }\n pureInvokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(pureCallEntityMethod, this.panel, argumentsList);\n }\n init(data) {\n this.invokeEntityMethod(\"__init__\", data);\n }\n onCreate() {\n this.invokeEntityMethod(\"__onCreate__\");\n }\n onDestroy() {\n this.invokeEntityMethod(\"__onDestroy__\");\n }\n onShow() {\n this.invokeEntityMethod(\"__onShow__\");\n }\n onHidden() {\n this.invokeEntityMethod(\"__onHidden__\");\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n inAnimation() {\n return !!this.animationSet;\n }\n addAnimation(viewNode, keyFrame) {\n var _a;\n (_a = this.animationSet) === null || _a === void 0 ? void 0 : _a.push({\n viewNode,\n keyFrame,\n });\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n//# sourceMappingURL=DoricContext.js.map","import { loadDoricJSBundle } from './DoricBundleLoader';\nimport { DoricContext } from './DoricContext';\nexport class DoricElement extends HTMLElement {\n constructor() {\n super();\n }\n get src() {\n return this.getAttribute('src');\n }\n get alias() {\n return this.getAttribute('alias');\n }\n set src(v) {\n this.setAttribute('src', v);\n }\n set alias(v) {\n this.setAttribute('alias', v);\n }\n get initData() {\n return this.getAttribute('data');\n }\n set initData(v) {\n this.setAttribute('data', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n loadDoricJSBundle(this.src).then(result => {\n this.load(result);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a, _b;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.onDestroy();\n (_b = this.context) === null || _b === void 0 ? void 0 : _b.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n this.context.init(this.initData);\n this.context.onCreate();\n const divElement = document.createElement('div');\n divElement.style.position = 'relative';\n divElement.style.height = '100%';\n this.append(divElement);\n this.context.rootNode.view = divElement;\n this.context.build({\n width: divElement.offsetWidth,\n height: divElement.offsetHeight,\n });\n this.context.onShow();\n }\n}\n//# sourceMappingURL=DoricElement.js.map","import { DoricElement } from \"../DoricElement\";\nexport class NavigationElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.elementStack = [];\n }\n get currentNode() {\n for (let i = 0; i < this.childNodes.length; i++) {\n if (this.childNodes[i] instanceof DoricElement) {\n return this.childNodes[i];\n }\n }\n return undefined;\n }\n push(element) {\n const currentNode = this.currentNode;\n if (currentNode) {\n this.elementStack.push(currentNode);\n this.replaceChild(element, currentNode);\n }\n else {\n this.appendChild(element);\n }\n }\n pop() {\n const lastElement = this.elementStack.pop();\n const currentNode = this.currentNode;\n if (lastElement && currentNode) {\n this.replaceChild(lastElement, currentNode);\n currentNode.onDestroy();\n }\n else {\n window.history.back();\n }\n }\n}\n//# sourceMappingURL=NavigationElement.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from 'axios';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport { registerDoricJSLoader } from './src/DoricBundleLoader';\nimport { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/NavigationElement';\nexport * from './src/DoricElement';\nexport * from './src/navigate/NavigationElement';\nexport * from './src/DoricPlugin';\nexport * from './src/DoricRegistry';\nexport * from './src/DoricDriver';\nexport * from './src/shader/DoricViewNode';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nsmoothscroll.polyfill();\nregisterDoricJSLoader({\n filter: (source) => source.startsWith(\"assets://\"),\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const ret = yield axios.get(source.replace(\"assets://\", `${window.location.href}/../../doric-demo/bundle/`));\n return ret.data;\n })\n});\n//# sourceMappingURL=index.js.map"],"names":["__awaiter","this","axios","LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsObtainContext","jsCallEntityMethod","pureCallEntityMethod"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"} +======= +{"version":3,"file":"index.js","sources":["../node_modules/smoothscroll-polyfill/dist/smoothscroll.js","../build/src/DoricBundleLoader.js","../build/src/DoricPlugin.js","../build/src/shader/DoricViewNode.js","../build/src/plugins/ShaderPlugin.js","../build/src/shader/DoricStackNode.js","../build/src/shader/DoricVLayoutNode.js","../build/src/shader/DoricHLayoutNode.js","../build/src/shader/DoricTextNode.js","../build/src/shader/DoricImageNode.js","../build/src/shader/DoricScrollerNode.js","../build/src/plugins/ModalPlugin.js","../build/src/plugins/StoragePlugin.js","../build/src/navigate/NavigatorPlugin.js","../build/src/plugins/PopoverPlugin.js","../build/src/shader/DoricListItemNode.js","../build/src/shader/DoricListNode.js","../build/src/shader/DoricDraggableNode.js","../build/src/shader/DoricRefreshableNode.js","../build/src/plugins/AnimatePlugin.js","../build/src/shader/DoricSwitchNode.js","../build/src/shader/DoricSliderNode.js","../build/src/shader/DoricSlideItemNode.js","../build/src/plugins/NotificationPlugin.js","../build/src/DoricRegistry.js","../build/src/DoricDriver.js","../build/src/DoricContext.js","../build/src/DoricElement.js","../build/src/navigate/NavigationElement.js","../build/index.js"],"sourcesContent":["/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n 'use strict';\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n // commonjs\n module.exports = { polyfill: polyfill };\n } else {\n // global\n polyfill();\n }\n\n}());\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from \"axios\";\nconst loaders = [\n {\n filter: () => true,\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const result = yield axios.get(source);\n return result.data;\n })\n }\n];\nexport function registerDoricJSLoader(loader) {\n loaders.push(loader);\n}\nexport function loadDoricJSBundle(source) {\n return __awaiter(this, void 0, void 0, function* () {\n const matched = loaders.filter(e => e.filter(source));\n if (matched.length > 0) {\n return matched[matched.length - 1].request(source);\n }\n throw new Error(`Cannot find matched loader for '${source}'`);\n });\n}\n//# sourceMappingURL=DoricBundleLoader.js.map","export class DoricPlugin {\n constructor(context) {\n this.context = context;\n }\n onTearDown() {\n }\n}\n//# sourceMappingURL=DoricPlugin.js.map","import { acquireViewNode } from \"../DoricRegistry\";\nexport var LayoutSpec;\n(function (LayoutSpec) {\n LayoutSpec[LayoutSpec[\"EXACTLY\"] = 0] = \"EXACTLY\";\n LayoutSpec[LayoutSpec[\"WRAP_CONTENT\"] = 1] = \"WRAP_CONTENT\";\n LayoutSpec[LayoutSpec[\"AT_MOST\"] = 2] = \"AT_MOST\";\n})(LayoutSpec || (LayoutSpec = {}));\nconst SPECIFIED = 1;\nconst START = 1 << 1;\nconst END = 1 << 2;\nconst SHIFT_X = 0;\nconst SHIFT_Y = 4;\nexport const LEFT = (START | SPECIFIED) << SHIFT_X;\nexport const RIGHT = (END | SPECIFIED) << SHIFT_X;\nexport const TOP = (START | SPECIFIED) << SHIFT_Y;\nexport const BOTTOM = (END | SPECIFIED) << SHIFT_Y;\nexport const CENTER_X = SPECIFIED << SHIFT_X;\nexport const CENTER_Y = SPECIFIED << SHIFT_Y;\nexport const CENTER = CENTER_X | CENTER_Y;\nexport function toPixelString(v) {\n return `${v}px`;\n}\nexport function pixelString2Number(v) {\n return parseFloat(v.substring(0, v.indexOf(\"px\")));\n}\nexport function toRGBAString(color) {\n let strs = [];\n for (let i = 0; i < 32; i += 8) {\n strs.push(((color >> i) & 0xff));\n }\n strs = strs.reverse();\n /// RGBAd\n return `rgba(${strs[1]},${strs[2]},${strs[3]},${strs[0] / 255})`;\n}\nexport class DoricViewNode {\n constructor(context) {\n this.viewId = \"\";\n this.viewType = \"View\";\n this.layoutConfig = {\n widthSpec: LayoutSpec.EXACTLY,\n heightSpec: LayoutSpec.EXACTLY,\n alignment: 0,\n weight: 0,\n margin: {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }\n };\n this.padding = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n };\n this.frameWidth = 0;\n this.frameHeight = 0;\n this.offsetX = 0;\n this.offsetY = 0;\n this._originDisplay = \"\";\n this.transform = {};\n this.context = context;\n }\n init(superNode) {\n if (superNode) {\n this.superNode = superNode;\n if (this instanceof DoricSuperNode) {\n this.reusable = superNode.reusable;\n }\n }\n this.view = this.build();\n this._originDisplay = this.view.style.display;\n }\n get paddingLeft() {\n return this.padding.left || 0;\n }\n get paddingRight() {\n return this.padding.right || 0;\n }\n get paddingTop() {\n return this.padding.top || 0;\n }\n get paddingBottom() {\n return this.padding.bottom || 0;\n }\n get borderWidth() {\n var _a;\n return ((_a = this.border) === null || _a === void 0 ? void 0 : _a.width) || 0;\n }\n blend(props) {\n this.view.id = `${this.viewId}`;\n for (let key in props) {\n this.blendProps(this.view, key, props[key]);\n }\n this.onBlending();\n this.layout();\n }\n onBlending() {\n this.updateTransform();\n }\n onBlended() {\n }\n configBorder() {\n if (this.border) {\n this.applyCSSStyle({\n borderStyle: \"solid\",\n borderWidth: toPixelString(this.border.width),\n borderColor: toRGBAString(this.border.color),\n });\n }\n }\n configWidth() {\n let width;\n switch (this.layoutConfig.widthSpec) {\n case LayoutSpec.WRAP_CONTENT:\n width = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n width = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n width = toPixelString(this.frameWidth\n - this.paddingLeft - this.paddingRight\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ width });\n }\n configHeight() {\n let height;\n switch (this.layoutConfig.heightSpec) {\n case LayoutSpec.WRAP_CONTENT:\n height = \"max-content\";\n break;\n case LayoutSpec.AT_MOST:\n height = \"100%\";\n break;\n case LayoutSpec.EXACTLY:\n default:\n height = toPixelString(this.frameHeight\n - this.paddingTop - this.paddingBottom\n - this.borderWidth * 2);\n break;\n }\n this.applyCSSStyle({ height });\n }\n configMargin() {\n if (this.layoutConfig.margin) {\n this.applyCSSStyle({\n marginLeft: toPixelString(this.layoutConfig.margin.left || 0),\n marginRight: toPixelString(this.layoutConfig.margin.right || 0),\n marginTop: toPixelString(this.layoutConfig.margin.top || 0),\n marginBottom: toPixelString(this.layoutConfig.margin.bottom || 0),\n });\n }\n }\n configPadding() {\n if (this.padding) {\n this.applyCSSStyle({\n paddingLeft: toPixelString(this.paddingLeft),\n paddingRight: toPixelString(this.paddingRight),\n paddingTop: toPixelString(this.paddingTop),\n paddingBottom: toPixelString(this.paddingBottom),\n });\n }\n }\n layout() {\n this.configMargin();\n this.configBorder();\n this.configPadding();\n this.configWidth();\n this.configHeight();\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"border\":\n this.border = prop;\n break;\n case \"padding\":\n this.padding = prop;\n break;\n case 'width':\n this.frameWidth = prop;\n break;\n case 'height':\n this.frameHeight = prop;\n break;\n case 'backgroundColor':\n this.backgroundColor = prop;\n break;\n case 'layoutConfig':\n const layoutConfig = prop;\n for (let key in layoutConfig) {\n Reflect.set(this.layoutConfig, key, Reflect.get(layoutConfig, key, layoutConfig));\n }\n break;\n case 'x':\n this.offsetX = prop;\n break;\n case 'y':\n this.offsetY = prop;\n break;\n case 'onClick':\n this.view.onclick = (event) => {\n this.callJSResponse(prop);\n event.stopPropagation();\n };\n break;\n case 'corners':\n if (typeof prop === 'object') {\n this.applyCSSStyle({\n borderTopLeftRadius: toPixelString(prop.leftTop),\n borderTopRightRadius: toPixelString(prop.rightTop),\n borderBottomRightRadius: toPixelString(prop.rightBottom),\n borderBottomLeftRadius: toPixelString(prop.leftBottom),\n });\n }\n else {\n this.applyCSSStyle({ borderRadius: toPixelString(prop) });\n }\n break;\n case 'shadow':\n const opacity = prop.opacity || 0;\n let boxShadow;\n if (opacity > 0) {\n const offsetX = prop.offsetX || 0;\n const offsetY = prop.offsetY || 0;\n const shadowColor = prop.color || 0xff000000;\n const shadowRadius = prop.radius;\n const alpha = opacity * 255;\n boxShadow = `${toPixelString(offsetX)} ${toPixelString(offsetY)} ${toPixelString(shadowRadius)} ${toRGBAString((shadowColor & 0xffffff) | ((alpha & 0xff) << 24))} `;\n }\n else {\n boxShadow = \"\";\n }\n this.applyCSSStyle({\n boxShadow,\n });\n break;\n case 'alpha':\n this.applyCSSStyle({\n opacity: `${prop}`,\n });\n break;\n case 'rotation':\n this.transform.rotation = prop;\n break;\n case 'rotationX':\n this.transform.rotationX = prop;\n break;\n case 'rotationY':\n this.transform.rotationY = prop;\n break;\n case 'scaleX':\n this.transform.scaleX = prop;\n break;\n case 'scaleY':\n this.transform.scaleY = prop;\n break;\n case 'translationX':\n this.transform.translateX = prop;\n break;\n case 'translationY':\n this.transform.translateY = prop;\n break;\n case 'pivotX':\n if (this.transformOrigin) {\n this.transformOrigin.x = prop;\n }\n else {\n this.transformOrigin = {\n x: prop,\n y: 0.5,\n };\n }\n break;\n case 'pivotY':\n if (this.transformOrigin) {\n this.transformOrigin.y = prop;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: prop,\n };\n }\n break;\n case 'hidden':\n this.applyCSSStyle({\n display: prop === true ? \"none\" : this._originDisplay\n });\n break;\n default:\n console.error(`Cannot blend prop for ${propName}`);\n break;\n }\n }\n set backgroundColor(v) {\n this.applyCSSStyle({ backgroundColor: toRGBAString(v) });\n }\n static create(context, type) {\n const viewNodeClass = acquireViewNode(type);\n if (viewNodeClass === undefined) {\n console.error(`Cannot find ViewNode for ${type}`);\n return undefined;\n }\n const ret = new viewNodeClass(context);\n ret.viewType = type;\n return ret;\n }\n getIdList() {\n const ids = [];\n let viewNode = this;\n do {\n ids.push(viewNode.viewId);\n viewNode = viewNode.superNode;\n } while (viewNode);\n return ids.reverse();\n }\n callJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.invokeEntityMethod, this.context, argumentsList);\n }\n pureCallJSResponse(funcId, ...args) {\n const argumentsList = ['__response__', this.getIdList(), funcId];\n for (let i = 1; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(this.context.pureInvokeEntityMethod, this.context, argumentsList);\n }\n updateTransform() {\n this.applyCSSStyle({\n transform: Object.entries(this.transform).filter((e) => !!e[1]).map((e) => {\n const v = e[1] || 0;\n switch (e[0]) {\n case \"translateX\":\n return `translateX(${v}px)`;\n case \"scaleX\":\n return `scaleX(${v})`;\n case \"scaleY\":\n return `scaleY(${v})`;\n case \"rotation\":\n return `rotate(${v / 2}turn)`;\n case \"rotationX\":\n return `rotateX(${v / 2}turn)`;\n case \"rotationY\":\n return `rotateY(${v / 2}turn)`;\n default:\n console.error(`Do not support transform ${e[0]}`);\n return \"\";\n }\n }).join(\" \")\n });\n }\n updateTransformOrigin() {\n if (this.transformOrigin) {\n this.applyCSSStyle({\n transformOrigin: `${Math.round(this.transformOrigin.x * 100)}% ${Math.round(this.transformOrigin.y * 100)}%`\n });\n }\n }\n applyCSSStyle(cssStyle) {\n if (this.context.inAnimation()) {\n this.context.addAnimation(this, cssStyle);\n }\n else {\n for (let v in cssStyle) {\n Reflect.set(this.view.style, v, cssStyle[v]);\n }\n }\n }\n /** ++++++++++call from doric ++++++++++*/\n getWidth() {\n return this.view.offsetWidth;\n }\n getHeight() {\n return this.view.offsetHeight;\n }\n setWidth(v) {\n this.view.style.width = toPixelString(v);\n }\n setHeight(v) {\n this.view.style.height = toPixelString(v);\n }\n getX() {\n return this.view.offsetLeft;\n }\n getY() {\n return this.view.offsetTop;\n }\n setX(v) {\n this.view.style.left = toPixelString(v);\n }\n setY(v) {\n this.view.style.top = toPixelString(v);\n }\n getBackgroundColor() {\n return this.view.style.backgroundColor;\n }\n setBackgroundColor(v) {\n this.backgroundColor = v;\n }\n getAlpha() {\n return parseFloat(this.view.style.opacity);\n }\n setAlpha(v) {\n this.view.style.opacity = `${v}`;\n }\n getCorners() {\n return parseFloat(this.view.style.borderRadius);\n }\n setCorners(v) {\n this.view.style.borderRadius = toPixelString(v);\n }\n getLocationOnScreen() {\n const rect = this.view.getClientRects()[0];\n return {\n x: rect.left,\n y: rect.top,\n };\n }\n getRotation() {\n return this.transform.rotation;\n }\n setRotation(v) {\n this.transform.rotation = v;\n this.updateTransform();\n }\n getRotationX() {\n return this.transform.rotationX;\n }\n setRotationX(v) {\n this.transform.rotationX = v;\n this.updateTransform();\n }\n getRotationY() {\n return this.transform.rotationY;\n }\n setRotationY(v) {\n this.transform.rotationY = v;\n this.updateTransform();\n }\n getTranslationX() {\n return this.transform.translateX;\n }\n setTranslationX(v) {\n this.transform.translateX = v;\n this.updateTransform();\n }\n getTranslationY() {\n return this.transform.translateY;\n }\n setTranslationY(v) {\n this.transform.translateY = v;\n this.updateTransform();\n }\n getScaleX() {\n return this.transform.scaleX;\n }\n setScaleX(v) {\n this.transform.scaleX = v;\n this.updateTransform();\n }\n getScaleY() {\n return this.transform.scaleY;\n }\n setScaleY(v) {\n this.transform.scaleY = v;\n this.updateTransform();\n }\n getPivotX() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.x) || 0.5;\n }\n setPivotX(v) {\n if (this.transformOrigin) {\n this.transformOrigin.x = v;\n }\n else {\n this.transformOrigin = {\n x: v,\n y: 0.5,\n };\n }\n this.updateTransform();\n }\n getPivotY() {\n var _a;\n return ((_a = this.transformOrigin) === null || _a === void 0 ? void 0 : _a.y) || 0.5;\n }\n setPivotY(v) {\n if (this.transformOrigin) {\n this.transformOrigin.y = v;\n }\n else {\n this.transformOrigin = {\n x: 0.5,\n y: v,\n };\n }\n this.updateTransform();\n }\n}\nexport class DoricSuperNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.reusable = false;\n this.subModels = new Map;\n }\n blendProps(v, propName, prop) {\n if (propName === 'subviews') {\n if (prop instanceof Array) {\n prop.forEach((e) => {\n this.mixinSubModel(e);\n this.blendSubNode(e);\n });\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n mixinSubModel(subNode) {\n const oldValue = this.getSubModel(subNode.id);\n if (oldValue) {\n this.mixin(subNode, oldValue);\n }\n else {\n this.subModels.set(subNode.id, subNode);\n }\n }\n getSubModel(id) {\n return this.subModels.get(id);\n }\n mixin(src, target) {\n for (let key in src.props) {\n if (key === \"subviews\") {\n continue;\n }\n Reflect.set(target.props, key, Reflect.get(src.props, key));\n }\n }\n clearSubModels() {\n this.subModels.clear();\n }\n removeSubModel(id) {\n this.subModels.delete(id);\n }\n}\nexport class DoricGroupViewNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childNodes = [];\n this.childViewIds = [];\n }\n init(superNode) {\n super.init(superNode);\n this.view.style.overflow = \"hidden\";\n }\n blendProps(v, propName, prop) {\n if (propName === 'children') {\n if (prop instanceof Array) {\n this.childViewIds = prop;\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blend(props) {\n super.blend(props);\n }\n onBlending() {\n super.onBlending();\n this.configChildNode();\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n configChildNode() {\n this.childViewIds.forEach((childViewId, index) => {\n const model = this.getSubModel(childViewId);\n if (model === undefined) {\n return;\n }\n if (index < this.childNodes.length) {\n const oldNode = this.childNodes[index];\n if (oldNode.viewId === childViewId) {\n //The same,skip\n }\n else {\n if (this.reusable) {\n if (oldNode.viewType === model.type) {\n //Same type,can be reused\n oldNode.viewId = childViewId;\n oldNode.blend(model.props);\n }\n else {\n //Replace this view\n this.view.removeChild(oldNode.view);\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.replaceChild(newNode.view, oldNode.view);\n }\n }\n else {\n //Find in remain nodes\n let position = -1;\n for (let start = index + 1; start < this.childNodes.length; start++) {\n if (childViewId === this.childNodes[start].viewId) {\n //Found\n position = start;\n break;\n }\n }\n if (position >= 0) {\n //Found swap idx,position\n const reused = this.childNodes[position];\n const abandoned = this.childNodes[index];\n this.childNodes[index] = reused;\n this.childNodes[position] = abandoned;\n this.view.removeChild(reused.view);\n this.view.insertBefore(reused.view, abandoned.view);\n this.view.removeChild(abandoned.view);\n if (position === this.view.childElementCount - 1) {\n this.view.appendChild(abandoned.view);\n }\n else {\n this.view.insertBefore(abandoned.view, this.view.children[position]);\n }\n }\n else {\n //Not found,insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes[index] = newNode;\n this.view.insertBefore(newNode.view, this.view.children[index]);\n }\n }\n }\n }\n else {\n //Insert\n const newNode = DoricViewNode.create(this.context, model.type);\n if (newNode === undefined) {\n return;\n }\n newNode.viewId = childViewId;\n newNode.init(this);\n newNode.blend(model.props);\n this.childNodes.push(newNode);\n this.view.appendChild(newNode.view);\n }\n });\n let size = this.childNodes.length;\n for (let idx = this.childViewIds.length; idx < size; idx++) {\n this.view.removeChild(this.childNodes[idx].view);\n }\n this.childNodes = this.childNodes.slice(0, this.childViewIds.length);\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return this.childNodes.filter(e => e.viewId === viewId)[0];\n }\n}\n//# sourceMappingURL=DoricViewNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricSuperNode } from \"../shader/DoricViewNode\";\nexport class ShaderPlugin extends DoricPlugin {\n render(ret) {\n var _a;\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(ret.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(ret.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = ret.id;\n this.context.rootNode.blend(ret.props);\n this.context.rootNode.onBlended();\n }\n }\n command(options) {\n let viewNode = undefined;\n for (let viewId of options.viewIds) {\n if (!viewNode) {\n viewNode = this.context.targetViewNode(viewId);\n }\n else {\n if (viewNode instanceof DoricSuperNode) {\n viewNode = viewNode.getSubNodeById(viewId);\n }\n }\n }\n if (!viewNode) {\n return Promise.reject(\"Cannot find opposite view\");\n }\n else {\n const target = viewNode;\n return new Promise((resolve, reject) => {\n try {\n const method = Reflect.get(target, options.name);\n if (!method) {\n reject(`\"Cannot find plugin method in class:${target},method:${options.name}\"`);\n }\n resolve(Reflect.apply(method, target, [options.args]));\n }\n catch (err) {\n reject(err);\n }\n });\n }\n }\n}\n//# sourceMappingURL=ShaderPlugin.js.map","import { DoricGroupViewNode, LayoutSpec, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, pixelString2Number } from \"./DoricViewNode\";\nexport class DoricStackNode extends DoricGroupViewNode {\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n return ret;\n }\n layout() {\n super.layout();\n Promise.resolve().then(_ => {\n this.configSize();\n this.configOffset();\n });\n }\n configSize() {\n if (this.layoutConfig.widthSpec === LayoutSpec.WRAP_CONTENT) {\n const width = this.childNodes.reduce((prev, current) => {\n const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetWidth\n + pixelString2Number(computedStyle.marginLeft)\n + pixelString2Number(computedStyle.marginRight));\n }, 0);\n this.view.style.width = toPixelString(width);\n }\n if (this.layoutConfig.heightSpec === LayoutSpec.WRAP_CONTENT) {\n const height = this.childNodes.reduce((prev, current) => {\n const computedStyle = window.getComputedStyle(current.view);\n return Math.max(prev, current.view.offsetHeight\n + pixelString2Number(computedStyle.marginTop)\n + pixelString2Number(computedStyle.marginBottom));\n }, 0);\n this.view.style.height = toPixelString(height);\n }\n }\n configOffset() {\n this.childNodes.forEach(e => {\n const position = \"absolute\";\n let left = toPixelString(e.offsetX + this.paddingLeft);\n let top = toPixelString(e.offsetY + this.paddingTop);\n const gravity = e.layoutConfig.alignment;\n if ((gravity & LEFT) === LEFT) {\n left = toPixelString(0);\n }\n else if ((gravity & RIGHT) === RIGHT) {\n left = toPixelString(this.view.offsetWidth - e.view.offsetWidth);\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n left = toPixelString(this.view.offsetWidth / 2 - e.view.offsetWidth / 2);\n }\n if ((gravity & TOP) === TOP) {\n top = toPixelString(0);\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n top = toPixelString(this.view.offsetHeight - e.view.offsetHeight);\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n top = toPixelString(this.view.offsetHeight / 2 - e.view.offsetHeight / 2);\n }\n e.applyCSSStyle({\n position,\n left,\n top,\n });\n });\n }\n}\n//# sourceMappingURL=DoricStackNode.js.map","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricVLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"column\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.alignItems = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.justifyContent = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginTop = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.top) || 0);\n e.view.style.marginBottom = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.bottom) || 0));\n e.view.style.marginLeft = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.left) || 0);\n e.view.style.marginRight = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.right) || 0);\n if ((e.layoutConfig.alignment & LEFT) === LEFT) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & RIGHT) === RIGHT) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_X) === CENTER_X) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n//# sourceMappingURL=DoricVLayoutNode.js.map","import { DoricGroupViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString } from \"./DoricViewNode\";\nexport class DoricHLayoutNode extends DoricGroupViewNode {\n constructor() {\n super(...arguments);\n this.space = 0;\n this.gravity = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.display = \"flex\";\n ret.style.flexDirection = \"row\";\n ret.style.flexWrap = \"nowrap\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'space') {\n this.space = prop;\n }\n else if (propName === 'gravity') {\n this.gravity = prop;\n this.gravity = prop;\n if ((this.gravity & LEFT) === LEFT) {\n this.view.style.justifyContent = \"flex-start\";\n }\n else if ((this.gravity & RIGHT) === RIGHT) {\n this.view.style.justifyContent = \"flex-end\";\n }\n else if ((this.gravity & CENTER_X) === CENTER_X) {\n this.view.style.justifyContent = \"center\";\n }\n if ((this.gravity & TOP) === TOP) {\n this.view.style.alignItems = \"flex-start\";\n }\n else if ((this.gravity & BOTTOM) === BOTTOM) {\n this.view.style.alignItems = \"flex-end\";\n }\n else if ((this.gravity & CENTER_Y) === CENTER_Y) {\n this.view.style.alignItems = \"center\";\n }\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n layout() {\n super.layout();\n this.childNodes.forEach((e, idx) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n e.view.style.flexShrink = \"0\";\n if ((_a = e.layoutConfig) === null || _a === void 0 ? void 0 : _a.weight) {\n e.view.style.flex = `${(_b = e.layoutConfig) === null || _b === void 0 ? void 0 : _b.weight}`;\n }\n e.view.style.marginLeft = toPixelString(((_d = (_c = e.layoutConfig) === null || _c === void 0 ? void 0 : _c.margin) === null || _d === void 0 ? void 0 : _d.left) || 0);\n e.view.style.marginRight = toPixelString((idx === this.childNodes.length - 1) ? 0 : this.space\n + (((_f = (_e = e.layoutConfig) === null || _e === void 0 ? void 0 : _e.margin) === null || _f === void 0 ? void 0 : _f.right) || 0));\n e.view.style.marginTop = toPixelString(((_h = (_g = e.layoutConfig) === null || _g === void 0 ? void 0 : _g.margin) === null || _h === void 0 ? void 0 : _h.top) || 0);\n e.view.style.marginBottom = toPixelString(((_k = (_j = e.layoutConfig) === null || _j === void 0 ? void 0 : _j.margin) === null || _k === void 0 ? void 0 : _k.bottom) || 0);\n if ((e.layoutConfig.alignment & TOP) === TOP) {\n e.view.style.alignSelf = \"flex-start\";\n }\n else if ((e.layoutConfig.alignment & BOTTOM) === BOTTOM) {\n e.view.style.alignSelf = \"flex-end\";\n }\n else if ((e.layoutConfig.alignment & CENTER_Y) === CENTER_Y) {\n e.view.style.alignSelf = \"center\";\n }\n });\n }\n}\n//# sourceMappingURL=DoricHLayoutNode.js.map","import { DoricViewNode, LEFT, RIGHT, CENTER_X, CENTER_Y, TOP, BOTTOM, toPixelString, toRGBAString } from \"./DoricViewNode\";\nexport class DoricTextNode extends DoricViewNode {\n build() {\n const div = document.createElement('div');\n div.style.display = \"flex\";\n this.textElement = document.createElement('span');\n div.appendChild(this.textElement);\n div.style.justifyContent = \"center\";\n div.style.alignItems = \"center\";\n return div;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'text':\n this.textElement.innerText = prop;\n break;\n case 'textSize':\n v.style.fontSize = toPixelString(prop);\n break;\n case 'textColor':\n v.style.color = toRGBAString(prop);\n break;\n case 'textAlignment':\n const gravity = prop;\n if ((gravity & LEFT) === LEFT) {\n v.style.justifyContent = \"flex-start\";\n }\n else if ((gravity & RIGHT) === RIGHT) {\n v.style.justifyContent = \"flex-end\";\n }\n else if ((gravity & CENTER_X) === CENTER_X) {\n v.style.justifyContent = \"center\";\n }\n if ((gravity & TOP) === TOP) {\n v.style.alignItems = \"flex-start\";\n }\n else if ((gravity & BOTTOM) === BOTTOM) {\n v.style.alignItems = \"flex-end\";\n }\n else if ((gravity & CENTER_Y) === CENTER_Y) {\n v.style.alignItems = \"center\";\n }\n break;\n case \"fontStyle\":\n switch (prop) {\n case \"bold\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"normal\";\n break;\n case \"italic\":\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"italic\";\n break;\n case \"bold_italic\":\n v.style.fontWeight = \"bold\";\n v.style.fontStyle = \"italic\";\n break;\n default:\n v.style.fontWeight = \"normal\";\n v.style.fontStyle = \"normal\";\n break;\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricTextNode.js.map","import { DoricViewNode } from \"./DoricViewNode\";\nvar ScaleType;\n(function (ScaleType) {\n ScaleType[ScaleType[\"ScaleToFill\"] = 0] = \"ScaleToFill\";\n ScaleType[ScaleType[\"ScaleAspectFit\"] = 1] = \"ScaleAspectFit\";\n ScaleType[ScaleType[\"ScaleAspectFill\"] = 2] = \"ScaleAspectFill\";\n})(ScaleType || (ScaleType = {}));\nexport class DoricImageNode extends DoricViewNode {\n build() {\n const ret = document.createElement('img');\n ret.style.objectFit = \"fill\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'imageUrl':\n v.setAttribute('src', prop);\n break;\n case 'imageBase64':\n v.setAttribute('src', prop);\n break;\n case 'loadCallback':\n v.onload = () => {\n this.callJSResponse(prop, {\n width: v.width,\n height: v.height\n });\n };\n break;\n case 'scaleType':\n switch (prop) {\n case ScaleType.ScaleToFill:\n v.style.objectFit = \"fill\";\n break;\n case ScaleType.ScaleAspectFit:\n v.style.objectFit = \"contain\";\n break;\n case ScaleType.ScaleAspectFill:\n v.style.objectFit = \"cover\";\n break;\n }\n break;\n case 'isBlur':\n if (prop) {\n v.style.filter = 'blur(8px)';\n }\n else {\n v.style.filter = '';\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricImageNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricScrollerNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.childViewId = \"\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.childViewId = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n return viewId === this.childViewId ? this.childNode : undefined;\n }\n onBlending() {\n super.onBlending();\n const model = this.getSubModel(this.childViewId);\n if (model === undefined) {\n return;\n }\n if (this.childNode) {\n if (this.childNode.viewId === this.childViewId) {\n ///skip\n }\n else {\n if (this.reusable && this.childNode.viewType === model.type) {\n this.childNode.viewId = model.id;\n this.childNode.blend(model.props);\n }\n else {\n this.view.removeChild(this.childNode.view);\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n }\n else {\n const childNode = DoricViewNode.create(this.context, model.type);\n if (childNode === undefined) {\n return;\n }\n childNode.viewId = model.id;\n childNode.init(this);\n childNode.blend(model.props);\n this.view.appendChild(childNode.view);\n this.childNode = childNode;\n }\n }\n onBlended() {\n var _a;\n super.onBlended();\n (_a = this.childNode) === null || _a === void 0 ? void 0 : _a.onBlended();\n }\n}\n//# sourceMappingURL=DoricScrollerNode.js.map","import { DoricPlugin } from '../DoricPlugin';\nimport { TOP, CENTER_Y, BOTTOM, toPixelString } from '../shader/DoricViewNode';\nexport class ModalPlugin extends DoricPlugin {\n toast(args) {\n const toastElement = document.createElement('div');\n toastElement.style.position = \"absolute\";\n toastElement.style.textAlign = \"center\";\n toastElement.style.width = \"100%\";\n const textElement = document.createElement('span');\n textElement.innerText = args.msg || \"\";\n textElement.style.backgroundColor = \"#777777\";\n textElement.style.color = \"white\";\n textElement.style.paddingLeft = '20px';\n textElement.style.paddingRight = '20px';\n textElement.style.paddingTop = '10px';\n textElement.style.paddingBottom = '10px';\n toastElement.appendChild(textElement);\n document.body.appendChild(toastElement);\n const gravity = args.gravity || BOTTOM;\n if ((gravity & TOP) == TOP) {\n toastElement.style.top = toPixelString(30);\n }\n else if ((gravity & BOTTOM) == BOTTOM) {\n toastElement.style.bottom = toPixelString(30);\n }\n else if ((gravity & CENTER_Y) == CENTER_Y) {\n toastElement.style.top = toPixelString(document.body.offsetHeight / 2 - toastElement.offsetHeight / 2);\n }\n setTimeout(() => {\n document.body.removeChild(toastElement);\n }, 2000);\n return Promise.resolve();\n }\n alert(args) {\n window.alert(args.msg || \"\");\n return Promise.resolve();\n }\n confirm(args) {\n if (window.confirm(args.msg || \"\")) {\n return Promise.resolve();\n }\n else {\n return Promise.reject();\n }\n }\n prompt(args) {\n const result = window.prompt(args.msg || \"\", args.defaultText);\n if (result) {\n return Promise.resolve(result);\n }\n else {\n return Promise.reject(result);\n }\n }\n}\n//# sourceMappingURL=ModalPlugin.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class StoragePlugin extends DoricPlugin {\n setItem(args) {\n localStorage.setItem(`${args.zone}_${args.key}`, args.value);\n return Promise.resolve();\n }\n getItem(args) {\n return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`));\n }\n remove(args) {\n localStorage.removeItem(`${args.zone}_${args.key}`);\n return Promise.resolve();\n }\n clear(args) {\n let removingKeys = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith(`${args.zone}_`)) {\n removingKeys.push(key);\n }\n }\n removingKeys.forEach(e => {\n localStorage.removeItem(e);\n });\n return Promise.resolve();\n }\n}\n//# sourceMappingURL=StoragePlugin.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nimport { DoricElement } from \"../DoricElement\";\nexport class NavigatorPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.navigation = document.getElementsByTagName('doric-navigation')[0];\n }\n push(args) {\n var _a;\n if (this.navigation) {\n const div = new DoricElement;\n div.src = args.source;\n div.alias = ((_a = args.config) === null || _a === void 0 ? void 0 : _a.alias) || args.source;\n this.navigation.push(div);\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n pop() {\n if (this.navigation) {\n this.navigation.pop();\n return Promise.resolve();\n }\n else {\n return Promise.reject('Not implemented');\n }\n }\n}\n//# sourceMappingURL=NavigatorPlugin.js.map","import { DoricPlugin } from '../DoricPlugin';\nimport { DoricViewNode } from '../shader/DoricViewNode';\nexport class PopoverPlugin extends DoricPlugin {\n constructor(context) {\n super(context);\n this.fullScreen = document.createElement('div');\n this.fullScreen.id = `PopOver__${context.contextId}`;\n this.fullScreen.style.position = 'fixed';\n this.fullScreen.style.top = '0px';\n this.fullScreen.style.width = \"100%\";\n this.fullScreen.style.height = \"100%\";\n }\n show(model) {\n const viewNode = DoricViewNode.create(this.context, model.type);\n if (viewNode === undefined) {\n return Promise.reject(`Cannot create ViewNode for ${model.type}`);\n }\n viewNode.viewId = model.id;\n viewNode.init();\n viewNode.blend(model.props);\n this.fullScreen.appendChild(viewNode.view);\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n map.set(model.id, viewNode);\n }\n else {\n map = new Map;\n map.set(model.id, viewNode);\n this.context.headNodes.set(PopoverPlugin.TYPE, map);\n }\n if (!document.body.contains(this.fullScreen)) {\n document.body.appendChild(this.fullScreen);\n }\n return Promise.resolve();\n }\n dismiss(args) {\n if (args) {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n const viewNode = map.get(args.id);\n if (viewNode) {\n this.fullScreen.removeChild(viewNode.view);\n }\n if (map.size === 0) {\n document.body.removeChild(this.fullScreen);\n }\n }\n }\n else {\n this.dismissAll();\n }\n return Promise.resolve();\n }\n dismissAll() {\n let map = this.context.headNodes.get(PopoverPlugin.TYPE);\n if (map) {\n for (let node of map.values()) {\n map.delete(node.viewId);\n this.fullScreen.removeChild(node.view);\n }\n }\n if (document.body.contains(this.fullScreen)) {\n document.body.removeChild(this.fullScreen);\n }\n }\n onTearDown() {\n super.onTearDown();\n this.dismissAll();\n }\n}\nPopoverPlugin.TYPE = \"popover\";\n//# sourceMappingURL=PopoverPlugin.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricListItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n}\n//# sourceMappingURL=DoricListItemNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricListNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.batchCount = 15;\n this.loadMore = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"itemCount\":\n this.itemCount = prop;\n break;\n case \"renderItem\":\n this.reset();\n this.renderItemFuncId = prop;\n break;\n case \"onLoadMore\":\n this.onLoadMoreFuncId = prop;\n break;\n case \"loadMoreView\":\n this.loadMoreViewId = prop;\n break;\n case \"batchCount\":\n this.batchCount = prop;\n break;\n case \"loadMore\":\n this.loadMore = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n reset() {\n while (this.view.lastElementChild) {\n this.view.removeChild(this.view.lastElementChild);\n }\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n if (this.loadMoreViewNode && this.view.contains(this.loadMoreViewNode.view)) {\n this.view.removeChild(this.loadMoreViewNode.view);\n }\n if (this.loadMore) {\n if (!this.loadMoreViewNode) {\n const loadMoreViewModel = this.getSubModel(this.loadMoreViewId || \"\");\n if (loadMoreViewModel) {\n this.loadMoreViewNode = DoricViewNode.create(this.context, loadMoreViewModel.type);\n this.loadMoreViewNode.viewId = loadMoreViewModel.id;\n this.loadMoreViewNode.init(this);\n this.loadMoreViewNode.blend(loadMoreViewModel.props);\n }\n }\n if (this.loadMoreViewNode) {\n this.view.appendChild(this.loadMoreViewNode.view);\n }\n if (this.view.scrollTop + this.view.offsetHeight === this.view.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n var _a;\n if (viewId === this.loadMoreViewId) {\n return this.loadMoreViewNode;\n }\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onScrollToEnd() {\n if (this.loadMore && this.onLoadMoreFuncId) {\n this.callJSResponse(this.onLoadMoreFuncId);\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"scroll\";\n ret.addEventListener(\"scroll\", () => {\n if (this.loadMore) {\n if (ret.scrollTop + ret.offsetHeight === ret.scrollHeight) {\n this.onScrollToEnd();\n }\n }\n });\n return ret;\n }\n onBlended() {\n super.onBlended();\n this.childNodes.forEach(e => e.onBlended());\n }\n}\n//# sourceMappingURL=DoricListNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricDraggableNode extends DoricStackNode {\n constructor() {\n super(...arguments);\n this.onDrag = \"\";\n this.dragging = false;\n this.lastX = 0;\n this.lastY = 0;\n }\n build() {\n const ret = document.createElement('div');\n ret.ontouchstart = (event) => {\n this.dragging = true;\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n };\n ret.ontouchend = (event) => {\n this.dragging = false;\n };\n ret.ontouchcancel = (event) => {\n this.dragging = false;\n };\n ret.ontouchmove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.targetTouches[0].clientX - this.lastX);\n this.offsetY += (event.targetTouches[0].clientY - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.targetTouches[0].clientX;\n this.lastY = event.targetTouches[0].clientY;\n }\n };\n ret.onmousedown = (event) => {\n this.dragging = true;\n this.lastX = event.x;\n this.lastY = event.y;\n };\n ret.onmousemove = (event) => {\n if (this.dragging) {\n this.offsetX += (event.x - this.lastX);\n this.offsetY += (event.y - this.lastY);\n this.callJSResponse(this.onDrag, this.offsetX, this.offsetY);\n this.lastX = event.x;\n this.lastY = event.y;\n }\n };\n ret.onmouseup = (event) => {\n this.dragging = false;\n };\n ret.onmouseout = (event) => {\n this.dragging = false;\n };\n ret.style.position = \"relative\";\n return ret;\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case 'onDrag':\n this.onDrag = prop;\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n}\n//# sourceMappingURL=DoricDraggableNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricRefreshableNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.headerViewId = \"\";\n this.contentViewId = \"\";\n this.refreshable = true;\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n const header = document.createElement('div');\n const content = document.createElement('div');\n header.style.width = \"100%\";\n header.style.height = \"100%\";\n header.style.display = \"flex\";\n header.style.alignItems = \"flex-end\";\n header.style.justifyContent = \"center\";\n content.style.width = \"100%\";\n content.style.height = \"100%\";\n ret.appendChild(header);\n ret.appendChild(content);\n let touchStart = 0;\n ret.ontouchstart = (ev) => {\n if (!this.refreshable) {\n return;\n }\n touchStart = ev.touches[0].pageY;\n };\n ret.ontouchmove = (ev) => {\n var _a;\n if (!this.refreshable) {\n return;\n }\n const offset = (ev.touches[0].pageY - touchStart) * 0.68;\n ret.scrollTop = Math.max(0, header.offsetHeight - offset);\n (_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.callJSResponse(\"setPullingDistance\", offset);\n };\n const touchend = () => {\n var _a, _b;\n if (!this.refreshable) {\n return;\n }\n if (header.offsetHeight - ret.scrollTop >= (((_a = this.headerNode) === null || _a === void 0 ? void 0 : _a.getWidth()) || 0)) {\n this.setRefreshing(true);\n (_b = this.onRefreshCallback) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n else {\n // To idel\n ret.scrollTo({\n top: header.offsetHeight,\n behavior: \"smooth\"\n });\n }\n };\n ret.ontouchcancel = () => {\n touchend();\n };\n ret.ontouchend = () => {\n touchend();\n };\n window.requestAnimationFrame(() => {\n ret.scrollTop = header.offsetHeight;\n });\n this.headerContainer = header;\n this.contentContainer = content;\n return ret;\n }\n blendProps(v, propName, prop) {\n if (propName === 'content') {\n this.contentViewId = prop;\n }\n else if (propName === 'header') {\n this.headerViewId = prop;\n }\n else if (propName === 'onRefresh') {\n this.onRefreshCallback = () => {\n this.callJSResponse(prop);\n };\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n if (viewId === this.headerViewId) {\n return this.headerNode;\n }\n else if (viewId === this.contentViewId) {\n return this.contentNode;\n }\n return undefined;\n }\n onBlending() {\n var _a, _b, _c, _d, _e, _f;\n super.onBlending();\n {\n const headerModel = this.getSubModel(this.headerViewId);\n if (headerModel) {\n if (this.headerNode) {\n if (this.headerNode.viewId !== this.headerViewId) {\n if (this.reusable && this.headerNode.viewType === headerModel.type) {\n this.headerNode.viewId = headerModel.id;\n this.headerNode.blend(headerModel.props);\n }\n else {\n (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.removeChild(this.headerNode.view);\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_b = this.headerContainer) === null || _b === void 0 ? void 0 : _b.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n else {\n const headerNode = DoricViewNode.create(this.context, headerModel.type);\n if (headerNode) {\n headerNode.viewId = headerModel.id;\n headerNode.init(this);\n headerNode.blend(headerModel.props);\n (_c = this.headerContainer) === null || _c === void 0 ? void 0 : _c.appendChild(headerNode.view);\n this.headerNode = headerNode;\n }\n }\n }\n }\n {\n const contentModel = this.getSubModel(this.contentViewId);\n if (contentModel) {\n if (this.contentNode) {\n if (this.contentNode.viewId !== this.contentViewId) {\n if (this.reusable && this.contentNode.viewType === contentModel.type) {\n this.contentNode.viewId = contentModel.id;\n this.contentNode.blend(contentModel.props);\n }\n else {\n (_d = this.contentContainer) === null || _d === void 0 ? void 0 : _d.removeChild(this.contentNode.view);\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_e = this.contentContainer) === null || _e === void 0 ? void 0 : _e.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n else {\n const contentNode = DoricViewNode.create(this.context, contentModel.type);\n if (contentNode) {\n contentNode.viewId = contentModel.id;\n contentNode.init(this);\n contentNode.blend(contentModel.props);\n (_f = this.contentContainer) === null || _f === void 0 ? void 0 : _f.appendChild(contentNode.view);\n this.contentNode = contentNode;\n }\n }\n }\n }\n }\n onBlended() {\n super.onBlended();\n }\n setRefreshing(v) {\n var _a;\n if (!this.headerContainer || !this.headerNode) {\n return;\n }\n if (v) {\n this.view.scrollTo({\n top: this.headerContainer.offsetHeight - this.headerNode.getHeight(),\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"startAnimation\");\n }\n else {\n this.view.scrollTo({\n top: (_a = this.headerContainer) === null || _a === void 0 ? void 0 : _a.offsetHeight,\n behavior: \"smooth\"\n });\n this.headerNode.callJSResponse(\"stopAnimation\");\n }\n }\n setRefreshable(v) {\n this.refreshable = v;\n if (!v) {\n this.setRefreshing(false);\n }\n }\n}\n//# sourceMappingURL=DoricRefreshableNode.js.map","import { DoricPlugin } from \"../DoricPlugin\";\nexport class AnimatePlugin extends DoricPlugin {\n submit() {\n return Promise.resolve();\n }\n animateRender(args) {\n var _a;\n this.context.animationSet = [];\n if (((_a = this.context.rootNode.viewId) === null || _a === void 0 ? void 0 : _a.length) > 0) {\n const viewNode = this.context.targetViewNode(args.id);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.blend(args.props);\n viewNode === null || viewNode === void 0 ? void 0 : viewNode.onBlended();\n }\n else {\n this.context.rootNode.viewId = args.id;\n this.context.rootNode.blend(args.props);\n this.context.rootNode.onBlended();\n }\n return new Promise(resolve => {\n Promise.resolve().then(() => {\n var _a;\n Promise.all(((_a = this.context.animationSet) === null || _a === void 0 ? void 0 : _a.map(e => {\n return new Promise(resolve => {\n const keyFrame = {};\n const ensureNonString = (key, value) => {\n if (!!value && value !== \"\") {\n return value;\n }\n switch ((key)) {\n case \"backgroundColor\":\n return \"transparent\";\n case \"transform\":\n return \"none\";\n default:\n return \"none\";\n }\n };\n for (let k in e.keyFrame) {\n keyFrame[k] = ensureNonString(k, e.viewNode.view.style[k]);\n e.keyFrame[k] = ensureNonString(k, e.keyFrame[k]);\n }\n try {\n const animation = e.viewNode.view.animate([keyFrame, e.keyFrame], {\n duration: args.duration,\n fill: \"forwards\"\n });\n animation.onfinish = () => {\n Object.entries(e.keyFrame).forEach(entry => {\n Reflect.set(e.viewNode.view.style, entry[0], entry[1]);\n });\n resolve(true);\n };\n }\n catch (e) {\n console.error(e);\n alert(e.stack);\n }\n });\n })) || [])\n .then(() => {\n resolve(0);\n })\n .finally(() => {\n this.context.animationSet = undefined;\n });\n });\n });\n }\n}\n//# sourceMappingURL=AnimatePlugin.js.map","import { DoricViewNode, toRGBAString } from \"./DoricViewNode\";\nexport class DoricSwitchNode extends DoricViewNode {\n constructor() {\n super(...arguments);\n this.offTintColor = \"#e6e6e6\";\n this.onTintColor = \"#52d769\";\n }\n build() {\n const ret = document.createElement('div');\n ret.style.position = \"relative\";\n ret.style.width = \"50px\";\n ret.style.height = \"30px\";\n const input = document.createElement('input');\n input.type = \"checkbox\";\n input.style.display = \"none\";\n const box = document.createElement('div');\n box.style.width = \"100%\";\n box.style.height = \"100%\";\n box.style.backgroundColor = \"#ccc\";\n box.style.borderRadius = \"15px\";\n const span = document.createElement('span');\n span.style.display = \"inline-block\";\n span.style.height = \"30px\";\n span.style.width = \"30px\";\n span.style.borderRadius = \"15px\";\n span.style.background = \"#fff\";\n span.style.boxShadow = \"0px 3px 3px #eee\";\n box.appendChild(span);\n ret.appendChild(input);\n ret.appendChild(box);\n ret.onclick = () => {\n try {\n if (input.checked === false) {\n span.animate([{ transform: \"translateX(0px)\" }, { transform: \"translateX(30px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.offTintColor }, { backgroundColor: this.onTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = true;\n }\n else {\n span.animate([{ transform: \"translateX(30px)\" }, { transform: \"translateX(0px)\" }], {\n duration: 200,\n fill: \"forwards\"\n });\n box.animate([{ backgroundColor: this.onTintColor }, { backgroundColor: this.offTintColor }], {\n duration: 200,\n fill: \"forwards\"\n });\n input.checked = false;\n }\n if (this.onSwitchFuncId) {\n this.callJSResponse(this.onSwitchFuncId, input.checked);\n }\n }\n catch (e) {\n alert(e);\n }\n };\n this.input = input;\n this.span = span;\n this.box = box;\n return ret;\n }\n setChecked(v) {\n if (!this.input || !this.span || !this.box) {\n return;\n }\n if (v) {\n this.span.style.transform = \"translateX(30px)\";\n this.box.style.backgroundColor = this.onTintColor;\n this.input.checked = v;\n }\n else {\n this.span.style.transform = \"translateX(0px)\";\n this.box.style.backgroundColor = this.offTintColor;\n this.input.checked = v;\n }\n }\n blendProps(v, propName, prop) {\n switch (propName) {\n case \"state\":\n this.setChecked(prop);\n break;\n case \"onSwitch\":\n this.onSwitchFuncId = prop;\n break;\n case \"offTintColor\":\n this.offTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"onTintColor\":\n this.onTintColor = toRGBAString(prop);\n this.setChecked(this.getState());\n break;\n case \"thumbTintColor\":\n if (this.span) {\n this.span.style.backgroundColor = toRGBAString(prop);\n }\n break;\n default:\n super.blendProps(v, propName, prop);\n break;\n }\n }\n getState() {\n var _a;\n return ((_a = this.input) === null || _a === void 0 ? void 0 : _a.checked) || false;\n }\n}\n//# sourceMappingURL=DoricSwitchNode.js.map","import { DoricSuperNode, DoricViewNode } from \"./DoricViewNode\";\nexport class DoricSliderNode extends DoricSuperNode {\n constructor() {\n super(...arguments);\n this.itemCount = 0;\n this.renderPageFuncId = \"\";\n this.batchCount = 15;\n this.onPageSelectedFuncId = \"\";\n this.loop = false;\n this.childNodes = [];\n }\n blendProps(v, propName, prop) {\n if (propName === 'itemCount') {\n this.itemCount = prop;\n }\n else if (propName === 'renderPage') {\n if (prop !== this.renderPageFuncId) {\n this.childNodes = [];\n this.renderPageFuncId = prop;\n }\n }\n else if (propName === 'batchCount') {\n this.batchCount = prop;\n }\n else if (propName === 'onPageSlided') {\n this.onPageSelectedFuncId = prop;\n }\n else if (propName === 'loop') {\n this.loop = prop;\n }\n else {\n super.blendProps(v, propName, prop);\n }\n }\n blendSubNode(model) {\n var _a;\n (_a = this.getSubNodeById(model.id)) === null || _a === void 0 ? void 0 : _a.blend(model.props);\n }\n getSubNodeById(viewId) {\n var _a;\n return (_a = this.childNodes.filter(e => e.viewId === viewId)) === null || _a === void 0 ? void 0 : _a[0];\n }\n onBlending() {\n super.onBlending();\n if (this.childNodes.length !== this.itemCount) {\n const ret = this.pureCallJSResponse(\"renderBunchedItems\", this.childNodes.length, this.itemCount);\n this.childNodes = this.childNodes.concat(ret.map(e => {\n const viewNode = DoricViewNode.create(this.context, e.type);\n viewNode.viewId = e.id;\n viewNode.init(this);\n viewNode.blend(e.props);\n this.view.appendChild(viewNode.view);\n return viewNode;\n }));\n }\n }\n build() {\n const ret = document.createElement('div');\n ret.style.overflow = \"hidden\";\n ret.style.display = \"inline\";\n ret.style.whiteSpace = \"nowrap\";\n let touchStartX = 0;\n let currentIndex = 0;\n ret.ontouchstart = (ev) => {\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n touchStartX = ev.touches[0].pageX;\n };\n ret.ontouchmove = (ev) => {\n const offsetX = (touchStartX - ev.touches[0].pageX) * 3;\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth + offsetX\n });\n };\n ret.ontouchcancel = ret.ontouchend = () => {\n let originInndex = currentIndex;\n currentIndex = Math.round(ret.scrollLeft / ret.offsetWidth);\n ret.scrollTo({\n left: currentIndex * ret.offsetWidth,\n behavior: \"smooth\"\n });\n if (originInndex !== currentIndex) {\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, currentIndex);\n }\n }\n };\n return ret;\n }\n getSlidedPage() {\n return Math.round(this.view.scrollLeft / this.view.offsetWidth);\n }\n slidePage(params) {\n if (params.smooth) {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page,\n behavior: \"smooth\"\n });\n }\n else {\n this.view.scrollTo({\n left: this.view.offsetWidth * params.page\n });\n }\n if (this.onPageSelectedFuncId.length > 0) {\n this.callJSResponse(this.onPageSelectedFuncId, params.page);\n }\n }\n}\n//# sourceMappingURL=DoricSliderNode.js.map","import { DoricStackNode } from \"./DoricStackNode\";\nexport class DoricSlideItemNode extends DoricStackNode {\n constructor(context) {\n super(context);\n this.reusable = true;\n }\n build() {\n const ret = super.build();\n ret.style.display = \"inline-block\";\n ret.style.width = \"100%\";\n ret.style.height = \"100%\";\n return ret;\n }\n}\n//# sourceMappingURL=DoricSlideItemNode.js.map","import { jsCallResolve } from \"doric/src/runtime/sandbox\";\nimport { DoricPlugin } from \"../DoricPlugin\";\nvar NotificationCenter;\n(function (NotificationCenter) {\n let receivers = [];\n function publish(notification) {\n receivers.filter(e => e.name === notification.name).forEach(e => {\n e.callback(notification.data);\n });\n }\n NotificationCenter.publish = publish;\n function subscribe(receiver) {\n receivers.push(receiver);\n }\n NotificationCenter.subscribe = subscribe;\n function unsubscribe(receiver) {\n receivers = receivers.filter(e => e !== receiver);\n }\n NotificationCenter.unsubscribe = unsubscribe;\n})(NotificationCenter || (NotificationCenter = {}));\nexport class NotificationPlugin extends DoricPlugin {\n constructor() {\n super(...arguments);\n this.receivers = {};\n }\n publish(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n NotificationCenter.publish({\n name: key,\n data: !!args.data ? JSON.parse(args.data) : undefined\n });\n return true;\n }\n subscribe(args) {\n const key = `__doric__${args.biz || \"\"}#${args.name}`;\n const receiver = {\n name: key,\n callback: (data) => {\n jsCallResolve(this.context.contextId, args.callback, data);\n }\n };\n this.receivers[args.callback] = receiver;\n NotificationCenter.subscribe(receiver);\n return args.callback;\n }\n unsubscribe(subscribeId) {\n const recevier = this.receivers[subscribeId];\n if (recevier) {\n NotificationCenter.unsubscribe(recevier);\n this.receivers[subscribeId] = undefined;\n return true;\n }\n else {\n return false;\n }\n }\n onTearDown() {\n Object.entries(this.receivers).map(e => e[1]).filter(e => !!e).forEach(e => {\n if (e) {\n NotificationCenter.unsubscribe(e);\n }\n });\n this.receivers = {};\n }\n}\n//# sourceMappingURL=NotificationPlugin.js.map","import { ShaderPlugin } from \"./plugins/ShaderPlugin\";\nimport { DoricStackNode } from \"./shader/DoricStackNode\";\nimport { DoricVLayoutNode } from './shader/DoricVLayoutNode';\nimport { DoricHLayoutNode } from './shader/DoricHLayoutNode';\nimport { DoricTextNode } from \"./shader/DoricTextNode\";\nimport { DoricImageNode } from \"./shader/DoricImageNode\";\nimport { DoricScrollerNode } from \"./shader/DoricScrollerNode\";\nimport { ModalPlugin } from './plugins/ModalPlugin';\nimport { StoragePlugin } from \"./plugins/StoragePlugin\";\nimport { NavigatorPlugin } from \"./navigate/NavigatorPlugin\";\nimport { PopoverPlugin } from './plugins/PopoverPlugin';\nimport { DoricListItemNode } from \"./shader/DoricListItemNode\";\nimport { DoricListNode } from \"./shader/DoricListNode\";\nimport { DoricDraggableNode } from \"./shader/DoricDraggableNode\";\nimport { DoricRefreshableNode } from \"./shader/DoricRefreshableNode\";\nimport { AnimatePlugin } from \"./plugins/AnimatePlugin\";\nimport { DoricSwitchNode } from \"./shader/DoricSwitchNode\";\nimport { DoricSliderNode } from \"./shader/DoricSliderNode\";\nimport { DoricSlideItemNode } from \"./shader/DoricSlideItemNode\";\nimport { NotificationPlugin } from \"./plugins/NotificationPlugin\";\nconst bundles = new Map;\nconst plugins = new Map;\nconst nodes = new Map;\nexport function acquireJSBundle(name) {\n return bundles.get(name);\n}\nexport function registerJSBundle(name, bundle) {\n bundles.set(name, bundle);\n}\nexport function registerPlugin(name, plugin) {\n plugins.set(name, plugin);\n}\nexport function acquirePlugin(name) {\n return plugins.get(name);\n}\nexport function registerViewNode(name, node) {\n nodes.set(name, node);\n}\nexport function acquireViewNode(name) {\n return nodes.get(name);\n}\nregisterPlugin('shader', ShaderPlugin);\nregisterPlugin('modal', ModalPlugin);\nregisterPlugin('storage', StoragePlugin);\nregisterPlugin('navigator', NavigatorPlugin);\nregisterPlugin('popover', PopoverPlugin);\nregisterPlugin('animate', AnimatePlugin);\nregisterPlugin('notification', NotificationPlugin);\nregisterViewNode('Stack', DoricStackNode);\nregisterViewNode('VLayout', DoricVLayoutNode);\nregisterViewNode('HLayout', DoricHLayoutNode);\nregisterViewNode('Text', DoricTextNode);\nregisterViewNode('Image', DoricImageNode);\nregisterViewNode('Scroller', DoricScrollerNode);\nregisterViewNode('ListItem', DoricListItemNode);\nregisterViewNode('List', DoricListNode);\nregisterViewNode('Draggable', DoricDraggableNode);\nregisterViewNode('Refreshable', DoricRefreshableNode);\nregisterViewNode('Switch', DoricSwitchNode);\nregisterViewNode('Slider', DoricSliderNode);\nregisterViewNode('SlideItem', DoricSlideItemNode);\n//# sourceMappingURL=DoricRegistry.js.map","import { jsCallResolve, jsCallReject, jsCallbackTimer, jsReleaseContext } from 'doric/src/runtime/sandbox';\nimport { acquireJSBundle, acquirePlugin } from './DoricRegistry';\nimport { getDoricContext } from './DoricContext';\nfunction getScriptId(contextId) {\n return `__doric_script_${contextId}`;\n}\nconst originSetTimeout = window.setTimeout;\nconst originClearTimeout = window.clearTimeout;\nconst originSetInterval = window.setInterval;\nconst originClearInterval = window.clearInterval;\nconst timers = new Map;\nexport function injectGlobalObject(name, value) {\n Reflect.set(window, name, value, window);\n}\nexport function loadJS(contextId, script) {\n const scriptElement = document.createElement('script');\n scriptElement.text = script;\n scriptElement.id = getScriptId(contextId);\n document.body.appendChild(scriptElement);\n}\nfunction packageModuleScript(name, content) {\n return `Reflect.apply(doric.jsRegisterModule,this,[${name},Reflect.apply(function(__module){(function(module,exports,require,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n})(__module,__module.exports,doric.__require__,doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval);\nreturn __module.exports;},this,[{exports:{}}])])`;\n}\nfunction packageCreateContext(contextId, content) {\n return `//@ sourceURL=contextId_${contextId}.js\nReflect.apply(function(doric,context,Entry,require,exports,setTimeout,setInterval,clearTimeout,clearInterval){\n${content}\n},undefined,[undefined,doric.jsObtainContext(\"${contextId}\"),doric.jsObtainEntry(\"${contextId}\"),doric.__require__,{},doricSetTimeout,doricSetInterval,doricClearTimeout,doricClearInterval])`;\n}\nfunction initDoric() {\n injectGlobalObject(\"Environment\", {\n platform: \"web\"\n });\n injectGlobalObject(\"nativeEmpty\", () => undefined);\n injectGlobalObject('nativeLog', (type, message) => {\n switch (type) {\n case 'd':\n console.log(message);\n break;\n case 'w':\n console.warn(message);\n break;\n case 'e':\n console.error(message);\n break;\n }\n });\n injectGlobalObject('nativeRequire', (moduleName) => {\n const bundle = acquireJSBundle(moduleName);\n if (bundle === undefined || bundle.length === 0) {\n console.log(`Cannot require JS Bundle :${moduleName}`);\n return false;\n }\n else {\n loadJS(moduleName, packageModuleScript(moduleName, bundle));\n return true;\n }\n });\n injectGlobalObject('nativeBridge', (contextId, namespace, method, callbackId, args) => {\n const pluginClass = acquirePlugin(namespace);\n const doricContext = getDoricContext(contextId);\n if (pluginClass === undefined) {\n console.error(`Cannot find Plugin:${namespace}`);\n return false;\n }\n if (doricContext === undefined) {\n console.error(`Cannot find Doric Context:${contextId}`);\n return false;\n }\n let plugin = doricContext.pluginInstances.get(namespace);\n if (plugin === undefined) {\n plugin = new pluginClass(doricContext);\n doricContext.pluginInstances.set(namespace, plugin);\n }\n if (!Reflect.has(plugin, method)) {\n console.error(`Cannot find Method:${method} in plugin ${namespace}`);\n return false;\n }\n const pluginMethod = Reflect.get(plugin, method, plugin);\n if (typeof pluginMethod !== 'function') {\n console.error(`Plugin ${namespace}'s property ${method}'s type is ${typeof pluginMethod} not function,`);\n }\n const ret = Reflect.apply(pluginMethod, plugin, [args]);\n if (ret instanceof Promise) {\n ret.then(e => {\n jsCallResolve(contextId, callbackId, e);\n }, e => {\n jsCallReject(contextId, callbackId, e);\n });\n }\n else if (ret !== undefined) {\n Promise.resolve(ret).then((ret) => {\n jsCallResolve(contextId, callbackId, ret);\n });\n }\n return true;\n });\n injectGlobalObject('nativeSetTimer', (timerId, time, repeat) => {\n if (repeat) {\n const handleId = originSetInterval(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n else {\n const handleId = originSetTimeout(() => {\n jsCallbackTimer(timerId);\n }, time);\n timers.set(timerId, { handleId, repeat });\n }\n });\n injectGlobalObject('nativeClearTimer', (timerId) => {\n const timerInfo = timers.get(timerId);\n if (timerInfo) {\n if (timerInfo.repeat) {\n originClearInterval(timerInfo.handleId);\n }\n else {\n originClearTimeout(timerInfo.handleId);\n }\n }\n });\n}\nexport function createContext(contextId, content) {\n loadJS(contextId, packageCreateContext(contextId, content));\n}\nexport function destroyContext(contextId) {\n jsReleaseContext(contextId);\n const scriptElement = document.getElementById(getScriptId(contextId));\n if (scriptElement) {\n document.body.removeChild(scriptElement);\n }\n}\ninitDoric();\n//# sourceMappingURL=DoricDriver.js.map","import { jsObtainContext, jsCallEntityMethod, pureCallEntityMethod } from 'doric/src/runtime/sandbox';\nimport { createContext, destroyContext } from \"./DoricDriver\";\nimport { DoricStackNode } from './shader/DoricStackNode';\nconst doricContexts = new Map;\nlet __contextId__ = 0;\nfunction getContextId() {\n return `context_${__contextId__++}`;\n}\nexport function getDoricContext(contextId) {\n return doricContexts.get(contextId);\n}\nexport class DoricContext {\n constructor(content) {\n this.contextId = getContextId();\n this.pluginInstances = new Map;\n this.headNodes = new Map;\n createContext(this.contextId, content);\n doricContexts.set(this.contextId, this);\n this.rootNode = new DoricStackNode(this);\n }\n targetViewNode(viewId) {\n if (this.rootNode.viewId === viewId) {\n return this.rootNode;\n }\n for (let nodes of this.headNodes.values()) {\n if (nodes.has(viewId)) {\n return nodes.get(viewId);\n }\n }\n }\n get panel() {\n var _a;\n return (_a = jsObtainContext(this.contextId)) === null || _a === void 0 ? void 0 : _a.entity;\n }\n invokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(jsCallEntityMethod, this.panel, argumentsList);\n }\n pureInvokeEntityMethod(method, ...otherArgs) {\n const argumentsList = [this.contextId];\n for (let i = 0; i < arguments.length; i++) {\n argumentsList.push(arguments[i]);\n }\n return Reflect.apply(pureCallEntityMethod, this.panel, argumentsList);\n }\n init(data) {\n this.invokeEntityMethod(\"__init__\", data);\n }\n onCreate() {\n this.invokeEntityMethod(\"__onCreate__\");\n }\n onDestroy() {\n this.invokeEntityMethod(\"__onDestroy__\");\n }\n onShow() {\n this.invokeEntityMethod(\"__onShow__\");\n }\n onHidden() {\n this.invokeEntityMethod(\"__onHidden__\");\n }\n build(frame) {\n this.invokeEntityMethod(\"__build__\", frame);\n }\n inAnimation() {\n return !!this.animationSet;\n }\n addAnimation(viewNode, keyFrame) {\n var _a;\n (_a = this.animationSet) === null || _a === void 0 ? void 0 : _a.push({\n viewNode,\n keyFrame,\n });\n }\n teardown() {\n for (let plugin of this.pluginInstances.values()) {\n plugin.onTearDown();\n }\n destroyContext(this.contextId);\n }\n}\n//# sourceMappingURL=DoricContext.js.map","import { loadDoricJSBundle } from './DoricBundleLoader';\nimport { DoricContext } from './DoricContext';\nexport class DoricElement extends HTMLElement {\n constructor() {\n super();\n }\n get src() {\n return this.getAttribute('src');\n }\n get alias() {\n return this.getAttribute('alias');\n }\n set src(v) {\n this.setAttribute('src', v);\n }\n set alias(v) {\n this.setAttribute('alias', v);\n }\n get initData() {\n return this.getAttribute('data');\n }\n set initData(v) {\n this.setAttribute('data', v);\n }\n connectedCallback() {\n if (this.src && this.context === undefined) {\n loadDoricJSBundle(this.src).then(result => {\n this.load(result);\n });\n }\n }\n disconnectedCallback() {\n }\n adoptedCallback() {\n }\n attributeChangedCallback() {\n }\n onDestroy() {\n var _a, _b;\n (_a = this.context) === null || _a === void 0 ? void 0 : _a.onDestroy();\n (_b = this.context) === null || _b === void 0 ? void 0 : _b.teardown();\n }\n load(content) {\n this.context = new DoricContext(content);\n this.context.init(this.initData);\n this.context.onCreate();\n const divElement = document.createElement('div');\n divElement.style.position = 'relative';\n divElement.style.height = '100%';\n this.append(divElement);\n this.context.rootNode.view = divElement;\n this.context.build({\n width: divElement.offsetWidth,\n height: divElement.offsetHeight,\n });\n this.context.onShow();\n }\n}\n//# sourceMappingURL=DoricElement.js.map","import { DoricElement } from \"../DoricElement\";\nexport class NavigationElement extends HTMLElement {\n constructor() {\n super(...arguments);\n this.elementStack = [];\n }\n get currentNode() {\n for (let i = 0; i < this.childNodes.length; i++) {\n if (this.childNodes[i] instanceof DoricElement) {\n return this.childNodes[i];\n }\n }\n return undefined;\n }\n push(element) {\n const currentNode = this.currentNode;\n if (currentNode) {\n this.elementStack.push(currentNode);\n this.replaceChild(element, currentNode);\n }\n else {\n this.appendChild(element);\n }\n }\n pop() {\n const lastElement = this.elementStack.pop();\n const currentNode = this.currentNode;\n if (lastElement && currentNode) {\n this.replaceChild(lastElement, currentNode);\n currentNode.onDestroy();\n }\n else {\n window.history.back();\n }\n }\n}\n//# sourceMappingURL=NavigationElement.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport axios from 'axios';\nimport smoothscroll from 'smoothscroll-polyfill';\nimport { registerDoricJSLoader } from './src/DoricBundleLoader';\nimport { DoricElement } from './src/DoricElement';\nimport { NavigationElement } from './src/navigate/NavigationElement';\nexport * from './src/DoricElement';\nexport * from './src/navigate/NavigationElement';\nexport * from './src/DoricPlugin';\nexport * from './src/DoricRegistry';\nexport * from './src/DoricDriver';\nexport * from './src/shader/DoricViewNode';\nwindow.customElements.define('doric-div', DoricElement);\nwindow.customElements.define('doric-navigation', NavigationElement);\nsmoothscroll.polyfill();\nregisterDoricJSLoader({\n filter: (source) => source.startsWith(\"assets://\"),\n request: (source) => __awaiter(void 0, void 0, void 0, function* () {\n const ret = yield axios.get(source.replace(\"assets://\", `${window.location.href}/../../doric-demo/bundle/`));\n return ret.data;\n })\n});\n//# sourceMappingURL=index.js.map"],"names":["this","axios","LayoutSpec","jsCallResolve","jsCallReject","jsCallbackTimer","jsReleaseContext","jsObtainContext","jsCallEntityMethod","pureCallEntityMethod","__awaiter"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAA;CACA,CAAC,YAAY;AAEb;CACA;CACA,EAAE,SAAS,QAAQ,GAAG;CACtB;CACA,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC;CACnB,IAAI,IAAI,CAAC,GAAG,QAAQ,CAAC;AACrB;CACA;CACA,IAAI;CACJ,MAAM,gBAAgB,IAAI,CAAC,CAAC,eAAe,CAAC,KAAK;CACjD,MAAM,CAAC,CAAC,6BAA6B,KAAK,IAAI;CAC9C,MAAM;CACN,MAAM,OAAO;CACb,KAAK;AACL;CACA;CACA,IAAI,IAAI,OAAO,GAAG,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC;CAC7C,IAAI,IAAI,WAAW,GAAG,GAAG,CAAC;AAC1B;CACA;CACA,IAAI,IAAI,QAAQ,GAAG;CACnB,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,QAAQ;CACpC,MAAM,QAAQ,EAAE,CAAC,CAAC,QAAQ;CAC1B,MAAM,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,aAAa;CAC9D,MAAM,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,cAAc;CACtD,KAAK,CAAC;AACN;CACA;CACA,IAAI,IAAI,GAAG;CACX,MAAM,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,GAAG;CACxC,UAAU,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;CAC/C,UAAU,IAAI,CAAC,GAAG,CAAC;AACnB;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,kBAAkB,CAAC,SAAS,EAAE;CAC3C,MAAM,IAAI,iBAAiB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7D;CACA,MAAM,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CACrE,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,IAAI,kBAAkB,GAAG,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/E;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE;CACjC,MAAM,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;CAC1B,MAAM,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CACzB,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE;CACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAC/C,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,aAAa,CAAC,QAAQ,EAAE;CACrC,MAAM;CACN,QAAQ,QAAQ,KAAK,IAAI;CACzB,QAAQ,OAAO,QAAQ,KAAK,QAAQ;CACpC,QAAQ,QAAQ,CAAC,QAAQ,KAAK,SAAS;CACvC,QAAQ,QAAQ,CAAC,QAAQ,KAAK,MAAM;CACpC,QAAQ,QAAQ,CAAC,QAAQ,KAAK,SAAS;CACvC,QAAQ;CACR;CACA;CACA,QAAQ,OAAO,IAAI,CAAC;CACpB,OAAO;AACP;CACA,MAAM,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,EAAE;CAC1E;CACA,QAAQ,OAAO,KAAK,CAAC;CACrB,OAAO;AACP;CACA;CACA,MAAM,MAAM,IAAI,SAAS;CACzB,QAAQ,mCAAmC;CAC3C,UAAU,QAAQ,CAAC,QAAQ;CAC3B,UAAU,uDAAuD;CACjE,OAAO,CAAC;CACR,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,kBAAkB,CAAC,EAAE,EAAE,IAAI,EAAE;CAC1C,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE;CACxB,QAAQ,OAAO,EAAE,CAAC,YAAY,GAAG,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC;CACtE,OAAO;AACP;CACA,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE;CACxB,QAAQ,OAAO,EAAE,CAAC,WAAW,GAAG,kBAAkB,GAAG,EAAE,CAAC,WAAW,CAAC;CACpE,OAAO;CACP,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE;CACnC,MAAM,IAAI,aAAa,GAAG,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAC1E;CACA,MAAM,OAAO,aAAa,KAAK,MAAM,IAAI,aAAa,KAAK,QAAQ,CAAC;CACpE,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,YAAY,CAAC,EAAE,EAAE;CAC9B,MAAM,IAAI,aAAa,GAAG,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;CAC9E,MAAM,IAAI,aAAa,GAAG,kBAAkB,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9E;CACA,MAAM,OAAO,aAAa,IAAI,aAAa,CAAC;CAC5C,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,oBAAoB,CAAC,EAAE,EAAE;CACtC,MAAM,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,EAAE,CAAC,KAAK,KAAK,EAAE;CAC1D,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI,CAAC;CACtC,OAAO;AACP;CACA,MAAM,OAAO,EAAE,CAAC;CAChB,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,IAAI,CAAC,OAAO,EAAE;CAC3B,MAAM,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC;CACvB,MAAM,IAAI,KAAK,CAAC;CAChB,MAAM,IAAI,QAAQ,CAAC;CACnB,MAAM,IAAI,QAAQ,CAAC;CACnB,MAAM,IAAI,OAAO,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,SAAS,IAAI,WAAW,CAAC;AAC7D;CACA;CACA,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;AAC1C;CACA;CACA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5B;CACA,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;CACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC;AACvE;CACA,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClE;CACA;CACA,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,EAAE;CAC5D,QAAQ,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;CACvD,OAAO;CACP,KAAK;AACL;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAI,SAAS,YAAY,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE;CACpC,MAAM,IAAI,UAAU,CAAC;CACrB,MAAM,IAAI,MAAM,CAAC;CACjB,MAAM,IAAI,MAAM,CAAC;CACjB,MAAM,IAAI,MAAM,CAAC;CACjB,MAAM,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;AAC5B;CACA;CACA,MAAM,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE;CACzB,QAAQ,UAAU,GAAG,CAAC,CAAC;CACvB,QAAQ,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;CAC5C,QAAQ,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;CAC5C,QAAQ,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;CACjC,OAAO,MAAM;CACb,QAAQ,UAAU,GAAG,EAAE,CAAC;CACxB,QAAQ,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC;CAC/B,QAAQ,MAAM,GAAG,EAAE,CAAC,SAAS,CAAC;CAC9B,QAAQ,MAAM,GAAG,aAAa,CAAC;CAC/B,OAAO;AACP;CACA;CACA,MAAM,IAAI,CAAC;CACX,QAAQ,UAAU,EAAE,UAAU;CAC9B,QAAQ,MAAM,EAAE,MAAM;CACtB,QAAQ,SAAS,EAAE,SAAS;CAC5B,QAAQ,MAAM,EAAE,MAAM;CACtB,QAAQ,MAAM,EAAE,MAAM;CACtB,QAAQ,CAAC,EAAE,CAAC;CACZ,QAAQ,CAAC,EAAE,CAAC;CACZ,OAAO,CAAC,CAAC;CACT,KAAK;AACL;CACA;CACA;CACA,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,QAAQ,GAAG,WAAW;CACvC;CACA,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;CACtC,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CAChD,QAAQ,QAAQ,CAAC,MAAM,CAAC,IAAI;CAC5B,UAAU,CAAC;CACX,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;CACzC,cAAc,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CAC/B,cAAc,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ;CAC9C,gBAAgB,SAAS,CAAC,CAAC,CAAC;CAC5B,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;CAC1C;CACA,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS;CACxC,cAAc,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;CAC9B,cAAc,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS;CACxC,gBAAgB,SAAS,CAAC,CAAC,CAAC;CAC5B,gBAAgB,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;CAC1C,SAAS,CAAC;AACV;CACA,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,YAAY,CAAC,IAAI;CACvB,QAAQ,CAAC;CACT,QAAQ,CAAC,CAAC,IAAI;CACd,QAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;CACvC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CAC/B,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;CACtC,QAAQ,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS;CACtC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;CAC9B,YAAY,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW;CACtC,OAAO,CAAC;CACR,KAAK,CAAC;AACN;CACA;CACA,IAAI,CAAC,CAAC,QAAQ,GAAG,WAAW;CAC5B;CACA,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;CACtC,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;CACvC,QAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI;CAC9B,UAAU,CAAC;CACX,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;CACzC,cAAc,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CAC/B,cAAc,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;CACjE,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS;CACxC,cAAc,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;CAC9B,cAAc,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC;CAC3D,SAAS,CAAC;AACV;CACA,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,YAAY,CAAC,IAAI;CACvB,QAAQ,CAAC;CACT,QAAQ,CAAC,CAAC,IAAI;CACd,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;CAC1D,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,WAAW,CAAC;CACzD,OAAO,CAAC;CACR,KAAK,CAAC;AACN;CACA;CACA,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;CACvE;CACA,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;CACtC,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CAChD;CACA,QAAQ,IAAI,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;CAC5E,UAAU,MAAM,IAAI,WAAW,CAAC,8BAA8B,CAAC,CAAC;CAChE,SAAS;AACT;CACA,QAAQ,QAAQ,CAAC,aAAa,CAAC,IAAI;CACnC,UAAU,IAAI;CACd;CACA,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;CACzC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;CACjC,cAAc,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU;CACjF;CACA,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS;CACxC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG;CAChC,cAAc,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;CAC1E,SAAS,CAAC;AACV;CACA,QAAQ,OAAO;CACf,OAAO;AACP;CACA,MAAM,IAAI,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;CACnC,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACjC;CACA;CACA,MAAM,YAAY,CAAC,IAAI;CACvB,QAAQ,IAAI;CACZ,QAAQ,IAAI;CACZ,QAAQ,OAAO,IAAI,KAAK,WAAW,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,IAAI;CAC9D,QAAQ,OAAO,GAAG,KAAK,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG;CAC3D,OAAO,CAAC;CACR,KAAK,CAAC;AACN;CACA;CACA,IAAI,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,WAAW;CAC5C;CACA,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;CACtC,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CAChD,QAAQ,QAAQ,CAAC,aAAa,CAAC,IAAI;CACnC,UAAU,IAAI;CACd,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS;CACzC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;CACnD,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU;CAC9C,UAAU,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS;CACxC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS;CACjD,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS;CAC7C,SAAS,CAAC;AACV;CACA,QAAQ,OAAO;CACf,OAAO;AACP;CACA,MAAM,IAAI,CAAC,MAAM,CAAC;CAClB,QAAQ,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;CACnD,QAAQ,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS;CAChD,QAAQ,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ;CACvC,OAAO,CAAC,CAAC;CACT,KAAK,CAAC;AACN;CACA;CACA,IAAI,OAAO,CAAC,SAAS,CAAC,cAAc,GAAG,WAAW;CAClD;CACA,MAAM,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;CAChD,QAAQ,QAAQ,CAAC,cAAc,CAAC,IAAI;CACpC,UAAU,IAAI;CACd,UAAU,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;CAC1D,SAAS,CAAC;AACV;CACA,QAAQ,OAAO;CACf,OAAO;AACP;CACA;CACA,MAAM,IAAI,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;CACxD,MAAM,IAAI,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,EAAE,CAAC;CACjE,MAAM,IAAI,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;AACrD;CACA,MAAM,IAAI,gBAAgB,KAAK,CAAC,CAAC,IAAI,EAAE;CACvC;CACA,QAAQ,YAAY,CAAC,IAAI;CACzB,UAAU,IAAI;CACd,UAAU,gBAAgB;CAC1B,UAAU,gBAAgB,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI;CAC3E,UAAU,gBAAgB,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,GAAG,WAAW,CAAC,GAAG;CACxE,SAAS,CAAC;AACV;CACA;CACA,QAAQ,IAAI,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,QAAQ,KAAK,OAAO,EAAE;CACvE,UAAU,CAAC,CAAC,QAAQ,CAAC;CACrB,YAAY,IAAI,EAAE,WAAW,CAAC,IAAI;CAClC,YAAY,GAAG,EAAE,WAAW,CAAC,GAAG;CAChC,YAAY,QAAQ,EAAE,QAAQ;CAC9B,WAAW,CAAC,CAAC;CACb,SAAS;CACT,OAAO,MAAM;CACb;CACA,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACnB,UAAU,IAAI,EAAE,WAAW,CAAC,IAAI;CAChC,UAAU,GAAG,EAAE,WAAW,CAAC,GAAG;CAC9B,UAAU,QAAQ,EAAE,QAAQ;CAC5B,SAAS,CAAC,CAAC;CACX,OAAO;CACP,KAAK,CAAC;CACN,GAAG;AACH;CACA,EAAoE;CACpE;CACA,IAAI,cAAc,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;CAC5C,GAGG;AACH;CACA,CAAC,EAAE;;;CChbH,IAAI,SAAS,GAAG,CAACA,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;CACzF,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;CAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;CACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;CACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;CACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;CAC9E,KAAK,CAAC,CAAC;CACP,CAAC,CAAC;CAEF,MAAM,OAAO,GAAG;CAChB,IAAI;CACJ,QAAQ,MAAM,EAAE,MAAM,IAAI;CAC1B,QAAQ,OAAO,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;CAC5E,YAAY,MAAM,MAAM,GAAG,MAAMC,yBAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CACnD,YAAY,OAAO,MAAM,CAAC,IAAI,CAAC;CAC/B,SAAS,CAAC;CACV,KAAK;CACL,CAAC,CAAC;CACK,SAAS,qBAAqB,CAAC,MAAM,EAAE;CAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;CACM,SAAS,iBAAiB,CAAC,MAAM,EAAE;CAC1C,IAAI,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;CACxD,QAAQ,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CAC9D,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;CAChC,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D,SAAS;CACT,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACtE,KAAK,CAAC,CAAC;CACP;;CC9BO,MAAM,WAAW,CAAC;CACzB,IAAI,WAAW,CAAC,OAAO,EAAE;CACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;CAC/B,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,KAAK;CACL;;CCJA,CAAC,UAAU,UAAU,EAAE;CACvB,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;CACtD,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC;CAChE,IAAI,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;CACtD,CAAC,EAAEC,kBAAU,KAAKA,kBAAU,GAAG,EAAE,CAAC,CAAC,CAAC;CACpC,MAAM,SAAS,GAAG,CAAC,CAAC;CACpB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;CACrB,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;CACnB,MAAM,OAAO,GAAG,CAAC,CAAC;CAClB,MAAM,OAAO,GAAG,CAAC,CAAC;AACN,OAAC,IAAI,GAAG,CAAC,KAAK,GAAG,SAAS,KAAK,QAAQ;AACvC,OAAC,KAAK,GAAG,CAAC,GAAG,GAAG,SAAS,KAAK,QAAQ;AACtC,OAAC,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,KAAK,QAAQ;AACtC,OAAC,MAAM,GAAG,CAAC,GAAG,GAAG,SAAS,KAAK,QAAQ;AACvC,OAAC,QAAQ,GAAG,SAAS,IAAI,QAAQ;AACjC,OAAC,QAAQ,GAAG,SAAS,IAAI,QAAQ;AACjC,OAAC,MAAM,GAAG,QAAQ,GAAG,SAAS;CACnC,SAAS,aAAa,CAAC,CAAC,EAAE;CACjC,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CACpB,CAAC;CACM,SAAS,kBAAkB,CAAC,CAAC,EAAE;CACtC,IAAI,OAAO,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC;CACM,SAAS,YAAY,CAAC,KAAK,EAAE;CACpC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;CAClB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;CACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;CACzC,KAAK;CACL,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;CAC1B;CACA,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CACrE,CAAC;CACM,MAAM,aAAa,CAAC;CAC3B,IAAI,WAAW,CAAC,OAAO,EAAE;CACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;CACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;CAC/B,QAAQ,IAAI,CAAC,YAAY,GAAG;CAC5B,YAAY,SAAS,EAAEA,kBAAU,CAAC,OAAO;CACzC,YAAY,UAAU,EAAEA,kBAAU,CAAC,OAAO;CAC1C,YAAY,SAAS,EAAE,CAAC;CACxB,YAAY,MAAM,EAAE,CAAC;CACrB,YAAY,MAAM,EAAE;CACpB,gBAAgB,IAAI,EAAE,CAAC;CACvB,gBAAgB,KAAK,EAAE,CAAC;CACxB,gBAAgB,GAAG,EAAE,CAAC;CACtB,gBAAgB,MAAM,EAAE,CAAC;CACzB,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,IAAI,CAAC,OAAO,GAAG;CACvB,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,KAAK,EAAE,CAAC;CACpB,YAAY,GAAG,EAAE,CAAC;CAClB,YAAY,MAAM,EAAE,CAAC;CACrB,SAAS,CAAC;CACV,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACzB,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACzB,QAAQ,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;CACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;CAC5B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;CAC/B,KAAK;CACL,IAAI,IAAI,CAAC,SAAS,EAAE;CACpB,QAAQ,IAAI,SAAS,EAAE;CACvB,YAAY,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CACvC,YAAY,IAAI,IAAI,YAAY,cAAc,EAAE;CAChD,gBAAgB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;CACnD,aAAa;CACb,SAAS;CACT,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;CACjC,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;CACtD,KAAK;CACL,IAAI,IAAI,WAAW,GAAG;CACtB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;CACtC,KAAK;CACL,IAAI,IAAI,YAAY,GAAG;CACvB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;CACvC,KAAK;CACL,IAAI,IAAI,UAAU,GAAG;CACrB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CACrC,KAAK;CACL,IAAI,IAAI,aAAa,GAAG;CACxB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;CACxC,KAAK;CACL,IAAI,IAAI,WAAW,GAAG;CACtB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;CACvF,KAAK;CACL,IAAI,KAAK,CAAC,KAAK,EAAE;CACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC,QAAQ,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;CAC/B,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;CACxD,SAAS;CACT,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;CAC1B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;CACtB,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,KAAK;CACL,IAAI,YAAY,GAAG;CACnB,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;CACzB,YAAY,IAAI,CAAC,aAAa,CAAC;CAC/B,gBAAgB,WAAW,EAAE,OAAO;CACpC,gBAAgB,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CAC7D,gBAAgB,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;CAC5D,aAAa,CAAC,CAAC;CACf,SAAS;CACT,KAAK;CACL,IAAI,WAAW,GAAG;CAClB,QAAQ,IAAI,KAAK,CAAC;CAClB,QAAQ,QAAQ,IAAI,CAAC,YAAY,CAAC,SAAS;CAC3C,YAAY,KAAKA,kBAAU,CAAC,YAAY;CACxC,gBAAgB,KAAK,GAAG,aAAa,CAAC;CACtC,gBAAgB,MAAM;CACtB,YAAY,KAAKA,kBAAU,CAAC,OAAO;CACnC,gBAAgB,KAAK,GAAG,MAAM,CAAC;CAC/B,gBAAgB,MAAM;CACtB,YAAY,KAAKA,kBAAU,CAAC,OAAO,CAAC;CACpC,YAAY;CACZ,gBAAgB,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU;CACrD,sBAAsB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY;CAC1D,sBAAsB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;CAC5C,gBAAgB,MAAM;CACtB,SAAS;CACT,QAAQ,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;CACtC,KAAK;CACL,IAAI,YAAY,GAAG;CACnB,QAAQ,IAAI,MAAM,CAAC;CACnB,QAAQ,QAAQ,IAAI,CAAC,YAAY,CAAC,UAAU;CAC5C,YAAY,KAAKA,kBAAU,CAAC,YAAY;CACxC,gBAAgB,MAAM,GAAG,aAAa,CAAC;CACvC,gBAAgB,MAAM;CACtB,YAAY,KAAKA,kBAAU,CAAC,OAAO;CACnC,gBAAgB,MAAM,GAAG,MAAM,CAAC;CAChC,gBAAgB,MAAM;CACtB,YAAY,KAAKA,kBAAU,CAAC,OAAO,CAAC;CACpC,YAAY;CACZ,gBAAgB,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW;CACvD,sBAAsB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa;CAC1D,sBAAsB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;CAC5C,gBAAgB,MAAM;CACtB,SAAS;CACT,QAAQ,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC,KAAK;CACL,IAAI,YAAY,GAAG;CACnB,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;CACtC,YAAY,IAAI,CAAC,aAAa,CAAC;CAC/B,gBAAgB,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC;CAC7E,gBAAgB,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;CAC/E,gBAAgB,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;CAC3E,gBAAgB,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;CACjF,aAAa,CAAC,CAAC;CACf,SAAS;CACT,KAAK;CACL,IAAI,aAAa,GAAG;CACpB,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;CAC1B,YAAY,IAAI,CAAC,aAAa,CAAC;CAC/B,gBAAgB,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;CAC5D,gBAAgB,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC;CAC9D,gBAAgB,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;CAC1D,gBAAgB,aAAa,EAAE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;CAChE,aAAa,CAAC,CAAC;CACf,SAAS;CACT,KAAK;CACL,IAAI,MAAM,GAAG;CACb,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;CAC5B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;CAC5B,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;CAC7B,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;CAC3B,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;CAC5B,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,QAAQ,QAAQ;CACxB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;CACnC,gBAAgB,MAAM;CACtB,YAAY,KAAK,SAAS;CAC1B,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACpC,gBAAgB,MAAM;CACtB,YAAY,KAAK,OAAO;CACxB,gBAAgB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;CACvC,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;CACxC,gBAAgB,MAAM;CACtB,YAAY,KAAK,iBAAiB;CAClC,gBAAgB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;CAC5C,gBAAgB,MAAM;CACtB,YAAY,KAAK,cAAc;CAC/B,gBAAgB,MAAM,YAAY,GAAG,IAAI,CAAC;CAC1C,gBAAgB,KAAK,IAAI,GAAG,IAAI,YAAY,EAAE;CAC9C,oBAAoB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;CACtG,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY,KAAK,GAAG;CACpB,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACpC,gBAAgB,MAAM;CACtB,YAAY,KAAK,GAAG;CACpB,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CACpC,gBAAgB,MAAM;CACtB,YAAY,KAAK,SAAS;CAC1B,gBAAgB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK;CAC/C,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;CAC9C,oBAAoB,KAAK,CAAC,eAAe,EAAE,CAAC;CAC5C,iBAAiB,CAAC;CAClB,gBAAgB,MAAM;CACtB,YAAY,KAAK,SAAS;CAC1B,gBAAgB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;CAC9C,oBAAoB,IAAI,CAAC,aAAa,CAAC;CACvC,wBAAwB,mBAAmB,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;CACxE,wBAAwB,oBAAoB,EAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC1E,wBAAwB,uBAAuB,EAAE,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;CAChF,wBAAwB,sBAAsB,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;CAC9E,qBAAqB,CAAC,CAAC;CACvB,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,IAAI,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC9E,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;CAClD,gBAAgB,IAAI,SAAS,CAAC;CAC9B,gBAAgB,IAAI,OAAO,GAAG,CAAC,EAAE;CACjC,oBAAoB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;CACtD,oBAAoB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;CACtD,oBAAoB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC;CACjE,oBAAoB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;CACrD,oBAAoB,MAAM,KAAK,GAAG,OAAO,GAAG,GAAG,CAAC;CAChD,oBAAoB,SAAS,GAAG,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,WAAW,GAAG,QAAQ,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzL,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,SAAS,GAAG,EAAE,CAAC;CACnC,iBAAiB;CACjB,gBAAgB,IAAI,CAAC,aAAa,CAAC;CACnC,oBAAoB,SAAS;CAC7B,iBAAiB,CAAC,CAAC;CACnB,gBAAgB,MAAM;CACtB,YAAY,KAAK,OAAO;CACxB,gBAAgB,IAAI,CAAC,aAAa,CAAC;CACnC,oBAAoB,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;CACtC,iBAAiB,CAAC,CAAC;CACnB,gBAAgB,MAAM;CACtB,YAAY,KAAK,UAAU;CAC3B,gBAAgB,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC/C,gBAAgB,MAAM;CACtB,YAAY,KAAK,WAAW;CAC5B,gBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;CAChD,gBAAgB,MAAM;CACtB,YAAY,KAAK,WAAW;CAC5B,gBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;CAChD,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;CAC7C,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;CAC7C,gBAAgB,MAAM;CACtB,YAAY,KAAK,cAAc;CAC/B,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;CACjD,gBAAgB,MAAM;CACtB,YAAY,KAAK,cAAc;CAC/B,gBAAgB,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;CACjD,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE;CAC1C,oBAAoB,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;CAClD,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,IAAI,CAAC,eAAe,GAAG;CAC3C,wBAAwB,CAAC,EAAE,IAAI;CAC/B,wBAAwB,CAAC,EAAE,GAAG;CAC9B,qBAAqB,CAAC;CACtB,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,IAAI,CAAC,eAAe,EAAE;CAC1C,oBAAoB,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC;CAClD,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,IAAI,CAAC,eAAe,GAAG;CAC3C,wBAAwB,CAAC,EAAE,GAAG;CAC9B,wBAAwB,CAAC,EAAE,IAAI;CAC/B,qBAAqB,CAAC;CACtB,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,CAAC,aAAa,CAAC;CACnC,oBAAoB,OAAO,EAAE,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,cAAc;CACzE,iBAAiB,CAAC,CAAC;CACnB,gBAAgB,MAAM;CACtB,YAAY;CACZ,gBAAgB,OAAO,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;CACnE,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK;CACL,IAAI,IAAI,eAAe,CAAC,CAAC,EAAE;CAC3B,QAAQ,IAAI,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACjE,KAAK;CACL,IAAI,OAAO,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE;CACjC,QAAQ,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;CACpD,QAAQ,IAAI,aAAa,KAAK,SAAS,EAAE;CACzC,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CAC9D,YAAY,OAAO,SAAS,CAAC;CAC7B,SAAS;CACT,QAAQ,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;CAC/C,QAAQ,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC5B,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,MAAM,GAAG,GAAG,EAAE,CAAC;CACvB,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC;CAC5B,QAAQ,GAAG;CACX,YAAY,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CACtC,YAAY,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC;CAC1C,SAAS,QAAQ,QAAQ,EAAE;CAC3B,QAAQ,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;CAC7B,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;CACpC,QAAQ,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;CACzE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACnD,YAAY,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;CAC3F,KAAK;CACL,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE;CACxC,QAAQ,MAAM,aAAa,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;CACzE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACnD,YAAY,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;CAC/F,KAAK;CACL,IAAI,eAAe,GAAG;CACtB,QAAQ,IAAI,CAAC,aAAa,CAAC;CAC3B,YAAY,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;CACvF,gBAAgB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CACpC,gBAAgB,QAAQ,CAAC,CAAC,CAAC,CAAC;CAC5B,oBAAoB,KAAK,YAAY;CACrC,wBAAwB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;CACpD,oBAAoB,KAAK,QAAQ;CACjC,wBAAwB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C,oBAAoB,KAAK,QAAQ;CACjC,wBAAwB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C,oBAAoB,KAAK,UAAU;CACnC,wBAAwB,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;CACtD,oBAAoB,KAAK,WAAW;CACpC,wBAAwB,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;CACvD,oBAAoB,KAAK,WAAW;CACpC,wBAAwB,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;CACvD,oBAAoB;CACpB,wBAAwB,OAAO,CAAC,KAAK,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1E,wBAAwB,OAAO,EAAE,CAAC;CAClC,iBAAiB;CACjB,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;CACxB,SAAS,CAAC,CAAC;CACX,KAAK;CACL,IAAI,qBAAqB,GAAG;CAC5B,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;CAClC,YAAY,IAAI,CAAC,aAAa,CAAC;CAC/B,gBAAgB,eAAe,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5H,aAAa,CAAC,CAAC;CACf,SAAS;CACT,KAAK;CACL,IAAI,aAAa,CAAC,QAAQ,EAAE;CAC5B,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE;CACxC,YAAY,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;CACtD,SAAS;CACT,aAAa;CACb,YAAY,KAAK,IAAI,CAAC,IAAI,QAAQ,EAAE;CACpC,gBAAgB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7D,aAAa;CACb,SAAS;CACT,KAAK;CACL;CACA,IAAI,QAAQ,GAAG;CACf,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;CACrC,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;CACtC,KAAK;CACL,IAAI,QAAQ,CAAC,CAAC,EAAE;CAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CACjD,KAAK;CACL,IAAI,SAAS,CAAC,CAAC,EAAE;CACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CAClD,KAAK;CACL,IAAI,IAAI,GAAG;CACX,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;CACpC,KAAK;CACL,IAAI,IAAI,GAAG;CACX,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;CACnC,KAAK;CACL,IAAI,IAAI,CAAC,CAAC,EAAE;CACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CAChD,KAAK;CACL,IAAI,IAAI,CAAC,CAAC,EAAE;CACZ,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CAC/C,KAAK;CACL,IAAI,kBAAkB,GAAG;CACzB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;CAC/C,KAAK;CACL,IAAI,kBAAkB,CAAC,CAAC,EAAE;CAC1B,QAAQ,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;CACjC,KAAK;CACL,IAAI,QAAQ,GAAG;CACf,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACnD,KAAK;CACL,IAAI,QAAQ,CAAC,CAAC,EAAE;CAChB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACzC,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;CACxD,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE;CAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CACxD,KAAK;CACL,IAAI,mBAAmB,GAAG;CAC1B,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;CACnD,QAAQ,OAAO;CACf,YAAY,CAAC,EAAE,IAAI,CAAC,IAAI;CACxB,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG;CACvB,SAAS,CAAC;CACV,KAAK;CACL,IAAI,WAAW,GAAG;CAClB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;CACvC,KAAK;CACL,IAAI,WAAW,CAAC,CAAC,EAAE;CACnB,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;CACpC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,YAAY,GAAG;CACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;CACxC,KAAK;CACL,IAAI,YAAY,CAAC,CAAC,EAAE;CACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;CACrC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,YAAY,GAAG;CACnB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;CACxC,KAAK;CACL,IAAI,YAAY,CAAC,CAAC,EAAE;CACpB,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;CACrC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,eAAe,GAAG;CACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;CACzC,KAAK;CACL,IAAI,eAAe,CAAC,CAAC,EAAE;CACvB,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC;CACtC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,eAAe,GAAG;CACtB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;CACzC,KAAK;CACL,IAAI,eAAe,CAAC,CAAC,EAAE;CACvB,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC;CACtC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;CACrC,KAAK;CACL,IAAI,SAAS,CAAC,CAAC,EAAE;CACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;CAClC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;CACrC,KAAK;CACL,IAAI,SAAS,CAAC,CAAC,EAAE;CACjB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;CAClC,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;CAC9F,KAAK;CACL,IAAI,SAAS,CAAC,CAAC,EAAE;CACjB,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;CAClC,YAAY,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;CACvC,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,eAAe,GAAG;CACnC,gBAAgB,CAAC,EAAE,CAAC;CACpB,gBAAgB,CAAC,EAAE,GAAG;CACtB,aAAa,CAAC;CACd,SAAS;CACT,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC;CAC9F,KAAK;CACL,IAAI,SAAS,CAAC,CAAC,EAAE;CACjB,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE;CAClC,YAAY,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC;CACvC,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,eAAe,GAAG;CACnC,gBAAgB,CAAC,EAAE,GAAG;CACtB,gBAAgB,CAAC,EAAE,CAAC;CACpB,aAAa,CAAC;CACd,SAAS;CACT,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,CAAC;CACM,MAAM,cAAc,SAAS,aAAa,CAAC;CAClD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAC9B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC;CACjC,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE;CACrC,YAAY,IAAI,IAAI,YAAY,KAAK,EAAE;CACvC,gBAAgB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;CACpC,oBAAoB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CAC1C,oBAAoB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CACzC,iBAAiB,CAAC,CAAC;CACnB,aAAa;CACb,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,aAAa,CAAC,OAAO,EAAE;CAC3B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;CACtD,QAAQ,IAAI,QAAQ,EAAE;CACtB,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;CAC1C,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;CACpD,SAAS;CACT,KAAK;CACL,IAAI,WAAW,CAAC,EAAE,EAAE;CACpB,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CACtC,KAAK;CACL,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE;CACvB,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE;CACnC,YAAY,IAAI,GAAG,KAAK,UAAU,EAAE;CACpC,gBAAgB,SAAS;CACzB,aAAa;CACb,YAAY,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;CACxE,SAAS;CACT,KAAK;CACL,IAAI,cAAc,GAAG;CACrB,QAAQ,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,cAAc,CAAC,EAAE,EAAE;CACvB,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;CAClC,KAAK;CACL,CAAC;CACM,MAAM,kBAAkB,SAAS,cAAc,CAAC;CACvD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;CAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,IAAI,CAAC,SAAS,EAAE;CACpB,QAAQ,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CAC5C,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,UAAU,EAAE;CACrC,YAAY,IAAI,IAAI,YAAY,KAAK,EAAE;CACvC,gBAAgB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;CACzC,aAAa;CACb,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,KAAK,CAAC,KAAK,EAAE;CACjB,QAAQ,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CAC3B,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;CAC3B,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;CAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;CACpD,KAAK;CACL,IAAI,eAAe,GAAG;CACtB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK;CAC1D,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;CACxD,YAAY,IAAI,KAAK,KAAK,SAAS,EAAE;CACrC,gBAAgB,OAAO;CACvB,aAAa;CACb,YAAY,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;CAChD,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CACvD,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAEnC;CACjB,qBAAqB;CACrB,oBAAoB,IAAI,IAAI,CAAC,QAAQ,EAAE;CACvC,wBAAwB,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,EAAE;CAC7D;CACA,4BAA4B,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;CACzD,4BAA4B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACvD,yBAAyB;CACzB,6BAA6B;CAC7B;CACA,4BAA4B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE,4BAA4B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAC3F,4BAA4B,IAAI,OAAO,KAAK,SAAS,EAAE;CACvD,gCAAgC,OAAO;CACvC,6BAA6B;CAC7B,4BAA4B,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;CACzD,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAC/C,4BAA4B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACvD,4BAA4B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;CAC7D,4BAA4B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/E,yBAAyB;CACzB,qBAAqB;CACrB,yBAAyB;CACzB;CACA,wBAAwB,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;CAC1C,wBAAwB,KAAK,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;CAC7F,4BAA4B,IAAI,WAAW,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;CAC/E;CACA,gCAAgC,QAAQ,GAAG,KAAK,CAAC;CACjD,gCAAgC,MAAM;CACtC,6BAA6B;CAC7B,yBAAyB;CACzB,wBAAwB,IAAI,QAAQ,IAAI,CAAC,EAAE;CAC3C;CACA,4BAA4B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;CACrE,4BAA4B,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;CACrE,4BAA4B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;CAC5D,4BAA4B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;CAClE,4BAA4B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC/D,4BAA4B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CAChF,4BAA4B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CAClE,4BAA4B,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,EAAE;CAC9E,gCAAgC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CACtE,6BAA6B;CAC7B,iCAAiC;CACjC,gCAAgC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;CACrG,6BAA6B;CAC7B,yBAAyB;CACzB,6BAA6B;CAC7B;CACA,4BAA4B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAC3F,4BAA4B,IAAI,OAAO,KAAK,SAAS,EAAE;CACvD,gCAAgC,OAAO;CACvC,6BAA6B;CAC7B,4BAA4B,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;CACzD,4BAA4B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAC/C,4BAA4B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACvD,4BAA4B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;CAC7D,4BAA4B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;CAC5F,yBAAyB;CACzB,qBAAqB;CACrB,iBAAiB;CACjB,aAAa;CACb,iBAAiB;CACjB;CACA,gBAAgB,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAC/E,gBAAgB,IAAI,OAAO,KAAK,SAAS,EAAE;CAC3C,oBAAoB,OAAO;CAC3B,iBAAiB;CACjB,gBAAgB,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;CAC7C,gBAAgB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACnC,gBAAgB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CAC3C,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CAC9C,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,aAAa;CACb,SAAS,CAAC,CAAC;CACX,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;CAC1C,QAAQ,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE;CACpE,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;CAC7D,SAAS;CACT,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;CAC7E,KAAK;CACL,IAAI,YAAY,CAAC,KAAK,EAAE;CACxB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACxG,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE;CAC3B,QAAQ,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACnE,KAAK;CACL;;CC1qBO,MAAM,YAAY,SAAS,WAAW,CAAC;CAC9C,IAAI,MAAM,CAAC,GAAG,EAAE;CAChB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;CACtG,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;CACjE,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;CAC1F,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;CACrF,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;CAClD,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;CACnD,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;CAC9C,SAAS;CACT,KAAK;CACL,IAAI,OAAO,CAAC,OAAO,EAAE;CACrB,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAAC;CACjC,QAAQ,KAAK,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE;CAC5C,YAAY,IAAI,CAAC,QAAQ,EAAE;CAC3B,gBAAgB,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;CAC/D,aAAa;CACb,iBAAiB;CACjB,gBAAgB,IAAI,QAAQ,YAAY,cAAc,EAAE;CACxD,oBAAoB,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;CAC/D,iBAAiB;CACjB,aAAa;CACb,SAAS;CACT,QAAQ,IAAI,CAAC,QAAQ,EAAE;CACvB,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;CAC/D,SAAS;CACT,aAAa;CACb,YAAY,MAAM,MAAM,GAAG,QAAQ,CAAC;CACpC,YAAY,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;CACpD,gBAAgB,IAAI;CACpB,oBAAoB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE,oBAAoB,IAAI,CAAC,MAAM,EAAE;CACjC,wBAAwB,MAAM,CAAC,CAAC,oCAAoC,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;CACxG,qBAAqB;CACrB,oBAAoB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3E,iBAAiB;CACjB,gBAAgB,OAAO,GAAG,EAAE;CAC5B,oBAAoB,MAAM,CAAC,GAAG,CAAC,CAAC;CAChC,iBAAiB;CACjB,aAAa,CAAC,CAAC;CACf,SAAS;CACT,KAAK;CACL;;CC9CO,MAAM,cAAc,SAAS,kBAAkB,CAAC;CACvD,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;CACxC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,MAAM,GAAG;CACb,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;CACvB,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI;CACpC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;CAC9B,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;CAChC,SAAS,CAAC,CAAC;CACX,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,KAAKA,kBAAU,CAAC,YAAY,EAAE;CACrE,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK;CACpE,gBAAgB,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E,gBAAgB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;CAC9D,sBAAsB,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC;CAClE,sBAAsB,kBAAkB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;CACrE,aAAa,EAAE,CAAC,CAAC,CAAC;CAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;CACzD,SAAS;CACT,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,KAAKA,kBAAU,CAAC,YAAY,EAAE;CACtE,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,KAAK;CACrE,gBAAgB,MAAM,aAAa,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5E,gBAAgB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY;CAC/D,sBAAsB,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC;CACjE,sBAAsB,kBAAkB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC;CACtE,aAAa,EAAE,CAAC,CAAC,CAAC;CAClB,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3D,SAAS;CACT,KAAK;CACL,IAAI,YAAY,GAAG;CACnB,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI;CACrC,YAAY,MAAM,QAAQ,GAAG,UAAU,CAAC;CACxC,YAAY,IAAI,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;CACnE,YAAY,IAAI,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;CACjE,YAAY,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;CACrD,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,IAAI,EAAE;CAC3C,gBAAgB,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CACxC,aAAa;CACb,iBAAiB,IAAI,CAAC,OAAO,GAAG,KAAK,MAAM,KAAK,EAAE;CAClD,gBAAgB,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CACjF,aAAa;CACb,iBAAiB,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CACxD,gBAAgB,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;CACzF,aAAa;CACb,YAAY,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,GAAG,EAAE;CACzC,gBAAgB,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;CACvC,aAAa;CACb,iBAAiB,IAAI,CAAC,OAAO,GAAG,MAAM,MAAM,MAAM,EAAE;CACpD,gBAAgB,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;CAClF,aAAa;CACb,iBAAiB,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CACxD,gBAAgB,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;CAC1F,aAAa;CACb,YAAY,CAAC,CAAC,aAAa,CAAC;CAC5B,gBAAgB,QAAQ;CACxB,gBAAgB,IAAI;CACpB,gBAAgB,GAAG;CACnB,aAAa,CAAC,CAAC;CACf,SAAS,CAAC,CAAC;CACX,KAAK;CACL;;CChEO,MAAM,gBAAgB,SAAS,kBAAkB,CAAC;CACzD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACvB,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACzB,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;CACnC,QAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;CAC3C,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACtC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE;CAClC,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CAC9B,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,SAAS,EAAE;CACzC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CAChC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,IAAI,EAAE;CAChD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;CAC1D,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,MAAM,KAAK,EAAE;CACvD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;CACxD,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CAC7D,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CACtD,aAAa;CACb,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,GAAG,EAAE;CAC9C,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;CAC9D,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,MAAM,MAAM,EAAE;CACzD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;CAC5D,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CAC7D,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;CAC1D,aAAa;CACb,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,MAAM,GAAG;CACb,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;CACvB,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;CAC5C,YAAY,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CACvD,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;CAC1C,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;CACtF,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;CAC9G,aAAa;CACb,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;CACnL,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;CAC3G,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;CACvJ,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;CACrL,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;CACvL,YAAY,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,MAAM,IAAI,EAAE;CAC5D,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;CACtD,aAAa;CACb,iBAAiB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE;CACnE,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;CACpD,aAAa;CACb,iBAAiB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,QAAQ,MAAM,QAAQ,EAAE;CACzE,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CAClD,aAAa;CACb,SAAS,CAAC,CAAC;CACX,KAAK;CACL;;CClEO,MAAM,gBAAgB,SAAS,kBAAkB,CAAC;CACzD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACvB,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;CACzB,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;CACnC,QAAQ,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;CACxC,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACtC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE;CAClC,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;CAC9B,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,SAAS,EAAE;CACzC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CAChC,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;CAChC,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,IAAI,EAAE;CAChD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;CAC9D,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,MAAM,KAAK,EAAE;CACvD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;CAC5D,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CAC7D,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;CAC1D,aAAa;CACb,YAAY,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,GAAG,EAAE;CAC9C,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;CAC1D,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,MAAM,MAAM,MAAM,EAAE;CACzD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;CACxD,aAAa;CACb,iBAAiB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CAC7D,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CACtD,aAAa;CACb,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,MAAM,GAAG;CACb,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;CACvB,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK;CAC5C,YAAY,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CACvD,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC;CAC1C,YAAY,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;CACtF,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;CAC9G,aAAa;CACb,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;CACrL,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;CAC1G,mBAAmB,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;CACtJ,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;CACnL,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;CACzL,YAAY,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,GAAG,MAAM,GAAG,EAAE;CAC1D,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,YAAY,CAAC;CACtD,aAAa;CACb,iBAAiB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,MAAM,MAAM,MAAM,EAAE;CACrE,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,CAAC;CACpD,aAAa;CACb,iBAAiB,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,QAAQ,MAAM,QAAQ,EAAE;CACzE,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CAClD,aAAa;CACb,SAAS,CAAC,CAAC;CACX,KAAK;CACL;;CCnEO,MAAM,aAAa,SAAS,aAAa,CAAC;CACjD,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;CACnC,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1D,QAAQ,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAC1C,QAAQ,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;CAC5C,QAAQ,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CACxC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,QAAQ,QAAQ;CACxB,YAAY,KAAK,MAAM;CACvB,gBAAgB,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC;CAClD,gBAAgB,MAAM;CACtB,YAAY,KAAK,UAAU;CAC3B,gBAAgB,CAAC,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;CACvD,gBAAgB,MAAM;CACtB,YAAY,KAAK,WAAW;CAC5B,gBAAgB,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACnD,gBAAgB,MAAM;CACtB,YAAY,KAAK,eAAe;CAChC,gBAAgB,MAAM,OAAO,GAAG,IAAI,CAAC;CACrC,gBAAgB,IAAI,CAAC,OAAO,GAAG,IAAI,MAAM,IAAI,EAAE;CAC/C,oBAAoB,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,YAAY,CAAC;CAC1D,iBAAiB;CACjB,qBAAqB,IAAI,CAAC,OAAO,GAAG,KAAK,MAAM,KAAK,EAAE;CACtD,oBAAoB,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,UAAU,CAAC;CACxD,iBAAiB;CACjB,qBAAqB,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CAC5D,oBAAoB,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;CACtD,iBAAiB;CACjB,gBAAgB,IAAI,CAAC,OAAO,GAAG,GAAG,MAAM,GAAG,EAAE;CAC7C,oBAAoB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC;CACtD,iBAAiB;CACjB,qBAAqB,IAAI,CAAC,OAAO,GAAG,MAAM,MAAM,MAAM,EAAE;CACxD,oBAAoB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;CACpD,iBAAiB;CACjB,qBAAqB,IAAI,CAAC,OAAO,GAAG,QAAQ,MAAM,QAAQ,EAAE;CAC5D,oBAAoB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CAClD,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY,KAAK,WAAW;CAC5B,gBAAgB,QAAQ,IAAI;CAC5B,oBAAoB,KAAK,MAAM;CAC/B,wBAAwB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;CACpD,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CACrD,wBAAwB,MAAM;CAC9B,oBAAoB,KAAK,QAAQ;CACjC,wBAAwB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CACtD,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CACrD,wBAAwB,MAAM;CAC9B,oBAAoB,KAAK,aAAa;CACtC,wBAAwB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;CACpD,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CACrD,wBAAwB,MAAM;CAC9B,oBAAoB;CACpB,wBAAwB,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CACtD,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CACrD,wBAAwB,MAAM;CAC9B,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY;CACZ,gBAAgB,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CACpD,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK;CACL;;CCnEA,IAAI,SAAS,CAAC;CACd,CAAC,UAAU,SAAS,EAAE;CACtB,IAAI,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC;CAC5D,IAAI,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC;CAClE,IAAI,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC;CACpE,CAAC,EAAE,SAAS,KAAK,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;CAC3B,MAAM,cAAc,SAAS,aAAa,CAAC;CAClD,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;CACrC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,QAAQ,QAAQ;CACxB,YAAY,KAAK,UAAU;CAC3B,gBAAgB,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;CAC5C,gBAAgB,MAAM;CACtB,YAAY,KAAK,aAAa;CAC9B,gBAAgB,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;CAC5C,gBAAgB,MAAM;CACtB,YAAY,KAAK,cAAc;CAC/B,gBAAgB,CAAC,CAAC,MAAM,GAAG,MAAM;CACjC,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;CAC9C,wBAAwB,KAAK,EAAE,CAAC,CAAC,KAAK;CACtC,wBAAwB,MAAM,EAAE,CAAC,CAAC,MAAM;CACxC,qBAAqB,CAAC,CAAC;CACvB,iBAAiB,CAAC;CAClB,gBAAgB,MAAM;CACtB,YAAY,KAAK,WAAW;CAC5B,gBAAgB,QAAQ,IAAI;CAC5B,oBAAoB,KAAK,SAAS,CAAC,WAAW;CAC9C,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;CACnD,wBAAwB,MAAM;CAC9B,oBAAoB,KAAK,SAAS,CAAC,cAAc;CACjD,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;CACtD,wBAAwB,MAAM;CAC9B,oBAAoB,KAAK,SAAS,CAAC,eAAe;CAClD,wBAAwB,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC;CACpD,wBAAwB,MAAM;CAC9B,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,IAAI,EAAE;CAC1B,oBAAoB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;CACjD,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC;CACxC,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY;CACZ,gBAAgB,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CACpD,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK;CACL;;CCtDO,MAAM,iBAAiB,SAAS,cAAc,CAAC;CACtD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;CAC9B,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACtC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;CACpC,YAAY,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;CACpC,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,YAAY,CAAC,KAAK,EAAE;CACxB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACzF,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE;CAC3B,QAAQ,OAAO,MAAM,KAAK,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CACxE,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;CAC3B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CACzD,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;CACjC,YAAY,OAAO;CACnB,SAAS;CACT,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;CAC5B,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,EAAE,CAE/C;CACb,iBAAiB;CACjB,gBAAgB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,EAAE;CAC7E,oBAAoB,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;CACrD,oBAAoB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACtD,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CAC/D,oBAAoB,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACrF,oBAAoB,IAAI,SAAS,KAAK,SAAS,EAAE;CACjD,wBAAwB,OAAO;CAC/B,qBAAqB;CACrB,oBAAoB,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;CAChD,oBAAoB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACzC,oBAAoB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACjD,oBAAoB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CAC1D,oBAAoB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CAC/C,iBAAiB;CACjB,aAAa;CACb,SAAS;CACT,aAAa;CACb,YAAY,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CAC7E,YAAY,IAAI,SAAS,KAAK,SAAS,EAAE;CACzC,gBAAgB,OAAO;CACvB,aAAa;CACb,YAAY,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;CACxC,YAAY,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACjC,YAAY,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACzC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;CAClD,YAAY,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;CACvC,SAAS;CACT,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;CAC1B,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;CAClF,KAAK;CACL;;CCtEO,MAAM,WAAW,SAAS,WAAW,CAAC;CAC7C,IAAI,KAAK,CAAC,IAAI,EAAE;CAChB,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAC3D,QAAQ,YAAY,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;CACjD,QAAQ,YAAY,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;CAChD,QAAQ,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CAC1C,QAAQ,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CAC3D,QAAQ,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;CAC/C,QAAQ,WAAW,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;CACtD,QAAQ,WAAW,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC;CAC1C,QAAQ,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC;CAC/C,QAAQ,WAAW,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;CAChD,QAAQ,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;CAC9C,QAAQ,WAAW,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;CACjD,QAAQ,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;CAC9C,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;CAChD,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;CAC/C,QAAQ,IAAI,CAAC,OAAO,GAAG,GAAG,KAAK,GAAG,EAAE;CACpC,YAAY,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;CACvD,SAAS;CACT,aAAa,IAAI,CAAC,OAAO,GAAG,MAAM,KAAK,MAAM,EAAE;CAC/C,YAAY,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;CAC1D,SAAS;CACT,aAAa,IAAI,CAAC,OAAO,GAAG,QAAQ,KAAK,QAAQ,EAAE;CACnD,YAAY,YAAY,CAAC,KAAK,CAAC,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,YAAY,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;CACnH,SAAS;CACT,QAAQ,UAAU,CAAC,MAAM;CACzB,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;CACpD,SAAS,EAAE,IAAI,CAAC,CAAC;CACjB,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,KAAK,CAAC,IAAI,EAAE;CAChB,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;CACrC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,OAAO,CAAC,IAAI,EAAE;CAClB,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;CAC5C,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACrC,SAAS;CACT,aAAa;CACb,YAAY,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC;CACpC,SAAS;CACT,KAAK;CACL,IAAI,MAAM,CAAC,IAAI,EAAE;CACjB,QAAQ,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;CACvE,QAAQ,IAAI,MAAM,EAAE;CACpB,YAAY,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C,SAAS;CACT,aAAa;CACb,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAC1C,SAAS;CACT,KAAK;CACL;;CCrDO,MAAM,aAAa,SAAS,WAAW,CAAC;CAC/C,IAAI,OAAO,CAAC,IAAI,EAAE;CAClB,QAAQ,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;CACrE,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,OAAO,CAAC,IAAI,EAAE;CAClB,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACjF,KAAK;CACL,IAAI,MAAM,CAAC,IAAI,EAAE;CACjB,QAAQ,YAAY,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5D,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,KAAK,CAAC,IAAI,EAAE;CAChB,QAAQ,IAAI,YAAY,GAAG,EAAE,CAAC;CAC9B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACtD,YAAY,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5C,YAAY,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;CACxD,gBAAgB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACvC,aAAa;CACb,SAAS;CACT,QAAQ,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI;CAClC,YAAY,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CACvC,SAAS,CAAC,CAAC;CACX,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL;;CCxBO,MAAM,eAAe,SAAS,WAAW,CAAC;CACjD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;CAC/E,KAAK;CACL,IAAI,IAAI,CAAC,IAAI,EAAE;CACf,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;CAC7B,YAAY,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC;CACzC,YAAY,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;CAClC,YAAY,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC;CAC1G,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CACtC,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACrC,SAAS;CACT,aAAa;CACb,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;CACrD,SAAS;CACT,KAAK;CACL,IAAI,GAAG,GAAG;CACV,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;CAC7B,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;CAClC,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACrC,SAAS;CACT,aAAa;CACb,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;CACrD,SAAS;CACT,KAAK;CACL;;CC3BO,MAAM,aAAa,SAAS,WAAW,CAAC;CAC/C,IAAI,WAAW,CAAC,OAAO,EAAE;CACzB,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;CACvB,QAAQ,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CACxD,QAAQ,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;CAC7D,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO,CAAC;CACjD,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;CAC1C,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CAC7C,QAAQ,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CAC9C,KAAK;CACL,IAAI,IAAI,CAAC,KAAK,EAAE;CAChB,QAAQ,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;CACxE,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;CACpC,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,2BAA2B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC9E,SAAS;CACT,QAAQ,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC;CACnC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;CACxB,QAAQ,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACpC,QAAQ,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;CACnD,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;CACjE,QAAQ,IAAI,GAAG,EAAE;CACjB,YAAY,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;CACxC,SAAS;CACT,aAAa;CACb,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC;CAC1B,YAAY,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;CACxC,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;CAChE,SAAS;CACT,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;CACtD,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACvD,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,OAAO,CAAC,IAAI,EAAE;CAClB,QAAQ,IAAI,IAAI,EAAE;CAClB,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;CACrE,YAAY,IAAI,GAAG,EAAE;CACrB,gBAAgB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAClD,gBAAgB,IAAI,QAAQ,EAAE;CAC9B,oBAAoB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;CAC/D,iBAAiB;CACjB,gBAAgB,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE;CACpC,oBAAoB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CAC/D,iBAAiB;CACjB,aAAa;CACb,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;CAC9B,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;CACjE,QAAQ,IAAI,GAAG,EAAE;CACjB,YAAY,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;CAC3C,gBAAgB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CACxC,gBAAgB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACvD,aAAa;CACb,SAAS;CACT,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;CACrD,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;CACvD,SAAS;CACT,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;CAC3B,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;CAC1B,KAAK;CACL,CAAC;CACD,aAAa,CAAC,IAAI,GAAG,SAAS;;CCrEvB,MAAM,iBAAiB,SAAS,cAAc,CAAC;CACtD,IAAI,WAAW,CAAC,OAAO,EAAE;CACzB,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;CACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC7B,KAAK;CACL;;CCLO,MAAM,aAAa,SAAS,cAAc,CAAC;CAClD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CAC3B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;CAC7B,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAC9B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;CAC7B,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,QAAQ,QAAQ;CACxB,YAAY,KAAK,WAAW;CAC5B,gBAAgB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CACtC,gBAAgB,MAAM;CACtB,YAAY,KAAK,YAAY;CAC7B,gBAAgB,IAAI,CAAC,KAAK,EAAE,CAAC;CAC7B,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAC7C,gBAAgB,MAAM;CACtB,YAAY,KAAK,YAAY;CAC7B,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAC7C,gBAAgB,MAAM;CACtB,YAAY,KAAK,cAAc;CAC/B,gBAAgB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;CAC3C,gBAAgB,MAAM;CACtB,YAAY,KAAK,YAAY;CAC7B,gBAAgB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;CACvC,gBAAgB,MAAM;CACtB,YAAY,KAAK,UAAU;CAC3B,gBAAgB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CACrC,gBAAgB,MAAM;CACtB,YAAY;CACZ,gBAAgB,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CACpD,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;CAC3C,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;CAC9D,SAAS;CACT,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;CAC3B,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE;CACvD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;CAC9G,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;CAClE,gBAAgB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;CAC5E,gBAAgB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;CACvC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACpC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACxC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;CACrD,gBAAgB,OAAO,QAAQ,CAAC;CAChC,aAAa,CAAC,CAAC,CAAC;CAChB,SAAS;CACT,QAAQ,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE;CACrF,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC9D,SAAS;CACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;CAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;CACxC,gBAAgB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;CACtF,gBAAgB,IAAI,iBAAiB,EAAE;CACvC,oBAAoB,IAAI,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;CACvG,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,iBAAiB,CAAC,EAAE,CAAC;CACxE,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACrD,oBAAoB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;CACzE,iBAAiB;CACjB,aAAa;CACb,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;CACvC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAClE,aAAa;CACb,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;CACzF,gBAAgB,IAAI,CAAC,aAAa,EAAE,CAAC;CACrC,aAAa;CACb,SAAS;CACT,KAAK;CACL,IAAI,YAAY,CAAC,KAAK,EAAE;CACxB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACxG,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE;CAC3B,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE;CAC5C,YAAY,OAAO,IAAI,CAAC,gBAAgB,CAAC;CACzC,SAAS;CACT,QAAQ,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;CAClH,KAAK;CACL,IAAI,aAAa,GAAG;CACpB,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE;CACpD,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;CACvD,SAAS;CACT,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACtC,QAAQ,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;CAC7C,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;CAC/B,gBAAgB,IAAI,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,YAAY,KAAK,GAAG,CAAC,YAAY,EAAE;CAC3E,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC;CACzC,iBAAiB;CACjB,aAAa;CACb,SAAS,CAAC,CAAC;CACX,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;CAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;CACpD,KAAK;CACL;;CCzGO,MAAM,kBAAkB,SAAS,cAAc,CAAC;CACvD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;CACzB,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACvB,QAAQ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;CACvB,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK;CACtC,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CACjC,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CACxD,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CACxD,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,KAAK;CACpC,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAClC,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,aAAa,GAAG,CAAC,KAAK,KAAK;CACvC,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAClC,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK;CACrC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;CAC/B,gBAAgB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;CAC9E,gBAAgB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;CAC9E,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CAC7E,gBAAgB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAC5D,gBAAgB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;CAC5D,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK;CACrC,YAAY,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CACjC,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;CACjC,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;CACjC,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,KAAK;CACrC,YAAY,IAAI,IAAI,CAAC,QAAQ,EAAE;CAC/B,gBAAgB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;CACvD,gBAAgB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;CACvD,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CAC7E,gBAAgB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;CACrC,gBAAgB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;CACrC,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK;CACnC,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAClC,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,KAAK;CACpC,YAAY,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;CAClC,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;CACxC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,QAAQ,QAAQ;CACxB,YAAY,KAAK,QAAQ;CACzB,gBAAgB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;CACnC,gBAAgB,MAAM;CACtB,YAAY;CACZ,gBAAgB,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CACpD,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK;CACL;;CC/DO,MAAM,oBAAoB,SAAS,cAAc,CAAC;CACzD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;CAC/B,QAAQ,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;CAChC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;CAChC,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACtC,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CACrD,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CACtD,QAAQ,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CACpC,QAAQ,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CACrC,QAAQ,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;CACtC,QAAQ,MAAM,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;CAC7C,QAAQ,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,QAAQ,CAAC;CAC/C,QAAQ,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CACrC,QAAQ,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CACtC,QAAQ,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC,QAAQ,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC,QAAQ,IAAI,UAAU,GAAG,CAAC,CAAC;CAC3B,QAAQ,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK;CACnC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;CACnC,gBAAgB,OAAO;CACvB,aAAa;CACb,YAAY,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CAC7C,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK;CAClC,YAAY,IAAI,EAAE,CAAC;CACnB,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;CACnC,gBAAgB,OAAO;CACvB,aAAa;CACb,YAAY,MAAM,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,IAAI,IAAI,CAAC;CACrE,YAAY,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,CAAC;CACtE,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;CACxH,SAAS,CAAC;CACV,QAAQ,MAAM,QAAQ,GAAG,MAAM;CAC/B,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC;CACvB,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;CACnC,gBAAgB,OAAO;CACvB,aAAa;CACb,YAAY,IAAI,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;CAC3I,gBAAgB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;CACzC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,iBAAiB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACjG,aAAa;CACb,iBAAiB;CACjB;CACA,gBAAgB,GAAG,CAAC,QAAQ,CAAC;CAC7B,oBAAoB,GAAG,EAAE,MAAM,CAAC,YAAY;CAC5C,oBAAoB,QAAQ,EAAE,QAAQ;CACtC,iBAAiB,CAAC,CAAC;CACnB,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,aAAa,GAAG,MAAM;CAClC,YAAY,QAAQ,EAAE,CAAC;CACvB,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,UAAU,GAAG,MAAM;CAC/B,YAAY,QAAQ,EAAE,CAAC;CACvB,SAAS,CAAC;CACV,QAAQ,MAAM,CAAC,qBAAqB,CAAC,MAAM;CAC3C,YAAY,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;CAChD,SAAS,CAAC,CAAC;CACX,QAAQ,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;CACtC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;CACxC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE;CACpC,YAAY,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;CACtC,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,QAAQ,EAAE;CACxC,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;CACrC,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,WAAW,EAAE;CAC3C,YAAY,IAAI,CAAC,iBAAiB,GAAG,MAAM;CAC3C,gBAAgB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;CAC1C,aAAa,CAAC;CACd,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,YAAY,CAAC,KAAK,EAAE;CACxB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACxG,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE;CAC3B,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE;CAC1C,YAAY,OAAO,IAAI,CAAC,UAAU,CAAC;CACnC,SAAS;CACT,aAAa,IAAI,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE;CAChD,YAAY,OAAO,IAAI,CAAC,WAAW,CAAC;CACpC,SAAS;CACT,QAAQ,OAAO,SAAS,CAAC;CACzB,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;CACnC,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;CAC3B,QAAQ;CACR,YAAY,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;CACpE,YAAY,IAAI,WAAW,EAAE;CAC7B,gBAAgB,IAAI,IAAI,CAAC,UAAU,EAAE;CACrC,oBAAoB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE;CACtE,wBAAwB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,WAAW,CAAC,IAAI,EAAE;CAC5F,4BAA4B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CACpE,4BAA4B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CACrE,yBAAyB;CACzB,6BAA6B;CAC7B,4BAA4B,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CAClI,4BAA4B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;CACpG,4BAA4B,IAAI,UAAU,EAAE;CAC5C,gCAAgC,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CACnE,gCAAgC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACtD,gCAAgC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CACpE,gCAAgC,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CACjI,gCAAgC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;CAC7D,6BAA6B;CAC7B,yBAAyB;CACzB,qBAAqB;CACrB,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;CAC5F,oBAAoB,IAAI,UAAU,EAAE;CACpC,wBAAwB,UAAU,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;CAC3D,wBAAwB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAC9C,wBAAwB,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5D,wBAAwB,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CACzH,wBAAwB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;CACrD,qBAAqB;CACrB,iBAAiB;CACjB,aAAa;CACb,SAAS;CACT,QAAQ;CACR,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;CACtE,YAAY,IAAI,YAAY,EAAE;CAC9B,gBAAgB,IAAI,IAAI,CAAC,WAAW,EAAE;CACtC,oBAAoB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,EAAE;CACxE,wBAAwB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,YAAY,CAAC,IAAI,EAAE;CAC9F,4BAA4B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;CACtE,4BAA4B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CACvE,yBAAyB;CACzB,6BAA6B;CAC7B,4BAA4B,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CACpI,4BAA4B,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CACtG,4BAA4B,IAAI,WAAW,EAAE;CAC7C,gCAAgC,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;CACrE,gCAAgC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACvD,gCAAgC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CACtE,gCAAgC,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CACnI,gCAAgC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;CAC/D,6BAA6B;CAC7B,yBAAyB;CACzB,qBAAqB;CACrB,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9F,oBAAoB,IAAI,WAAW,EAAE;CACrC,wBAAwB,WAAW,CAAC,MAAM,GAAG,YAAY,CAAC,EAAE,CAAC;CAC7D,wBAAwB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAC/C,wBAAwB,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CAC9D,wBAAwB,CAAC,EAAE,GAAG,IAAI,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAC3H,wBAAwB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;CACvD,qBAAqB;CACrB,iBAAiB;CACjB,aAAa;CACb,SAAS;CACT,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,KAAK,CAAC,SAAS,EAAE,CAAC;CAC1B,KAAK;CACL,IAAI,aAAa,CAAC,CAAC,EAAE;CACrB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;CACvD,YAAY,OAAO;CACnB,SAAS;CACT,QAAQ,IAAI,CAAC,EAAE;CACf,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC/B,gBAAgB,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;CACpF,gBAAgB,QAAQ,EAAE,QAAQ;CAClC,aAAa,CAAC,CAAC;CACf,YAAY,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;CAC7D,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC/B,gBAAgB,GAAG,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,eAAe,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY;CACrG,gBAAgB,QAAQ,EAAE,QAAQ;CAClC,aAAa,CAAC,CAAC;CACf,YAAY,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;CAC5D,SAAS;CACT,KAAK;CACL,IAAI,cAAc,CAAC,CAAC,EAAE;CACtB,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;CAC7B,QAAQ,IAAI,CAAC,CAAC,EAAE;CAChB,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CACtC,SAAS;CACT,KAAK;CACL;;CCrMO,MAAM,aAAa,SAAS,WAAW,CAAC;CAC/C,IAAI,MAAM,GAAG;CACb,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;CACjC,KAAK;CACL,IAAI,aAAa,CAAC,IAAI,EAAE;CACxB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC;CACvC,QAAQ,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE;CACtG,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAClE,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CAC3F,YAAY,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,CAAC;CACrF,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;CACnD,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACpD,YAAY,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;CAC9C,SAAS;CACT,QAAQ,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI;CACtC,YAAY,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;CACzC,gBAAgB,IAAI,EAAE,CAAC;CACvB,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI;CAC/G,oBAAoB,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI;CAClD,wBAAwB,MAAM,QAAQ,GAAG,EAAE,CAAC;CAC5C,wBAAwB,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,KAAK;CAChE,4BAA4B,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;CACzD,gCAAgC,OAAO,KAAK,CAAC;CAC7C,6BAA6B;CAC7B,4BAA4B,SAAS,GAAG;CACxC,gCAAgC,KAAK,iBAAiB;CACtD,oCAAoC,OAAO,aAAa,CAAC;CACzD,gCAAgC,KAAK,WAAW;CAChD,oCAAoC,OAAO,MAAM,CAAC;CAClD,gCAAgC;CAChC,oCAAoC,OAAO,MAAM,CAAC;CAClD,6BAA6B;CAC7B,yBAAyB,CAAC;CAC1B,wBAAwB,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;CAClD,4BAA4B,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CACvF,4BAA4B,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E,yBAAyB;CACzB,wBAAwB,IAAI;CAC5B,4BAA4B,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE;CAC9F,gCAAgC,QAAQ,EAAE,IAAI,CAAC,QAAQ;CACvD,gCAAgC,IAAI,EAAE,UAAU;CAChD,6BAA6B,CAAC,CAAC;CAC/B,4BAA4B,SAAS,CAAC,QAAQ,GAAG,MAAM;CACvD,gCAAgC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI;CAC5E,oCAAoC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3F,iCAAiC,CAAC,CAAC;CACnC,gCAAgC,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9C,6BAA6B,CAAC;CAC9B,yBAAyB;CACzB,wBAAwB,OAAO,CAAC,EAAE;CAClC,4BAA4B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CAC7C,4BAA4B,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CAC3C,yBAAyB;CACzB,qBAAqB,CAAC,CAAC;CACvB,iBAAiB,CAAC,KAAK,EAAE,CAAC;CAC1B,qBAAqB,IAAI,CAAC,MAAM;CAChC,oBAAoB,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/B,iBAAiB,CAAC;CAClB,qBAAqB,OAAO,CAAC,MAAM;CACnC,oBAAoB,IAAI,CAAC,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAC1D,iBAAiB,CAAC,CAAC;CACnB,aAAa,CAAC,CAAC;CACf,SAAS,CAAC,CAAC;CACX,KAAK;CACL;;CCnEO,MAAM,eAAe,SAAS,aAAa,CAAC;CACnD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;CACtC,QAAQ,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;CACrC,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;CACxC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CACjC,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CAClC,QAAQ,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;CACtD,QAAQ,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;CAChC,QAAQ,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;CACrC,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CACjC,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CAClC,QAAQ,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC;CAC3C,QAAQ,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;CACxC,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;CACpD,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;CAC5C,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CAClC,QAAQ,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,MAAM,CAAC;CACzC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;CACvC,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;CAClD,QAAQ,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;CAC9B,QAAQ,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;CAC/B,QAAQ,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;CAC7B,QAAQ,GAAG,CAAC,OAAO,GAAG,MAAM;CAC5B,YAAY,IAAI;CAChB,gBAAgB,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE;CAC7C,oBAAoB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE;CACxG,wBAAwB,QAAQ,EAAE,GAAG;CACrC,wBAAwB,IAAI,EAAE,UAAU;CACxC,qBAAqB,CAAC,CAAC;CACvB,oBAAoB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;CACjH,wBAAwB,QAAQ,EAAE,GAAG;CACrC,wBAAwB,IAAI,EAAE,UAAU;CACxC,qBAAqB,CAAC,CAAC;CACvB,oBAAoB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;CACzC,iBAAiB;CACjB,qBAAqB;CACrB,oBAAoB,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,EAAE;CACxG,wBAAwB,QAAQ,EAAE,GAAG;CACrC,wBAAwB,IAAI,EAAE,UAAU;CACxC,qBAAqB,CAAC,CAAC;CACvB,oBAAoB,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE;CACjH,wBAAwB,QAAQ,EAAE,GAAG;CACrC,wBAAwB,IAAI,EAAE,UAAU;CACxC,qBAAqB,CAAC,CAAC;CACvB,oBAAoB,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;CAC1C,iBAAiB;CACjB,gBAAgB,IAAI,IAAI,CAAC,cAAc,EAAE;CACzC,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC5E,iBAAiB;CACjB,aAAa;CACb,YAAY,OAAO,CAAC,EAAE;CACtB,gBAAgB,KAAK,CAAC,CAAC,CAAC,CAAC;CACzB,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;CAC3B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CACzB,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;CACvB,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE;CAClB,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;CACpD,YAAY,OAAO;CACnB,SAAS;CACT,QAAQ,IAAI,CAAC,EAAE;CACf,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,kBAAkB,CAAC;CAC3D,YAAY,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC;CAC9D,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;CACnC,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC;CAC1D,YAAY,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC;CAC/D,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;CACnC,SAAS;CACT,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,QAAQ,QAAQ;CACxB,YAAY,KAAK,OAAO;CACxB,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;CACtC,gBAAgB,MAAM;CACtB,YAAY,KAAK,UAAU;CAC3B,gBAAgB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;CAC3C,gBAAgB,MAAM;CACtB,YAAY,KAAK,cAAc;CAC/B,gBAAgB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACvD,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;CACjD,gBAAgB,MAAM;CACtB,YAAY,KAAK,aAAa;CAC9B,gBAAgB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACtD,gBAAgB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;CACjD,gBAAgB,MAAM;CACtB,YAAY,KAAK,gBAAgB;CACjC,gBAAgB,IAAI,IAAI,CAAC,IAAI,EAAE;CAC/B,oBAAoB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;CACzE,iBAAiB;CACjB,gBAAgB,MAAM;CACtB,YAAY;CACZ,gBAAgB,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CACpD,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK;CACL,IAAI,QAAQ,GAAG;CACf,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC;CAC5F,KAAK;CACL;;CC/GO,MAAM,eAAe,SAAS,cAAc,CAAC;CACpD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;CAC3B,QAAQ,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;CACnC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;CAC7B,QAAQ,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;CACvC,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;CAC1B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;CAC7B,KAAK;CACL,IAAI,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;CAClC,QAAQ,IAAI,QAAQ,KAAK,WAAW,EAAE;CACtC,YAAY,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;CAClC,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,YAAY,EAAE;CAC5C,YAAY,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE;CAChD,gBAAgB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;CACrC,gBAAgB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;CAC7C,aAAa;CACb,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,YAAY,EAAE;CAC5C,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;CACnC,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,cAAc,EAAE;CAC9C,YAAY,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;CAC7C,SAAS;CACT,aAAa,IAAI,QAAQ,KAAK,MAAM,EAAE;CACtC,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;CAC7B,SAAS;CACT,aAAa;CACb,YAAY,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;CAChD,SAAS;CACT,KAAK;CACL,IAAI,YAAY,CAAC,KAAK,EAAE;CACxB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;CACxG,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE;CAC3B,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;CAClH,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC;CAC3B,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE;CACvD,YAAY,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;CAC9G,YAAY,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI;CAClE,gBAAgB,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;CAC5E,gBAAgB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;CACvC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CACpC,gBAAgB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;CACxC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;CACrD,gBAAgB,OAAO,QAAQ,CAAC;CAChC,aAAa,CAAC,CAAC,CAAC;CAChB,SAAS;CACT,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CAClD,QAAQ,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;CACtC,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC;CACrC,QAAQ,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;CACxC,QAAQ,IAAI,WAAW,GAAG,CAAC,CAAC;CAC5B,QAAQ,IAAI,YAAY,GAAG,CAAC,CAAC;CAC7B,QAAQ,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK;CACnC,YAAY,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;CACxE,YAAY,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;CAC9C,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,EAAE,KAAK;CAClC,YAAY,MAAM,OAAO,GAAG,CAAC,WAAW,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;CACpE,YAAY,GAAG,CAAC,QAAQ,CAAC;CACzB,gBAAgB,IAAI,EAAE,YAAY,GAAG,GAAG,CAAC,WAAW,GAAG,OAAO;CAC9D,aAAa,CAAC,CAAC;CACf,SAAS,CAAC;CACV,QAAQ,GAAG,CAAC,aAAa,GAAG,GAAG,CAAC,UAAU,GAAG,MAAM;CACnD,YAAY,IAAI,YAAY,GAAG,YAAY,CAAC;CAC5C,YAAY,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC;CACxE,YAAY,GAAG,CAAC,QAAQ,CAAC;CACzB,gBAAgB,IAAI,EAAE,YAAY,GAAG,GAAG,CAAC,WAAW;CACpD,gBAAgB,QAAQ,EAAE,QAAQ;CAClC,aAAa,CAAC,CAAC;CACf,YAAY,IAAI,YAAY,KAAK,YAAY,EAAE;CAC/C,gBAAgB,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;CAC1D,oBAAoB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;CACjF,iBAAiB;CACjB,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL,IAAI,aAAa,GAAG;CACpB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CACxE,KAAK;CACL,IAAI,SAAS,CAAC,MAAM,EAAE;CACtB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE;CAC3B,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI;CACzD,gBAAgB,QAAQ,EAAE,QAAQ;CAClC,aAAa,CAAC,CAAC;CACf,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;CAC/B,gBAAgB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,IAAI;CACzD,aAAa,CAAC,CAAC;CACf,SAAS;CACT,QAAQ,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;CAClD,YAAY,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;CACxE,SAAS;CACT,KAAK;CACL;;CC1GO,MAAM,kBAAkB,SAAS,cAAc,CAAC;CACvD,IAAI,WAAW,CAAC,OAAO,EAAE;CACzB,QAAQ,KAAK,CAAC,OAAO,CAAC,CAAC;CACvB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;CAC7B,KAAK;CACL,IAAI,KAAK,GAAG;CACZ,QAAQ,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;CAClC,QAAQ,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC;CAC3C,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;CACjC,QAAQ,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CAClC,QAAQ,OAAO,GAAG,CAAC;CACnB,KAAK;CACL;;CCXA,IAAI,kBAAkB,CAAC;CACvB,CAAC,UAAU,kBAAkB,EAAE;CAC/B,IAAI,IAAI,SAAS,GAAG,EAAE,CAAC;CACvB,IAAI,SAAS,OAAO,CAAC,YAAY,EAAE;CACnC,QAAQ,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;CACzE,YAAY,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;CAC1C,SAAS,CAAC,CAAC;CACX,KAAK;CACL,IAAI,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC;CACzC,IAAI,SAAS,SAAS,CAAC,QAAQ,EAAE;CACjC,QAAQ,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;CACjC,KAAK;CACL,IAAI,kBAAkB,CAAC,SAAS,GAAG,SAAS,CAAC;CAC7C,IAAI,SAAS,WAAW,CAAC,QAAQ,EAAE;CACnC,QAAQ,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;CAC1D,KAAK;CACL,IAAI,kBAAkB,CAAC,WAAW,GAAG,WAAW,CAAC;CACjD,CAAC,EAAE,kBAAkB,KAAK,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC;CAC7C,MAAM,kBAAkB,SAAS,WAAW,CAAC;CACpD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;CAC5B,KAAK;CACL,IAAI,OAAO,CAAC,IAAI,EAAE;CAClB,QAAQ,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CAC9D,QAAQ,kBAAkB,CAAC,OAAO,CAAC;CACnC,YAAY,IAAI,EAAE,GAAG;CACrB,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS;CACjE,SAAS,CAAC,CAAC;CACX,QAAQ,OAAO,IAAI,CAAC;CACpB,KAAK;CACL,IAAI,SAAS,CAAC,IAAI,EAAE;CACpB,QAAQ,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;CAC9D,QAAQ,MAAM,QAAQ,GAAG;CACzB,YAAY,IAAI,EAAE,GAAG;CACrB,YAAY,QAAQ,EAAE,CAAC,IAAI,KAAK;CAChC,gBAAgBC,qBAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;CAC3E,aAAa;CACb,SAAS,CAAC;CACV,QAAQ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;CACjD,QAAQ,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;CAC/C,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;CAC7B,KAAK;CACL,IAAI,WAAW,CAAC,WAAW,EAAE;CAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CACrD,QAAQ,IAAI,QAAQ,EAAE;CACtB,YAAY,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;CACrD,YAAY,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC;CACpD,YAAY,OAAO,IAAI,CAAC;CACxB,SAAS;CACT,aAAa;CACb,YAAY,OAAO,KAAK,CAAC;CACzB,SAAS;CACT,KAAK;CACL,IAAI,UAAU,GAAG;CACjB,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;CACpF,YAAY,IAAI,CAAC,EAAE;CACnB,gBAAgB,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAClD,aAAa;CACb,SAAS,CAAC,CAAC;CACX,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;CAC5B,KAAK;CACL;;CC5CA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;CACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC;CACxB,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC;CACf,SAAS,eAAe,CAAC,IAAI,EAAE;CACtC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;CACM,SAAS,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE;CAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;CACM,SAAS,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;CAC7C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;CAC9B,CAAC;CACM,SAAS,aAAa,CAAC,IAAI,EAAE;CACpC,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC;CACM,SAAS,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE;CAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC1B,CAAC;CACM,SAAS,eAAe,CAAC,IAAI,EAAE;CACtC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;CACD,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;CACvC,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CACrC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CACzC,cAAc,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;CAC7C,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CACzC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;CACzC,cAAc,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;CACnD,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;CAC1C,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;CAC9C,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;CAC9C,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;CAC1C,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;CAChD,gBAAgB,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;CAChD,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;CAClD,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;CACtD,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;CAC5C,gBAAgB,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;CAC5C,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC;;CCzDjD,SAAS,WAAW,CAAC,SAAS,EAAE;CAChC,IAAI,OAAO,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,CAAC;CACzC,CAAC;CACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,CAAC;CAC3C,MAAM,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC;CAC/C,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,CAAC;CAC7C,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC;CACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC;CAChB,SAAS,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE;CAChD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7C,CAAC;CACM,SAAS,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE;CAC1C,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;CAC3D,IAAI,aAAa,CAAC,IAAI,GAAG,MAAM,CAAC;CAChC,IAAI,aAAa,CAAC,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;CAC9C,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;CAC7C,CAAC;CACD,SAAS,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE;CAC5C,IAAI,OAAO,CAAC,2CAA2C,EAAE,IAAI,CAAC;AAC9D,EAAE,OAAO,CAAC;AACV;AACA,gDAAgD,CAAC,CAAC;CAClD,CAAC;CACD,SAAS,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE;CAClD,IAAI,OAAO,CAAC,wBAAwB,EAAE,SAAS,CAAC;AAChD;AACA,EAAE,OAAO,CAAC;AACV,8CAA8C,EAAE,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,+FAA+F,CAAC,CAAC;CAC/L,CAAC;CACD,SAAS,SAAS,GAAG;CACrB,IAAI,kBAAkB,CAAC,aAAa,EAAE;CACtC,QAAQ,QAAQ,EAAE,KAAK;CACvB,KAAK,CAAC,CAAC;CACP,IAAI,kBAAkB,CAAC,aAAa,EAAE,MAAM,SAAS,CAAC,CAAC;CACvD,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;CACvD,QAAQ,QAAQ,IAAI;CACpB,YAAY,KAAK,GAAG;CACpB,gBAAgB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;CACrC,gBAAgB,MAAM;CACtB,YAAY,KAAK,GAAG;CACpB,gBAAgB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CACtC,gBAAgB,MAAM;CACtB,YAAY,KAAK,GAAG;CACpB,gBAAgB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACvC,gBAAgB,MAAM;CACtB,SAAS;CACT,KAAK,CAAC,CAAC;CACP,IAAI,kBAAkB,CAAC,eAAe,EAAE,CAAC,UAAU,KAAK;CACxD,QAAQ,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;CACnD,QAAQ,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;CACzD,YAAY,OAAO,CAAC,GAAG,CAAC,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACnE,YAAY,OAAO,KAAK,CAAC;CACzB,SAAS;CACT,aAAa;CACb,YAAY,MAAM,CAAC,UAAU,EAAE,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;CACxE,YAAY,OAAO,IAAI,CAAC;CACxB,SAAS;CACT,KAAK,CAAC,CAAC;CACP,IAAI,kBAAkB,CAAC,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,KAAK;CAC3F,QAAQ,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;CACrD,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;CACxD,QAAQ,IAAI,WAAW,KAAK,SAAS,EAAE;CACvC,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CAC7D,YAAY,OAAO,KAAK,CAAC;CACzB,SAAS;CACT,QAAQ,IAAI,YAAY,KAAK,SAAS,EAAE;CACxC,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,0BAA0B,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACpE,YAAY,OAAO,KAAK,CAAC;CACzB,SAAS;CACT,QAAQ,IAAI,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CACjE,QAAQ,IAAI,MAAM,KAAK,SAAS,EAAE;CAClC,YAAY,MAAM,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC;CACnD,YAAY,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;CAChE,SAAS;CACT,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE;CAC1C,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACjF,YAAY,OAAO,KAAK,CAAC;CACzB,SAAS;CACT,QAAQ,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACjE,QAAQ,IAAI,OAAO,YAAY,KAAK,UAAU,EAAE;CAChD,YAAY,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC;CACrH,SAAS;CACT,QAAQ,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;CAChE,QAAQ,IAAI,GAAG,YAAY,OAAO,EAAE;CACpC,YAAY,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI;CAC1B,gBAAgBA,qBAAa,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;CACxD,aAAa,EAAE,CAAC,IAAI;CACpB,gBAAgBC,oBAAY,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;CACvD,aAAa,CAAC,CAAC;CACf,SAAS;CACT,aAAa,IAAI,GAAG,KAAK,SAAS,EAAE;CACpC,YAAY,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK;CAC/C,gBAAgBD,qBAAa,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;CAC1D,aAAa,CAAC,CAAC;CACf,SAAS;CACT,QAAQ,OAAO,IAAI,CAAC;CACpB,KAAK,CAAC,CAAC;CACP,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK;CACpE,QAAQ,IAAI,MAAM,EAAE;CACpB,YAAY,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM;CACrD,gBAAgBE,uBAAe,CAAC,OAAO,CAAC,CAAC;CACzC,aAAa,EAAE,IAAI,CAAC,CAAC;CACrB,YAAY,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;CACtD,SAAS;CACT,aAAa;CACb,YAAY,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM;CACpD,gBAAgBA,uBAAe,CAAC,OAAO,CAAC,CAAC;CACzC,aAAa,EAAE,IAAI,CAAC,CAAC;CACrB,YAAY,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;CACtD,SAAS;CACT,KAAK,CAAC,CAAC;CACP,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,CAAC,OAAO,KAAK;CACxD,QAAQ,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;CAC9C,QAAQ,IAAI,SAAS,EAAE;CACvB,YAAY,IAAI,SAAS,CAAC,MAAM,EAAE;CAClC,gBAAgB,mBAAmB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;CACxD,aAAa;CACb,iBAAiB;CACjB,gBAAgB,kBAAkB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;CACvD,aAAa;CACb,SAAS;CACT,KAAK,CAAC,CAAC;CACP,CAAC;CACM,SAAS,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE;CAClD,IAAI,MAAM,CAAC,SAAS,EAAE,oBAAoB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;CAChE,CAAC;CACM,SAAS,cAAc,CAAC,SAAS,EAAE;CAC1C,IAAIC,wBAAgB,CAAC,SAAS,CAAC,CAAC;CAChC,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;CAC1E,IAAI,IAAI,aAAa,EAAE;CACvB,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;CACjD,KAAK;CACL,CAAC;CACD,SAAS,EAAE;;CCrIX,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;CAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;CACtB,SAAS,YAAY,GAAG;CACxB,IAAI,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;CACxC,CAAC;CACM,SAAS,eAAe,CAAC,SAAS,EAAE;CAC3C,IAAI,OAAO,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;CACxC,CAAC;CACM,MAAM,YAAY,CAAC;CAC1B,IAAI,WAAW,CAAC,OAAO,EAAE;CACzB,QAAQ,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;CACxC,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,CAAC;CACvC,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC;CACjC,QAAQ,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;CAC/C,QAAQ,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CAChD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC;CACjD,KAAK;CACL,IAAI,cAAc,CAAC,MAAM,EAAE;CAC3B,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE;CAC7C,YAAY,OAAO,IAAI,CAAC,QAAQ,CAAC;CACjC,SAAS;CACT,QAAQ,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE;CACnD,YAAY,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;CACnC,gBAAgB,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;CACzC,aAAa;CACb,SAAS;CACT,KAAK;CACL,IAAI,IAAI,KAAK,GAAG;CAChB,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,OAAO,CAAC,EAAE,GAAGC,uBAAe,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;CACrG,KAAK;CACL,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE;CAC7C,QAAQ,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACnD,YAAY,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,KAAK,CAACC,0BAAkB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;CAC5E,KAAK;CACL,IAAI,sBAAsB,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE;CACjD,QAAQ,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CAC/C,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACnD,YAAY,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7C,SAAS;CACT,QAAQ,OAAO,OAAO,CAAC,KAAK,CAACC,4BAAoB,EAAE,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;CAC9E,KAAK;CACL,IAAI,IAAI,CAAC,IAAI,EAAE;CACf,QAAQ,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;CAClD,KAAK;CACL,IAAI,QAAQ,GAAG;CACf,QAAQ,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;CAChD,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACjD,KAAK;CACL,IAAI,MAAM,GAAG;CACb,QAAQ,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;CAC9C,KAAK;CACL,IAAI,QAAQ,GAAG;CACf,QAAQ,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;CAChD,KAAK;CACL,IAAI,KAAK,CAAC,KAAK,EAAE;CACjB,QAAQ,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;CACpD,KAAK;CACL,IAAI,WAAW,GAAG;CAClB,QAAQ,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;CACnC,KAAK;CACL,IAAI,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE;CACrC,QAAQ,IAAI,EAAE,CAAC;CACf,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;CAC9E,YAAY,QAAQ;CACpB,YAAY,QAAQ;CACpB,SAAS,CAAC,CAAC;CACX,KAAK;CACL,IAAI,QAAQ,GAAG;CACf,QAAQ,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE;CAC1D,YAAY,MAAM,CAAC,UAAU,EAAE,CAAC;CAChC,SAAS;CACT,QAAQ,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;CACvC,KAAK;CACL;;CChFO,MAAM,YAAY,SAAS,WAAW,CAAC;CAC9C,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,EAAE,CAAC;CAChB,KAAK;CACL,IAAI,IAAI,GAAG,GAAG;CACd,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;CACxC,KAAK;CACL,IAAI,IAAI,KAAK,GAAG;CAChB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;CAC1C,KAAK;CACL,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE;CACf,QAAQ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;CACpC,KAAK;CACL,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE;CACjB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACtC,KAAK;CACL,IAAI,IAAI,QAAQ,GAAG;CACnB,QAAQ,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;CACzC,KAAK;CACL,IAAI,IAAI,QAAQ,CAAC,CAAC,EAAE;CACpB,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CACrC,KAAK;CACL,IAAI,iBAAiB,GAAG;CACxB,QAAQ,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;CACpD,YAAY,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI;CACvD,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;CAClC,aAAa,CAAC,CAAC;CACf,SAAS;CACT,KAAK;CACL,IAAI,oBAAoB,GAAG;CAC3B,KAAK;CACL,IAAI,eAAe,GAAG;CACtB,KAAK;CACL,IAAI,wBAAwB,GAAG;CAC/B,KAAK;CACL,IAAI,SAAS,GAAG;CAChB,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;CACnB,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;CAChF,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;CAC/E,KAAK;CACL,IAAI,IAAI,CAAC,OAAO,EAAE;CAClB,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;CACjD,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;CACzC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;CAChC,QAAQ,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;CACzD,QAAQ,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;CAC/C,QAAQ,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;CACzC,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;CAChC,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;CAChD,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;CAC3B,YAAY,KAAK,EAAE,UAAU,CAAC,WAAW;CACzC,YAAY,MAAM,EAAE,UAAU,CAAC,YAAY;CAC3C,SAAS,CAAC,CAAC;CACX,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;CAC9B,KAAK;CACL;;CCxDO,MAAM,iBAAiB,SAAS,WAAW,CAAC;CACnD,IAAI,WAAW,GAAG;CAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;CAC5B,QAAQ,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;CAC/B,KAAK;CACL,IAAI,IAAI,WAAW,GAAG;CACtB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;CACzD,YAAY,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,YAAY,EAAE;CAC5D,gBAAgB,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAC1C,aAAa;CACb,SAAS;CACT,QAAQ,OAAO,SAAS,CAAC;CACzB,KAAK;CACL,IAAI,IAAI,CAAC,OAAO,EAAE;CAClB,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;CAC7C,QAAQ,IAAI,WAAW,EAAE;CACzB,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;CAChD,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CACpD,SAAS;CACT,aAAa;CACb,YAAY,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;CACtC,SAAS;CACT,KAAK;CACL,IAAI,GAAG,GAAG;CACV,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;CACpD,QAAQ,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;CAC7C,QAAQ,IAAI,WAAW,IAAI,WAAW,EAAE;CACxC,YAAY,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;CACxD,YAAY,WAAW,CAAC,SAAS,EAAE,CAAC;CACpC,SAAS;CACT,aAAa;CACb,YAAY,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;CAClC,SAAS;CACT,KAAK;CACL;;CCnCA,IAAIC,WAAS,GAAG,CAACV,SAAI,IAAIA,SAAI,CAAC,SAAS,KAAK,UAAU,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;CACzF,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;CAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;CAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;CACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;CACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;CACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;CAC9E,KAAK,CAAC,CAAC;CACP,CAAC,CAAC;CAYF,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;CACxD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;CACpE,YAAY,CAAC,QAAQ,EAAE,CAAC;CACxB,qBAAqB,CAAC;CACtB,IAAI,MAAM,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;CACtD,IAAI,OAAO,EAAE,CAAC,MAAM,KAAKU,WAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,aAAa;CACxE,QAAQ,MAAM,GAAG,GAAG,MAAMT,yBAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;CACrH,QAAQ,OAAO,GAAG,CAAC,IAAI,CAAC;CACxB,KAAK,CAAC;CACN,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} +>>>>>>> 92b1f6a4... feat: add snapshot feature for devkit, this is for android